Tag Archives: review

Reflection on Reflections from Damaged Life

Final Serenity

A newspaper obituary for a businessman once contained the words: “The breadth of his conscience vied with the kindness of his heart.” The blunder committed by the bereaved in the elevated language reserved for such purposes, the inadvertent admission that the kind-hearted deceased had lacked a conscience, expedites the funeral procession by the shortest route to the land of truth. If a man of of advanced years is praised for his exceptional serenity, his life can be assumed to comprise a succession of infamies. He has rid himself of the habit of getting excited. Breadth of conscience is passed off as magnanimity, all-forgiving because all-too-understanding. The quid pro quo between one’s own guilt and that of others, is resolved in favor of whoever has come off best. After so long a life one quite loses the capacity to distinguish who has done what harm to whom. In the abstract conception of universal wrong, all concrete responsibility vanishes. The blackguard presents himself as a victim of injustice: if only you knew, young man, what life is like. But those conspicuous midway through life by an exceptional kindness are usually drawing advances on such serenity. He who is not malign does not live serenely but with a peculiarly chaste hardness and intolerance. Lacking appropriate objects, his love can scarcely express itself except by hatred for the inappropriate, in which admittedly he comes to resemble what he hates. The bourgeois, however, is tolerant. His love of people as they are stems from his hatred of what they might be.

Yes.

JavaScript Patterns

Web applications these days, am I right? With all their user experience and fancy A/B tests. It’s all thanks to JavaScript, or, more correctly, browsers and developers alike finally biting the bullet, putting a paper bag over the language’s proverbial head, and getting some good use out of it.

Analogies aside, JavaScript is not so great, but the experts have found ways to reclaim their software engineering integrity. Buried under metric tonnes of “Top 43 jQuery Plugins and Extensions for the Colorblind”, you might actually find such a beacon of knowledge. One of those beacons is a new book, JavaScript Patterns, by Stoyan Stefanov.

My copy is already getting dog ears.

A little bit of personal background, a couple years back I was starting to feel pretty comfortable with jQuery and even started writing my own extensions (not for the colorblind). I was also reading a new book, JavaScript: The Good Parts, by Douglas Crockford. Even though I strongly recommend it, JS: TGP raised more issues than it clarified. Sure, don’t use this and that part of JavaScript, but is that all there is, just a minefield of features, waiting to trip me up? Furthermore, many of those antipatterns he described really only became problematic in larger projects. Shouldn’t I be more concerned about confidently architecting and building those larger projects? I was unable to convince myself that JavaScript was a safe platform on which a very small team could build a stable product. (I even have an ActionScript 3 book from those days.)

Now, end of 2010, enter JavaScript Patterns. It aims to provide insight and best practices for teams who want to create a JavaScript product that won’t be hell to develop and maintain. And for the most part, it’s successful. Stoyan is an engineer at Yahoo, working on YUI, and just off the top of my head, he’s also written Object-Oriented JavaScript and a chapter in High-Performance JavaScript.

Pros

  1. Really does deliver on holistic, well-justified JavaScript programming techniques that embrace the language.
  2. Assumes the appropriate amount of JavaScript and CS knowledge, not too much, not too little.
  3. Focuses mainly on JavaScript, not too much on the specifics of external libraries like jQuery. Libraries these days are big and numerous; a dedicated book for those would probably be more helpful. This one is library-agnostic and might even stay applicable longer.
  4. Adequate treatment of server-side JavaScript. By which I mean, almost none. Similar to the library issue above, server-side JavaScript is still JavaScript. It’s also very volatile and most of the server-side-specific stuff is not unique to JavaScript.

Cons

  1. Could give a little more focus to external libraries. I know I just got done saying that it was a good thing that it didn’t, but face it, almost everyone uses some external library. I think there’s a lot of general advice that one could give to allow developers to extract more from their library of choice while loosening any coupling that may occur along the way.
  2. Lulls a bit in Chapter 6, Code Reuse.
  3. The quote on the back of the book is probably the weakest bit.

    “Stoyan has written the go-to guide for JavaScript developers working on large-scale web applications.”

    Don’t get me wrong, it’s definitely my go-to guide (outside of good old Google), but the quote is from Ryan Grove, YUI Engineer. No offense to Ryan, but if you write a sweet book the publisher should try to hook you up with a quote from someone a little more prestigious than your own coworker.

And that’s all I have to say about that. For the time being, 8.5/10, highly recommended. It’s not very long and it really sets some precedents on which to build. For more study, I recommend you check out YUI Theater and follow some blogs. Ajaxian is great and all, but the real in-depth stuff comes out of projects and project contributors, check out Kangax’s blog (of Prototype fame) and Tim Caswell’s How to Node.

Hit and Run: Windows Mobile Emergency

I had to call the police recently. A combination of laziness and problem urgency led to me dialing 911 on my Windows Mobile-powered cell phone.

When you dial 911, Windows mobile flips the FUCK out. Despite the Vibrate setting, my phone begins a very loud and very noticeable series of beeps as it enters “Emergency Mode”. In this mode, you cannot dial any numbers that are not emergency numbers, apparently. What programmer was sitting in front of Visual Studio, mashing away, thinking, “I’m saving lives here guys, with these beeps, these loud beeps.” Woe to the bank teller or kidnappee who tries to get wise. Here’s some wisdom: anything not Microsoft.

Sent from my iPhone


^ not really; do you think I’m made of money and data plans? Also, the thing that pushed me over the edge in writing this post is the fact that my phone has not rung since this. I just miss the call. Yes, I restarted it several times.

Hit and Run: Avatar

It’s Fern Gully plus Dances with Wolves plus Halo (for the space marines). Yes, even in 3D, not much monumental other than the cost and the advertising effort. You would think with a multi-hundred-million dollar budget they could afford a custom font, or at least a nicer font than Papyrus (which was dead the day they invented ecards).

Obviously I don’t speak for the masses; 83% on Rotten Tomatoes and a ton of Facebook statuses indicate that people are pretty satisfied. Put simply, I spend too much time with computers to be impressed by this middling, overmarketed effort. What excites my brain and arpeggios on my heartstrings are personal efforts, far ahead of their time, like this one, Vol Libre.

Not the Last Airbender

Vol Libre plus Papyrus = Cooler than Avatar

Made in 1980 by one man, the current Chief Scientist of Pixar, but then just a faceless engineer for Boeing working on a passion in his spare time. Talk about unobtainium.

Hit and Run: Django? More like DjangNO.

You bring shame to the letters D and J.
I’m not sure what deadlines these web developers have, but I wish someone would have given them some flex time when writing Django. Don’t get me wrong, I’m pretty happy to be learning a new technology for work. But, after a week of working with it, Django seems like all the bad stuff of Rails mixed with all the bad stuff of PHP, with a few extra configuration files thrown in for good measure. Django is verbose, command-line driven, has a highly suspect templating language (Separate if and ifequal statements? forloop.counter? How unintuitive are we gonna get?), fragile, and a nuisance to set up for production. Did I mention the excess configuration files?

Oh well, it’s better than straight Python for web development, provided I don’t lose too much time to studying its quirks. If I had more options, I’d go Ruby on Rails or CodeIgniter/Kohana, all of which seem to have clearer, more consistent web development philosophies and workflows. Maybe I’ll make a Mahmoudjango or something. Need to work on that name.

Three Books on Web Design

3 design booksIf college taught me anything, it’s that college can’t teach you everything. In fact, in my experience, it completely overlooks some pretty important material. Despite the ubiquitous and astoundingly revolutionary nature of the web, especially in the context of computers, my CS curriculum didn’t even include a passing reference to web design. Considering I strongly considered graphic design as a major, one might understand my disappointment.

Background

I’ve technically been designing websites since 6th grade. Oh yes, by 10th grade I could have told you all about framesets, Dreamweaver, tables, and spacer.gif. Thankfully none of those sites are up anymore and we can all put that age behind us. The polish of Web 2.0 is all around us now.
A few years ago I had that first observation: site after site seemed to bring new degrees of attractiveness and usability. Yet, there was an underlying degree of uniformity that made it seem like the respective designers had all read some book I had yet to discover. More recently (maybe 6 months back), I decided that long before the web, let alone blog posts titled “620 Web 2.0 links to turn you into a Web 2.0 guru”, there was design. That was the inspiration behind my search for literature.

Motivation

Like I alluded to above, I’ve got a respectable understanding of code principles, so I was looking for intermediate to advanced level books. And if I was looking for a code reference I would look online for something more up-to-date and complete. Also, due to the fast-paced nature of web technologies, I looked for books that 1) were recently published and 2) emphasized design techniques with modern web technologies. These two got me these three:

  1. Web Standards Solutions: The Markup and Style HandbookDan Cederholm
  2. Five Simple Steps: A Practical Guide to Designing for the WebMark Boulton
  3. Transcending CSS: The Fine Art of Web DesignAndy Clark

1. Web Standards Solutions: The Markup and Style Handbook3.5/5

Pros:

  • Clean, reads well
  • Good overview of the basics

Cons:

  • Code-centric (somewhat to be expected, given the title)
  • Proscribes against some coding practices that should be common sense for any web developer conscious of coding standards. Spends too long on obvious examples of bad web development.
  • After reading the other books, it’s clear that it could have gone a lot farther in some design principles
  • Focuses on accessibility, but not enough on how design can affect accessibility for the average user
  • Despite being new, it didn’t cover much that wasn’t in Transcending CSS (see below), a book from 2007

Published just a few months ago, this book ended up being a very short and smooth read. It had a heavy code emphasis, but did very concisely explain a large chunk of standards used in modern websites. Clean explanations and just the right amount of background for someone looking for a quick primer on modern code solutions. Still, the focus is purely on web standards and accessibility; very little design input here.

2. Transcending CSS: The Fine Art of Web Design4.5/5

Pros:

  • Most rounded, comprehensive
  • Design-centric, but with a good measure of advanced coding advice
  • Has held stood the test of time very well
  • High measure of rereadability (plus great references to other designers)

Cons:

  • Examples + code not accessible online
  • Some parts of the book felt disjoint
  • Missing out on a few newer technologies (barely worth mentioning)

This is the oldest of the books listed, published all the way back in 2007. Suffice to say it’s aged well. This might be attributed to the theme of the book satisfying my design over code criterion perfectly. It strikes a very strong balance between design instruction and actual code. The book makes a very solid attempt at complete workflow explanation and covers a surprisingly relevant range of topics for its age.
It did strike me as a bit denser reading than the aforementioned Web Standards book, partially due to the design emphasis and partially seemingly due to the less explicit writing style, in my opinion. The format is a bit nonstandard, as well; it’s a square book and a good 1/3rd of it is somewhat aesthetically refreshing photography and topical illustration. Overall, in the face of its shortcomings, if you need a design guide to the web, I highly recommend this still-relevant and balanced read.

Designing for the Web

3. Five Simple Steps: A Practical Guide to Designing for the Web4.5/5

Pros:

  • Current (name drops: Twitter and Blueprint CSS framework)
  • Very engaging
  • Design-centric
  • Beautiful book (physically)
  • Covers business side of design

Cons:

  • Pricey, low US availability
  • Despite a whole unit dedicated to typography, could have used more font case studies/examples.
  • Could use better copy editing (a few spelling errors).
  • No colophon or index

Definitely the book I was most excited about. I read the inspiring Five Simple Steps blog posts about grid design a while back and was enthralled to hear a book of similar nature was in the works. Mark Boulton, the author, also edited the Transcending CSS book above. His entire philosophy behind writing the book revolves around design over code.
Of course I should also mention that the book still isn’t available in the US, but you can order from the Five Simple Steps website to get a copy from the UK. Also exciting: Mark plans to write/publish two more “Practical Guide” books in the same vein.

Conclusion

Anyway, all three of these books have their merits. I can strongly recommend the second two to everyone with experience and a desire to grow as a web designer. I would very mildly recommend the first to someone looking for lighter, more novice reading (it’s not purely beginner’s material, but it’s not very advanced either). There are probably better books out there.
Lastly, I’d like to thank my work for giving me the opportunity to learn from these books on their dime. I really want to emphasize that asking your manager for reading material relevant to your work both gets you a free book and shows your desire to grow as an employee. From the other angle, it is your workplace’s responsibility to keep their workforce informed regarding current technologies. A few books here and there are a pittance in comparison to the knowledge and inspiration they can bring.

SILT: Stuff I Learned Today

This is my dad wearing a pair of shades I found.

This is my dad wearing a pair of shades I found.

This is the first in an indefinite series of catch-all blogposts. Now that school is up and my schedule is more regular I think I can make a few more minutes a day to log some findings and post some links. Also, I’m thinking that by presenting a more innocuous task (a short, general post, as opposed to a long, targeted one), I might find myself sowing the seeds of expanded posts.

Also, sometimes I feel silly calling up friends and telling them each individually about cool junk when I know they’re all subscribed to this baby right here. Content will range from factoids to news to mini-rants to Linux and beyond. So:

  • Peep Show Season 6 has started. I might need to cache up the whole season before I start, it’s such dark goodness. 9.5/10 on imdb with 5,200+ votes? Intense.
  • I found out a way for a Linux machine to dynamically get a hostname on a Microsoft Active Directory network that isn’t set up to update hostnames via DHCP. This was ridiculously hard and I strongly suggest you contact me if you ever run into this issue. It involves kerberos and this one-off script.
  • I’m watching Kate Humble’s 4-part series of Middle Eastern travel, The Frankincense Trail. It’s from the BBC and it’s not too bad. It probably is a bit too frankincense-centric to be honest, what with her hauling her own little load of frankincense everywhere and asking everyone whether their people use or used frankincense. The most interesting tidbit I picked up is that apparently some parts if not all of Israel enforce some crazy Shabbat rules. For instance, you can’t use (technically be directly involved in the use of) anything electrical. You can ride an elevator, but you can’t press the buttons (it stops on all floors). You can open a fridge and grab something, but you have to tape the light sensor down beforehand. All this because it’s the ‘day of rest’. I’m wondering how universally this stuff is implemented.
  • Last, but certainly not least, Oyama is back up at the makuro.org address. My $30 Time Warner lets me upload at like 300kb/s so please be courteous and only max out my connection at night or during the workday. Also, I’ll know who my true friends are based on who logs in first (only my true friends use RSS and FTP).

Well, here’s hoping that wasn’t too painful, because I’m planning on learning a lot of stuff and posting about it. And then, this series of blog posts, like its namesake (silt), will provide me and my offspring a fertile farmland on which to raise agricultural goods.