All blogs / DevOps / SRE / infrastructure
Mattias Geniar
Mattias Geniar, co-founder of Oh Dear. A decade of writing on Linux, PHP, DevOps, web performance, security and the open web, plus talks and projects.
- Posts
- 1,002 from 1 Jun 2008 to 30 Oct 2026
- Posting
- weekly (49 in the last year)
- Kind
- personal blog
- Feed
- https://ma.ttias.be/index.xml
2026 47
- Xcode 27 drew a white strip over my iPhone app's status bar
- Snapkin now uploads your photos before you tap Analyse
- ««
- The PHP CVE scramble, in one graph
- PHP CVE-2026-109618 and CVE-2026-109619: early mitigation steps
- PHP CVE-2026-109618 and CVE-2026-109619: how to apply the patches
- PHP's new memory_hard_limit_percent setting
- Snapkin has an engineering blog now
- From laravel-echo-server to laravel-websockets to Laravel Reverb
- The 7 reasons Apple rejected my app, and what I changed
- Data is the application
- Introducing Snapkin: the calorie tracker for people who've quit calorie trackers
- 9000 RPM is faster than your screen refreshes
- PWAs: Personal Web Apps
- Deduplicating git worktrees on EXT4 with jdupes
- Setting up a remote environment for agentic coding
- Merging multiple EPUBs into a single file for Amazon Kindle
- What 1.8 million real website outages look like
- Dealing with concurrent bridge-network creates & host-port races in Docker
- Laravel Octane (FrankenPHP) vs. PHP-FPM: what I measured, and why we went back
- Turn your Filament panel into an AI-native dashboard
- Letting Cloudflare serve Brotli-compressed data with nginx
- Linux debugging tools I use daily
- The backup SSH daemon I run before every do-release-upgrade
- AI is a confidence booster
- Transcribing my old podcast locally with open-source AI
- Configuring Varnish on systemd in 2026: drop-in overrides, not varnish.params
- Debugging cookie stripping in Varnish: client vs backend request in 2026
- Reading the Varnish log in 2026: varnishlog -q, -g grouping and the VSL query language
- The ghost domain problem in DNS, and what we're doing about it
- Varnish in 2026: it's called Vinyl Cache now, and the mental model still holds
- Running HTTP/3 with Caddy in 2026: it just works
- Lessons learned: don't mix $timeout attributes and properties on queued Laravel jobs
- QUIC and HTTP/3 in 2026: from Google experiment to IETF standard
- Caching get_certificate lookups in Caddy
- Serving HTTP/2 and HTTP/3 with Nginx in 2026
- More time to think
- Improvements to our status pages as we tackle a DDoS
- Finding Dutch audio across streaming services
- Imposter: a single-phone party game, free and open source
- How we implemented a mobile-friendly Oh Dear UI with AI
- Making our docs AI-friendly: a tale of two caches
- My interview on Oh Dear on the Seahawk Podcast
- Catching SQL performance issues in PHPUnit and Pest, as part of your test infrastructure
- Our 3-part series on SQL performance optimisations
- Using AI is no longer optional
- Web development is fun again
2025 6
- A fresh server for this blog
- The effects of the Cloudflare outage on Oh Dear
- SQL performance: analysing & fixing the slow queries (part 2)
- SQL performance: finding the queries to fix (part 1)
- Typehinting Laravel validation rules using PHPStan's type aliases
- Running our test suite in parallel on GitHub Actions
2024 3
2022 2
2021 1
2020 48
- How we added favicons to our site list
- cargo: no such subcommand: +nightly
- Could not find directory of OpenSSL installation
- OpenSSL pkg-config not found
- wabt-sys compile: error: CMAKE_PROJECT_VERSION was not declared in this scope on Ubuntu 18.04 LTS
- A new start for DNS Spy
- I like big fonts and I cannot lie
- Recap: measuring linux performance - how to avoid typical mistakes
- How to measure Linux Performance Avoiding Most Typical Mistakes: Network
- How to measure Linux Performance Avoiding Most Typical Mistakes: Memory
- How to measure Linux Performance Avoiding Most Typical Mistakes: Disk Storage
- Adding SWAP to Linux
- Git commit without the pre-commit hook
- How to measure Linux Performance Avoiding Most Typical Mistakes: CPU
- Reading .EML mail files using Mutt on Mac OSX
- Want to improve? Add a delay
- How do we find users for our SaaS?
- Making life easier with cron
- A PHP package to simplify working with percentages
- What else can you stuff in a certificate chain?
- MySQL: ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
- Create a date in the future for use in Bash scripts on BSD/Mac OSX
- Dissecting the code responsible for the Bitcoin halving
- Creating a 2-of-3 multisig with raw transactions on EOSIO
- Bash script to send a push notification when string is found in logs
- Selecting all checkboxes on a page with the Developer Console
- Build & test your Laravel project via Bitbucket Pipelines
- How I write and curate the cron.weekly newsletter
- Deploying a highly-available K3s with K3sup
- Clean up Linux Server Using These Simple Tips
- Different ways of writing crontab syntax
- Set up a custom 404 page for static sites with Caddy 2
- Looking for guest-writers on this blog!
- Someone, somewhere, is trying to break into your app
- Creators vs Consumers
- Composer require specific version while ignoring package dependencies
- Resources to understanding Bitcoin
- Migrating to Caddy 2
- How to run HTTP/3 with Caddy 2
- Why your government isn't acting on the Corona/COVID-19 threat
- Forcing a Content-Type header with Guzzle's form_params
- I found a loophole to prevent those pesky cookie notices 👀
- Adding a sticky table of contents in Hugo to posts
- Convert a PuTTY private key to openssh
- Why I'm open sourcing the financial side of my business
- Accepting new sponsorships for the cron.weekly newsletter
- Dumping specific tables in MySQL using mysqldump
- Auto-restart a crashed service in systemd
2019 52
- What exactly is being sent to Ubuntu in the MOTD?
- Making a JSON prettifier in pure JavaScript
- Name your Laravel Horizon workers for easier debugging at the CLI
- The text adventure game of exiting a telnet session
- Set up a static IP address on Ubuntu 18.04 LTS server
- cron.weekly is coming back!
- Auto-start VirtualBox VMs (headless) after reboot on Mac OSX
- VirtualBox: Failed to open/create the internal network 'HostInterfaceNetworking-en0' (VERR_SUPDRV_COMPONENT_NOT_FOUND)
- A Caddyfile config example for Laravel
- Mac OS: xcrun: error: invalid active developer path, missing xcrun
- Remove index.php from the URL in Laravel
- How to prevent content-spoofing in Apache's 404 error pages
- Specify a specific SSH private key for git pull/git clone
- Analysing webservers logs locally with goaccess
- A step-by-step guide on migrating from WordPress to Hugo
- How to use ffmpeg to combine multiple videos to one
- Disable HTTP sessions in Laravel to speed up your API
- A fresh new look for this site
- A Linux sysadmin's guide to moving to a new website
- public speaker
- strace: operation not permitted, ptrace_scope incorrect
- warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
- Install PHP’s imagick extension on Mac with Brew
- Mac pecl install: configure: error: Please reinstall the pkg-config distribution
- Laravel’s Tinker quits immediately on PHP 7.3 & Mac
- Chrome’s next steps for security: mixed content checking more important than ever
- A github CI workflow tailored to modern PHP applications (Laravel, Symfony, …)
- How we used Caddy and Laravel’s subdomain routing to serve our status pages
- Is bitcoin dead yet?
- Announcing Status Pages for the Oh Dear monitoring service
- Time for Change: Going Independent
- Trigger an on demand uptime & broken links check after a deploy with the Oh Dear! API
- There’s more than one way to write an IP address
- Nginx: add_header not working on 404
- Some useful changes to the Oh Dear! monitoring service
- Enable the RPC JSON API with password authentication in Bitcoin Core
- How to upgrade to the latest Bitcoin Core version
- I forgot how to manage a server
- Requesting certificates with Let’s Encrypt’s official certbot client
- Retrieving the Genesis block in Bitcoin with bitcoin-cli
- Lazily load below-the-fold images and iframes
- Using Oh Dear to keep your Varnish cache warm
- The end of Extended Validation certificates
- Podcast: Exploring Bitcoin with Edd Mann
- Archiving the bitcoin-dev mailing lists
- Initial impressions on running a Bitcoin Core full node
- MySQL 8 & Laravel: The server requested authentication method unknown to the client
- Showing the DNS score in your dashboard & an updated layout
- Run a Bitcoin Core full node on CentOS 7
- Limit the disk space consumed by Bitcoin Core nodes on Linux
- Run a Bitcoin Lightning Node on CentOS 7
- Remote Code Execution in apt/apt-get
2018 49
- Our Gitlab CI pipeline for Laravel applications
- PHP 7.3.0 Release Announcement
- Benchmarking websocket server performance with Artillery
- Deploying laravel-websockets with Nginx reverse proxy and supervisord
- Increase the number of open files for jobs managed by supervisord
- Why your NS records matter
- My Laracon EU talk: Minimum Viable Linux
- Tracking SQL queries
- A big update to DNS Spy – DNS Spy Blog
- HTTP-over-QUIC will officially become HTTP/3
- Automatic monitoring of Laravel Forge managed sites with Oh Dear!
- How to size & scale your Laravel Queues
- Laravel Telescope: Data too long for column ‘content’
- The convincing Bitcoin scam e-mail extorting you
- MySQL 8 removes shorthand for creating user + permissions
- Find the public key belonging to a private key
- ssh error: unable to negotiate with IP: no matching cipher found
- HHVM is Ending PHP Support
- Elasticsearch fails to start: access denied “/etc/elasticsearch/${instance}/scripts”
- Indie Hackers interview with Oh Dear!
- MySQL: Calculate the free space in IBD files
- Chrome stops showing “www”-prefix in URI
- Remote Desktop error: CredSSP encryption oracle remediation
- DNS Spy now checks for the “Null MX”
- Chalk Talk #3: how to optimise your content for Varnish
- Certificate Transparency logging now mandatory
- Upcoming presentation at LOADays: Varnish Internals – Speeding up a site x100
- Chalk Talk #2: how does Varnish work?
- Varnishlog: show the hash() data in output
- Varnish: same hash, different results? Check the Vary header!
- It’s about what broke, not who broke it
- Drupal core – Highly critical – Remote Code Execution – SA-CORE-2018-002
- Why I usually run ‘w’ first when troubleshooting unknown machines
- Chalk Talk #1: An introduction to Varnish
- Upcoming Drupal 7 and 8 core highly critical security release: March 28th
- The security footgun in etcd
- Varnish 6.0 released
- Enable the slow log in Elastic Search
- Laravel & MySQL auto-adding “on update current_timestamp()” to timestamp fields
- Clear systemd journal
- Announcing “Oh Dear!”: a new innovative tool to monitor your websites
- Update a docker container to the latest version
- Show IDN punycode in Firefox to avoid phishing URLs
- Nginx adds support for HTTP/2 Server-Side Push
- Chrome will mark all HTTP sites as “not secure”
- Red Hat reverts microcode update to mitigate Spectre, refers to hardware vendors for fix
- Mozilla Firefox to require HTTPS in order to use latest features
- I’m taking a break from cron.weekly
- Intel’s CPU vulnerabilities: Meltdown and Spectre
2017 100
- "du --max-depth" alternative on Mac OSX
- Root login without password allowed by default on Mac OSX High Sierra
- Fall cleaning: shutting down some of my projects
- Staat der Nederlanden CA might be revoked from Mozilla Policy?
- KRACK Attacks: Breaking WPA2
- Compile PHP from source: error: utf8_mime2text() has new signature
- Get shell in running Docker container
- Antwerp WordPress User Group offering public speaking course
- Laravel Forge + Envoyer + Managed Hosting = Nucleus
- Why we’ve cancelled our free tier – DNS Spy Blog
- Due to CAA records, unable to issue TLS certs for names in private.cam.ac.uk
- DNS Research: using SPF to query internal DNS resolvers
- A proposal for cryptocurrency addresses in DNS
- Chrome & Firefox now force .dev domains to HTTPS via preloaded HSTS
- Linux man-pages: man-pages-4.13 is released
- Cloudflare now serves F-Root instance
- Presentation: Code Obfuscation, PHP shells & more
- Laravel Horizon: requires ext-posix, missing from CentOS
- cron.weekly issue #97: kernel 4.13, TLS, LLVM, Yarn, Vagrant, AWX, Nginx & more
- Coming soon: Oh Dear! – Monitoring for the encrypted web
- CAA record checking now mandatory for Certificate Authorities
- 2 interesting things happened in last cron.weekly’s newsletter
- Release Notes Driven Development (RNDD)
- Restore one-click certificate viewing in Chrome
- Removing root-owned files as a non-root user
- MariaDB: JSON datatype supported as of 10.2
- RHEL & CentOS 7.4 restores HTTP/2 functionality on Nginx
- Podcast: The Ceremony, the birth of Zcash
- Apache httpd 2.2.15-60: underscores in hostnames are now blocked
- Choose source IP with ping to force ARP refreshes
- mysqldump without table locks (MyISAM and InnoDB)
- Unix time 1.500.000.000
- Launching the cron.weekly forum
- Some more nuances to the systemd debacle
- Podcast: Caching using Varnish
- Giving perspective on systemd’s “usernames that start with digit get root privileges”-bug
- MariaDB MaxScale 2.1 defaulting to IPv6
- HTTP/2 push is tougher than I thought
- Samba CVE-2017-7494: Remote Code Execution in Samba 3.5.0 and upwards
- (Dutch) Tech45 podcast #341: Technologica & WannaCry ransomware
- CentOS 7.4 to ship with TLS 1.2 + ALPN
- WordPress starts Bug Bounty program on HackerOne
- Ways in which the WannaCry ransomware could have been much worse
- Chrome to restore one-click certificate viewing in browser
- Why the Next 10 Days Are Critical to the Internet’s Future
- NIST recommendation: remove periodic password change requirements
- Remote security exploit in all 2008+ Intel platforms
- How to enable TLS 1.3 on Nginx
- Are homogenic nameserver names a single point of failure?
- Top 5 security checks for secure, unhackable web applications
- cron.weekly issue #77: OpenStack, Moby, Caddy, Devuan, Linuxkit, Tmux, Jenkins & more
- Canada Just Ruled to Uphold Net Neutrality
- Interview on Laravel Spark & DNS Spy
- Follow-up: MIT no longer owns their /8
- DNS Spy has launched!
- MIT no longer owns 18.0.0.0/8
- Nginx might have 33% market share, Apache isn’t falling below 50%
- CAA checking becomes mandatory for SSL/TLS certificates
- Intent to Deprecate and Remove: Trust in existing Symantec-issued Certificates
- cron.weekly issue #72: FreeBSD, lkml, llvm, dnscontrol, buck, ReOpenLDAP, Postfix, Bash, Xargs & more
- Finding the biggest data (storage) consumers in Zabbix
- CVE-2017-2636: Linux local privilege escalation flaw in ‘n_hdlc’
- WordPress on PHP 7.1
- Drupal 7.x Services module unserialize() to Remote Code Execution
- cron.weekly issue #70: GitHub, Kompose, Usql, tmux-cssh, HAProxy, icdiff, GlusterFS & more
- Log all queries in a Laravel CLI command
- Podcast: Config Management Camp: Kubernetes, Sysdig & Mgmt
- DNS Spy enters public beta
- Mitigating PHP's long standing issue with OPCache leaking sensitive data
- Cloudbleed: Cloudflare Reverse Proxies have Dumped Uninitialized Memory
- Kernel patching with kexec: updating a CentOS 7 kernel without a full reboot
- Announcing the first SHA1 collision
- Linux kernel: CVE-2017-6074 – local privilege escalation in DCCP
- HTML & CSS Is Hard: A friendly web development tutorial
- Security is Hard: Where Do I Start?
- IETF Draft: Hypertext Transfer Protocol (HTTP) over multicast QUIC
- PHP 7.2 to get modern cryptography into its standard library
- Introducing Docker Secrets Management
- Server-side timings in the Chrome Devtools
- Review: Ubiquiti's Amplifi HD, mesh WiFi networking done right?
- cron.weekly issue #66: Git Filesystem, Security, JVM, Fission, Habitat, TLS 1.3
- Flame graphs for file systems
- Brotli compression saves 1.5 petabytes per day at Google’s Play Store
- Microsoft announces GVFS: Git Virtual File System
- Stop Disabling SELinux: A Real-World guide
- Standardising the “URL”
- Implementing “Save For Offline” with Service Workers in the Browser
- htop Explained Visually
- A change of RSS feeds
- Look before you paste from a website to terminal
- Chrome 56 Will Aggressively Throttle Background Tabs
- Return of the Unauthenticated, Unfirewalled protocols
- Create a SOCKS proxy on a Linux server with SSH to bypass content filters
- Starting with sponsorships for this blog
- Despite revoked CA’s, StartCom and WoSign continue to sell certificates
- WordPress to get secure, cryptographic updates
- Google Infrastructure Security Design Overview
- Show the environment variables of a running process in Linux
- A collection of Drupal Drush one liners and commands
- Staying Safe Online – A short guide for non-technical people
2016 80
- In 2017, I’m going to stop watching the news
- Mac OSX keeps prompting SSH key passphrase, does not use KeyChain
- In virtual environments, less (CPU’s) is more
- Apache HTTP authentication in .htaccess
- Laravel: The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths
- Run Nginx proxy in Docker container for HTTP/2
- Varnish 5.x VCL configuration templates
- Pi-Hole: A DNS-based blacklist for ads and tracking for Raspberry Pi
- Varnish Explained
- macOS: Convert PDF to PNG files for each page
- From MailChimp to Sendy: how I saved 600$ a year
- Heads up: CentOS 5 goes end-of-life in 6 months
- Varnish Cache 5.0 Released
- Podcast: Application Security, Cryptography & PHP
- TCP vulnerability in Linux kernels pre 4.7: CVE-2016-5696
- youtube-dl: download audio-only files from YouTube on Mac
- Mark a varnish backend as healthy, sick or automatic via CLI
- Docker Cheat Sheet
- zsh: slow startup for new terminals
- Podcast: Ansible config management & deploying code with James Cammarata
- Awk trick: show lines longer than X characters
- Postfix mail queue: deliver e-mail to an alternate address
- Chrome 52: return old backspace behaviour
- Google's QUIC protocol: moving the web from TCP to UDP
- Enable QUIC protocol in Google Chrome
- Varnish Agent: an HTML frontend to manage & monitor your varnish installation
- Why do we automate?
- A new website layout, focussed on speed and simplicity
- vsftpd on linux: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
- Highly Critical Remote Code Execution patch for Drupal (PSA-2016-001)
- How To Get Pokémon Go on iPhone Outside US
- The Bash For Loop, The First Step in Automation on Linux
- Podcast: curl, libcurl and the future of the web
- I started a podcast for sysadmins and developers: SysCast
- Limit the runtime of a cronjob or script
- The async Puppet pattern
- Redis: OOM command not allowed when used memory > ‘maxmemory’
- The day Google Chrome disables HTTP/2 for nearly everyone: May 31st, 2016
- Podcast: Devops, SSL & HTTP2 op HTTP Café
- Apple prepares iOS to move to IPv6-only networks
- Security week: 2x High Severity OpenSSL vulnerability & critical ImageMagick flaw
- Nginx 1.10 brings HTTP/2 support to the stable releases
- Yum Update: DB_RUNRECOVERY Fatal error, run database recovery
- Staying up-to-date on open source announcements & security issues via Twitter
- Bash on Windows: a hidden bitcoin goldmine?
- What happens when you run “rm -fr /” on a Linux machine?
- Video: HTTP/2 for PHP Developers at FOSDEM 2016
- ssh fatal: Access denied for user by PAM account configuration [preauth]
- Running Bash on Ubuntu on Windows: Demo
- Ruby gem search: show all remote versions
- nginx-1.9.13: no longer retry non-idempotent upstream requests by default
- certdiff
- Optimize the size of .PNG images automatically on your webserver with optipng
- Postfix: cannot update mailbox /var/mail for user, File too large
- Mac OSX: mtr: unable to get raw sockets
- PHP Warning: Zend OPcache can’t be temporary enabled
- Example: set an advanced parameter value in VMware via vSphere PowerCLI
- Pre-compress content for Apache to avoid compressing on every request
- The “.well-known” directory on webservers (aka: RFC 5785)
- Set Access-Control-Allow-Origin (CORS) headers in Apache vhost or htaccess
- Remote Code Execution in all git versions (client + server) < 2.7.4: CVE-2016-2324, CVE-2016‑2315
- Drupal’s itok parameters explained and a Varnish workaround for different backends
- Nginx Proxy: upstream sent too big header while reading response header from upstream
- A technical guide to SEO
- OpenSSL vulnerabilities: DROWN attack and CacheBleed
- MongoDB performance tuning with ‘dex’
- Critical glibc buffer overflow vulnerability in getaddrinfo() on Linux (CVE-2015-7547 & CVE-2015-5229)
- Slides: HTTP/2 for PHP developers
- A clean mailing list browser, focussing on readability
- Coming soon: SysCast
- Delete files older than X days in Linux
- Apache 2.4 AH01762 & AH01760: failed to initialize shm (Shared Memory Segment)
- Get the file or directory owner in Bash for use in scripts on Linux
- Sort ‘ps’ by memory usage in Linux
- Introducing cron.weekly, a new weekly newsletter for Linux sysadmins
- Review: Google Chromecast 2
- The best tech question to ask in a job interview
- apachectl on Linux: get the entire Apache vhost configuration in one output
- Grep: show lines before and after the match in Linux
- PHP-FPM: failed to ptrace(PEEKDATA) pid 123: Input/output error (5)
2015 183
- Use awk to filter log files on values ‘greater than’ or ‘less than’ a threshold in Linux
- Podcast: Delving into HTTP/2
- Linux Date Format: change the date output for scripts or commands
- Drush PEAR channel: Error getting channel info from pear.drush.org
- PHP Composer installation fails: file could not be downloaded: allow_url_fopen must be enabled
- PHP pear.php.net is using a unsupported protocol – This should never happen.
- Very simple ‘git push’ workflow to deploy code on your own server
- Identify a physical NIC from the Linux CLI with ‘ethtool’
- PHP Session Locking: How To Prevent Sessions Blocking in PHP requests
- How to set iTerm2 as the default ssh:// handler on Mac OSX
- MySQL: Convert a table from MyISAM to InnoDB or vica versa
- What is a 'unikernel'?
- Querying JSON data at the command line with ‘jq’
- Chrome drops NPN support for HTTP/2, ALPN only
- Create a password-protected ZIP file on Mac OSX
- PHP’s Memcached sessions: Failed to write session data (memcached) for Magento
- Simulate low-bandwidth conditions with Chrome’s network throttling
- Auto resize screen size for Windows 10 guest VMs in Virtualbox
- Linux increase ip_local_port_range TCP port range
- Nginx: Cannot assign requested address for upstream
- Enable Keepalive connections in Nginx Upstream proxy configurations
- How To Generate a /etc/passwd password hash via the Command Line on Linux
- Varnish VCL Syntax Highlighting in Sublime Text
- The Lie We Live: The Gigabyte That Isn’t
- Firefox Nightly starts marking login-forms in HTTP as insecure
- A Distributed Web
- 25% of all websites are about to get a REST API
- The Ping That Makes a Sound
- Boot in single user mode on CentOS 7 / RHEL 7
- The Otto Project: Meet the Successor to Vagrant
- Terminal escape sequences – the new XSS for Linux sysadmins
- Enable HTTP/2 in Nginx
- New presentation: HTTP/2: The Next Version of the Internet
- CentOS 7 NetworkManager Keeps Overwriting /etc/resolv.conf
- Pretty git log in one line
- MySQL Back-up: Take a mysqldump with each database in its own SQL File
- Install Go 1.5 On CentOS 6 and 7
- Foreman 1.9: ERROR: column hosts.last_freshcheck does not exist
- Apache 2.4: Unknown Authz provider: ip
- The Hidden “Refresh” Menu in Chrome when Developer Tools Are Opened
- Nginx SSL Certificate Errors: PEM_read_bio_X509_AUX, PEM_read_bio_X509, SSL_CTX_use_PrivateKey_file
- iPhone’s “Field Test” debug screen: Dial *3001#12345#* for the real signal strength
- Apple’s DYLD_PRINT_TO_FILE vulnerability: from zero to root in 2 seconds
- Bind/Named Crash: REQUIRE(*name == ((void *)0)) failed, CVE-2015-5477
- How To Read The SSL Certificate Info From the CLI
- Block User-Agent in htaccess for Apache Webserver
- What happens to a new URL the first 10 minutes on the internet?
- Enable or Disable Service At Boot on CentOS 7
- Start or Stop a Service on CentOS 7
- Effectively Using and Detecting The Slowloris HTTP DoS Tool
- How To Create A Self-Signed SSL Certificate With OpenSSL
- How To Use A Jumphost in your SSH Client Configurations
- Monitor All HTTP Requests (like TCPdump) On a Linux Server with httpry
- How To Clear PHP’s Opcache
- supervisor job: spawnerr: can’t find command ‘something’
- Logrotate On RHEL/CentOS 7 Complains About Insecure Permissions on Parent Directory, World Writable
- Rsyslog Configuration with Dynamic Log File Destination Based On Program Name
- How To Take a Screenshot on Your Apple Watch
- Apache 2.4: ProxyPass (For PHP) Taking Precedence Over Files/FilesMatch In Htaccess
- Increase/Expand an XFS Filesystem in RHEL 7 / CentOS 7
- How To Add Secondary IP / Alias On Network Interface in RHEL / CentOS 7
- How To Increase Amount of Disk inodes in Linux
- Why We're Still Seeing PHP 5.3 In The Wild (Or: PHP Versions, A History)
- This American Life: The DevOps Episode
- Critical Cross-Site Scripting Vulnerability in WordPress < 4.2.2
- Chrome 44 Sending HTTPs Header By Mistake, Breaking (Some) Web Applications
- The Worst Possible DevOps Advice
- My Apple Watch Review
- Enable click-to-play for Flash & Java in Chrome, Firefox & Safari
- Apple Favours IPv6, Gives IPv4 a 25ms Penalty
- OpenSSL CVE-2015-1793: Man-in-the-Middle Attack
- Rethinking Security Advisory Severities
- Why Internet Explorer Won't Allow Cookies On (sub)domains With Underscores
- Rewriting software from scratch, a lesson learned from Mac OSX 10.10.4’s discoveryd
- The Broken State of Trust In Root Certificates
- RFC 7568: SSL 3.0 Is Now Officially Deprecated
- How SSH In Windows Server Completely Changes The Game
- Increasing Nginx Performance With Thread Pooling
- Kickstarter Now Available In Belgium
- uBlock Origin Now Blocking Access To SourceForge
- HHVM Performance Lockdown: Is HHVM Reaching Its Limit?
- iOS9 Major Feature: Fixing The Shift Key
- Custom Fonts On Kindle Paperwhite First Generation
- rtop: Remote System Monitoring Via SSH
- Bitrot
- Stunt Hacking: The Sad State of Our Security Industry
- The Scary Revelation: The Advertising Options On Facebook & Twitter
- Understanding the /bin, /sbin, /usr/bin and /usr/sbin Split
- It’s Cheaper To Upgrade An Illegal Windows Version Than Buy A New One
- Hypertext Transfer Protocol Version 2 (HTTP/2): RFC7540
- Linux futex_wait bug
- Microsoft Remotely Locking Xbox One’s
- Who Came First: The Source Code Or The Compiler?
- Scan Your WordPress For Security Vulnerabilities With WPScan
- Under The Hood: Facebook’s Cold Storage System
- The (Lack Of?) Durability in SSDs
- In Defence Of WordPress
- uBlock Origin
- Security In Medical Equipment
- French Law Forces Backdoors On ISPs
- What's The Value Of Owning A Browser?
- 248 days
- Using Webserver Access Logs As A Database Storage System
- Increase open-files-limit in MariaDB on CentOS 7 with systemd
- Varnish VCL: Case Insensitive Regex
- Drupal EngineHack Detection Website
- Blogging Tip: Send Yourself Blogpost Anniversary Reminders
- Using Zabbix To Notify If Your Site/Domain Makes It To The HackerNews Frontpage
- Using JavaScript To Read L3 CPU Cache
- Magento eCommerce PHP Remote Code Execution
- Nginx Open Sources TCP Load Balancing
- Double-clicking On The Web
- Open Source Puppet 4 Released
- HTTP/1 vs HTTP/2 Page Loading
- Varnish Cache 3.0 Is End Of Life
- Nginx Getting JavaScript Scripting Engine
- Nginx HTTP/2 Support Coming Late 2015
- Taking Netflix's Vector (Performance Monitoring Tool) For A Spin
- Linux Kernel 4.0
- When The New TLD .SUCKS
- Microsoft’s Nano Server & Hyper-V Containers
- When Mailing Lists Turn Into Online Forums
- Chrome Version 42 Starts Marking SHA-1 SSL Certificates As Insecure
- HHVM’s Threading Difference – Not The Same as PHP-FPM
- The Irony of Random Passwords For Each Service
- Mozilla Blocking CCNIC’s CA Too
- Hosting Superheroes
- Google’s War on China
- µPuppet & Ensible
- Obsessive Efficiency Disorder
- Belgium Leader in IPv6 Adoption
- When Private Browsing Isn’t Private On iOS: HTML5 And AirPlay
- Silly Little IP Tricks
- Life Without Ops
- OpenSSL CVE-2015-0291 and CVE-2015-0286
- Forthcoming OpenSSL releases
- Debug Varnish 4.x on systemd That Fails to Start
- Running Varnish 4.x on systemd
- Virtual Reality As The Next Step After Reponsive Webdesign?
- Drupal engine_ssid_ And engine_ssl_ cookies: You've Been Hacked
- Bundling Software Installs With Adware
- Up And Close With PHP 7’s New RFCs
- Firefox 36 Fully Supports HTTP/2 Standard
- Tearing Down Lenovo’s Superfish Statement
- HTTP/2 Specification Is Final
- Giving HTTPie a Chance
- Async MySQL Calls in HHVM 3.6
- Three Tiers of Package Managers
- Service Side Push in HTTP/2 With nghttp2
- Puppet: clearing all or a particular node from PuppetDB (exported resources)
- Check if Value is Present in Array in Puppet
- FCC: Net Neutrality in the United States
- Fosdem 2015 Notes
- Deep Insights: The Kernel Boot Process
- Docker Storage Performance Tests
- Live Migrations for Containers with CRIU
- What's New in systemd, 2015 Edition
- Ntimed: an NTPD replacement
- Running a Tor relay: lessons learned
- Quick tests for GHOST gethostbyname () vulnerability (CVE-2015-0235)
- My Fosdem 2015 Schedule
- GHOST: critical glibc update (CVE-2015-0235) in gethostbyname() calls
- Modeling Package Manager Dependencies In Config Management
- The PHP Paradox
- PHP Benelux 2015 Unconference Schedule Saturday
- PHP Benelux 2015: Day One
- Meet Microsoft’s Project Spartan, The New IE6
- Security Panel Lands In Firefox 37
- Nginx sets HTTP 200 OK on PHP-FPM parse errors
- A good week for this blog!
- PHP 6: The Missing Version Number
- The Frontpage of Hacker News: Stats, Graphs & Some Analysis
- Learning systemd
- PHP7 To Remove Deprecated Functionality
- Does SPDY (or HTTP/2) Actually Help?
- Enable HTTP/2 support in Chrome
- Audi’s Cruise Control “>=” Bug
- View the HTTP/SPDY/HTTP2 Protocol in Google Chrome
- Recent OpenSSL Security Advisories Are a Good Thing
- Flush all the content from Memcached via the CLI
- Architecting Websites For The HTTP/2 Era
- Making Standard Resources Overwritable In Your Own Puppet Modules
- PHP’s CVE vulnerabilities are irrelevant
2014 85
- The 2014 Blog in Numbers
- The (unexpected?) workload associated with migrating to HHVM
- The Infinite File Downloader
- Compiling from source faster: multi-threading in `make`
- Undoing Years of Optimisations With HTTP/2
- Testing Puppet Resources at the CLI
- MongoDB startup: /usr/bin/dirname: extra operand ‘2>&1.pid’
- The Surprising Mixed Content Handling on SSL/HTTPS Enabled Websites
- Replacing Software Stacks Is Never The Solution
- Setting HTTPS $_SERVER variables in PHP-FPM with Nginx
- List The Files In A Yum/RPM Package
- Explicitly Approving (Whitelisting) Cookies in Varnish With Libvmod-Cookie
- PHP’s OPcache and Symlink-based Deploys
- Nginx & SPDY error: net::ERR_SPDY_PROTOCOL_ERROR
- Azure Cloud Outage Root Cause Analysis
- Presentation: Managing Zabbix Hosts with Puppet’s Config Management
- Enable SPDY in Nginx on CentOS 6
- Force Redirect From HTTP to HTTPs On A Custom Port in Nginx
- Varnish FetchError http first read error: -1 11 (Resource temporarily unavailable)
- Combine Apache’s HTTP authentication with X-Forwarded-For IP whitelisting in Varnish
- Reload Varnish VCL without losing cache data
- Varnish tip: see which cookies are being stripped in your VCL
- Chrome To Explicitly Mark HTTP Connections As Non-Secure
- Generate PHP core dumps on segfaults in PHP-FPM
- Varnish FetchError: straight insufficient bytes
- The Real Cost of the “S” in HTTPS
- Apache’s mod_fastcgi and mod_deflate troubles
- PHP 5.5 Opcache Settings
- Asynchronous PHP
- A plea for backwards compatibility breaks in PHP7
- Automating the Unknown
- Puppet: could not prefetch yumrepo provider ‘inifile’: Section is already defined, cannot redefine
- On Timing Attacks in PHP
- The Next-Generation PHP Server Stack For 2015
- Devuan, the Debian Fork
- Search yum for the content of a package
- Rebuilding the yum RPM database
- Drupal 7.33 performance penalty
- Test Gzip Compression of Site via Curl
- StartDBSyncers in Zabbix
- Varnish FetchError: Gunzip+ESI Failed at the very end
- Remote Code Execution via ‘less’ on Linux Boxes
- Remove Orphaned Data From Zabbix’s MySQL Tables
- Debugging Performance Problems With Zabbix Internal Items
- Enable MySQL’s slow query log without a restart
- CPU Flame Graphs
- Presentation: Mobile Zabbix, Why Mobile Matters (MoZBX)
- Presentation: DNSSEC, The Good, The Bad & The Secure
- Yet Another Microsoft Windows CVE: Local Privilege Escalation MS14-068
- The PHP circle: from Apache to Nginx and back
- Follow-up: 3 years of automation with Puppet
- A Certificate Authority to Encrypt the Entire Web
- Make HTTPerf use a proxy for connections
- 3 Years of Puppet Config Management: lessons learned
- Remove a single iptables rule
- The Chocolatey Kickstarter: Making Windows More Like Linux
- REST API best practices and versioning
- Running Kali Linux as a Vagrant Box (virtual machine)
- Clear APC cache in PHP
- Microsofts Open Source Strategy
- Microsoft SSL/TLS vulnerability MS14-066
- Slow login/DNS via Active Directory on OSX Mavericks and Yosemite (.local domains)
- Benchmarking the performance of ‘Wordfence’, a WordPress plugin
- A collection of PHP exploit scripts
- Firefox Developer Edition released
- Behind the scenes at World of Warcraft: the datacenter tech
- Patch your webservers for the SSLv3 POODLE vulnerability (CVE-2014-3566)
- You Need Passion
- DNSSEC: NSEC3 iterations too big for weakest DNSKEY strength
- Compress a PDF file on Linux via the CLI
- Sysdig CLI examples
- HHVM versus PHP-FPM 5.4 vs PHP-FPM 5.5: performance comparison
- HTTPd: Cannot load mod_status.so into server: undefined symbol: ap_copy_scoreboard_worker
- PHP-FPM environment variables are limited to 1024 chars
- CVE-2014-0185: PHP-FPM sockets unavailable after updating PHP
- OpenSSL: validate that certificate matches / signs the private key
- Whois at the CLI: get all IP ranges from an AS number
- Debugging HTTP requests to PHP via the CLI
- Follow-up: use ondemand PHP-FPM masters using systemd
- Scan your network for Heartbleed vulnerabilities with Nmap
- Varnish 4.0.0 released together with configuration templates
- A better way to run PHP-FPM
- Patch against the heartbleed OpenSSL bug (CVE-2014-0160)
- Presentation: Code Obfuscation, PHP shells & more: what hackers do once they get passed your code
- What if you are the network admin tasked with blocking IPs in Turkey?
2013 10
- Puppet performance troubleshooting: using the built-in profiler in standalone puppet apply
- Puppet: Error 400 on SERVER ArgumentError: malformed format string – %S at …
- Taking a MySQL-dump with a wildcard on table names
- Puppet: Error: Could not retrieve catalog from remote server: Error 400 on SERVER: stack level too deep on node something.pp
- Read all keys & values from a Memcached instance
- Setting custom puppet facts from within your Vagrantfile
- Nginx: nginx: [warn] load balancing method redefined
- CentOS / RHEL: configure: error: C++ compiler g++ does not work or no compiler found
- RVM: Installing Ruby 1.8.7 on Mac OSX 10.8
- Gearman Queue error: mysql_stmt_execute failed: Unknown prepared statement handler (1)
2012 64
- Stop. Caching. Static. Files. In. Varnish.
- Public jPackage Repository Mirror
- Using telnet from the VMware 5.x ESXi shell
- Now stop using dsbl.org blacklisting: it’s offline
- e2fsck: Error allocating directory block array: Memory allocation failed
- Facter/Puppet: Could not retrieve selinux: Invalid argument – /proc/self/attr/current
- Prevent cronjobs from overlapping in Linux
- Reinstall the Linux Kernel on CentOS or RHEL
- My thoughts on mobile webdesign
- A fix for the Java Leap Second bug
- CentOS 6: /usr/sbin/qpidd eating up all CPU (at 100%)
- Running php-cgi scripts via the CLI as a webserver would (by faking them)
- How to install and use the EPEL repository for CentOS 5 and CentOS 6
- Puppet + Razor: pxe boot failing to load with ‘Operating system not found’
- Install VMware Tools via the Yum Package Manager on RHEL and CentOS
- MySQL: SHOW FUNCTION STATUS WHERE Db = ‘name’: Cannot load from mysql.proc. The table is probably corrupted
- Dependency errors for git installs on CentOS with EPEL repo
- The insanity of URL shorteners and tracking
- Apache + PHP on Ubuntu: apache2filter does not support gzip
- How to change the reserved blocks on EXT3 or EXT4 filesystem in Linux
- Dependency fail on php-api when installing php-mcrypt or php-mhash from EPEL on CentOS 6
- Loading the 3ware/LSI 9650SE drivers into VMware ESXi
- Re-enabling IPv6 support on CentOS kernels after update
- Autoloading MIB files in client SNMP configuration on Linux
- Upgrade your Ubuntu Desktop 10.04 LTS to 12.04 LTS
- MySQL error: table is marked as crashed and should be repaired
- Zabbix: debugging ‘Lock wait timeout exceeded; try restarting transaction’ on the ‘ids’ table
- Importing the Puppet Learning VM into VirtualBox: unknown resource type in hardware item
- Nginx and php-fpm: upstream timed out / failed (110: Connection timed out or reset by peer) while reading
- Bad ORM is infinitely worse than bad SQL
- PHP execution via passthru(), exec(), shell_exec(), …: sh: /php: No such file or directory
- Rescan disk devices on a Linux VMware virtual machine without a reboot
- What are the ‘encrypted_search_terms’ hits on your website/wordpress blog?
- yum update on OpenVZ container: error: cannot open Packages database in /%{_dbpath}
- OpenVZ: vzctl enter gives “Unable to open pty: No such file or directory”
- Enable IPv6 connectivity for Nginx
- Remove a single mail from the postfix queue on Linux
- Xapian Bindings 1.2.7/8 in PHP: undefined symbol: zend_error_noreturn in Unknown on line
- Using ssh-copy-id on an alternative SSH destination port
- SSH logins or rsync’s without using a password prompt
- Checking the version of VMware Tools inside a Linux Virtual Machine on ESX(i)
- Installing VMware Tools on a Debian 6 Linux Virtual Machine
- Incoming bandwidth limitation on OpenVZ with CentOS 6.x running on VMware ESX(i)
- Nginx: password protect a directory
- On removing users with %postun in RPM SPEC files
- Removing a package without its dependencies in CentOS or RHEL
- Changing interface back to eth0 from eth1 in Linux (CentOS/RHEL)
- The hidden images within PHP
- Setting up a catch-all e-mail account on Linux using Postfix
- Enable syntax highlighting in VIM for PHP-FPM configurations
- Letting memcached only listen on localhost on CentOS/RHEL
- PHP: php_value vs php_admin_value and the use of php_flag explained
- A vim configuration for the PHP developer
- Hide PHP errors and log them to a file or syslog (php-fpm or mod_php)
- The bugged sysinfo() call in OpenVZ hosts running Kernel 2.6.32+
- Blocking Googlebot/MSNbot/Bingbot in Apache configuration from accessing your server/site
- Avoid ‘AllowOverride All’ in Apache to limit disk I/O access
- Add ‘Options FollowSymLinks’ and avoid ‘Options SymLinksIfOwnerMatch’ in Apache to save disk I/O
- RHEL 6/ CentOS 6: Slow SSH logins with DNS timeouts
- The infamous /w00tw00t.at.ISC.SANS.DFind GET requests in your access logs
- WordPress plugin: undo the default WordPress formatting (single/double quotes/dashes)
- Linux application/script debugging with 'strace'
- Plesk: Postfix & authenticated SMTP on an alternative port – login failed, generic failure
- WordPress 3.3: Stop replacing double dashes and single quotes
2011 71
- Ubuntu 9.10 with VMware Convertor: GrubInstaller failed – /vmware-updateGrub.sh: 38: grub: not found
- 2011: An overview of projects & popular blogposts
- Plesk & DrWeb: “read error” on e-mails being scanned
- Nginx Access Log: log the real user’s IP instead of the proxy
- Apache Access Log: don’t log static content
- Enabling and disabling PHP’s APC cache on a per Virtual Host level in Apache
- Porting standard Apache’s mod_rewrite rules to Nginx
- Plesk: passing the authorization headers in PHP when running with FastCGI/mod_fcgid
- Zabbix: monitor a TCP port with the Zabbix Agent
- Ground rules for when compiling applications from source
- Varnish running in foreground but fails to run as service/daemon
- Varnish: filter by Source IP using Varnishlog (in Varnish 2.x, 3.x and 4.x)
- Varnish: varnishhist/varnishtop: error while loading shared libraries: libvarnishapi.so.1: cannot open shared object file
- RHEL6 and CentOS 6: missing libmcrypt and libmhash in default repository
- Nginx returning blank white page on PHP parsed with FastCGI or PHP-FPM
- Plesk: listing all the mailbox account info (username/password)
- Plesk: listing all the database account info (dbname/username/password)
- Plesk: show all FTP accounts and passwords
- MySQL purge the binary logs from replication (mysql-bin.xxxx files)
- Fixing MySQL master-slave replication upon query error
- VMWare ESXi 4.1 Update 2: warning: syslog not configured
- Changing the time and timezone settings on CentOS or RHEL
- Akismet letting you down? Try a simple math question.
- Zabbix: zabbix_agentd: Can’t recreate Zabbix semaphores for IPC key 0x123456 Semaphore ID 123456. Operation not permitted.
- Zabbix: Can’t recreate shared memory for collector. [too many attempts]
- Post-it wars at the office: Mario & Princess Peach
- This is what Open Source is about: Mobile Zabbix used on Hospital Ship
- 4 days without an iPhone
- Plesk: Unable to validate password policy: (1753) There are no more endpoints available from the endpoint mapper.
- Pukkelpop: overzicht van de chaos
- Find in Bash scripting: paths must precede expression
- Postfix in Plesk: Out: 451 4.3.0 Error: queue file write error
- Latest tool: QuickDiff – visually showing the differences between text
- MySQL: table is read-only
- Windows Virtuozzo: unable to copy registry key on container start
- Installing the PECL/PEAR mailparse module for PHP on CentOS
- Finished a draft Varnish 3.0 VCL for Fork CMS
- Checking for MySQL optimizations via scripts
- Add an existing user to an existing group in Linux
- Useful Varnish 3.0 Commands: one-liners with varnishtop and varnishlog
- Posting my Varnish 3.0 configs to Github
- VMware ESX(i) & Windows Server 2008: Updated driver for sluggish console access
- Plesk Password retrieval via the command line (Linux / Windows)
- Fixing Listen IPs In IIS (The network location cannot be reached)
- The Kindle (e-Reader): your best travel companion
- Getting verbose debug info on nss_ldap in CentOS (LDAP)
- Guide: running NginX 1.0 with PHP-FPM 5.3 on CentOS 5.x
- Amazon EC² downtime: a collection of horror stories
- Using Perl regex for faster grep
- WikiLeaks Mirror Hosting Page now offline
- Linux: preserving color output on match when piping grep to more/less
- How is facebook tracking our (outgoing) URLs?
- Rebuilding your RPM package database: fixing RPM/yum problems
- My “Real Security in a Virtual Environment” Presentation
- Recovering from a DRBD split-brain scenario in heartbeat
- The “SHOW PROCESSLIST;” equivalent in Microsoft SQL-Server
- VMWare Converter: vmodl.MethodFault (CloneVolume Error)
- Firefox extension: the 'Shortlink Revealer' (bit.ly exposer – Proof of Concept)
- Getting started with Git: linkpost
- CentOS, Git & http-push unavailable (git not compiled with USE_CURL_MULTI)
- Profiling: Learning from Engadget's infrastructure on traffic spike handling (ie: iPad2 launch)
- CentOS, Apache & mod_fcgid: IPCCommTimeout not working as expected
- There’s more to the php.net site than meets the eye
- Building your own kernel based on CentOS, 'switchroot: mount failed. Kernel Panic.'
- Resizing a DRBD Resource Built On A LVM
- Compiling PHP on a 64bit CentOS installation
- Silly Yum Tricks: whatprovides, groups & repolist
- CentOS, Heartbeat, DRBD & NFS: umount failed, device is busy
- Plesk throws “A mandatory extension policy in the request is not accepted by the server for this resource.”
- Running phpMyAdmin with APC cache enabled, fatal PHP errors
- Net Neutrality: The real internet backbone
2010 47
- 2010 in numbers: statistics, statistics & statistics
- MySQL – myisamchk: error: myisam_sort_buffer_size is too small
- Compile: /usr/bin/ld: cannot find -lltdl, collect2: ld returned 1 exit status
- WikiLeaks’ mirrors: where are they hosted?
- MySQL: “Table ‘mysql.plugin’ doesn’t exist” after MySQL Upgrade
- Tracking root cause of Apache spawned processes: shell scripts / daemons
- Df command in Linux not updating actual diskspace, wrong data
- Introducing the ‘Decoder, Encoder & Obfuscator’
- vCenter Converter: Shrink Disk Size of EXT4 System Not Supported
- Plesk 10 Update: Update/Autoinstaller Port Change & Plesk Panel Port Redirection on Virtuozzo
- Introducing the Extended Mail Header Parser
- A custom init.d start-up script for HAProxy: start, stop, restart, reload, checkconfig
- Enabling json_encode And json_decode in PHP < 5.2.0 (JSON)
- Advanced Monitoring Of HAProxy With Zabbix Agent
- Let Plesk Create Zend Directories Whenever A Physical Hosting (domain) Is Added
- Maximizing PHP's Mail Throughput: To Fork Or Not To Fork?
- MoZBX: The Mobile Zabbix Client
- My BarCamp Antwerp Presentation: “High Availability in IT = AAARGH”
- Compile HAProxy With TPROXY Support
- Compile a (CentOS) Kernel And IPTables With TPROXY Support
- Increase A VMware Disk Size (VMDK) Formatted As Linux LVM without rebooting
- Exclude Local Networks Via Juniper NetScreen-Remote VPN
- Compiling, Running and Cursing on Chromium OS – Getting It To Work
- WordPress v3.1, v3.2: Don’t Replace (Double & Single) Dashes & (Double & Single) Quotes!
- Chromium OS: error: RPC failed; result=22, HTTP code = 502
- VMware: internal error – vmodl.fault.HostCommunication
- Facebook’s Techtalks Worth Watching
- MySQL Upgrade To 5.1: Database Name Prefix #mysql50#
- Deploying Undersea Cables: Laying The Internet’s Backbone
- System Administrator Appreciation Day 2010 @ Nucleus
- phpsh: Running An Interactive PHP Shell (Python)
- Implementing & Maintaining DNSSEC On Bind9 Nameservers
- How, What and Why – On Scalability, Availability & Manageability (Facebook)
- Selling A Classic Mini British Open (Special Edition)
- TCP Traffic Redirection on Windows
- How IPv6 Headers Are Formed, Compared To IPv4
- IPv6 And Security: What You Probably Don’t Know
- Stateless Autoconfiguration To Replace DHCP For Some Systems
- Don't Upgrade OpenSSL If You're Using Plesk (= Broken Controlpanel)
- Neighbor Discovery (ND) To Replace ARP In IPv6
- IPv6 Address Space & Reservations
- Address Types: Unicast, Multicast & Anycast
- Address Notations In IPv6
- Recycling older IPv6-related posts
- “Show Full Processlist;” Equivalent Of MySQL For PostgreSQL
- Top 25 Most Dangerous Programming Errors
- BackTrack 4 Final Release
2009 36
- NetBIOS exploiting
- MetaData: I’ll Bet You Thought That Was Private?
- Using rsync over cp: don’t we just love progressbars?
- Define Happiness: The Act Of Making Someone Else Happy
- System Administrator Appreciation Day @ Nucleus = Win
- Why We Deserve Our System Administration Appreciation Day
- How To Change A Server’s Main IP Address (including DNS records) In Plesk
- “See Pricing”, Your Marketing Tip Of The Week!
- “Schools Kill Creativity”, by Ken Robinson
- Get It While It’s Hot: FireFox 3.5
- Slowloris HTTP DoS: Be Afraid, Be Very Afraid
- “Are we in control of our own decisions?”
- Running IE6, IE7, IE8, FF 2, FF 3, Chrome, Opera & Safari
- Windows 7 Release Candidate Available For Download
- Webcast: Database Sharding at Netlog with MySQL and PHP
- Creating Benjamin Button’s Face Through CGI
- What The Pirate Bay’s Guilty Verdict Really Means
- Case Insensitive Table And Column Names In MySQL
- Compiling PHP With “–with-jpeg-dir” Not Working?
- The Importance Of The URL In SEO
- Starting The IP:v6::guide – IPv6 Knowledge
- On The Subject Of Naming Variables
- Connect SQL Server Management Studio Express To Alternate TCP Port
- ‘php_admin_value’ Bug When Overwriting PHP Settings
- Reverse Shell Implementation in PHP5
- PowerShell: Windows Scripting Made Fun Again!
- FTP & SELinux: 500 OOPS: cannot change directory
- Update A Specific Package With apt-get
- Input Validation: Using filter_var() Over Regular Expressions
- There’s No Such Thing As Unlimited
- PEAR:: Classes Worthy Of Attention
- Install New PEAR Packages From The Linux CLI
- Method Chaining In PHP – Fluent Interface
- Error Handling In PHP’s PDO
- Exception Handling In PHP5 – Good Cop, Bad Cop
- Using Plesk’s SMTP Server: DNS Blacklist Prevents Sending
2008 117
- Save Bandwidth – Enable GZip Compression In PHP
- Get Rid Of The ‘WWW’ Prefix – It’s Long Overdue
- Permanent Failure – Probe failed: Illegal To: address (invalid domain name)
- Google’s Chrome Won’t Hurt IE – Only FireFox
- Plesk & MailEnable – missing measp.dll component: Error ‘ASP 0177 : 800401f3’
- Plesk: Unable to create system user: Empty error message from utility.
- Named/Bind: Could not listen on UDP socket : permission denied
- Code Quality & Code Requirements
- URL file-access is disabled in the server configuration
- System Calls In Apache (Linux) vs IIS (Windows)
- Plesk Site Preview Not Working
- How Do I Reset My Admin Password Of Plesk (Linux CLI)
- Securing The Internet – Google’s Obfuscated TCP
- Limiting Resources: nice & ionice
- You No Take Brains!
- MySQL: #1054 – Unknown column ‘table.columnname’ in ‘on clause’ Even Though Column Name Exists
- How To Mount A USB Hard Disk Through Command Line (Linux)
- Widgets, Gadgets, … You Can Keep’m!
- Domains In Plesk Showing No Disk Usage Or Bandwidth
- How To Reset A (Administrator) Password On A Windows Server 2003
- Web Seminars – The Good And The Bad
- Corrupted dBase Bug (DBF) When Using DATE-Field Type
- Reading A .FLV File From Flash – Not Working Because Of Missing MIME Type
- Importance Of Hosting & Location In SEO
- Fennec Alpha – Just Like The Other Fox
- Australia To Become The New China – Internet Censorship
- Hardware Testing: Randomly Play “Fur Elise”
- Making The Switch To Linux – Keep In Mind … (10 Ubuntu Tips)
- Very Handy Linux CLI Cheat Sheet
- We Don’t Have To Talk In Riddles
- Explaining Port Forwarding & Routing To A Novice
- Plesk Issues After Upgrade (Horde Webmail Showing Default Plesk Page)
- How The Internet Works – Peering & Transit
- Using Google As Your Dictionary?
- How To Find Out Your Current Linux Distribution
- How To Allow Empty Passwords In Remote Desktop (RDP – WinXP/2000/2003)
- How To Bypass Windows 98’s Security System
- Restyling – For Better Or For Worse
- Prevent Thumbs.db Files From Being Created And Stored
- Comics Related To IT/Programming
- When A RegEx Goes Bad – For Cisco
- Little Coding Habits
- ISP: It’s Impossible For Us to Stop Illegal P2P
- Top Tools For Penetration Testing (Security Analysis/Hacking)
- “The service could not bind instance 1. The data is the error code.”
- Install GD Library For PHP5 On CentOS
- Demystifying the “duplicate content penalty” – SEO Update By Google
- Enable DNS Blackhole Lists & SPF Checks In Plesk’s Spamassassin
- How To Compile And Install PHP Extensions From Source
- Memory Leak In Google Analytics – Blame Canada?
- Projects Page (Finally) Updated
- Simple Apache Security Trick – ServerTokens & ServerSignature
- A Recipe For Disaster: XSS, Google-Analytics.com And DNS Cache Poisoning
- Google’s Chrome EULA Altered – Less Evilness
- Easiest Way To Create A MySQL Database Copy
- Google Chrome And Its End-User License Agreement (EULA)
- Making Full Use Of 'Dig' In Linux
- Microsoft .NET Framework 3.0 Update (kb928416) On x64 Server
- There Are HTTP Headers, And Then There Are HTTP Headers
- How To View E-Mail Headers In Outlook 2007
- Why Is Mail Being Blocked By A Spamfilter?
- Multiple Headers With Same Name Causing Errors In IIS
- “_gat is not defined” Google Analytics Error
- Enable showing errors in PHP5
- The Right SQL User, For The Right Job
- New Boyscouts Website Launched
- All Your Base Are Belong To Us
- Setting Maximum Width For Image In IE6, IE7 & Firefox
- How To Enable PEAR Packages In Plesk
- Why Programming Is Less Rewarding Than Designing
- Using Conditional CSS Stylesheets For Easier Maintenance
- 404 Week At Google’s Blog, Time To Fix Your Headers!
- How To Identify Hidden Processes In Windows (Rootkits)
- Is Your GMail Notifier Suddenly Broken?
- Common Security Flaws In PHP Applications
- Using GoogleBot’s User Agent In Your Advantage
- How To Identify The Bad Processes On A Hacked Linux Box
- Remote Code Execution Through Intel CPU Bugs
- DNS Poisoning Attack, How Safe Am I?
- Using Proper Header Redirects In PHP
- Converting Windows 2008 Server To A Workstation
- Plesk Creation Of Mailbox Failed Because Alias Once Existed
- Generic Syntax Highlighting For PHP
- NsLookup Is More Powerful Than You Think
- Controlling the San Fransisco Computer Network – The Powers Of A SysAdmin
- How We Save The Day, But Receive No Glory For It
- Installing SQL 2000 and SQL 2005 on the same server
- Domain theft at a new height
- Stress test your windows server
- The iPhone in Belgium and the debate of tying sales
- Keeping control of airline passengers
- How not to sue a BitTorrent tracker (TPB)
- IPv4 and IPv6 network charts
- Why to avoid URLS ending in .0 for Google search-results
- Changing network settings through the windows command line
- Update: seo analyzer v0.3
- Ajax’s death struggle?
- Some must-have cheat papers for designers & programmers
- “Net neutrality” at a glance
- Beta-launch: seo analyzer V0.2
- Learn from the best at Google Code University
- Overview of Windows User Accounts (including for IIS)
- A technical look at Myspace’s growth
- Female sourcecode better than male?
- Grandfather builds webbrowser for autistic boy
- Some terrible (truely terrible) captcha’s
- Repairing qmail mailboxes (with Plesk 8.x)
- Germany to invade your home (computer)
- It doesn’t take words to be cruel
- Screen? A must for SSH
- Manage the Qmail mail queue
- Creating excel files through PHP
- ThePlanet datacenter nog steeds offline
- Pimp my S710
- Google opens up
- Yarr
- And all the UPS’ in the world …