Getting ready to use Tailwind CSS in anger. I like their headline: “Best practices” don’t actually work.
Category Archives: Programming
Factory specialization
I just knocked this up to confirm my thinking was right:
<?php
class StdFeature {
}
class AppFeature extends StdFeature {
}
class FactoryBase {
public function new_feature() : StdFeature { return new StdFeature; }
}
class Factory extends FactoryBase {
public function new_feature() : AppFeature { return new AppFeature; }
}
$factory = new Factory();
$feature = $factory->new_feature();
assert( is_a( $feature, 'AppFeature' ) );
Reflections on 10,000 Hours of Programming
This was good: Reflections on 10,000 Hours of Programming.
Fast indoor 2D localization using ceiling lights
This is awesome: Fast indoor 2D localization using ceiling lights.
Linux x86 Program Start Up
This is great: Linux x86 Program Start Up.
Kevlin Henney
How To Design A Good API and Why it Matters
Today I watched: How To Design A Good API and Why it Matters. Good talk. Favourite quote:
Inheritance violates encapsulation
Oh, and I followed on with: A Brief, Opinionated History of the API wherein (t=28:14) Bloch says it’s an API if you can answer yes to both of these:
- Does it provide a set of operations defined by their inputs and outputs?
- Does it admit reimplementation without compromising its users?
Back to Basics
This is the Joel Spolsky article with the good old Shlemiel the painter’s algorithm: Back to Basics.
Technical Writing Courses
Today I discovered: Technical Writing Courses via Docs for Developers.
Formally Modeling Database Migrations
This is great: Formally Modeling Database Migrations. I need more formal methods in my life.
