Hello!

This is the current homepage of James Pearson, known as Xiong Chiamiov across the internets.

2012-01-05

The Importance of Usability in Regards to Fire Fighting

For Christmas, my parents thoughtfully presented me with a copy of Web Operations, a book in which a number of well-known people in, well, the web operations field write about... web operations.

Anyways, one of the chapters contains an essay by Richard Cook entitled "How Complex Systems Fail", with commentary from John Allspaw. The thing that struck me the most out of those points was the comment that humans under stress make decicions that are often suboptimal; this struck home for me in relation to a recent experience.

An Anecdote

As part of my Christmas vacation, I stayed at my grandparents' house for a few days. They've lived there for some time, so the house has a few issues - like poor plumbing.

Before taking a shower... more

2011-12-11

IDEs are Uncohesive

I dislike IDEs. I enjoy being able to swap out pieces of my development toolchain, bit by bit, without having to wait for someone to write a new plugin. I am a grumpy Unix programmer.


This Fall quarter, I took a class about software design. Yes, yes, the course title is "Individual Software Development", but that's not at all what it was about. We discussed CRC cards, Design Patterns, Design-by-Contract, and all sorts of ways to make your programs better.

One of these was cohesion.

It's a generally accepted idea in software engineering that your programs should be cohesive; that is, each part should do one thing and those different parts should all work nicely together.

You might recognize this as one of the... more

2011-12-03

The Relationship Between Static Typing and Dependency Resolution

They seem similar, to me.

In a statically-typed language, you specify that whoever's using your code better give you an AbstractBullshitFactoryFactory or else there'll be hell to pay. Similarly, a packager for a package manager with dependency resolution will tell the package manager that dammit, you need cups installed or else things just won't work.

Contrast this to a dynamically-typed language (where you're responsible for whatever you pass in; if it doesn't work, that's your own damn fault) and a package manager that lets you install whatever package you want, whether or not it relies upon things you don't have.

Parallels can be drawn between Java's interfaces and package manager's provides clause.

Now, the big difference for me is that my package manager has a --nodeps option, while I'm... more



View all posts.