Work | Jul. 7, 2009

Seriously IPB, what the fuck is wrong with you? And three of the scrollbars are nested around that tiny sliver of editable text, otherwise known as the thing I’m actually trying to use.

Seriously, FIVE fucking scrollbars?

And this doesn’t even address the ridiculousness of keeping your PHP/HTML templates in a database. Shit, if only there were a way to save PHP or HTML in a file somehow!

How to choose the right CMS

Work | Jan. 26, 2009

I love that they mention a list of what CMSs to avoid and it contains one item.

via Web Designer Depot

The Drupal community’s answer to everything

Work | Jan. 16, 2009

Q: I have a problem with (theming/listing nodes/placing blocks/anything) because of the limited design of Drupal.

A: Have you tried using Views?

Fix to Drupal to allow NOW() and CURRENT_TIMESTAMP in new tables

Work | Jan. 8, 2009

This is why I hate CMS software — their incessant, misguided need to over-abstract every little detail. Take for example Drupal’s system for including additional tables into your existing MySQL database. Drupal would have you create a needlessly complex multidimensional array of all the elements in your new data table schema, created with a separate function and called by another custom Drupal function. Because I guess including the actual SQL to create a table was just too fucking simple.

So here’s Drupal’s way of doing it. I hope you like nested parens!

Read more »

Now I’m learning IP.Board. Trying to.

Work | Dec. 1, 2008

Unless I’m reading it wrong, IP.Board seems to be an odd mix of over-abstracted PHP objects mixed with simplistic late-90s web design. Where else are you going to load an object of class APIs so you can then instantiate another object and use one of its class methods just to add a <td> tag to your one-cell table of non-tabulated data? Especially when you should have been using a <div> in the first place?

As for IP.Board’s interaction with the database, what does $this->ipsclass->DB->build_and_exec_query( array( ... ) ) do that mysql_query() doesn’t? (Apart from confuse me?)

Their code is some of the most meticulously written, poorly-designed programming in I can recall seeing. IP.Board combines the precision and complexity of the space shuttle with all the grace of a rickety shopping cart.

CMS Madness

Work | Nov. 19, 2008

Unix gets a bad rap for having an abundance of many needless flavors when — since they all use the same OS — most of the time you’re getting a choice of vanilla, french vanilla, and fat-free vanilla.

But worse than that is the proliferation of more varieties of content management systems then there has any reason to be. Why should I feel limited to just Drupal or Joomla, when there’s tons of suck to go around? If you’re building a new website and would much rather learn some other programmer’s (or worse, a committee of programmers) byzantine system of content management, visit to view this utterly baffling plethora.

node_teaser is bass_ackwards

Work | Nov. 12, 2008

After getting all apoplectic at one commenter foolish enough to support Joomla, I hasten to add that Drupal is no walk in the park either. I’m having a little issue with node_teaser in particular. Rather than use strrpos to search for the last occurrence of a character in a string, Drupal instead reverses the entire string and searches for a backwards string using strpos.

foreach ($points as $point => $offset) {
// The teaser is already reversed, but the break point isn't.
$rpos = strpos($reversed, strrev($point));
if ($rpos !== FALSE) {
$min_rpos = min($rpos + $offset, $min_rpos);

I am dumbfounded. I’m also writing my own node_teaser now, one that ignores HTML tags when determining teaser length, so your teaser isn’t comprised mostly of invisible <a href=””> code that does nothing for the reader.

UPDATE: A better programmer than myself informed me that — counter-intuitive though it may be — it’s actually faster in PHP to reverse a string and search a reversed piece of text through it than to use strrpos to search from back to front. Personally, I don’t see how it’s more efficient to use two functions to search for a string instead of one, and to keep two blocks of text in memory instead of one, but I’m going to take his word for it.

Joomla vs. Drupal

Work | Nov. 12, 2008

It’s been my experience that content management systems are each their own special flavor of bad, in particular because they all seem to do a lot of things except the one thing you absolutely need them to do.

As a programmer, I find it a little backwards that I learned PHP and MySQL so I can create my own applications, but with a CMS I am not using those skills — instead I spend most of my time figuring out someone else’s idea of how to build applications and trying to see if what they wrote will work for me.

Awhile ago, CMS Report did a comparison of Joomla vs. Drupal, and as a survivor of building websites with Joomla, I was interested to hear whether there was anything good to say about it.

Drupal fails on such elements as Shopping Carts, Event Calendars, Document Management, and Themes. The majority of these items are functions or features which are considered lacking in the Drupal CMS. Regarding the other CMS, Joomla fails to deliver in such elements as user permission, content management, multi-site management, and standard’s compliance. Joomla fails in elements that are more architecture centric.

Let me go over that again: Joomla fails at content management. For a content management system, that’s pretty bad.

I could have worked for Apple

Work | Oct. 27, 2008

They flew me up from LA to interview for a job doing QA on Final Cut. I landed at SJC and my mom drove me the rest of the way to the Apple campus for my morning interview. While I was waiting in the lobby, in the suit my sister helped me pick out a few days before, I witnessed a sandaled Steve Jobs pass by as he walked through to talk to the receptionist. Like he’s just going about his day. I could be working for this man, for this company!

I met the department manager and he took me on a tour through the offices where they were working on Final Cut. I was so excited to be there, but when I saw that the people were playing foosball and riding around on Razor scooters… it started to just feel like any other dot-com. And I began to hesitate.

Maybe it was because I saw myself living in the guest room of my parent’s house, getting up at 6am to take the train to Cupertino, doing a day’s work, then coming back to little ol’ Hollister to sit at home for a few hours before going to bed in time for work the next day. It felt like a prison sentence.

Because the idea of getting my own place in/near San Jose, meeting new friends, and making the most of moving to a new city (that I just happened to grow up in) just didn’t seem like something I could do. That’s why I didn’t work at Apple. This was in 1999.

Then Tim got really quiet and just kind of stared at his keyboard.

The hardest part of a job interview

Work | Sep. 24, 2008


Next Page »