Programming

2019-02-04
Immutable Objects for PHP
2018-12-19
Clarifications to a review of Action Domain Responder
2018-12-11
Open Source and Squeegee Men
2018-09-26
What to Do About The Linux COC
2018-09-21
Social Justice Attack Survival Guide
2018-07-31
Atlas ORM Integration with Symfony
2018-07-10
Atlas.Orm 3.0 ("Cassini") Now Stable
2018-05-22
Atlas.Query: Simple. Sensible. SQL.
2018-05-09
Atlas 3.x ("Cassini") and PHPStorm Completion
2018-04-23
Atlas.Orm "Cassini" (v3) Early-Access Alpha Release
2018-04-09
The Conquest Code of Conduct
2018-02-13
Line Coverage in Unit Tests
2018-02-07
Atlas 2.1.0 Released with "Polymorphic Association" Support
2018-02-06
Perfection
2018-01-31
Best Practices
2018-01-02
Considering Typehints As Communication
2017-12-28
Solving The "Widget Problem" In ADR
2017-12-05
Avoid Dependency Injection
2017-10-17
Choose Dependency Injection — If You Can
2017-10-17
Atlas.Orm 2.0 Is Now Stable
2017-10-10
A Few Right Ways, But Infinitely More Wrong Ways
2017-10-03
Atlas.Orm 2.0.0-beta1 Released
2017-09-26
Quality: Program vs Product
2017-09-19
"Before" (not "Beyond") Design Patterns
2017-09-12
A "Systems" Addendum To Semantic Versioning
2017-09-05
Hacking, Refactoring, Rewriting, and Technical Debt
2017-08-29
How Terrible Code Gets Written By Perfectly Sane People
2017-08-28
Original MVC Resources from Reenskaug
2017-08-22
Slim and Action-Domain-Responder
2017-08-18
Why MVC doesn't fit the web
2017-08-15
The "Micro" Framework As "User Interface" Framework
2017-07-18
Domain Logic and Email Templates
2017-05-23
Controllers and Domain Exceptions
2017-05-16
"Action Injection" As A Code Smell
2017-05-02
Toward A Better Separation of Session Behaviors in PHP
2017-04-25
"A False Sense of Simplicity"
2017-04-18
Atlas ORM 1.2.0 Released
2017-04-11
Symfony 4: Directory Structure, and Common Practices
2017-04-04
Command-Line Output: Consider Logging Over Streams
2017-03-24
Regarding A Recent Event
2017-02-21
WikiMedia, Clean Architecture, and ADR
2017-02-01
Radar Project Skeleton Now Stable
2017-01-31
The "pds/skeleton" Standard Is Now Stable!
2017-01-17
How Many PSR-7 Implementations Exist?
2017-01-12
Beta2 of pds/skeleton now available!
2017-01-05
PSR-7 vs. the Server(Request|Response) RFC
2017-01-03
RFC: ServerRequest and ServerResponse
2016-12-29
PDS "skeleton" Standard Now In Beta
2016-12-28
ADR with HTTP Caching
2016-12-22
Efficient use of mysqli_result::$num_rows
2016-12-21
PHP-PDS: Interview on Voices of the ElePHPant
2016-12-20
PECL Request Extension: Beta 1 Released!
2016-12-15
Package Development Standards: "pds/skeleton" Now Open For Review!
2016-12-12
The Iron Law of (Open Source) Bureaucracy
2016-12-07
PHP file_get_contents() HTTPS/SSL error on Mac OS
2016-12-05
Independent Packages and Subtree Splits
2016-11-30
PHP ssh2.sftp opendir/readdir fix
2016-11-29
Conserving On The Wrong Resource
2016-11-22
The PHP 7 "Request" Extension
2016-09-06
Avoiding Quasi-Immutable Objects in PHP
2016-09-02
The Fallacies of Enterprise Computing
2016-08-18
FIG Follies, Part 3
2016-08-16
Fig Follies, Part 2
2016-08-15
FIG Follies, Part 1
2016-08-09
Exporting Globals in PHP
2016-07-18
Professional Development Ladder
2016-05-31
Telegraph: A Lambda-Style PSR-7 Middleware Dispatcher
2016-04-26
Multi-Project Issue Tracking With Producer
2016-04-19
Producer 2.0.0 Released!
2016-04-16
Empirical Research On Software-Engineering Myths
2016-04-12
PSR-7 and Session Cookies
2016-03-22
Producer: Validate and Release PHP Library Packages
2016-03-15
Why Do PHP Developers Think MVC Is An Application Architecture?
2016-03-08
Command Bus and Action-Domain-Responder
2016-02-29
An Object Lesson in Conduct Enforcement
2016-01-25
You Do Not Have A Right To Contribute
2016-01-19
On the Proposed PHP Code of Conduct
2015-12-29
Atlas: a persistence-model data mapper
2015-12-13
How Do You See The PHP-FIG?
2015-12-08
Configuration Values Are Dependencies, Too
2015-12-01
First Stable Aura 3.x Releases
2015-11-30
50% Off "Modernizing Legacy Applications in PHP"
2015-11-02
SQL Schema Naming Conventions
2015-11-02
How To Think About HTTP Middleware
2015-08-18
Frameworks Are Not Tools
2015-08-09
Service Classes, Payloads, and Responders
2015-07-07
A Factory Should Create, Not Retain
2015-06-30
Modernizing Serialized PHP Objects with class_alias()
2015-06-23
MLAPHP Boot Camp!
2015-06-08
Relay: A PSR-7 Middleware Dispatcher
2015-06-02
Semantic Versioning and Public Interfaces
2015-05-26
Radar: Answering Questions, and New Middleware
2015-05-19
Radar: A PSR-7 Action-Domain-Responder Framework
2015-04-21
A PSR-7 Web Router Implementation, and Bookdown Documentation
2015-03-31
Separate The User Interface Repository From The Core Application Repository
2015-03-27
Aura 3 Plans
2015-03-23
Using Aura.Html with League\Plates
2015-03-20
MLAPHP and N+1 Books: Half-Price Sale Starts Early!
2015-03-18
A New Book About The N+1 Problem, and an Update to MLAPHP
2015-03-02
Bookdown: DocBook-Like HTML Output From Markdown
2015-01-21
MVC and ADR are User-Interface Patterns, Not Application Architectures
2014-10-11
This is why you should always use braces on conditionals
2014-10-09
What's The Difference Between A "Pivot Table" And An "Association Table"?
2014-10-06
What's The Difference Between Tightly-, Loosely-, and De-Coupled ?
2014-10-05
First Aura 2.0 Stable Project Releases!
2014-09-30
Action-Domain-Responder and the "Domain Payload" Pattern
2014-09-03
New Aura v2 Stable Releases, and More
2014-08-19
On Project Structure; or, The Framework/App Is Not Special
2014-08-16
DRY is about Knowledge
2014-07-17
Soccer, Development, and The Value Of Teamwork
2014-07-17
Action-Domain-Responder, Content Negotiation, and Routers
2014-06-26
An Updated Preview Of Aura.Auth
2014-06-23
Modernizing Legacy PHP: From Service Locator To Dependency Injection
2014-06-19
The Cause Of Bad Software Is Bad Management
2014-06-09
Aura.SqlQuery 2.0.0 Stable Release
2014-06-05
Refactoring To Action-Domain-Responder
2014-06-03
Legacy Refactor Question: What About Singletons?
2014-06-02
A Round Of Aura 1.x Library Releases
2014-05-29
Aura.View 2.0.0-beta2 Now Has "Sections"
2014-05-26
The Template Is Not The View
2014-05-22
"The Only Reason You Think You Are Smart Is Because An Idiot Called You A Genius"
2014-05-21
5 Years Of PHP-FIG
2014-05-19
Stephan Hochdörfer and Action-Domain-Responder
2014-05-16
The Eternal Struggle Between Business and Programmers
2014-05-15
Aura.View and Aura.Html 2.0.0-beta1 Released!
2014-05-12
Quick Hits: ADR Pattern Progress, MLAPHP Softcover, Aura Notices
2014-05-05
Action-Domain-Responder: A Tentative MVC Refinement
2014-04-29
Some Rules For Good Naming
2014-04-21
Submit To The Central Scrutinizer
2014-04-17
First Aura v2 Beta Releases of Web_Project, Cli_Project, and Framework_Project
2014-04-14
How To Modernize Your Legacy PHP Application
2014-04-07
Composer-Assisted Two-Stage Configuration in Aura
2014-03-31
"Modernizing Legacy Applications in PHP" Update: Schedule, and Reviews
2014-03-11
How To Convert Include Files To Classes
2014-03-05
Laravel Keeps Using That Word -- I Do Not Think It Means What They Think It Means
2014-03-05
Modernizing Legacy APIs
2014-02-24
Leanpub Sample Files With Symfony and Aura
2014-02-17
Aura.Marshal, A Database-less non-ORM
2014-02-11
What Application Layer Does A DI Container Belong In?
2014-02-03
"Page Script" As A Degenerate Controller
2014-01-31
Composer: Undefined Method Related To Global Install
2014-01-28
Honest Estimates
2014-01-27
Modernizing Legacy Applications in PHP: Early Access
2014-01-21
Framework Tradeoffs For Beginners: Product Creation vs Program Maintenance
2014-01-13
Aura.Cli 2.0.0-beta1 Released
2014-01-13
The Aura.Cli Package
2014-01-10
Aura.Sql_Schema 2.0.0-beta1 Released
2014-01-09
Aura.Web 2.0.0-beta1 Released
2014-01-09
Frameworks Are Good, Components Are Awesome!
2014-01-08
Aura.Router 2.0.0-beta1 Released
2014-01-07
Aura.Sql_Query 2.0.0-beta1 Released
2014-01-06
Aura Version 2 Beta Releases: Includer, Autoload, Sql, Dispatcher
2014-01-03
First PSR-4 Autoloader Released: Aura.Autoload 2.0.0-beta1
2013-12-30
Passing the Benchmarking Torch After 7 Years
2013-12-23
Which is Lighter, Silex or Aura.Web_Project?
2013-12-17
Quicker, Easier, More Seductive: Names, Usage, and Intent
2013-12-16
Quicker, Easier, More Seductive: How To Tell A DI Container From A Service Locator
2013-12-12
Lighter than Silex, and Slimmer than Slim: Aura.Web_Project, the Micro/Macro Framework
2013-12-09
Book Announcement: Modernizing Legacy Applications in PHP
2013-12-04
Splitting The Blog
2013-12-03
PSR-4 "Autoloader" Has Passed
2013-12-02
Quicker, Easier, More Seductive: The Difference Between Factories, Registries, and Service Locators
2013-11-25
Quicker, Easier, More Seductive: Restraining Your Service Locators
2013-11-21
ServiceLocator is like the Dark Side: Quicker, Easier, More Seductive
2013-11-18
A Peek At Aura v2 -- Aura.Router
2013-11-15
If you respect a [developer], you talk about the [code]; if not, you psychoanalyze the [developer].
2013-11-11
A Peek At Aura v2: Aura.Web
2013-11-04
A Peek At Aura v2: Aura.Dispatcher
2013-11-03
Recording Live Tonight With @dev_hell
2013-10-28
Publish Your Failures; or, The Way Of All Frameworks
2013-10-21
A Peek At Aura v2: Aura.Sql and ExtendedPdo
2013-10-18
Quality, Features, and Schedule
2013-10-14
If you inject a container into your class, you are using Service Locator, not Dependency Injection
2013-09-30
Aura for PHP: Lessons Learned, and Looking Ahead
2013-09-18
Aura Framework: Stable 1.0.0 System Release
2013-09-17
Aura Has New Releases: Input, Sql, and View
2013-09-17
The Devil's Dictionary for Developers
2013-09-11
All Aura Libraries Now Stable!
2013-08-17
CoderFaire Nashville 2013 Keynote: "All You Jokers"
2013-05-09
Aura: New Site, New Logo, New Releases
2013-03-27
Let's Just Build A Generic System!
2013-03-25
20 Rules of Software Consulting
2013-02-13
For CSRF tokens, mt_rand() is ok-ish but openssl_random_pseudo_bytes() is a lot better
2013-01-30
Professional Sports, Or Programmers And Public Speaking?
2013-01-07
"Planning" and "Doing" In Software Development: A Lesson For Product Managers
2013-01-07
Efficiency vs Quality in Software Development
2013-01-02
Symfony Components: Sometimes Decoupled, Sometimes Not
2012-12-20
A Response To "On php-fig and Shared Interfaces"
2012-12-20
On Decoupling and Dependencies: Answering The Critics of Aura's Approach
2012-12-18
New Aura System Release, Including Aura.Framework and Aura.Demo
2012-12-13
Aura.Micro: Experimental Replacement for Silex
2012-12-11
Aura: More Decoupled Than Symfony 2 and Zend Framework 2
2012-12-06
How Is Aura Better Than (er, Different From ;-) Than Symfony and Zend?
2012-12-01
Decoupled Libraries for PHP 5.4+ (The Aura Project)
2012-11-29
Aura: First 1.0.0 Stable Library Releases!
2012-11-28
Regarding "Simply" and "Just" In Documentation
2012-08-21
It Was Like That When I Got Here: Steps Toward Modernizing a Legacy Codebase
2012-08-10
Software Runs the World: How Scared Should We Be That So Much of It Is So Bad?
2012-08-07
The dark craft of engineering management
2012-07-04
When Possible, Use File *Resources* Instead Of File *Names*
2012-06-30
Lone Star PHP Keynote Slides Posted
2012-06-18
Aura.Router can also be used as a micro-framework dispatcher!
2012-06-07
tl;dr of DI vs SL
2012-06-04
PHP-FIG: PSR 1 and 2 Accepted
2012-05-01
FIG, FUD & FOMO
2012-04-12
Memcached Folks Say "Don't Use Memcached For Sessions"
2012-03-30
This Job Is Better Than The One You Have Now
2012-03-25
Complex Systems and Normal Accidents
2012-03-19
Interview Tip: Avoid Mentioning PHP Frameworks
2012-03-18
W3C Notes One Of My Posts As An "Informational Resource"
2012-03-16
phpDocumentor2 === DocBlox
2012-03-15
On Preferring Spaces Over Tabs in PHP
2012-03-08
Differences in Packaging Approaches: Aura, Symfony2, and ZF2
2012-02-16
Speaking at Dallas PHP
2012-02-15
Aura 1.0.0-beta2 Released
2012-01-01
The Aura Project: Now For PHP 5.4, With Beta Releases
2011-12-05
Solving the N+1 Problem; or, "A Stitch In Time Saves Nine"
2011-09-16
Jones' Law
2011-07-22
Queries inside queries
2011-07-06
Best New PHP Blog: Jeremy Kendall
2011-06-26
Interview with Voices of the Elephant
2011-05-18
On War, and Development
2011-05-17
Crockford on Quality and Style
2011-05-14
Blogger outage makes case against cloud-only
2011-05-10
I Like My IT Budget Tight and My Developers Stupid
2011-05-04
Different Definitions of Quality
2011-05-04
You are NOT a Software Engineer!
2011-04-28
Estimation Methodology: 2 Workers, 1 Day Per Controller Method
2011-04-28
Executive Bullpens
2011-04-22
Planning For Service Failures
2011-03-15
Ideas of March
2011-03-12
Include-Based vs Class-Based Architecture
2011-03-08
"Most people? Not nerds."
2011-03-04
Design Gods, Hear My Prayer
2011-03-03
Voices of the ElePHPant
2011-03-02
Aura for PHP 5.3+, aka Solar 2.0
2011-02-14
Happy Birthday Solar!
2011-02-02
Benchmarking Slides from PHPBenelux 2011
2011-01-19
Another Unified Constructor Sighting
2010-12-10
On The Passing Of Richard "Cyberlot" Thomas
2010-10-27
Comparing Benchmark Tools
2010-10-19
PHP Framework Benchmarks on Github
2010-10-19
Regarding Underscores
2010-09-06
The Miserable Mathematics of the Man-Month
2010-09-04
The Central Tension Of Programming
2010-08-04
The Perils of Error Reduction; or, Starbucks for Programmers
2010-06-28
Offer Accepted: Vice President of Engineering at Company 52
2010-06-19
Solar 1.1.1 Stable Released
2010-06-16
Nashville PHP User Group
2010-06-16
Disaster Rituals
2010-06-01
On The Job Market Again
2010-05-13
How Complex Systems Fail
2010-04-21
Seven Pillars of Pretty Code
2010-04-11
Does Software Development Have A Culture Of Rewarding Failure?
2010-03-12
Solar 1.0.0 Stable Released
2010-02-16
Drucker on Quitting
2010-01-01
Solar Beta 1 and 2, With A Blog Demo
2009-12-30
Keith Casey on "Joining a Startup"
2009-12-01
Comprehensible Code
2009-11-11
The Future of Zend Framework is Solar
2009-11-05
When only the glib win, we all lose
2009-10-26
Agile Gone Bad?
2009-06-25
Scalable Internet Architecture