Tuesday, September 30, 2008

Bleeding Edge

I’m writing this for my benefit. (Maybe other people will benefit from it, too.)

One task I have at work is to develop a Rails Web application for doing biological sample tracking and management. (I’ve written a little bit about it before.)

There was a changeset that showed up in unstable Rails (called “Edge Rails” in Rails-developer parlance) that was (is) quite seductive: hydration of associations in data model objects from input hashes. More on that feature here.

I decided to move the application to Edge Rails to take advantage of this functionality, as it would allow me to not expend mental effort necessary to write my own, similar functionality.

Things were good for a while, but then some unrelated-yet-compounding incidents occurred:

  • The mass-assignment feature was removed from Edge Rails. This wasn’t good. Though I could always go back and patch the feature back in, it meant that my application was now locked to a specific revision of the Rails framework, with no clear upgrade path available.
  • In production mode, the application uses an authorization system based around an Oracle database. We use a Rails plugin to access this authorization system. This plugin depends on a Ruby library called composite_primary_keys, which allows ActiveRecord, Ruby on Rails’ object-relational mapper, to make use of database tables having more than one primary key for a primary key set. Both the latest stable and latest development version of composite_primary_keys have subtle bugs with the revision of Edge Rails at which my application is currently stuck.
  • The latest version of the authorization system Rails plugin contains some important fixes which are directly relevant to my application. However, I cannot upgrade due to the composite_primary_keys problem.

Long story short: I’m going to have to rip out the code that assumed the presence of a general mass-assignment facility and write my own. This is something I’m going to have to do concurrently with new feature work. So, basically, I just gave myself more work to do because I made a dumb decision.

The moral? Well, you’ve probably heard it before. Don’t use unstable code in production systems.

I know, I know. You know that. I thought I knew that.

But there’s a certain level of trust that you place in some codebases that are known for producing regular high-quality releases, even if they don’t tag them as official releases. The Ruby on Rails codebase is one of those codebases: I’ve used non-official releases from them before, in production systems, and have gotten away with it.

But I only just got away with it.

Lesson learnt.

NOTE: I don’t think this sort of thing is really all that unique to Rails, or even Web development, at all. I’ve worked on projects ranging from Windows kernel drivers to enterprisey Web apps, and compatibility/integration headaches were the one thing I could always count on. Really, you’d think I would have learned this lesson earlier.

But new features! They’re so alluring!

Yeah, I gotta learn to suppress that impulse better.

Sunday, September 28, 2008

Reconstruction

Put a couple of picture galleries back up:

Anime Central 2008
Chicago stuff after ACen 2008

These galleries were generated with a tool that I’m tenatively calling “skillet”. It’s a dead-simple directory-to-gallery generator. The only thing that differentiates it from the ten gazillion other such programs out there is that it does what I want it to do in very little code.

These galleries are not the final format. The existing gallery template doesn’t work in Safari (or presumaably any other WebKit-based browser), so I need to fix that problem. Any other issues: let me know.

I’ve trimmed out a lot of pictures, so these galleries consist of the pictures that I don’t outright hate. Anyone who’d like the complete set of either gallery (or, for that matter, any of my old LJ galleries): just drop me a line.

Obviously, I’m not going to give you the set if I don’t know you, so if I can’t independently verify your identity, supply a shibboleth.

Wednesday, September 24, 2008

That Was More Than Ten Lies

http://photon.ninjawedding.org/awa14

I relented on my “these all suck and I’m not going to post them” thought, and posted a few AWA photos online — basically, the ones without major technical errors. (That is, of course, different from saying that they’re good.)
No descriptions on any of them yet; my quick gallery script doesn’t yet extract or format the necessary EXIF data.

My favorite one is probably http://photon.ninjawedding.org/awa14/images/_MG_7044.jpg.

Tuesday, September 23, 2008

In The Abstract

One trillion dollars of taxpayer money to bail out a bunch of companies I’ve never heard of.

Meanwhile, I still have money in my accounts, I still have debts to pay off, and my investments are still trending downward. Business as usual.

The media must be manufacturing this “crisis”.
They’re the only entity I’ve seen who actually seem to talk about any of this.

Monday, September 22, 2008

Trying A New Hobby

Anyone in the Chicago, Illinois area reading this —

I’d like to try something different on Saturdays: combining Geohashing and on-location photography.

I want to see more of Illinois, and this weekend’s AWA reminded me how rusty skills get when you don’t use them. (Read: all photos from this weekend sucked and I’m not posting any of them.)
Combine that with an upcoming photo assignment and you get certain disaster — unless corrective action is taken.

I don’t really have much money to offer models, although we can work some sort of compensation. I’m looking for someone who doesn’t mind working with an obviously n00b photography student, and is just as willing to give suggestions as they are willing to follow suggestions.

Let me know if you’re interested, and we can work out schedule and protocol. (Not every geohashed location is accessible: for example, the geohashed location for 2008-09-08 is in Lake Michigan. So that’ll have to be worked out.)

Wednesday, September 17, 2008

Nobody Grows Out of Gear Lust

Canon EOS 5D Mark II: 21MP and HD movies

Canon have all but blatantly admitted to the existence of this thing for the past couple of weeks, so it’s nice to see the product made official.

It’d make a nice complement to my Digital Rebel XTi. Could keep my telephoto on the XTi and put my workhorse lens on this new monstrosity.

Contrary to the title of this post, this will be the first and last time you’ll see me go consumerist on this blog. Really.

Monday, September 15, 2008

Tonight

Went to see the Chris Buehrle Band and The Reign of Kindo.

Chris Buehrle Band:

The Reign of Kindo:

Good stuff, both of them. Jay is gushing.

Sorry about the grainy photos. I’m still not comfortable with shooting with flashes or any sort of photographer-set light in situations in which I am not an official photographer, so I did as best I could by going to maximum aperture and cranking the ISO. It’s good enough for Web work.

(Though I suppose one of the newer Canon cameras with their ridiculous ISO range might also be some help. Yes, I know Nikon was here before Canon, but I can’t afford to dump my gear and start over. Lock-in, proprietary systems, etc.)

Sunday, September 14, 2008

Another Definition of Social Engineering

http://mtv2.mtv.com/overdrive/?id=1592703&vid=265829

(To readers not in the USA: Unfortunately, you won’t be able to receive that stream of bytes without going through a US proxy. MTV, like all major media outlets, makes use of obnoxious DRM. You might find this page helpful.)

More information about this television program is available at http://en.wikipedia.org/wiki/Made_(TV_series).

This is the first MTV program I’ve watched in over a decade. I found it because it intersected with my interests (anime clubs, etc), and at first I wasn’t sure which I hated more: MTV or whom I perceived as the “obnoxious” anime fans. (It’s funny that I’d even be bothered by such a thing, considering I did AMVs and am currently doing work for Anime Central 2009, but, hey, you know.)

But I’ve been thinking about it, and — well, as much as I hate to say that MTV gave me anything to think about, the program provided me with an opportunity for a small bit of introspection.

I think what bothers me most about this show is

  1. how blatantly it manufactures and manipulates people to be something, regardless of whether or not that person “really” wanted to be changed like that, and
  2. how young people just seem to take that in stride as if it’s the norm. (Is it? I really don’t know. I’m years out of the social trends and cool kids’ circles.)

I think that personal change is a road that everyone has to walk alone, and watching people be dragged along that road is just immensely disturbing. I’m finding it difficult to articulate just why I think that’s the case. I’m sure it has something to do with my intense dislike of marketers.

I was going to write a lot more here about my own experience in middle and high school (somewhere back in the 1996-2002 range), but I’m not going to do so because, on reflection, I don’t think it’d add anything. Hit me up in the comments if you’d like to hear my self-serving “I was an outcast and proud of it” story.

Speaking of being cool: now you know that I’m not totally above all that social stuff. Does that make me _un_cool? (Yeah, probably.)

Monday, September 08, 2008

Probably Late On The Bandwagon, But Whatever

For the past week or so I’ve been working through the problem sets of Project Euler. It’s a pretty enjoyable way to dust off some of those discrete mathematics/algorithm analysis/plain-old-logic skills that I haven’t really had to use in a year or so of business software development. As a plus, it’s also helping me strengthen my knowledge of Haskell.

One particularly nice aspect of Project Euler is that it doesn’t provide the solutions or discussion for you until you correctly solve the problem. After that, full discussion threads are available, which I’ve found to be a great way to pick up the insights of others — especially Those Tricks That You Never Thought Of But Seem Obvious In Retrospect. (I have to admit that it’s also nice to have my own insights validated. :P)

Project Euler doesn’t require any particular programming language; indeed, it doesn’t require that you use a digital computer at all. I just use Haskell because I think it’s cool, and you all know how much of a trend-slave I can be. That said, most of the problems will benefit from having a high-powered computational device; but, hey, if you’re Riemann, Gauss, or, uh, Euler, I guess you can work through these with just your brain.

Check it out. I’m “trythil” on there.

Final note: I’d like to see some solutions to these problems in languages which are totally unsuitable but nevertheless powerful enough.
This problem, for example, seems like it would lend itself to a fun visual representation.
(Anyone want to write a program up in MEL ?)

Sunday, September 07, 2008

Hey, It's My Old Band

“Old band” meaning “the marching band I was in when I was in high school”.

I think the uniforms are the ones that we got my senior year, though I can’t be sure of that. (I personally only ever wore the new uniforms once, for our performance in the Parade of Lights.)
Colorguard flags are completely unrecognizable to me. The hats, however, are still the same basic design, though now they seem to have huge feathers in them. Not sure if that’s a show-specific thing, or if it’s a permanent part of the uniform.

No, I can’t say whether or not they did a good job in 2007. I’ve been out of the marching band circuit too long to notice these things anymore. Definitely a huge improvement over my years, though. (And it even looks like they finally have sufficient funding! :P)

Wednesday, September 03, 2008

Anime Central 2009 Site Is Live

http://www.acen.org

Big up to Julie and Jenny for text and graphic work.

I mention this because there’s a few CSS getups in there that I’m particularly fond of. See the source for details.

So this is kind of a geeky way of saying “yay it’s done”, but my focus was on markup cleanup and getting the CSS rules to play nice, so I guess I can be happy about that. This was also my first time using CSS rules to accomplish something that one could also pull off using image-slice-based-trickery, so I’m pleased with that result.