this is not a hall of shame. the intent is to awaken you to many of the peculiarities and weirdness of computers. hopefully, after reading these articles, you will have learned a lot and will embrace chaos.
this is not a hall of shame. the intent is to awaken you to many of the peculiarities and weirdness of computers. hopefully, after reading these articles, you will have learned a lot and will embrace chaos.
Slack uses PHP for most of its server-side application logic, which is an unusual choice these days. Why did we choose to build a new project in this language? Should you? Most programmers who have only casually used PHP know two things about it: that it is a bad language, which they would never use if…
Communication is key. So key, in fact, that I recently imagined a new feature that could facilitate communication with users of my three apps, Conjugar, Immigration, and RaceRunner.
A hilariously extensive summary of all things wrong with PHP that will take you on a journey from its origins through all the notoriously bad design decisions leading to the **abomination** that is now the most widely used web programming language.
PHP isn't the same old crappy language it was ten years ago
HealthKit, I'm looking at you
My 5c
PHP version 1.0 was announced on 8 June 1995. It quickly became a popular server-side scripting language for websites. Here's why.
Staff engineer and technical product leader. Writing about JavaScript runtimes, compilers, developer tooling, and engineering leadership.
After nearly five years of running a self-hosted WordPress blog, I recently migrated it to Squarespace. It took a while to reach the decision, but I'm very happy and am looking forward to writing more frequently. But why move?
The title of this post is clearly a reference to the classic article PHP a fractal of bad design. I’m not saying Java is as bad as that, but that it has its ...
Note: if you are viewing this shortly after it’s published and somehow don’t want to be spoiled on Mystery Hunt, make sure this spoiler formatting shows up: this text should be spoilered; if it doesn’t, try shift-refreshing. (There are Correct Ways to fix this, but I’m too lazy to do them. Sorry.) Well, we did it. ✈✈✈ Galactic Trendsetters ✈✈✈ ran an MIT Mystery Hunt. Somehow, it slipped my mind until trying to write the 2020 year-end post that I’d probably want to write a post on all this. In fact, there was one major project that I started in 2019, but that I didn’t think of mentioning in my 2019 year-end post because it wasn’t ready to be announced at that time, and that I almost forgot that I had never mentioned. But this post is a pretty good place to announce it. Planning Mystery Hunt is a massive year-long endeavor. I didn’t have any leadership or otherwise high-responsibility roles, which made sense because I was busy writing a masters thesis for the first four months of Mystery Hunt planning. Because of that, and because I know many many other people on our team have written and will be writing blog posts (Rahul’s post, Nathan’s post, CJ’s post, maybe more to come?) I will focus on the things I did specifically. (So there is minimal discussion of the theme, overall organization, or big decisions like our COVID-19 response; I think the linked posts cover these well already.) Puzzle-Writing Software One part I did largely have “ownership” of, and that I sank a lot of time into, was maintaining our software for writing puzzles — the website where authors submitted puzzle ideas and drafts, testsolvers tested puzzles, and editors tracked and discussed the statuses of all the puzzles. This role was largely a continuation of me owning the same component for Galactic Puzzle Hunt since 2018, which itself grew out of the comparative advantage of having worked on it a little when writing with Random Fish for the 2015 MIT Mystery Hunt. There is some life lesson about s
Well, it’s been over a week, which is a long time for blog posts to be delayed after the event they’re documenting in probably all of the world except my blog. So. I guess this post should start with a bit of background. I’ve been puzzlehunting for… wow, three and a half years now. I was introduced to puzzlehunts from AoPS, when some fellow members got together a team for CiSRA 2011, and I think I’ve participated to some degree in every known internet Australian puzzlehunt since. But as for my experience with the MIT Mystery Hunt in particular, I sort of hunted with a decidedly uncompetitive AoPS team in 2012 (I think we solved one puzzle exactly), but my serious hunting career began when dzaefn recruited me into the Random team (then Random Thymes) for the 2013 hunt (and I did blog obliquely about it). We didn’t win (and I actually didn’t participate that much because I was traveling with family) but the next year (as One Fish Two Fish Random Fish Blue Fish (1f-2f-17f-255f (I am evidently in a parentheses mood today because as you’ve probably noticed, the amount and depth of parentheses in this sentence are positively alarming (lol)))) we won. And I do have a half-written post about that which will never get posted (and I also didn’t participate that much, because my family was moving that weekend) but okay, let’s just drop any semblance of chronological coherence on this blog and dump a short version of the list of puzzles and parts towards which I contributed solving, as I wrote them down one year ago:
Science is about revealing objective truth, for example the orbit of Earth around the Sun or the ultimate interchangeability of matter and energy. Kurt Krebsbach has argued that “computer science”, despite having the word “science” in its name, is not...
Content warning: this is directed purely at programmers. At work we're deciding what configuration file format to use for a new piece of s...
A boutique web development studio. Est. 2007
The Life of a Completely Blind Programmer in the Netherlands
Until today, my website was fragmented across a number of static pages and two WordPress instances. To simplify my life, I decided to unify them into one content management system instead of...
A lot of programming languages are “general purpose” languages, but most of them have a sweet spot if not a specific problem domain. If you program for long enough and you’re willing to try new things, your favorite tool for specific jobs will likely get replaced. I used to do all my scripting and web work with Perl. Eventually PHP displaced the web duties, then when I learned Ruby, I effectively dropped both of them. It’s not that I’ve got anything against Perl (PHP, we have issues), but Ruby hits all the scripting sweet spots for me. The story on the server side in general has been a bit bumpier as of late. While I’ve always done server side work, in the past few years my focus has drifted to large distributed systems rather than stand-alone servers, and I’ve been grasping for the best language to scratch that itch. In the 90’s virtually all my server side work was in C/C++. In the 2000s I moved, reluctantly, to Java. While I disliked Java’s restrictions and resource usage, it was easier to build and deploy, more portable, and less error prone. The result was it was easier and faster to build correct systems. That said, Java is not my favorite place to be. Java is abound with boilerplate and repetition. When I see projects like Spring, AspectJ, and cglib, I don’t see handy libraries as much as I see people trying to fix problems that exist in the language itself.
Video game development, hacking, and debugging. Brought to you by BlipJoy!
The PHP core functions are a complete mess. With PHP 8 on the horizon, and more competition than ever in the programming ecosystem, this might be a last chan...
Deciphering Glyph, the blog of Glyph Lefkowitz.
An analogy occurred to me this evening as I was thinking about programming language design: Choosing good keywords and function names is like picking a good font; the ideas conveyed may be the same, but a change can drastically impact legibility and enjoyment of use. PHP does a spectacular job of providing a bad example. It’s like the Comic Sans of programming languages. Now there are many reasons why PHP is not a good language—I’d like to investigate this particular aspect of its design here briefly.
If that title left you feeling a bit indignant, this post is just for you. After consulting with my Nth company running a content site and watching them struggle to design, develop, and maintain their own CMS, I think it's time to admit this: I'm not better than WordPress. None