Rob Allen
An article by Rob Allen
PHPDev tools / editors / IDEsWeb developmentDevOps / SRE / infrastructureEngineering blogs
- Posts
- 785 from 23 Jan 2005 to 26 Oct 2026
- Posting
- monthly (11 in the last year)
- Kind
- personal blog
- Feed
- https://akrabat.com/feed/
2026 9
2025 43
- 2025 in pictures
- IPTC export changed in Photos for macOS 26 Tahoe
- Appending text to Obsidan via Shortcuts
- mac-volume: A CLI to control device volume
- Opening Slack Jira Cloud links in the right browser
- Fixing PostgreSQL collation version mismatch
- Jumping to the end of bash's history
- Converting JWKS JSON to PEM using Python
- Stop in-place editing of bash history items
- Extending an OpenAPI Component Schema
- Saving the current URL to a Note
- Accessing Longplay info for SwiftBar
- Responding to StreamDeck buttons with Keyboard Maestro
- Step-debugging Docker Compose NestJS services
- QuickSS: Screenshot the active window on Mac
- Notarising a macOS standalone binary
- Using the 1Password CLI in a script
- Accessing my printer's web app remotely via Tailscale
- FIxing Linux Tailscale exit node routing
- Renaming files with Hazel
- Updating SMTP relay in postfix
- Global word count on Mac using Shortcuts
- Moving a Perforce P4 P4ROOT to a different drive
- Updated rst2pdf website
- Using OneOf for a property in an OpenAPI spec
- Additional parameters on a PHP interface method
- Some thoughts on LLM usage in my work
- Previewing OpenAPI specs using redocly's Docker container
- Using the Stripe CLI with with Docker Compose
- No SSL padlock on Safari on macOS 18.4
- Generating scripts with LLMs
- Backing up Signal messages on Mac
- Getting the screen's size in a macOS screensaver
- Privileges app: sudo for macOS
- Cloudflare SSL/TLS setting for an encrypted connection to upstream
- Converting a PHPUnit TestListener to an Event Subscriber
- OAuth scopes vs user roles
- Writing out the page contents in Playwright
- Activating rather than relaunching a menu bar app on macOS
- Using uv as your shebang line
- Always expand the Fantastical editor popover
- Global git ignore patterns
- Enabling a focus mode when an app is running on Mac
2024 53
- 2024 in pictures
- Developing rst2pdf with uv
- Sunrise and sunset times on the Mac command line
- Internet Speedtest from the command line
- Running DisplayLink Manager on Mac without the purple icon
- Testing internal network speed with iperf3
- Prepending to the terminal's prompt
- Parsing command line arguments in Python
- Defining Python dependencies at the top of the file
- Selecting the correct iPhone to mirror in macOS Sequoia
- Installing PyMuPDF on a prerelease Python
- Scripting News is 30 years old
- Running Spectral lint in Gitlab CI
- Docker Compose DNS entries
- Increase truncated body in a Guzzle exception
- Fixing PhpStorm cannot find a local copy of Standard Input Code
- Installing the SQL Server PHP extension in Docker on Mac
- Prevent the Docker container from taking 10 seconds to stop
- File uploads with Slim 4, tested with curl
- UUID v7
- Keyword substitutions make life easier
- Damaged application error when developing for Mac
- Missing trailing new line when using cat in a bash script
- Use xxd to convert to hex
- Changing port maps in Docker Compose
- A short primer on SPF, DKIM and DMARC
- Indenting output in a shell script with pr
- Using Monolog's TestHandler
- Getting status code and body from curl in a bash script
- Release process checklist
- Renaming PDF files based on their content
- Small scripts for repetitive tasks
- Exercise
- macOS tips and tricks
- Command line access to GitLab & GitHub
- Stash unstaged changes in git
- Command line access to the Mac Keychain with keyring
- Matt Gemmell's short stories
- Check licenses of composer dependencies
- Reinstall pipx apps after Homebrew Python upgrade
- Creating JWKS.json file in PHP
- A quick guide to JWTs in PHP
- Sleeping an external hard drive
- Setting up a new hard drive in Linux
- Using GitHub Actions to add Go binaries to a Release
- A few thoughts on conferences
- Building Go binaries for different platforms
- Setting the version of a Go application when building
- Backing up to an external HDD using rsync
- Uploading to Flickr directly from Mac Finder
- Darkening an image with ImageMagick
- Updating Flickr metadata using Python
- Creating montages with ImageMagick
2023 9
- 2023 in pictures
- index.md vs _index.md in Hugo
- Set a file's created date from YAML front matter in macOS
- Getting a Bundle ID using an Alfred File Action
- Use ExifTool to remove private data in images
- Counting the rows in a SQL Group By query
- Keep your iPhone passcode secret
- PHPUK 2023
- Successful SOC 2 Type II compliance
2022 6
2021 11
- 2021 in Pictures
- Add TouchID authentication to sudo
- Quick script to (re)create my python virtualenv
- Changelog generator for GitHub milestones
- Setting HTTP status code based on Exception in Slim 4
- A few Git tips
- OpenConnect on Mac
- Dependency injection in Serverless PHP with Bref
- MailTrackerBlocker
- Keyboard control of Big Sur notification alerts
- Free ticket to The Online PHP Conference!
2020 18
- 2020 in Pictures
- Add Apple Watch authentication to sudo
- Using jenv to select Java version on macOS
- Installing PHP extensions without pecl in PHP 8 Docker images
- Syncing macOS Keychain certificates with Homebrew's OpenSSL
- Using MailHog via Docker for testing email
- Dorothy Hodgkin
- Step-debugging linked composer dependencies with PhpStorm
- Completely reset Apple Watch's Mac auto-unlock
- Recursive PHP lint
- Prevent an external drive from auto mounting on macOS
- Ignoring mass reformatting commits with git blame
- Converting JSON to a struct in Go
- Validating default PHP session ID values
- Turn off foreign key checks when restoring a mysql file dump
- A logo for rst2pdf
- Creating collections with the Lightroom Classic SDK
- Writing a Lightroom Classic plug-in
2019 41
- 2019 in Pictures
- Migrating to Lightroom Classic from Apple Photos
- Routing in Slim 4
- Keyboard shortcut to mirror displays on a Touch Bar Mac
- My JetBrains IDE shortcuts
- Dark and light mode blog images with MarsEdit
- Cannot find zlib headers on macOS 10.15 Catalina
- Changing an SQL Server primary key in Doctrine Migrations
- First steps with Windows on Vagrant
- Testing migrating to Laminas
- Embedding Notist slides
- HTML encode selected text on Mac
- Custom error rendering in Slim 4
- Folder types in AppleScript
- Dependency Injection in Slim 4
- Running Slim 4 in a subdirectory
- Slim4-empty: minimal Slim 4 starting point
- Receiving input into a Slim 4 application
- Automatically mounting a network drive on Mac
- A first look at Slim 4
- Displaying exif information in WordPress posts
- Images and WordPress
- Developing WordPress sites with Docker
- Setting title and caption with exiftool
- Creating virtual environments with Pyenv
- Using a separate master password in 1Password for Mac
- Running PHP applications on Azure App Engine
- Step debugging sphinx-build in PyCharm
- PHP Architect: Serverless PHP With Bref, Part 2
- Keyboard shortcut to Save as PDF on Mac
- Extracting the base name of a file in Bash
- Circular dependencies in AWS SAM Policies
- Changing the AWS API Gateway response status code in SAM
- My Bref Makefile
- PHP Architect: Serverless PHP With Bref, Part 1
- Slim 4 Cyclomatic Complexity
- Using img2lambda to publish your Serverless PHP layer
- rst2pdf: back from the dead!
- Setting up IBM Cloud Object Storage
- Keyboard control of macOS notification alerts
- Serverless PHP on AWS Lamda
2018 18
- 2018 in pictures
- Autojump is magic
- Upgrading to Bash 4 on macOS
- Route specific configuration in Slim
- Migrating to password_verify
- Replacing a built-in PHP function when testing a component
- Analysing the focal length of my photos
- Using .vimrc for project specific settings
- Notes for working on the OpenWhisk PHP Runtime
- Using Fractal as your OpenWhisk API's view layer
- Dependency Injection with OpenWhisk PHP
- Using API Gateway with Serverless & OpenWhisk
- Using Composer with Serverless & OpenWhisk
- Using Serverless Framework with OpenWhisk PHP
- Invoking many OpenWhisk actions from another one
- Using async/await in OpenWhisk
- Automated Testing for PHP training course
- Using Composer packages with OpenWhisk
2017 47
- 2017 in pictures
- Run the UniFi Controller headless on Mac
- Generating training handouts for printing
- Implementing CORS in Zend Expressive
- Customising Whoops in Expressive
- Using Docker to create a MySQL server
- OuputBuffer Middleware for Expressive
- Displaying errors in Expressive with Twig
- "Software architecture is failing" by Alex Hudson
- Pretty print curl -i
- Converting a Composer dependency to git for editing
- Custom URLs for a Cloud Foundry application
- CORS and OpenWhisk web actions
- CLI credentials for a Cloud Foundry database
- Using PostgreSQL with PHP in Cloud Foundry
- Deploying a PHP application to Cloud Foundry
- Adding a user to your Bluemix space
- Getting started with Serverless PHP
- Logging in to Bluemix via wsk
- Creating an OpenWhisk Alexa skill
- Getting started writing an Alexa Skill
- Simple way to add a filter to Zend-InputFilter
- Default route arguments in Slim
- Slim's route cache file
- Inserting binary data into SQL Server with ZF1 & PHP 7
- Autocomplete Composer script names on the command line
- Switching OpenWhisk environments
- POSTing data using KituraNet
- Using CircleCI for a PHP project
- Automatically converting PDF to Keynote
- Detecting OpenWhisk web actions
- Calling an OpenWhisk action in Swift
- Passing secrets to your OpenWhisk action
- Quick tip: OpenWhisk autocompletion
- Error handling in OpenWhisk actions
- Using ngrok to test on a mobile
- OpenWhisk web actions
- Serverless Swift on OpenWhisk
- Keyboard shortcut to resize Finder columns
- Stand-alone usage of Zend-InputFilter
- Rendering problem details in Slim
- Rendering ApiProblem with PSR-7
- Making Slack accessible on macOS
- A note on framework performance
- Homestead per-project crib sheet
- Automatic OCR with Hazel and PDFPen
- Using Phive to manage PHPUnit
2016 46
- 2016 in pictures
- SSH keys in macOS Sierra
- Handling JSON data errors in Slim 3
- Use curl to create a CouchDB admin user
- PHPNW 2016 API Tutorial
- On respect in the workplace
- Hide the ST3 sidebar automatically
- Using CharlesProxy's root SSL with home-brew curl
- Using HTTP/2 with PHP 7 on Mac
- RESTful APIs and media-types
- A Kitura tutorial
- 10 years since my ZF Tutorial
- Passing on the baton
- Screenshot of the active window on Mac
- Introducing SwiftDotEnv
- Checklist for releasing Slim
- Auto reloading a PDF on OS X
- API errors are first class citizens
- Standalone Doctrine Migrations redux
- Ctags with Swift
- Iteration in fixed-everything projects
- Notes on keyboard only use of macOS
- View an SSL certificate from the command line
- Cross-platform Makefile for Swift
- View header and body with curl
- swiftenv: Swift version manager
- Filtering the PSR-7 body in middleware
- Slim 3.4.0 now provides PSR-7!
- Compiling Swift on Linux
- DI Factories for Slim controllers
- Easily install Swift on Linux
- Unit testing with Swift PM
- Overriding Slim 3's error handling
- Using Eloquent in Slim Framework
- Free the Geek appearance
- A few composer tips
- Configuration in Slim Framework
- Testing Slim Framework actions
- Determining the image type of a file
- Improved error handling in Slim 3.2.0
- Team culture and diversity
- Use vim's :make to preview Markdown
- PSR-7 file uploads in Slim 3
- Proxying SSL via Charles from Vagrant
- The internal pointer of an array
- Getting started with Zewo
2015 58
- 2015 in pictures
- Function pointers in my Swift CCurl library
- Using Composer with shared hosting
- Wrapping variadic functions for use in Swift
- Using a C-library in Swift
- Swift around the web
- An Ansible playbook for Swift
- Running Phan against Slim 3
- Installing Phan on OS X
- Installing 32 bit packages on Ubuntu 14.04
- Slim 3.0 RC2 Released
- Writing PSR-7 middleware
- Changing Apigility's auth token expiry
- Render an array based on accept header
- Kathy
- The beginner's guide to rebasing your PR
- The beginner's guide to contributing to a GitHub project
- On blocking ads
- Simple Ansible file for Z-Ray preview
- Improved error handling in Slim 3 RC1
- random_bytes() in PHP 5.6 and 5.5
- Slim-Csrf with Slim 3
- Using abstract factories with Slim 3
- Zend\Input fallback value
- Zend\Input and empty values
- Checking your code for PSR-2
- Custom OAuth2 authentication in Apiiglity
- Replacing Pimple in a Slim 3 application
- Debugging PHP SOAP over SSL using Charles
- First beta of Slim Framework 3
- Selecting the service port with PHP's SoapClient
- Accessing services in Slim 3
- Testing my ZF1 app on PHP 7
- Brent Simmons: How Not to Crash #9: Mindset
- 20 years of PHP
- My Xdebug configuration
- Turn warnings into exceptions
- A Slim3 Skeleton
- Role models
- Styling rst2pdf tables
- ZF2 validator message keys
- Using Zend\Config with a Slim app
- installing XHGui via Ansible
- Logging errors in Slim 3
- Building and testing the upcoming PHP7
- WordCamp London, 2015
- Run Slim 2 from the command line
- Ally
- Convert PHP Warnings and notices into fatal errors
- Git submodules cheat sheet
- Routing to a controller with Slim 2
- Sending test emails from PHP
- Customising Bootstrap 3
- Dependency injection in Slim framework 2
- Setup Doctrine Migrations to update MySQL timestamp on update
- Shorter directory text in Bash prompt
- Setting OS X's Terminal Tab to the current directory
- Exclude elements from Zend\Form's getData()
2014 49
- 2014 in pictures
- Recursively deleting elements from an array
- SSL certificate verification on PHP 5.6
- Overriding the built-in Twig date filter
- Converting databases between MySQL and SQL Server
- Validating JSON with ZF2's Zend\Validator
- Autocomplete Phing targets on the command line
- A few Phing tips
- Using Phing to SSH into a Vagrant box
- My "new" blogging habit
- Registering Doctrine Type Mappings for standalone migrations
- Routing specific traffic to the VPN on OS X
- Using Doctrine Migrations as a standalone tool
- Two incidents
- Why I care about codes of conduct
- Provisioning with Ansible within the Vagrant guest
- substr_in_array
- Setting up PHP & MySQL on OS X Yosemite
- Git push to multiple repositories
- Kim
- Jerry-rigging pygments to support new PHP keywords
- Context specific history at the bash prompt
- Alias for the PHP built-in server
- Setting up mailcatcher as a service in Debian/Ubuntu
- Codes of conduct
- Using ZF2 Forms with Twig
- Sending attachments in multipart emails with Zend\Mail
- Throw an exception when simplexml_load_string fails
- Redirecting in Slim 2 Middleware
- Integrating ZF2 forms into Slim
- Globally overriding validation messages for ZF2 forms
- Creating a ZF2 form from config
- View status of all Vagrant environments
- Prefixing every key in a hash ref in Perl
- Z-Ray for Zend Server 7
- Privilege
- Missing mime-info database for use with File::MimeInfo
- Speaking at DPC & OSCON
- Styling a Chosen select to fit Bootstrap 3 better
- Perl syntax highlighting in Sublime Text 3
- Injecting dependencies into your ZF2 controllers
- Sharing host VPN with Vagrant
- Some (disjointed) notes on provisioning Vagrant with Ansible
- Writing to vagrant synced folders
- Immutable entities
- Use statements
- Broken
- Creating a zip file with PHP's ZipArchive
- Implementing a ZF2 development mode
2013 31
- 2013 in pictures
- Global installation of PHP tools with Composer
- Apigility tutorial on TechPortal
- Setting up PHP & MySQL on OS X Mavericks
- Manuel Stosic: Understanding Zend Framework 3 before it's out
- Lorenzo Ferrara: Testing Apigility Code-Connected REST API
- Investigating Apigility
- Changing the GitHub IRC hooks notification events
- Returning JSON errors in a ZF2 application
- rst2html does not support :startinline:
- Setting up Zend Server 6 on OS X for PHP development
- Password-less command line scripts with MySQL 5.6
- Configuring a ZF2 view helper before rendering
- Using PHP's NumberFormatter to format currencies
- Returning a ZF2 HydratingResultSet when starting with raw SQL
- Displaying the generated SQL from a ZendDbSql object
- IN and Zend\Db\Sql's where()
- Caching your ZF2 merged configuration
- Contracts and NDAs for Nineteen Feet
- Injecting configuration into a ZF2 controller
- Adding Diff syntax highlighting to Sublime Text
- Simple logging of ZF2 exceptions
- Notes on embedding fonts in rst2pdf
- Setting the umask when using Capistrano
- Minding my own business
- Objects in the model layer: Part 2
- Ideas of March: It's my content and my opinion
- Objects in the model layer
- Changing the format of a ZendForm DateTime element
- Improved Sublime Text 2 PHP getter and setter generation
- Thoughts on module directory structure
2012 67
- 2012 in pictures
- Zend Framework 1 is not dead; ensure you upgrade!
- Some notes on git
- Git export from BitBucket
- Migrating to BitBucket from Subversion
- Using ZendSession
- Integrating BjyAuthorize with ZendNavigation
- Introducing AkrabatSession
- Zend Framework 1 or 2 training in Belgium in January 2013?
- Martin Shwalbe: Getting Started with REST and Zend Framework 2
- Zend\ServiceManager configuration keys
- Sending an HTML with text alternative email with Zend\Mail
- PHPNW12: Some photos
- Jurian Sluiman: Using Zend Framework service managers in your application
- Preparing for the ZF2 Tutorial at PHPNW12
- ZF2: Using the ServiceManager as an Inversion of Control Container (Part 1)
- Module specific layouts in ZF2
- Zend Framework 2.0.0 STABLE Released!
- Introducing Avalance: A landslide presentations theme
- ZF2 training at PHPNW 2012
- Setting up PHP & MySQL on OS X 10.8 Mountain Lion
- ZF1.12 is released
- Setting up required fields that can be empty with Zend\InputFilter
- Missing fields in $_POST
- My ZF2 tutorial now part of the official ZF2 docs
- Evan Coury: Creating a simple view helper in Zend Framework 2
- Adam Lundrigan: Quick-and-dirty ZF2: ZendNavigation
- Updated ZF2 tutorial for Beta 5
- Evan Coury: Using ZendDb’s TableGateway and HydratingResultSet to return rows as custom entity/model objects
- Jurian Sluiman: Use 3rd party modules in Zend Framework 2
- Gittyup – Easily keep master in sync with upstream
- Kyle Spraggs: How does configuration work in ZF2?
- Padraic Brady: Automatic Output Escaping In PHP And The Real Future Of Preventing Cross-Site Scripting (XSS)
- Kyle Spraggs: ZF Commons – A Zend Framework 2 organization
- Enrico Zimuel: Cryptography made easy with Zend Framework
- Gary Hockin: Zend Framework 2 and a Restful Application
- Zend Framework 2 beta 4 released
- Evan Coury: Module-specific layouts in Zend Framework 2
- Vagrant in Zend Framework 1
- Unit testing Zend Framework 1
- Evan Coury: Sharing a database connection across modules in Zend Framework 2
- An introduction to ZendEventManager
- Getting started with Natural Load Testing
- Access view variables in another view model
- Returning JSON using the Accept header in ZF2
- Returning JSON from a ZF2 controller action
- Automatic Apache vhosts
- OS X Tips and Tricks
- A list of ZF2 events
- Ralph Schindler: PHP Constructor Best Practices And The Prototype Pattern
- Pádraic Brady: A Hitchhiker’s Guide to Cross-Site Scripting (XSS) in PHP (Part 1)
- Some Zend\View examples
- Module specific bootstrapping in ZF2
- Matthew Weier OPhinney: View Layers, Database Abstraction, Configuration, Oh, My!
- Modules in ZF2
- An introduction to Zend\Di
- Sublime Text 2 Plugin: Function Name Display
- Overriding module configuration in ZF2
- Shahar Evron: Generating ZF Autoloader Classmaps with Phing
- What problem does dependency injection solve?
- A primer on PHP namespaces
- Using Zend\Loader\Autoloader
- One-to-many joins with Zend_Db_Table_Select
- Two new Sublime Text 2 packages for PHP
- Florian Eibeck: Zend Framework application.ini cheat sheet
- Jason Grimes: Using Doctrine 2 in Zend Framework 2
- Sublime Text 2 Snippet for PHP getter and setter generation
2011 27
- 2011 in pictures
- Zend Framework 2 Beta 2 released
- Evan Coury: Keeping a clean GitHub fork – Part 1
- ZF2 no longer requires a CLA to contribute
- Updated tutorial for Zend Framework 2 beta 1
- Bring a laptop to my ZF2 tutorial at PHPNW11
- Remi Woler: The 10 rules to get support through IRC
- Day Camp 4 Developers #3: Project Management
- Bradley Holt: The Case For Rapid Release Cycles
- Setting up PHP & MySQL on OS X 10.7 Lion
- Robert Basic: Grouping Zend Framework controllers in subdirectories
- Zend_Config_Ini and a string
- tek11 photos
- DPC 11 photos
- ZF2 Training at PHPNW 2011!
- Exploring Zend_Paginator
- Great PHP developer required in Central Birmingham
- A Zend Framwork compound form element for dates
- Zend Framework View Helpers
- Using your own View object with Zend_Application
- A review of PHP Benelux 2011
- Zend Framework 2 in Action
- Translations of my Zend Framework Tutorial for ZF 1.10 & 1.11
- Remove index.php from your URL
- PHPUK 11 Conference in London
- Enrise: Using MemCacheQ as a Message Queue
- Displaying an RSS feed in WordPress
2010 47
- 2010 in pictures
- Handling exceptions in a Front Controller plugin
- David Papadogiannakis: HTML5 Zend Framework form elements
- View helpers in modules
- PHP 5.3 is quicker than PHP 5.2
- Local config files and Zend_Application
- Some notes on SQL Server blobs with sqlsrv
- Ralph Schindler: Composite Rowsets For Many-To-Many Relationships Via Zend_Db_Table
- Validating UK Postcodes
- Validating dates
- I'm speaking at PHPBenelux Conference 2011
- SqlSrv v2 and long field names
- PHPNW10 Conference
- A form in your layout
- OS X Tips and Tricks for Snow Leopard
- Devzone article on Zend_Config
- ZendTool providers in ZF2 (dev1)
- Setting up ZF2's ZendTool side by side with ZF1
- TweetGT: an example of Zend_Service_Twitter via OAuth
- On Exceptions
- Unit testing controller actions with Zend_Test_PHPUnit_ControllerTestCase
- Day Camp for Developers virtual conference
- The Redirector action helper
- Zend Framework's Flash Messenger action helper
- Speaking at PHPNW 10
- Matthew Weier O'Phinney: Using Action Helpers To Implement Re-Usable Widgets
- New Zend_Auth tutorial
- Akrabat_Db_Schema_Manager: table prefix support
- The Dutch PHP conference 2010
- Community Review Team for Zend Framework
- MongoDB on OS X with the stock PHP installation
- Tek.X recap
- Meet the TEK·X speakers
- Using PDT with Zend Framework Projects
- Akrabat_Db_Schema_Manager: Zend Framework database migrations
- Photos of Seagulls
- Sending a file to IE using SSL
- Zend Framework, IIS and 500 errors
- Mobile web monopoly
- Zend Framework Tutorial for ZF 1.10
- Redirecting email whilst developing
- Determining if a ZF view helper exists
- Custom Zend_Application Resources
- Zend Framework on a shared host
- Speaking at TEK·X
- Pragmatic Version Control Using Git
- 2009 in pictures
2009 50
- PHP Advent 2009: On deployment
- Accessing your configuration data that's stored in application.ini
- IPC 2009
- Zend Framework URL Rewriting in IIS6
- ZendCon 2009
- PHPNW 09 Conference
- Introducing yourself at a conference
- Setting up PHP & MySQL on OS X 10.6 Snow Leopard
- Changing OS X Terminal colours when ssh'ing into a server
- A new blog from someone new to PHP
- Tutorial Q&A PDF
- Three years of my Zend Framework Tutorial
- My tutorial is compatible with Zend Framework 1.9
- DNS Transfer
- The watch Linux command line tool
- Bootstrapping modules in ZF 1.8 and up
- I'm speaking at ZenCon 2009!
- Some notes on Zend Server CE for Mac OS X
- DPC '09
- WinPHP wrap-up thoughts
- SuccesSQL demo online
- Metadata from Zend_Db_Table_Abstract
- Retrieving a list of databases from SQL Server
- SQL Server troubles
- Zend Framework URL Rewriting in IIS7
- Zend Framework connection to SQL Server using SqlSrv
- MSSQL and PHP
- Viewing PHP errors over the network when using IIS
- Women in open source communities
- Zend Framework Tutorial for ZF 1.8
- Zend_Loader's autoloader deprecated in Zend Framework 1.8
- The EuroWinPHP application
- Finalising installation
- Installing PHP on Windows Server 2008
- Installing Windows Server 2008
- WinPHP Challenge
- Shorter Link: A rev=canonical WordPress plugin
- Digg bar blocker for WordPress
- Caching talk at DPC 2009
- Initial notes on Zend_Application
- In honour of Ada Lovelace
- Fixing — in WordPress
- Manning is on Twitter
- UTF-8, PHP and MySQL
- Setting up PHP on OS X Leopard
- PHPUK 2009
- PHP UK Conference, London
- Zend Framework in Action forum and errata
- Catching-up
- Seven Things – Tagged by Matthew
2008 36
- 2008 in pictures
- On models in a Zend Framework application
- Zend Framework in Action Errata
- File uploads with Zend_Form_Element_File
- PHPNW08 Conference
- Hooks in Action Helpers
- Using Action Helpers in Zend Framework
- Where is php ?
- PHPNW08 schedule posted
- ZendCon 08
- Uninstalling MySQL on Mac OS X Leopard
- PHPNW Conference
- Busy
- Recursion
- Notes on Zend_Cache
- UK Readers: Don't buy petrol from BP or ESSO
- Zend Framework URLs without mod_rewrite
- Top Tip: XHTML with Zend Form Elements
- Simple Zend_Form File Upload Example Revisited
- A review of "Learning PHP Data Objects"
- A review of "Object-Oriented Programming with PHP5"
- Flickr Uploadr
- Simple Zend_Form File Upload Example
- On Mail.app
- Updated Tutorial for Zend Framework 1.5
- PHPWM March Meeting: Symfony
- Site Stats
- IE8 will work like IE8 by default!
- PHP London 08
- Cure for BSS announced!
- Simple Zend_Form Example
- A View Stream with Zend_View
- Subversion Externals
- UK PHP Conference
- Code cleanliness guidelines from Etienne Kneuss
- New Zend Framework Blog/Website
2007 51
- OT: Need something? Ask Hoosgot!
- Notes to self, re: IE6
- Simple Zend_Layout Example
- Where to set up your view?
- Zend_View: Access the view from a view helper
- Back to zero bugs
- TaskPaper
- svn and case-insentive file systems
- post2cat doesn't exist after upgrading WordPress
- The move to Mac
- Do it before goddamned breakfast
- PHPAbstract
- Life outside of PHP
- Luke – Lucene Index Toolbox
- View Helper Case Notes
- Downtime
- Zend_Filter_Input / Zend_Validate Messages
- Zend Framework Book coming soon
- Image Resizing Done Right
- ID != id
- PHPWM Social
- Zend Framework Tutorial Zip File Updated
- Yslow
- OT: A Bit Wet
- Russian and Polish Zend Framework Tutorial
- Two-Step view in Zend Framework 1.0.0
- Zend Framework 1.0 Released
- Spanish versions too!
- Would have made me laugh…
- Zend_Auth tutorial in French
- Notes on using Oracle with my tutorial
- Extending ViewRenderer to Support Layout Templates
- Tutorial 1.4.0
- Zend_Config Updates
- More translations
- Quiet around here
- Premiers pas avec le Zend Framework
- Simplified Chinese Version of my Zend Auth Tutorial
- Questions regarding the latest tutorial (1.3.0)
- New Tutorial: Getting Started with Zend Auth
- Zend Framework Tutorial for 0.9.1
- Typo in Zend Framework 0.9
- Goodbye Zend.php
- Zend Framework Tutorial for ZF v0.8
- Upgrade time
- PHP UK Conference 2007
- Indonesian Translation of the Tutorial
- Zend Framework Tutorial for 0.7
- Modules
- Subversion's svn:externals
- New Theme
2006 55
- Simplified Chinese version of the Zend Framework Tutorial
- Extending Zend_View_Interface for use with Smarty
- Zend Framework Tutorial for ZF v0.6
- Version 1.1.2 of the Tutorial
- Italian Translation of the Zend Framework Tutorial
- Zend PHP 5 Certification Guide Competition
- Polish Translation of the Zend Framework Tutorial
- preg_last_error() returns No Error on preg_match() Failure
- Zend_Config Documentation in 0.2
- Zend Framework Tutorial: Version 1.1
- Zend Framework 0.2
- Zend_Config: Multiple Sections and a BC Break for 0.2!
- Zend_Config: Progress Towards 0.2
- German Translation of my Zend Framework Tutorial
- Directory Structures (again!)
- Zend Framework Tutorial 1.0.3
- One Application Down: Some Zend Framework Thoughts
- Firefox 2 beta 2
- Minor update to the Zend Framework Tutorial
- My Take on a Zend Framework Tutorial
- Demo
- AkCom: The Akrabat Components for the Zend Framework
- Dynamic Tabs Subversion Respository
- Zend_Config: Iteration and Arrays
- Zend Framework 0.1.4
- Overworked
- PHP Editors
- Zend_Config: Array Reader
- Zend Framework: Incubator Testing
- Default Dirs
- Zend_Config is in the Incubator
- Zend_Config Proposal v3: Akrabat_Config (8)
- Zend_Config Proposal v2.1: Akrabat_Config (7)
- Zend_Config Proposal v2: Akrabat_Config (6)
- PHP West Midlands Meeting
- The Zend Framework PDO driver's insert() function is fixed!
- Zend_Db_Adapter_Pdo_Abstract::insert()
- Akrabat_Config (5)
- Zend_Config Proposal for the Zend Framework
- Akrabat_Config (4th Go!)
- Akrabat_Config (Take Three!)
- Akrabat_Config (2nd Attempt)
- Akrabat_Config
- Zend Framework: Router Again
- ZF Authentication
- Zend Framework: Test Code Upgrade to 0.1.2
- Zend Framework 0.1.2
- Zend Framework Controller Docs!
- Zend Framework: Database Access
- Zend Framework Views and the Front Controller
- Zend Framework Front Controller
- PHP UK Conference 2006 in Detail
- PHP UK Conference 2006
- WordPress 2.0 Rewrite Rules
- Dynamic JavaScript Tabs v1.0.3