Getting ready to use Tailwind CSS in anger. I like their headline: “Best practices” don’t actually work.
Author Archives: Jay Jay
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' ) );
Flash Fiction Stories: 25 Examples of Lighting-Fast Stories
Today I discovered: Flash Fiction Stories: 25 Examples of Lighting-Fast Stories. There’s some cool stories in there. I didn’t read all of them.
PHP DoH endpoint
This in the news today: A simple PHP script that can be used to add a DoH endpoint to a HTTPS server.
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.
InfoWorld articles
Today I discovered InfoWorld with these articles:
- Complexity is killing software developers
- Why you should use a microservice architecture
- No one wants to manage Kubernetes anymore
And a bonus article from Spotify: How We Use Golden Paths to Solve Fragmentation in Our Software Ecosystem .
Also, I should note, I very much like the InfoWorld URL format: https://www.infoworld.com/article/3614850/no-one-wants-to-manage-kubernetes-anymore.html — this is the same URL structure I use in my own designs.
Unicode Utilities: Confusables
Today I was referred to: Unicode Utilities: Confusables.
Unicode bidirectional override hack
Interesting: Security advisory for rustc (CVE-2021-42574).
As an example, the following snippet (with {U+NNNN} replaced with the Unicode codepoint NNNN):
if access_level != "user{U+202E} {U+2066}// Check if admin{U+2069} {U+2066}" {
...would be rendered by bidirectional-aware tools as:
if access_level != "user" { // Check if admin