15th Dec, 2021
These rules didn't used to exist, because they didn't need to exist, because web design used to not go out of it's way to kneecap the basic functionality of a person using a website.
But here we are.
So here are the new rules of web design for the hell that exists.
15th Dec, 2021
16th Dec, 2020
These are articles that I've kept around and reread over the years. I love me a readable deep dive, and this list if full of them,
31st Jul, 2020
When Fernando Corbató accepted the Turning Award for, among other things, inventing the computer password, he described my new favorite bug.
20th Jul, 2020
Should you use full variable names, or abbreviated? The answer: doesn't matter.
16th Jul, 2020
Who uses UML? The answer may surprise you! Unless you've spent any time working as a programmer, then the answer will not surprise you. Not at all.
14th Jul, 2020
C.A.R. Hoare thinks program languages should primarily support design and documentation, with programming being a distant third.
5th Mar, 2020
It took me too long to realize that the paper I just read was directly relevant to me. It was about teams. I was on a team. Why didn't I get that?
26th Feb, 2020
Google Source has tremendous uptime. They manage it by having a super-flexible schema, and code that takes advantage of it.
20th Feb, 2020
Use two choices. It's easy to get hugely better performance by moving from one choice to two choices. It's very hard to do better.
12th Feb, 2020
Forming. Storming. Norming. Performing. Every writer who writes about teams all reference this one (and only this one) article, and those four stages. It's foundational, and it rhymes.
27th Jan, 2020
In 1984 Microsoft decided to port MacWord to Windows. They expected it would take about one year. It did not. It took five. In one of the many, many great documents unearthed by the Comes v. Microsoft antitrust lawsuit is this great postmortem of what went wrong.
20th Dec, 2019
I'm doing this project from the top-down. It's totally unlike how I normally work. But it's also my first time leading a team, which is also unlike how I normally work, and has different needs.
10th Dec, 2019
I've always wanted to be able to put simple diagrams in this blog without going through the trouble of graphically creating them in LucidChart or Balsamiq. I just want to type in text, and have it convert to a chart.
3rd Dec, 2019
17th Oct, 2019
Here's the inevitable followup to my last post about things I was right about. This is a list of things that I was convinced about when I was younger, but I now I realize I was quite wrong.
8th Oct, 2019
Some bloggers have strong opinions and are just right all the damn time. Like Joel Spolskey, and Jason Fried. I admire them, but I've never been that guy, or been that confident in my opinions. But damnit, some of my oldest opinions hold up.
After nearly two decades of professional programming, I've looked back and thought about the opinions I originally had. Here are the ones that I'm convinced I was always right about.
7th Aug, 2019
The TLDR is simple: if you have a disappearing/reappearing bug, just run it again.
22nd Jul, 2019
17th Jul, 2019
25 years ago, a simple question was asked about storage, access times, and economics, and the result was a simple paper. Every ten-ish years since then, an updated paper was written to answer the same question. It's not a terribly good measure of complexity, but it is enlightening.
15th Jul, 2019
This paper reads like an old man yelling at clouds, but then, half way through, he simply writes a better cloud. (This metaphor is pretty awkward given cloud computing.)
11th Jul, 2019
Algol 68 is the Cronus of programming languages. Cronus is the titan who fathered Zeus, an important character in the myth, but vastly overshadowed by his own progeny. Algol 68 was an important language, and had a fascinating history. This post is a combination history, lesson, and filled with quotes from people who were there.
10th Jul, 2019
When there are failures at a small level, like a deployment goes wrong, there's a meeting, and a blameless post-mortem written is shared publicly. Normally this happens quickly, while everyone's memories are still fresh.
When entires projects and movements fail, the opposite happens. There are no public post-mortems, and no meetings. A couple people leave the company, some blame is privately assigned, and the rumor mill goes into overdrive. At this level, a failure can mean a derailed career.
18th Jun, 2019
I went to dig into some of the sources cited in Peopleware (see my previous two blog posts), and I fell in love with this 1984 article on Japan's software industry and Hitachi Software Engineering. It's a look into a company that feels like peak-era IBM: much bureaucracy and even more success.
13th Jun, 2019
Timothy Lister and Tom DeMarco didn't include a bibliography in Peopleware, so I swept through the book and produced one for curious readers.
12th Jun, 2019
I just finished reading that old software classic, Peopleware. The first chapter is "Somewhere Today, a Project Is Failing," and hooked me immediately.
4th Jun, 2019
Mark Richards runs the Developer to Architect website, and puts out a video every Monday. He has helpfully categorized them. I watched all the videos in the "Soft Skills" category and took notes.
7th May, 2019
I've been reading about failures in distributed computing. A lot of it is thanks to Vaidehi Joshii's Year of Distributed Computing at https://medium.com/@vaidehijoshi . Here's small summary of what I've learned.
3rd Apr, 2019
Here are my notes for week 2 of my product management education. This week is all about metrics, goals, and strategy, with a dive into Pirate and Heart metrics,
19th Mar, 2019
I've started an online Product Management class because, I dunno, I like learning new, non-coding things related to my job. I'll be posting all my notes here.
21st Feb, 2019
In the aftermath of GE's price fixing scandal, we learned that GE executives had a culture of winking while they told subordinates not to break the law. Sometimes. Each salesperson had to interpret the word and the wink, and the occasional lack thereof, according to their own internal rules. Effective communication was, effectively, absent.
19th Feb, 2019
NEDD is a one day conference in Cambridge. It's an inexpensive way to learn about the cutting edge of database research. These are my notes on each speaker.
15th Jan, 2019
I'm not in management, but damned if I don't love a good management paper. Today it's Frederick Herzberg's "One More Time: How Do You Motivate Employees," where I learn to not kick an employee.
11th Dec, 2018
There is one scene that gets referenced several times in Rapid Development by Steve McConnell as an example of a hugely productive team.
19th Nov, 2018
Joel Spolsky's writing and opinions are evergreen, and his 2004 book The Best of Software Writing shows it.
2nd Nov, 2018
An 1984 paper that models the time it takes to complete a project, and show what happens when you pull are up against bad deadlines. The answer will not surprise you!
31st Oct, 2018
18th Oct, 2018
excerpt from How Complex Systems Fail
18th Oct, 2018
For my own reference, here are notes I took while reading Google's book on SRE.
17th Jul, 2018
If you're responsible for a large, legacy code base, here's my hint to you: delete your failing tests.
12th Jul, 2018
A small trick to make "before" a bit more powerful, a bit more useful, and a bit more dangerous.
12th Dec, 2017
Eric Brewer and Daniel Abadi expand our notions of what the real trade-offs are in the CAP theorem.
12th Dec, 2017
An scientist's idea of literary criticism is different from most people's. It involves math.
21st Mar, 2017
Chuck Jones inspires UI designers in this classic paper from Ungar and Change.
21st Mar, 2017
In 1991 Ungar and Smith wrote about the experimental programming language SELF, and in it described duck typing, callng it behaviorism
10th Aug, 2016
The great benefit of knowing the command-line is being able to write scripts to analyze scripts, all in ~1 minute.
2nd Aug, 2016
How I write CSS.
27th Jul, 2016
I hand crafted the CSS for site. It's still a work in progress. I learned that while semantic tags are good for HTML, they're not that great for CSS.
26th Jul, 2016
After a lifetime of programming and compsci education, I've had some issues learning with Python. It screws me up in small ways. It's a wonderful language, but dear god I wish these things were different.
21st Jul, 2016
20th Jul, 2016
19th Jul, 2016
The greatest problem in learning object oriented design is in the toy problems. The object oriented solution never looks better than the regular solution.
13th Jul, 2016
Learn the right way to write a program the wrong way
10th Jul, 2016
This paper is considered seminal in Object Oriented Design, but Parnas never mentions objects, and his example program is described in procedural programming terms. The lessons in this paper are applicable to *all* programming methodologies. It's just about smart design decisions.
7th Jul, 2016
You can't trust Ken Thompson. He'll prove it.
30th Jun, 2016