Unix (AT&T System V R4, GNU/Linux, HP-UX, Sun Solaris)
I got a good amount of exposure to SysV R4 in my University's Computer Center. That's where I learnt most of the elementary stuff (C, Shell Scripting, Telnetting, FTP, SMTP - yeah, I once sent a mail to OVERDRIVE magazine via telnet to port 25 and it got published too!)
There was a time when I was naive and I thought Unix only had console interface and Linux = GUI(Unix). That whipped up the interest but I got even more interested when I actually saw Linux working. The compilers, editors and stuff that mattered felt much better than the old SVR4. Gnome and Enlightenment (I started with Red Hat 6.0) were so much more sophisticated than Windows 98.
I have considerable experience in Linux System Administration, much of it coming after I started administering a Linux Server in my workplace, all by myself. I'm now running a Web Server (Apache), Secure Shell (SSH), a Database Server (PostgreSQL) and an Application Server (JBoss) on the machine. I've also gained some knowledge on Linux Security and Network Security in general.
We've got Sun Solaris 5.5 at my workplace and there was a cool HP-UX lab in our college with 17" color monitors and Internet, so that's where I got familiarity with these two Unices.
Microsoft Windows 9x/NT/2000
Been there, done that, broke free. I started using computers with SVR4 systems in AMU and, frankly speaking, I never liked the idea of a predominantly GUI based system. Especially one that would ask whether you really wanted to hammer your nail (since it could hurt you) but would kill you so often without any warning!
Uhoh, there I go ranting again. Well, I did all that a person usually does on Windows - MS Office, Turbo C++ (only under extreme compulsion), VC++ etc. Now I use it only for some work required in the office (not much, really).
Programming and Scripting Languages
C: I have done quite a lot of programming in C - most of it in college. The largest C program I wrote could find out the number of trays required in a distillation tower (for a specific separation task), design the trays as best as possible and calculate the operational efficiency of each! LoC: ~ 600 (I'm pretty frugal with LoCs). I also did OOP in C for one college assignment.
C++: This is my langue primaire for computer programming. I prefer programming in C++ for its compile-time type safety, flexibility and its support for multiple programming styles (Procedural, OO, Generic, Functional). C++ Templates and STL have added another dimension to what can be done in this language.
Python: This is an interesting language I recently (Feb, 2004) picked up. It has a feature rich programming support for OO and functional paradigms and its dynamic typing features help make it a good candidate for rapid prototyping. However, due to its slow performance and lack of compile-time checks, I wouldn't prefer it for complex production software.
Common Lisp: I learnt CLisp as part of a course on Programming Paradigms and found it to be an interesting language. More interesting than the language, however, is the functional programming paradigm. It has some powerful constructs that can be used in combination with OOP to write more maintainable and parallelisable software. C++ and Python are two of the languages that can allow you to blend the two paradigms.
Java: The world doesn't need Java. The omnipresence of Java, however, makes it unavoidable and so I have some bit of the obligatory Java experience. Please don't consider me for Java development. I can, however, show you better alternatives and even train your Java developer army to be productive in C++ or Python.
Scripting and Markup
I do Bash (Bourne again Shell) Shell Scripting and I've also dribbled with Perl. I have some experience in using filters like grep, sed and awk. Among the markup languages, I know HTML/XHTML with SSI, CSS1 and CSS2. I also do App-dev using PHP, ASP, XML, and XSLT. Oh! and I write ASP in Emacs sitting on my Linux workstation :-)
Emacs: This is my mainstay application. Emacs for me is the console counterpart of a Desktop Environment. I use it for most text editing tasks, though I've never tried mail and browsing in Emacs.
Subversion/CVS: I learnt CVS just a few weeks back (Jan '03) and I'm absolutely in love with it! Now on, no projects without CVS. No website without CVS. Update: Since the release of Subversion 1.0 I prefer Subversion over CVS. It has many useful features that were sorely missing in CVS.
GCC and friends: I've been using GCC since I started working on Linux. I like its warning and error reporting messages. The CLI is simple and its implementation of the Standard C++ library and STL is great! Other friends I use are GNU Make and once in a while GNU Debugger.
Distributed Object Computing and SOA
This is my current area of interest. I am currently in the process of understanding Distributed Object Computing through techonologies like CORBA and Service Oriented Architectures like Web Services. I am also looking toward identifying the points of synergy between these two approaches.
Besides, I have some knowledge of Network Programming using BSD sockets, some TCP/IP fundamentals, and a good enough knowledge of the 802.3 High Speed LANs. There's an introductory write-up on 802.11 (Wireless LAN) networks that I've put up elsewhere on this site. I presented that material to students in one of the courses conducted by NCST.
Database Management Systems
I had used Oracle 8 Personal Edition for Windows to build my Final Year Project in college. In NCST, I work on Microsoft SQL Server 2000.
© 2002 - 2004 Tahir Hashmi. Unauthorized copying, alteration and redistribution in any media is prohibited, except where explicitly stated as being distributed under the OpenContent License (OPL). Last updated: 21 February, 2021. Update Log. Personal Email: tahir AT tahir.ws [PGP Key: ASCII, Binary]; code_martial AT softhome.net [PGP Key: ASCII, Binary] IM: Yahoo! Messenger [tn_hashmi]