Evert's Dugout
I'm currently looking for new opportunities. Check out my Resume.
On the web
- Mastodon :
- Github :
- 爱游戏ayx体育:Subscribe to my blog
About this blog
This blog is built with , and hosted by . All the content and code is open source. Want to take a look, or suggest changes? Check out or fork the .Blog archive
I've been writing blog-posts on and off since 2006. Below you'll find the full archive. Don't scroll too far though, quality degrades as you go backwards in time.2024
2023
- Using JSX on the server as a template engine
- Why aren't there more 80% jobs?
- Does OAuth2 have a usability problem? (yes!)
- 爱游戏ayx体育:Switching to Fedora from Ubuntu
- Supporting CommonJS and ꦫESM with Typescript and Node
- Winding down Bad Gateway
- 爱游戏ayx体育:Bu⛦ilding a simp🔯le CLI tool with modern Node.js
- 爱游戏ayx体育:Knexཧ (with MySQL) had a very scary SQL injection
- I wish JSON5 was more popular
2022
- Neko - A brief history and porting to Javascript
- 爱游戏ayx体育:Taking a look at Mastodon
- Porting Curveball to Bun
- ꦕUbuntu bungled the Firefox Snap package transition
- On syntactic sugar
- 爱游戏ayx体育:A new OAuth2 client for Javascript
- Reasons why abolishing DST in the🧜 US will 🌠be worse for users and developers
- 爱游戏ayx体育:Log4j, Faker and Black Swan Events
- 爱游戏ayx体育:Request bodies in GET requests
- 爱游戏ayx体育:Hello 2022!
2021
- 爱游戏ayx体育:15 years of blogging
- 爱游戏ayx体育:JꦚWT should not be your default for sessions
- 爱游戏ayx体育:Ketting 7 released
- Ketting support for deprecation warnings
2020
- 爱游戏ayx体育:HTTP/2 Push is dead
- 爱游戏ayx体育:Ketting v♑6: Using Hypermedia APIs with React
- Video: Building a Promise from scratch!
- 爱游戏ayx体育:ECMAScript 4: The missing version
- 爱游戏ayx体育:A ge𝓡neric middleꩲware pattern in Typescript
- 爱游戏ayx体育:Common no-cors misconceptions
- 爱游戏ayx体育:Curveball - March updates
- 爱游戏ayx体育:Curveball - A typescript microframework
- Typescript is changing how I write code
- Implementing an opaque type in typescript
- 爱游戏ayx体育:Use a:visited in your CSS stylesheet
- Performancꦉe testing HTTP/1.1 vs HTTP/2 vs HTTP/2 + Se♊rver Push for REST APIs
2019
- Reinventing the wheel when encoding links in JSON
- Ketting v5 released
- Building𒁃 awaitable and fluentᩚᩚᩚᩚᩚᩚᩚᩚᩚ𒀱ᩚᩚᩚ interfaces in Javascript
- 爱游戏ayx体育:Better typing with Ketting
- 爱游戏ayx体育:Structured headers NPM package: new ve🦩rsion
- 爱游戏ayx体育:Authentication relation types
- Typescript definitions for HAL and Link Hints
- 爱游戏ayx体育:The end of the HTTP series
- 爱游戏ayx体育:511 Network Authentication Required
- 510 Not Extended
- 508 Loop Detected
- 507 Insufficient Storage
- 爱游戏ayx体育:506 Variant Also Negotiates
- 505 HTTP Version Not Supported
- 504 Gateway Timeout
- 爱游戏ayx体育:503 Service Unavailable
- 爱游戏ayx体育:502 Bad Gateway
- 爱游戏ayx体育:501 Not Implemented
- 500 Internal Server Error
- 451 Unavailable For Legal Reasons
- 431 Request Header Fields Too Large
- Blog archive in space
- 爱游戏ayx体育:Browser tabs are probably the 🐻wrong💯 metaphor
- 430 Would Block
- 爱游戏ayx体育:429 Too Many Requests
- 428 Precondition Required
- Firefox gets BigInt, and bigi🔯nt-money gets 1.0 release
- 426 Upgrade Required
- 爱游戏ayx体育:425 Too Early
- 424 Failed Dependency
- 423 Locked
- 爱游戏ayx体育:422 Unprocessable Entity
- 爱游戏ayx体育:421 Misdirected Request
- 爱游戏ayx体育:420 Enhance your calm
- 418 I'm a teapot
- Using loops instead of higher order functions
- 417 Expectation Failed
- 416 Range Not Satisfiable
- 爱游戏ayx体育:An OAuth2 middleware for fetch()
- 415 Unsupported Media Type
- 爱游戏ayx体育:414 URI Too Long
- 413 Payload Too Large
- 412 Precondition Failed
- 爱游戏ayx体育:411 Length Required
- 410 Gone
- Ketting 2.5 release.
- 409 Conflict
- bigint-money: an NPM package for doing curr🥀ency math
- 408 Request Timeout
- 407 Proxy Authentication Required
- MySQL examples in Node.js
- 406 Not Acceptable
- 爱游戏ayx体育:One y🍃ear in S🍎an Francisco as a Software Engineer
2018
- 405 Method Not Allowed
- 爱游戏ayx体育:404 Not Found
- Floats and money
- 403 Forbidden
- I made a thing: csv-1-2-3
- 爱游戏ayx体育:402 Payment Required
- 401 Unauthorized
- 爱游戏ayx体育:400 Bad Request
- 爱游戏ayx体育:Google Trends for REST, GraphQL and RPC
- Which redirect do I choose?
- 308 Permanent Redirect
- 307 Temporary Redirect
- 306 Switch Proxy
- 爱游戏ayx体育:305 Use Proxy
- Ketting 2.3 release
- 304 Not Modified
- Http errors package for Typescript
- 303 See Other
- 爱游戏ayx体育:302 Found
- 301 Moved Permanently
- 爱游戏ayx体育:300 Multiple Choices
- Curveball - a TypeScript micro-framework
- 226 IM Used
- HTTP/2 Push for APIs
- 爱游戏ayx体育:Use 'let' and 'const' instead of 'var'
- 爱游戏ayx体育:208 Already Reported
- 爱游戏ayx体育:Building protocols with HTTP
- 207 Multi-Status
- 爱游戏ayx体育:206 Partial Content
- 205 Reset Content
- 爱游戏ayx体育:Firefox removes RSS support
- 爱游戏ayx体育:204 No Content
- 爱游戏ayx体育:203 Non-Authoritative Information
- 202 Accepted
- Bye Disqus, hello Webmention!
- 201 Created
- 200 OK
- 爱游戏ayx体育:103 Early Hints
- 爱游戏ayx体育:102 Processing
- 101 Switching Protocols
- 爱游戏ayx体育:100 Continue
- 爱游戏ayx体育:Series of posts on HTTP status codes
- 爱游戏ayx体育:Ketting 2.0 release
- Scheduling posts on Github pages with AWSꦯ lambda function🍷s
- WebDAV🌜ಞ features that might be useful for HTTP services.
- A HTTP structured-header parser for Javascript
- 爱游戏ayx体育:Ketting 1.0 release.
2017
- I work at Yelp now!
- A small update about sabre/dav and baikal maintenance𝐆.
- The problems with embedding in REST today and how⛎ it might be solved with HTTP/2
- 爱游戏ayx体育:After 10 years, I'm stopping my work on ꦉsabre/da📖v
2016
- 爱游戏ayx体育:Working with HAL in PUT requests
- Sl💮ides for my Sass talk at True North PHP. #tnphp16
- Switching to Google AMP and back
- Syntax highlighting in presentations
- 爱游戏ayx体育:sabre/event 4 released for PHP 7
- 爱游戏ayx体育:Go for PHP programmers
- 爱游戏ayx体育:Just married!
- 爱游戏ayx体育:REST is in the eye of the beholder
- PHP Sucks
- 爱游戏ayx体育:Blogging for 10 years!
- 爱游戏ayx体育:sabre/xml and repeating elements
- Why PHP-FIG matters
- Writing SQL that works on Postgre𝔉SQL, MySQL and SQLite
- 爱游戏ayx体育:WebDAV resource sharing: an overview
- 爱游戏ayx体育:Drop 'public' not 'var'!
- Npm p🍷ackage author revokes his packages, breaking tons of builds
- 爱游戏ayx体育:10 years on LinkedIn
- 爱游戏ayx体育:phpunit-bin - run phpunit from anywhere
- 爱游戏ayx体育:Strict typing in PHP 7 - poll results
- Poll: Will you be using strict typing with PHP
- Looking back at 2015 using Markov chains
2015
- Parsing Atom with sabre/xml
- 爱游戏ayx体育:Finding a DNS registrar
- PHP code in 2006 and 2016
- 爱游戏ayx体育:Now available via TLS and HTTP/2
- Switching to Linux
- ♈Promises 🌠& Generators: my slides from True North PHP 2015
- 爱游戏ayx体育:Going freelance
- 爱游戏ayx体育:Save memory by switching to generators
- sabre/dav 3.0 released!
- 爱游戏ayx体育:PSR-7 released today
- PHP's callable typehint too loose?
- An XML library for PHP you may not hate.
- PSR-7 is imminent, and here's my issues with it.
- Dropbox starts using P🌞OST, and why this is poor API design.
- The problem with password_hash()
- 爱游戏ayx体育:HTTP/2 finalized - a quick overview
- What's a link?
- 爱游戏ayx体育:A new URI handling library for PHP.
2014
- Testing your composer dependencies with prefer-♋lowest
- Ma🌟king the clipboard work between iTerm𒊎2, tmux, vim and OS X.
- 爱游戏ayx体育:sabre/dav 2.1 released.
- Why Google's CardDAV server isn't.
- Accessing protected properties from ꦅobjects that share the same ancestry.
- 爱游戏ayx体育:Promises in PHP
- 爱游戏ayx体育:HTTP/1.1 just got a major update.
- 爱游戏ayx体育:sabre/dav 2.0 released.
- Hawk Autentication considered harmful.
- New sabre/dav website launched!
- PHP 5.5.10 timezone handling changes
- 爱游戏ayx体育:Composer's bug now fixed
- Composer is⛦ wide open with a ma♔ssive security vulnerability
- fpassthru broken on OS X
- Google Code is dead.
- 爱游戏ayx体育:jCard is now a thing
- sabre/http 2.0 released
2013
- Replacing MyOpenID
- MySQL 5.6 BOOL behav♐ior w🦩hen using PDO and prepared statements
- Free Internet Explorer VM's on modern.ie
- If you care about privacy, don't use OS X mail
- On idempotence in HTTP
- Joining CalConnect
- Sabre VObject 3.1 released
- 爱游戏ayx体育:Following redirects with Curl in PHP.
- sabre-event, a simple ev🍌ent management library for 🌊PHP 5.4
- 爱游戏ayx体育:OS X 10.9 will ship with PHP 5.3
- Sabre VObject 3 released
- PHP 5.5.0 released!
- Escaping in iCalendar and vCard
- 爱游戏ayx体育:SabreDAV acquired by fruux
- A new blog!
2012
- Switching to PHP 5.4 on OS X
- 爱游戏ayx体育:SabreDAV 1.8 released (with namespaces!)
- Markdown output for PHPDocumentor2
- SabreDAV 1.7 released
- 爱游戏ayx体育:New open source project: Sabre VObject
- 爱游戏ayx体育:OAuth 2.0 and the Road to Hell
- IE10 and DNT-header update
- IE10 will enabl🍎e the D🌄NT header by default, and why I think this is a bad thing.
- 爱游戏ayx体育:New HTTP status codes
- New full-time gig at fruux
- 爱游戏ayx体育:Content Security Policy update
- Silex routing issues
- RFC search provider
2011
- My PHP Advent article
- 爱游戏ayx体育:PHP Includes file generator
- 爱游戏ayx体育:Moved SabreDAV to Github
- 爱游戏ayx体育:Timezone database closed down
- 爱游戏ayx体育:iconv_substr vs mbstring_substr
- 爱游戏ayx体育:Fake *.google.com SSL certificate in th๊e wild
- SabreDAV 1.5 released with CardDAV support
- 爱游戏ayx体育:Blogging for 5 years
- 爱游戏ayx体育:Numeric string comparison in PHP
- Escaping MySQL strings with🍸 no connection available
- Throwing in the🦹 towel with SabreAMF and Dropbox PHP l💞ib
- 爱游戏ayx体育:Speaking at the PHPBenelux march meetup
- Mozilla Documentation Center
- Speaking at DPC 2011
- 爱游戏ayx体育:SabreDAV 1.4.0-beta released
- Taking adva🐷ntage of PHP namespaces with older code
- Going to PHPBenelux
- My gripe with Prototype
2010
- 爱游戏ayx体育:iCalendar / vCard parser for PHP
- slowdeath - a simple denial of service atta🅺ck for most PHP-based servers
- 爱游戏ayx体育:Internat🦹ionalized domain name📖s, are you ready?
- 爱游戏ayx体育:SabreDAV 1.3.0 released
- Ubuntu has a new font
- Killing a dead ssh connection
- Evercookie: the cookie that just won't die
- 爱游戏ayx体育:Content Security Policy introduction
- 爱游戏ayx体育:New job at IBuildings
- Storing encrypted session information in a cookie
- 爱游戏ayx体育:What happened to HTTP authentication?
- Guidelines for generating XML
- 爱游戏ayx体育:Blogging for 4 years
- 爱游戏ayx体育:SabreD💎AV 1💜.2 released (with CalDAV support)
- 爱游戏ayx体育:When to escape your data
- 爱游戏ayx体育:Goodbye old Firefox profile
- Dropbox client library for PHP
- Mbstring Function Overloading Dont Use It
- 爱游戏ayx体育:Filesystem encoding and PHP
- 爱游戏ayx体育:HTML5 video: On✨2 VP8, H.264 and Ogg Theꩵora
- 爱游戏ayx体育:New habari-based blog
- 爱游戏ayx体育:basename() is locale-aware
- 爱游戏꧅ayx体育:SabreDAV 1.0.9 released & CalDAV news
- <𒉰input typ🌌e="email"> and Firefox Contacts Add-on
- 爱游戏ayx体育:Jumping ship! From Subꦗversion To Mercurial
- 爱游戏ayx体育:CalDAV server for PHP
- 爱游戏ayx体育:Published in PHP|Architect
- 爱游戏ayx体育:Unicode nearing 50% of the web
- A case for table-based design
- SabreDAV 1.0.4 released
- 爱游戏ayx体育:New open PEAR channels
- javascript's escape and encodeURI vs. PHP $_POST
2009
- OS/X WebDAV and Chunked Transfer Encoding
- South Korea's 'real-name verification law'
- Switching from Google to Bing
- 爱游戏ayx体育:Game of life with checkboxes
- SabreDAV reaches 1.0
- 爱游戏ayx体育:Comments are back!
- Deleted all comments by accident
- 爱游戏ayx体育:Upgrading to Snow Leopard adventures
- OS/X internet shar🎃ing defaults to 192.⭕168.2.* range.
- 爱游戏ayx体育:CalDAV - it's hard!
- SabreDAV 0.12
- Converting ICalendar to XML
- 爱游戏ayx体育:Is OpenID becoming over-engineered?
- 爱游戏ayx体育:SabreDAV 0.9
- 爱游戏ayx体育:Fla𒈔sh ExternalInterface - Debug checklist
- 爱游戏ayx体育:SabreAMF 1.3 release
- 爱游戏ayx体育:Goto in PHP 5.3
- Changing jobs
- PHP feature request: 'Throwable' interface
- Macbook LCD screen repair project
- SabreDAV 0.8
- 爱游戏ayx体育:Blogging for 3 years
- 爱游戏ayx体育:Baseball Chronicles
- Oracle to buy Sun
- Frame busting and clickjacking prevention
- 爱游戏ayx体育:rev="canonical&q♓uot; and url shortening
- 爱游戏ayx体育:I bring you: floep
- SabreDAV 0.7
- Indexing geo-data 3: In practice
- Indexing geo-data 2 : simple benchmark
- 爱游戏ayx体育:Indexing geo-data
- 爱游戏ayx体育:Dangers of mutual dependencies
- WebDAV-related RFC's
- Rogers takes over my browser
- 爱游戏ayx体育:SabreDAV 0.6
- Sea🀅rch engines 𝓰to support 'canonical urls', or: how to reinvent the wheel
- 爱游戏ayx体育:HTTP Bas♎ic and Digest authentication with PHP
- 爱游戏ayx体育:Creating streams from strings in PHP
- 爱游戏ayx体育:Apache speed and reverse proxies
- A case against pagers
- PHPUnit: A second look
- SabreDAV 0.5
- BBC drops microformats from programmes section.
- Devshed article about SQL Injection (or why security related a🍸rticles should only be ܫwritten by experienced people)
2008
- 爱游戏ayx体育:Geo standards on the web
- 爱游戏ayx体育:Gps trackers - any advice?
- Forking and MySQL connections
- 爱游戏ayx体育:MP4 fast-start woes
- Google Tech Talk about patents
- 爱游戏ayx体育:Zend Framework 1.7 features AMF support
- 爱游戏ayx体育:I'm programmer of the year!
- 爱游戏ayx体育:SabreDAV 0.4
- 爱游戏ayx体育:Sony Headphone Drama
- 爱游戏ayx体育:New on this blog: degraded experience💦 for IE6
- Flash Upload changes in Flash Player 10
- Solar Framework's master-slave db adapter
- 爱游戏ayx体育:SabreAMF 1.2
- 爱游戏ayx体育:Quick MySQL tip: add comments
- 爱游戏ayx体育:Lighttpd + PHP fastcgi woes
- Integrating with Zend's OpenID
- 爱游戏ayx体育:Upcoming features in PHP 5.3
- 爱游戏ayx体育:Subversion 1.5 for debian Etch
- 爱游戏ayx体育:Preventing XSS in Javascript strings
- 爱游戏ayx体育:Converting line-endings with ViM
- 爱游戏ayx体育:Google and Yahoo start indexing SWF's
- 爱游戏ayx体育:IE8 comprehensive protection
- SabreDAV 0.3
- 爱游戏ayx体育:Macbook LCD screen broken =(
- CNMA 08 Finalist
- 爱游戏ayx体育:Site Security Policy
- Gett🙈ing around "su : must be run from a terminal&quo𝐆t;
- SabreDAV 0.2
- 爱游戏ayx体育:Blogging for 2 years
- 爱游戏ayx体育:Flash opens up
- 爱游戏ayx体育:SabreDAV 0.1
- 爱游戏ayx体育:CDATA in xml.. bad idea?
- Usability, design 101
- WebDAV updates
- 爱游戏ayx体育:Silverlight 2 beta1 & IIS ne🍸w video features
- 爱游戏ayx体育:First glance on IE8
- Ray Ozzie's keynote
- Off to Vegas - Mix 08
- Traversing directories
- 爱游戏ayx体育:SabreAMF 1.1 release
- 爱游戏ayx体育:Strange call from Red Hat
- SabreAMF now on gentoo portage
- MySQL Stored Procedure in PHP gotcha
- 爱游戏ayx体育:MySQL crashes on triggers +꧑ insert dela𓆉yed
- Mime types.. when will people learn?
- 爱游戏ayx体育:Introduction to using SabreAMF with Flex
2007
- Adobe publishes AMF3 spec
- PHP WebDAV integration library
- Implementing WebDAV with PHP
- 爱游戏ayx体育:SabreAMF 1.0 release
- Open Source and copyright infringement
- PHP Quicksearch in firefox
- 爱游戏ayx体育:SabreAMF 1.0-beta4
- SabreAMF 1.0-beta3
- Flash Uploader on Mac not tꦅr🗹iggering onComplete event
- 爱游戏ayx体育:PHP shutdown sequence
- MemCached and MySQL UDFs
- 🌠爱游戏ayx体🐼育:OS/X terminal settings for linux programmers
- Leopard first impressions and problems
- 爱游戏ayx体育:HTML Purifier rocks!
- 爱游戏ayx体育:SabreAMF documentation
- 爱游戏ayx体育:SabreAMF 1.0-beta2
- 爱游戏ayx体育:SabreAMF 1.0-beta
- PHP's DateTime object and unix times..
- 爱游戏ayx体育:My Firefox extensions
- FFMpeg to support Nellymoser within the month?
- Flash to support H.264
- PHP: Arrays vs. Objects
- PHP and circular dependencies
- 爱游戏ayx体育:Future of SabreAMF
- 爱游戏ayx体育:PHPRPC and PHP frameworks
- PHP-RPC update 4
- FLVTool2 broken
- 爱游戏ayx体育:Firefox gets httpOnly cookies
- PHP-RPC update 3
- 爱游戏ayx体育:FiTC 2007 presentation video
- PHP namespaces
- 爱游戏ayx体育:PHP serializer 0.2
- 爱游戏ayx体育:The curse of major versions
- PHP serializer in userland code
- ext3: too many links!
- CSS "projection" media type
- PHP-RPC
- 爱游戏ayx体育:Blogging for 1 year
- Running cli editor from php
- 爱游戏ayx体育:Site back up!
- PHPUnit3 : first impressions
- MySQL recap and future storage engines
- PHP try..catch syntax weirdness
- FiTC 2007 rocked!
- Welcome CP/M user!
- 爱游戏ayx体育:Flash8's ExternalInterface and💖 Internet Explorer
- SabreAMF 0.7
- 爱游戏ayx体育:I got a chumby!
- 爱游戏ayx体育:Presentation links
- Speaking at FlashinTO v59.0
- Multi-file upload using SWFUpload
- Sharing sessions between html and flash
- 爱游戏ayx体育:I'll be speaking at Flash in t🍬he Can 2007
- Rotating an image, retaining the original size
- Keeping your home directory in subversion
- Grepping in your subversion working copies
- I fixed home and end on OS/X terminal!
- SabreAMF 0.6 -> upgrade recommended
- 爱游戏ayx体育:What bug-reporting tool do you use?
2006
- 爱游戏ayx体育:SabreAMF 0.5
- 爱游ജ戏ayx体育:SabreAMF featured on Adobe DevNet and 0.4 out
- Caching in PHP using the 🧸filesystem, APC and Memcached
- cron.daily scripts won't run
- 爱游戏ayx体育:Exploring OpenSearch
- SabreA🐼MF 0.3 released + more info on class mappings
- 爱游戏ayx体育:Funky new look
- IE 7 RC1 acid2 test
- 爱游戏ayx体育:Creating a Gopher server with🐎 PHP and InetD
- Creating an OpenID client for PHP
- On HttpOnly, Fire🥀fox-specific XSS and this years m🌞ajor Livejournal XSS attack
- 爱游戏ayx体育:SabreAMF 0.2 is here
- Enabling firefox 2.0 microsummaries
- 爱游戏ayx体育:FFMpeg supports FLV 1.1
- Decoding AMF3
- 爱游戏ayx体育:Whats up for SabreAMF 0.2
- 爱游戏ayx体育:wmode="transparent" in firefox
- 爱游戏ayx体育:Updated the meta-detector library (v0.2)
- 爱游戏ayx体育:Sourcecode for Meta detector
- Building Subversion from source on debian
- PHP Application Structure
- Added MetaWeblogAPI
- 爱游戏ayx体育:Coming soon.. Code section
- Auto detecting Blog Services
- Installing SabreAMF
- 爱游戏ayx体育:Added a tagcloud
- 爱游戏ayx体育:Added comment system
- A new blog