Homebrew has outsourced its gatekeeping to Apple

Most of the casks that disappeared from Homebrew in the last couple of years didn’t go because the software was bad. They went because the author hadn’t paid Apple. That’s not how anyone phrases it. The PR says the cask failed brew audit. The audit says the binary is unsigned, or signed but not notarised, or signed by a Developer ID that doesn’t match the bundle. The deprecation policy gives the cask a sunset date. From the outside the chain looks like quality control. From the maintainer’s side it’s a $99-a-year invoice from Cupertino. ...

13 May 2026 · 6 min · 1170 words · Shafiq Alibhai

Hiding YouTube Shorts on a self-hosted Invidious

I run Invidious on a TrueNAS SCALE box at home so my YouTube subscriptions stay free of ads, tracking, and the algorithm’s mood swings. The one thing that still ruined the feed was Shorts. Half the page was a wall of clips I had no intention of watching. I assumed there’d be a setting. There isn’t. Upstream has three feature requests asking for one (#3920, #4457, #3541) and all three are closed as “not planned”. The TrueNAS app just wraps stock Invidious, so the app GUI offers nothing either. ...

13 May 2026 · 4 min · 723 words · Shafiq Alibhai

How to set up Mastodon using Docker Compose

Prerequisites Docker and Docker Compose installed Domain name pointing to your server 1. Create Project Directory mkdir mastodon cd mastodon 2. Create Docker Compose File Create a docker-compose.yml file: version: '3' services: db: restart: always image: postgres:14-alpine shm_size: 256mb networks: - internal_network healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres'] volumes: - postgres_data:/var/lib/postgresql/data environment: - POSTGRES_HOST_AUTH_METHOD=trust redis: restart: always image: redis:7-alpine networks: - internal_network healthcheck: test: ['CMD', 'redis-cli', 'ping'] volumes: - redis_data:/data web: restart: always image: tootsuite/mastodon:latest networks: - external_network - internal_network healthcheck: test: ['CMD-SHELL', 'wget -q --spider http://localhost:3000/health || exit 1'] timeout: 10s depends_on: - db - redis environment: - DB_HOST=db - DB_USER=postgres - DB_NAME=postgres - DB_PASS= - REDIS_HOST=redis - LOCAL_DOMAIN=your-domain.com - SINGLE_USER_MODE=false - SMTP_SERVER=smtp.mailgun.org - SMTP_PORT=587 - SMTP_LOGIN=your-smtp-login - SMTP_PASSWORD=your-smtp-password - SMTP_FROM_ADDRESS=notifications@your-domain.com volumes: - ./public/system:/mastodon/public/system ports: - "3000:3000" command: bash -c "rm -f /mastodon/tmp/pids/server.pid && bundle exec rails s -p 3000" streaming: restart: always image: tootsuite/mastodon:latest networks: - external_network - internal_network depends_on: - db - redis environment: - DB_HOST=db - DB_USER=postgres - DB_NAME=postgres - DB_PASS= - REDIS_HOST=redis - LOCAL_DOMAIN=your-domain.com volumes: - ./public/system:/mastodon/public/system ports: - "4000:4000" command: node ./streaming sidekiq: restart: always image: tootsuite/mastodon:latest networks: - internal_network depends_on: - db - redis environment: - DB_HOST=db - DB_USER=postgres - DB_NAME=postgres - DB_PASS= - REDIS_HOST=redis - LOCAL_DOMAIN=your-domain.com volumes: - ./public/system:/mastodon/public/system command: bundle exec sidekiq networks: external_network: internal_network: internal: true volumes: postgres_data: redis_data: 3. Create Environment File Create a .env.production file with your configuration: ...

29 September 2025 · 4 min · 698 words · Shafiq Alibhai

Key Life Advice from People in Their 40s to Those in Their 20s

Key Life Advice from People in Their 40s to Those in Their 20s Physical Health & Self-Care Take care of your teeth - they’re the only set you’ll ever have Take care of your knees and back Stretch every day or at least more than never - stay limber because once flexibility is gone, it’s almost impossible to get back Don’t wait to get in shape - start working out now in whatever way you enjoy Use sunscreen and drink plenty of water Mental Health & Self-Perception Stop caring what other people think - this was one of the most emphasized points You’re not special, no one cares what you do, and the sooner you accept it, the sooner you can be at peace with yourself Don’t take yourself too seriously - you’ll probably look back ten years later mildly mortified at how deep you thought you were It’s okay and healthy to sit in silence - put down your phone and just be Time & Life Perspective Time goes by very fast - never waste a day Chase your dreams! You don’t want to be 80 years old regretting not travelling or pursuing your passion You don’t have as much time as you think you do - do something every day, even if it’s just for yourself Social Comparisons & Life Timelines Don’t fall into the trap of thinking everyone else your age has something you don’t Once you’re out of school, there are no timelines anymore - you’re not supposed to do anything by any particular point in your life Don’t worry about high school - once you’re done, no one cares except for getting your diploma Relationships & Social Life Choose friends wisely - don’t keep friends who bring you down, only call when they need something, or discourage your growth Just ask - whether it’s the person who gets your heart beating or the pay raise you deserve, things won’t come to you by themselves Financial Wisdom Save money and invest - investments roughly double every decade Doing something you like for a living is more rewarding than doing something that pays exceptionally well Personal Growth Fail more - failure is not a catastrophe but part of the process of getting better Deprogram yourself from societal lies and examine your beliefs thoroughly Learn to live in the present - the past is just memory and the future is imagination Source: Reddit comments

29 September 2025 · 2 min · 406 words · Shafiq Alibhai

Comparison of WHPH and Super Productivity Apps

WHPH (Work Hard Play Hard) Key Features: Task Management: Organise and track your daily tasks efficiently Habit Tracking: Build and maintain positive habits with progress monitoring Application Usage Tracking: Monitor how you spend time on different applications Time Optimisation: Analyse your time usage patterns and improve productivity Optional data synchronization between your desktop and mobile devices over your local network Available for Android, Windows, and Linux platforms Privacy & Sync: ...

29 September 2025 · 2 min · 290 words · Shafiq Alibhai

How to test AA and AAA batteries using a multimeter

Turn the dial to a higher voltage setting - Try the “200” setting in the DC voltage (V⎓) section. This will handle voltages up to 200V. Check your connections - Make sure: The black probe is firmly in the “COM” port The red probe is firmly in the “VΩmA” port You’re making good contact with the battery terminals Verify the battery orientation - Make sure you’re touching: Black probe to the negative (-) end of the battery Red probe to the positive (+) end of the battery

29 September 2025 · 1 min · 87 words · Shafiq Alibhai

Iceraven and Ironfox browser comparison

Iceraven and IronFox are both open-source browsers for Android, each offering privacy and customization features but with different emphases and user audiences. Core Features Feature Iceraven IronFox Privacy & Telemetry Reduced telemetry, customisable123 Strongly privacy-hardened, all telemetry removed456 Add-ons/Extensions Extensive support, larger list than stock Firefox178 Supports Firefox Android extensions6 Customization About:config, more desktop-like options127 Advanced privacy defaults, stripped-down interface456 Speed & Performance Comparable to Brave/Chrome; resource-optimised89 Lightweight, slightly faster than stock Firefox6 Main Focus Customization, extension and power-user features12 Privacy, de-bloated and anti-tracking465 Updates Community-driven, slower but steady210 Active, responsive to user issues54 Official Channels Github APK releases, not on Play Store128 F-Droid/Accrescent, Github, not on Play Store46 Iceraven Browser Built on stable Firefox for Android, with a focus on more add-on availability and configuration options like about:config1112. Appeals to users who want to replicate desktop Firefox’s customization and plugin experience on mobile111. Releases and updates are maintained via Github and aren’t distributed via the Play Store128. Some comments note the lack of warranties or guarantees for security; best used by power users familiar with browser internals12. IronFox Browser Derived from Mull (itself a privacy-focused Firefox fork), with aggressive tracking and telemetry removal456. Prioritizes user privacy, blocks telemetry by default, and comes with strict tracking-protection settings46. Keeps features like Firefox Sync; disables or restricts features leaking data (such as WebGL, unless manually enabled)46. Distributed via alternative app stores like F-Droid, Accrescent, and Github; not available on Play Store46. Some advanced privacy features may result in compatibility issues with certain websites, especially those relying on features IronFox disables by default4. Summary Iceraven is ideal for those wanting a “power-user” browser with deep customization and a broad add-on library, making it similar to desktop Firefox in spirit1117. IronFox is best for users who place privacy first, seeking a Firefox-based browser that automatically strips out telemetry and unnecessary features for a lightweight, secure experience54612. Both offer more control and privacy than standard Firefox for Android, but Iceraven focuses on flexibility while IronFox focuses on privacy hardening. 1314151617181920 ...

29 September 2025 · 2 min · 355 words · Shafiq Alibhai

Implementing TOGAF using SCRUM methodology

Implementing TOGAF Using SCRUM Methodology Implementing TOGAF (The Open Group Architecture Framework) using Scrum requires blending the structured, enterprise-wide approach of TOGAF with the agile, iterative delivery model of Scrum. Below is a step-by-step guide to achieve this: 1. Understand TOGAF and Scrum Synergy TOGAF provides a high-level framework for enterprise architecture (EA) with phases like ADM (Architecture Development Method). Scrum is an agile methodology for iterative software/product development with Sprints, backlogs, and cross-functional teams. Goal: Use Scrum to execute TOGAF phases incrementally while maintaining agility. 2. Map TOGAF ADM Phases to Scrum Sprints Instead of executing TOGAF linearly, break it into iterative cycles (Sprints): ...

28 September 2025 · 3 min · 463 words · Shafiq Alibhai

Things to do and questions to ask when starting a new contract

Before starting a contract, consider the following: Is a BPSS check necessary? Is a DBS check necessary? Is the start date dependent on the client providing a laptop and completing setup? Red Flags and Lessons Learned Be cautious when: Code reviews are done by someone not actively working with you or partially working with you. Organizations use ServiceNow for project requests instead of support/change tickets. There are no operational tasks done in a squad/team. The lead engineer is not working on your project. Best practices: Get to know all ongoing projects before focusing on one. Create a onboarding Jira ticket if possible. Conduct 1-to-1 meetings with all team members. Focus on making a positive impact and building workplace relationships rather than just performance. Questions to Ask the Client ...

22 May 2025 · 1 min · 199 words · Shafiq Alibhai

Consulting Framework

To determine the viability of a consulting project, consider the following factors: Can the client easily find a solution online? Ideally, the answer should be “no”, indicating that the problem requires specialized expertise. What are the consequences of a failed solution? The cost of failure should be significant, but not catastrophic. This could include financial losses, reputational damage, or operational disruptions. How quickly can you deliver a solution? The faster you can deliver a working solution, the better. This demonstrates your value to the client and helps build trust. How confident are you in your ability to deliver a great solution? You should be 100% confident in your ability to deliver a high-quality solution. Anything less may undermine the client’s trust and make it harder to close the deal.

22 May 2025 · 1 min · 129 words · Shafiq Alibhai