April 21, 2006

Happy Birthday to Myself

Filed under: blogging — jonEbird @ 5:21 pm

Today I turn 28 and I just received some well timed news from my place of work. Yesterday I was promoted to a Senior level administrator after three years of service.

I started with the company in June of 2000 while still attending Ohio State University and I worked as an intern for over three years when I was finally hired full time. Although my company is not huge, it is profitable and has been in the computer industry for over 30 years. I always thought I would have to move around to truly gain broad experience for my resume, but instead my company is remarkable in how much it changes. As a result, I get a stable working position while helping myself to some welcomed experience.

As an intern, I was doing development work in C/C++, sql & shell scripting primarily. I also had a side job at the University helping people out in the lab which helped fuel my continued interest in administration. When I decided to shift to an administration role, I spend quite a bit of time just reading books at the bookstore, buying some, checking some out from the library, but mostly just reading them while enjoying some coffee in the cafe. The career development goal was simple: learn as much as you can in the field of administration and the operating systems you are supporting. Now that I’ve seemingly achieved that goal, as seen by my promotion, what should my development goal be now?

What does a lead administrator do that a senior administrator just isn’t up for? I am sure I can read the official job description from my HR department, but the last time I looked it was severely out of date. The road from entry level or associate to Senior is one that is primarily technical, at least in my field, where you are merely demonstrating yourself as proficient in handling challenges, communicate well, work well with others and make your deadlines. The next level, I suspect, will require myself venturing out in the areas where nerds are not comfortable going.

A lead administrator is involved in budget discussions, aids in design decisions along with the architects, understands the business justifications and ramifications to technical decisions. Honestly, not all of these aspects are that appealing to me. Instead, when I have free time of my own to explore interesting, work related topics, it almost always involving some sort of programming. If I’m not creating some mini utility that I’ve really wanted to have, I’m reading some book or blog about programming, checking out the latest language war threads or even evaluating a popular language I’ve yet to mess around with.

My ideal job is one where I do not lose my root access, get to play with really cool technology, am looked to for technical and architectural decisions, and get to frequently write supporting programs to further our administration group, monitoring teams, database administrators and even the development staff. My latest development utility developed at work was to abstract all of our add-on program’s init scripts into a new schema in LDAP to be centralized administrated. The problem is I do not know of a official job that matches my 50/50 mix of administration and development.

In conclusion, I’m going to take it easy while celebrating my b-day and just revel in my promotion for a while. As for the coming years, I like to flirt with the idea of launching a new startup company. I can develop my own software and still handle the administration of our machines. Now if I could just grow the balls to do so…

April 18, 2006

getopts morphed into a gui

Filed under: linux,usability — jonEbird @ 10:02 pm

Lately I’ve found myself trying to further learn web technology and have been
evaluating various web frameworks. The motivation is to become much more
proficient with the most widely accepted user interface: The web browser.

Being a tradition Unix/Linux user, when I think of widely understood,
standardized interfaces, I’m going to be thinking of the good ‘ole shell. Just
run your unknown utility with a ‘-h’ or a ‘–help’ to get the impatience
user’s guide. That is really nice. A key piece of that consistency is how the options
are typically processed via the get-opts library.
Most people are familiar with the standard get-opts routines that are readily
available in your language of choice… from C to python. For those of you
unfamiliar with the get-opts routine, it is the library which makes all
command line options to a program standardized. That is why passing ‘-fp’ to
ps is the same as ‘-f -p’. What I admire about this library is
how successful it has been in unifying all sorts of utilities on Unix/Linux
for years. Heck, even tar came around after those early years!
So why not we take get-opts to the next level of convenience, usability and
power? I’ve already seen this trend start with python’s replacement of the
stock get-opts with href="">optparse.
Can you guess where I’m going with this?

What if we supplied a bit more information than merely whether or not an
option takes an argument or not, and then use that extra information for
maximum power and usability? Imagine developing your latest utility and testing via command line, but then turning around and invoking it via a web browser, GTK window, TK window, etc? And why not?

In the simplest of implementations, a web page could provide radio buttons for
toggling various options as well as text form for any additional options. I
envision a metamorphosis of information and interface options while being ease to
use. After we get the basics working, we can start implementing more advanced
features, such as: grouping like options together in sections, allowing the
user to toggle layout to alphabetical, search options, keep advanced options
hidden by default, remember the last options used and much more! Think of what that’ll do for the Linux newbies?

I can not currently
call myself a web developer and honestly I am not anxious to become one
either, yet I want to make some of my utilities available via the web. I’ll spend an equal amount of time exposing my utility via the web as I spent developing it in the first place! Are you
the same? Care to develop the next generation of get-opts?