robbyt.com
Hacking your software to overcome OS limitations
on 29-04-2007 09:12

During my various network admin tasks, I come across many features in popular software that implement interesting hacks to overcome some basic operating system limitations...

IANAPCS (I Am Not A Phd Computer Scientist)
When designing an application, I feel like the most efficient way to implement your feature base and ultimately solve your problem is to use a programing methodology that resembles a pyramid. That is, basic features and development exist at the top crust of the application, and at the application's foundation lyes the bulk of the features and heavy lifting.

One software application/standard that i love is maildir. This is a prime example of what i'm talking about when i say "pyramid" shaped software development. Maildir stands on the shoulders of your operating system's file system to store it's data. Maildir is a relatively new way to store email. Email has classically been stored in a single large file. The single large file method has several limitations such as: can only be accessed by one application at a time (thus is more difficult to backup), has a larger propensity to break due to it's "all eggs in one basket" design, and finally is a slower design because of the double-abstraction that occours in storing email indices's on top of a file system's indices's.

This brings us back to my original point. "Hacking" your software to overcome basic operating system limitations. If your file system is stable and nimble enough to efficiently parse thousands of tiny email files, why would you decide to write your own method of storing this information? Perhaps the default file system on your operating system can't be adapted and tuned due to it's closed nature?

Two prime examples of software hackery are IIS's Virtual Directories, and MS-SQL's SQL Agent Jobs.

Since VFS in Windows isn't nearly powerful or prominently deployed- IIS institutes "Virtual Directories" to allow admins to build custom website hierarchies. On an Apache/Linux server, the ability to dynamically mount directories and mount server shares, means that building website hierarchy is easier and more eloquent since base operating system tools are available to accomplish this task.

Another classic hack, the Microsoft SQL Agent's "SQL jobs" feature. This feature allows for periodic scheduling of SQL tasks. Lets say you need to rebuild an index every night at midnight-- very easy to schedule this using the MS-SQL Agent, but what if you want to do a nightly SQL backup dump, zip it, check it's consistency, email it off to a remote server, and then then burn it to a CD? You wouldn't be able to accomplish these tasks using a tool that only lets you schedule SQL commands. The SQL Agent's jobs feature exists because the windows "Scheduled Tasks" applet is poor. If the operating system had a powerful scheduling mechanism and the ability to easily script application tasks, then the SQL-only Jobs Agent wouldn't need to exist!
Published in : Computer Stuff, Rant

Users' Comments (0)

No comment posted

Add your comment



mXcomment 1.0.5 © 2007-2009 - visualclinic.fr
License Creative Commons - Some rights reserved
 
Next >