Sentimental Minions

The theatricalities of the humble bookmark

  • a

  • Archives

  • Tweetions

  • Advertisements

Archive for the ‘System design’ Category

Good bill/cheque design: Reliance Energy

Posted by Avadhut on 30 October 2008

I had never known that bills could look this good. Reliance has really scored a big one this time. It may seem trivial to a lot of people, but phone and electricity bills, at least in India, are in a dire need of some major overhauling. They are stupendously cryptic, and even knowing how much you have to pay and by when is a task requiring substantial digging-through-the-text. It is almost as if these utilities companies are trying to obfuscate our own information from us.

Take for example the MTNL bill, it is divided into numerous sections, lots of details, even the amount to pay is printed in red. And despite the plethora of numbers/sections it contains, most of the information printed does not make any sense to a layman—forget “the bill as a value add.”

The Vodafone bill does come close to being slightly more than useful. The language has a friendly tone, there are helpful visual cues all over the place, and I just love the cute little graphics all over the bill—it makes it seem like Vodafone is saying “Here’s your bill; we hope you like us enough to pay us” as opposed to “Oye! The bill’s here. Pay up.”

I thought that is as far as one could go with a bill. But then, today I saw the Reliance Bill stuck on my refrigerator. And, I think this is the only time I’d say this about a bill, it looked gorgeous. It made me—who usually just prefers to pay bills online—stand up, take notice, and actually blog about it.

It served on so many levels:
1. Told me who the bill is for.
2. What the amount is.
3. Told me what period was the bill for.
4. Gave me additional information about my electricity usage.

And all this without even flipping the first page. I mean, almost all bills take care of #1 and #2. But not in a manner that Reliance does. Take a look:

This is the first page. Flipping it over displays the more detailed conservatively-styled bill.

This is the first page. Flipping it over displays the more detailed conservatively-styled bill.

And #3 is something that most bills confuse me with. With their start periods and end periods and bill cycles. I pay bills on a monthly basis, and therefore I’d like to know which “month” the bill is for, not which “billing cycle.”

And what can I say about #4:

Detailed usage over past months.

Detailed usage over past months.

This is just good ole’ “Ha ha! Don’t act like your are not impressed.” I mean, my past usage as a small bar graph. Who’d have thought about it. This small section alone more helpful than MTNL’s entire bill.

It is all so well laid out, and epitomises the word “quick.” Almost the perfect bill for a city with barely enough time.

If we go ahead and deconstruct the bill, though, several things can be used for developing billing information screens for Web apps:

1. The font: Extremely important in setting the tone of the bill. I’d strongly recommend a san/semi-san serif font.
2. The language: Friendly. Informal yet professional. Helpful and approachable.
3. Layout: Clean. Uncluttered. One of the most important things here, which most designers overlook, is line-spacing.
4. Information: In stead of printing several sections on the same page, design a bill as “layers” that can be “peeled” off. The first layer could present the most basic information regarding the amount, due date, etc. Peeling off the first layer could present an itemized bill, and so on. This will also make your bill extremely interactive.

And lastly, deliver what your service promises even through your bill. Don’t let poor billing hamper an otherwise customer-friendly offering.


Posted in Bill/cheque design, Social media, System design, Visual sick | 1 Comment »

Weapons of choice: ZendCore, etc.

Posted by Avadhut on 1 October 2008

Most of my development happens in Drupal, PHP, jQuery, MySQL, PostGreSQL, and all good things associated. Until recently, I used to swear by separate PHP and Apache installations. But managing updates for everything involved—Apache, PHP, jQuery, Drupal—separately had become a real bitch: the innumerable backups, migrations, and restorations.

So when Drupal 6 was released, I was thrilled with the new Update module. And it was time I found a server-PHP stack that could support production-scale deployments. Enter ZendCore. The installer not only allows you to use Zend’s own PHP (with FastCGI) and Apache Web Server (ZendCoreApache) but also plays nice with your existing installations. Buy a subscription with Zend, and they will take care of updating Apache and PHP for you too. It also allows you to download and install database servers of your choice—MySQL, DB2, etc.

ZendCore also comes bundled with Zend Framework, which provides an extremely good set of PHP functionalities. I have only gotten as far as Lucene search, but things look very promising.

Drupal runs like a peach on this stack, which is most important for me at the moment, and it supports my other custom Web-apps developed using the Zend framework.

I am almost tempted to shell out on ZendPlatform, which is an enormously feature-rich Web-app server. It handles PHP, Java, and HTTP monitoring, supports session clustering (yummy!), and comes with a really cool Download Server that frees up Apache of monotonous tasks involving huge downloads so that it can handle some of the more serious stuff.

However, I still could not get myself to switch to Zend Studio. Or maybe I just refuse to let go of my beloved Komodo IDE. What? What was that? Dreamweaver? Who? The one that pisses memory all over the place? Yeah I dumped it with DotNetNuke. 😛

The worst excuse I have heard anyone give me for still sticking to Dreamweaver is the Code/Design view. Please, it is a joke. Any standards-aware Web designer will tell you that. It still gloats about its Table layout like it were the 90s. Besides, how long does it take to write a line of CSS, alt+tab your way to your browser, and press F5? Also, what’s with the no-Linux-option? Not even a binary? What is taking Adobe so long? Hurry the fuck up. And don’t even get me started with the abyssmal FTP editing. I have actually shut my PC mid-day and gone home coz’ of it. Free FTP programs have no issues handling huge files. Then why does it have to be such a task for a $500 software to do it? If my server supports long sessions, then so should Dreamweaver. To top it all off, it is way overpriced. Did you see the CS3 release—not only is it godforsakenly bloated (it was consuming 20% CPU just idling), it also expects me to pay Adobe almost three times more than what it would charge my American friends.

The thing I like the most about Zend is that none of the components are prone to lock-ins. Use whichever tool you want, it will still behave with the etiquette expected out of good-natured software. Want to use ZendCore’s PHP with your own Apache deployment? It’s OK. ZendCore won’t hold any grudges. Some other people do need to take a lesson from here. Can you hear me Microsoft? Just because I use Exchange does not mean that I would want to use Office Communication Server. Let me connect to other software!

So, the list would proceed as follows:

  • Webserver-PHP stack: ZendCore
  • PHP frameworks: Zend Framework, Drupal (I use it as one :))
  • Javascript: jQuery, Prototype
  • IDE: Komodo
  • Database server: MySQL, MSSQL, PostGreSQL
  • Mail server: Apache James
  • OS: Does it even matter?

Posted in Drupal, Foo, System design, Zend, ZendCore-Drupal | Leave a Comment »

Folklore—the way things ought to be

Posted by Avadhut on 31 October 2007

It helps. Coming across reads like this, for not long ago we worked on such archaic systems. Reminded me of the time when I downloaded my first version of the Linux Kernel on a dial-up connection—took me a whole of 2 days! Question marks? Yesterday, I came across, which is a sort of journal, dating back to the 1980s, documenting the early days of the development of the first Macintosh—the Apple before Apple, days when 7-inch displays were norm, 256 × 256 bitmapped array buffers were looked upon with envy, and a monochromatic screen producing a whole series of black and white “hello”s elicited a “whoa!” from even Steve Jobs. Literally. Ironically, I came across this series of posts while reading a review on Ars Technica of Apple’s newest offering—the Leopard. And I couldn’t help but think about how far they, we, have come. From the days when a Macintosh producing a sinusoidal waveform on an oscilloscope would be enough to conclude that “the display works brilliantly” to the current norm in Apple OS’es where a reflection is added to just about everything—from the dock icons to the font. And, sometimes, even that is not enough—the poor dock icons are now subjected to both a reflection and a transperency effect. But then that’s an issue for a different post, and if you are looking for the definitive review on the Leopard, I would strongly recommend the above-mentioned Ars Technica review by John Siracusa.

I just wanted to share these excerpts from the stories at folklore (such an aptly named site). If you ever find yourself yearning for some inspiration on one of those hot October afternoons when your head seems to be a basket full of bad wiring and a coffee just won’t do it, go over to and see how things ought to be. Seriously. You will be amazed at what a well-written journal entry about some guys with a solder gun in one hand and a pineapple pizza in the other working to get an image of Uncle Scrooge to display on a monitor with just 192 scan lines will do to you :-):

In May of 1981, Steve complained that our offices didn’t seem lively enough, and gave me permission to buy a portable stereo system for the office at Apple’s expense. Burrell and I ran out and bought a silver, cassette-based boom box right away, before he could change his mind. After that we usually played cassette tapes at night or on the weekends when there was nobody around that it would bother.
—Andey Hertzfeld (January 1981)

When I started on the project in February 1981, I was given Jef’s old desk in the office next to Bud’s. Desk by desk, Texaco Towers began to fill up, as more team members were recruited, like Collette Askeland to lay out the PC boards, or Ed Riddle to work on the keyboard hardware. When George Crow started, there wasn’t an office available for him, so he set up a table in the common foyer and began the analog board design there.
—Andey Hertzfeld (January 1981)

After a while, surviving the first few game levels was pretty easy, unless you had been up all night programming or something. The Defender machine was probably a pretty good objective measure of one’s current mental capacity. “Gee, I can’t even get through level 2! I guess it’s time to get some sleep.” Better to put in a bad performance on the defender game than mess up the current programming task, or start down the wrong path on some hardware design.
—Donn Denman (September 1983)

This one’s a bit longer than the others, but it is absolutely a must read. It’s about this arcade game called “Defender,” where…Just read on

The goal of Defender is to defend your humans from abduction by aliens. The evil green aliens drop down from the top of the screen and randomly pick up your humans, and try to bring them back up to the top of the screen. You control a ship and have to shoot the aliens, either before they grab a human, or during their rise up to the top of the screen. If an alien makes it to the top with a human, they consume him and become a vicious mutant, which attacks very aggressively. You start the game with ten humans, and if the last one dies, all the aliens become mutants, and they swarm in on your ship from all sides.

One day Burrell started doing something radical. Andy came by my cube and said “You’ve got to come see what Burrell’s doing with Defender.” “How can you innovate with a video game?” I wondered. I’d seen Burrell and Andy innovate on all kinds of things, but I couldn’t image how he could somehow step outside the box of a video game—the machine controlled the flow and dictated the goals. How could you gain some control in that environment?

We started up a new competition, and when Burrell’s turn came up, he did something that stunned me. He immediately shot all his humans! This was completely against the goal of the game! He didn’t even go after the aliens, and when he shot the last human, they all turned to mutants and attacked him from all sides. He glanced in my direction with a grin on his face and said “Make a mess, clean it up!” and proceeded to dodge the swarm of angry mutants noisily chasing after him. “Burrell’s not going to win this competition” I said to myself. “He’s not going to last long with a screen full of mutants!”

Often a single mutant is enough to kill you. They move quicker, and with a different pace and pattern than the other aliens, so the normal evasive techniques don’t work very well. Mutants move so quickly over small distances that they seem to just jump on top of you. Your ship is faster over the longer term, so you have to outrun them, establishing a gap, and only then do you have enough room to safely turn and fire at them.

When Burrell’s next turn came up I was surprised by how long his ship survived. He’d already developed a technique for dealing with a whole mass of mutants. He would circle around them again and again, and that would gather them into a densely clumped swarm. Then, while circling, he’d fire a burst pattern across the whole swarm, not needing to aim at individuals. He was doing really well, cutting through the swarm like the Grim Reaper’s scythe. Burrell was no longer attacking individual mutants, instead he was treating the whole swarm as one big target.

Burrell may have lost that game and the next few, but it wasn’t too long before he was really mastering the machine. Instead of avoiding the tough situations, he’d immediately create them, and immediately start learning how to handle the worst situation imaginable. Pretty soon he would routinely handle anything the machine could throw at him.

I was beginning to see how Burrell could be so successful with everything he does.
—Don Denman (September 1983)

You know those language translation widgets on Web sites and PC applications that we all take for granted—something we now refer to as localizations wherein we select the type of language (English US, English UK, Afrikaans, etc.) and our application’s menus, buttons, etc. reflect our language choices? Something that allows a software app developed in the US be marketed and sold with little or no technical modifications in the Netherlands? The following blurb describes how Bruce Horn started it all back in 1981 while writing a search program for the first Macintosh. Beautiful:

Alan Kay always said that any problem in Computer Science could be solved by adding another level of indirection. I thought that if we could refer to the program *data* separately and indirectly—the strings, bitmaps, window and dialog layouts, and other non-code information—we could make it possible for this information to be changed by people who would not have access to the source code. These people—translators, artists, and designers—would be able to change the text strings (to translate menu items from English to Norwegian, for example), modify the application and document icons, and replace graphical elements in the program, if the program were written such that these items were factored out of the application.

The ability to easily localize applications and the operating system would be novel, especially in the early 1980s. None of the systems that I had used, including Smalltalk, had this ability; it was just assumed that everybody using the system would be English-speaking, and that other countries would be building their own systems. If the Mac were able to be released in other countries, with menus, icons, dialogs, dates, and sorting orders translated to different languages, it would make a big improvement in our potential market share. I can’t even remember when I started to recognize that the localization ability was necessary; it was a meme (probably started by Joanna Hoffman) that infected us all in the Mac group.
—Bruce Horn (December 1981)

Posted in Apple, Folklore, Foo, Macintosh, Nostalgia, Rainbow, System design | 3 Comments »

Quotes about design

Posted by Avadhut on 11 September 2007

A few days ago, I came across a collection of design-related quotes over at Below, a couple of my favorites:

In the beginning we must simplify the subject, thus unavoidably falsifying it, and later we must sophisticate away the falsely simple beginning.


Walking on water and developing software from a specification are easy if both are frozen.

-Edward V Berard

You can only put as much intelligence in a system as was in the design engineer to begin with.

-Peter Orme

When one has no character, one has to apply a method.

-Albert Camus

A creative man is motivated by the desire to achieve, not by the desire to beat others.

-Ayn Rand

Man has such a predilection for systems and abstract deductions that he is ready to distort the truth intentionally, he is ready to deny the evidence of his senses only to justify his logic.

-Fyodor Dostoevsky

If you cannot grok the overall structure of a program while taking a shower, you are not ready to code it.

-Richard Pattis

Designers must do two seemingly contradictory things at the same time: They must design for perfection, and they must design as though errors are inevitable. And they must do the second without compromising the first.

-Bob Colwell

The two main design principles of the NeXT machine appear to be revenge and spite.

-Don Lancaster

Very often, people confuse simple with simplistic. The nuance is lost on most.

-Clement Mok

It requires a very unusual mind to undertake the analysis of the obvious.

-Alfred North Whitehead

Anyone who conducts an argument by appealing to authority is not using his intelligence; he is just using his memory.

-Leonardo da Vinci

Much of the Web is like an anthill built by ants on LSD.

-Jakob Nielsen

Form follows function – that has been misunderstood. Form and function should be one, joined in a spiritual union.

-Frank Lloyd Wright

Quality isn’t something you lay on top of subjects and objects like tinsel on a Christmas tree.

-Robert Pirsig

Crash programs fail because they are based on the theory that with nine women pregnant, you can get a baby a month.

-Wernher von Braun

Out of intense complexities, emerge intense simplicities.

-Winston Churchill

Posted in Office, Sarcasm, System design | 5 Comments »