Read two blog posts yesterday that I thought I’d mention.
Code’s Worst Enemy (Stevey’s Blog Rants): A monster of a rant (5222 words!), mainly talking about Java code’s natural tendency to be bloated and that programmers should strive for brevity of code. Apparently Steve’s been coding a game in Java for a hobby, and the code base got huge and unmanageable. Now he’s thinking of converting the game to Rhino (Javascript running on the JVM) partly because of Javascript’s immense expressive power, something that I’ve been ranting about for quite some time now. Can’t wait for Rhino on Rails!
Bootstrap Design for Geek Powered Startups: Not a regular reader of Tony’s … stumbled on the post from del.icio.us. He’s basically highlighting factors to think about when making your own startup. Although everything that he highlights is true, two of his suggestion
“a UI designer should be baked into your organization as early as possible”
and
“usability testing should be baked into your organization from day one”
are really important because startups usually don’t pay much attention to them.
Although I think UI designers are very rare in Pakistan, I still think that in house training can go a long way in making a ‘graphics designer’ into a ‘Web UI designer’. First of course, we have to get rid of the misconception that both are one and the same, a belief that’s practically ubiquitous in Pakistan.
Sadly, I don’t see Usability Testing happening anytime soon in our industry. If there’s any ISV or startup out there that does work in Usability, and you’re in Pakistan, speak up!
The 2007 installment of Microsoft’s premiere student technology competition, the Imagine Cup (check out the ad @ YouTube), will be drawing to a close later this year in August when finalists for the Software Design invitational congregate in Seoul, South Korea to determine who will take home the Cup.
The team representing Pakistan this year in the Software Design category hails from LUMS. The 4 man Team AVRiL’s (Automated Video Recording of Lectures) project is about “promoting distance learning programs by reducing the cost of recording lecture videos by removing the human element from the process”. (team profile)
Check out their promo on YouTube:
They’re up against 55 other finalists in the Software Design invitational, so they’ve got their work cut out. Last I talked to one of the team members, they were working on adding the final bells and whistles, as the main core is mostly complete. I’ve had the opportunity of working with a couple of these guys in the past at LUMS; with Yahya during the CodinGuru 2006 and a couple of courses and met Tayyab during Softech ‘06, and I think they’re the best bunch from the 2007 batch at LUMS to be representing Pakistan at the Finals.
I wonder if they’ve got bigger plans for their project after the Imagine Cup. It would be great if they work with LUMS on a customized solution for the campus. During my Senior year at LUMS, I had a course that was having its classes recorded, and having an automated system would be a lot better (and cheaper). Maybe LUMS could provide lecture videos and course material at subsidized rates (or free) to online users (something along the lines of OCW) or provide this material to other schools and colleges for people who can’t afford that quality of education, or maybe strike a partnership with VU or AIOU. I hope team AVRiL can shed some light on their plans.
A couple of weeks ago, me and a few friends were discussing the best way of storing a tree or any recursive structure in a database (no no, we aren’t perpetual geeks we were discussing some possible interview questions that we might fact at job application interviews).
The solution we decided on was a simple on, that we’ll have one table to house all the nodes, with a Parent_Node_FK attribute, which will specify the parent of each node. The root node will ofcoarse have a null entry. Traversing/Retrieving the tree from the database in this case would require recursive calls to a function that will get one node at a time, which is obviously not scalable for extremely large trees.
So I sat online to find a more elegant solution. I found a nice one in the article Storing Hierarchical Data in a Database by Gijs Van Tulder, which uses a modified preorder traversal of the tree and stores numbers in the database allocated to each node during the preorder traversal. This reduces the retrieval of the tree from the database to just a single query, which gets all the nodes in one go. You just have to do simple postprocessing to get the actual structure of the tree.A much better approach imo.