Things for a Geek to Do

February 19th, 2007

Although I’ve been busy with a lot of work lately, I have been thinking during my commute to work about what I would like to do if I had more time. Here’s a list of things that I would like to accomplish in the first half of 2007:

  • Investigate the use of Logical Volume Manager (LVM) for the Linux operating system to create consistent snapshots of secondary storage volumes that can be readily backed up
  • Deploy a backup system that minimizes the loss of personal data that is stored on all computers within my home network
  • Read Richard Stevens’ Unix Network Programming to validate the way that I use the sockets API
  • Find and help an open source project to practice reading code written by others
  • Check out Python or reinforce skills in Javascript
  • Learn more about common practice in administering GNU/Linux and Unix-like operating systems

Comments for RFC 959 – File Transfer Protocol

February 13th, 2007

I do not allow people to use Telnet on servers that I manage, because usernames and passwords are transmitted over the network as clear text. As concerned about security as people are, I am surprised at peoples’ insistence on using FTP. FTP, a network protocol that also transmits password information as clear text, continues to be widely used. Problems arise in the use of FTP when firewalls are set up between clients and servers. For example, giving clients the option to use either active or passive modes creates more headaches for network administrators who may already have configured FTP servers to listen on specific ports that firewalls are configured to expose. Even more problems are apparent when trying to use FTP over a tunnel.

FTP is broken. Stop using it and adopt secure file transfers with SFTP. FileZilla is an open source SFTP client for Microsoft Windows. Other graphical SFTP clients that support other operating systems are also available.

Resisting the Allure of Instant Gratification

February 4th, 2007

unp.jpgMy sister received a 25USD Borders gift card that she intended to use for another medical dictionary. I persuaded her to regift it to me, and I have been carrying it for weeks. I’ve been to Borders multiple times, and only the appeal of instant gratification kept me coming back. I have been wanting Richard Stevens’ Unix Network Programming, Volume 1: The Sockets Networking API for awhile. I am pretty familiar with sockets programming, having majored in computer science with a specialization in networks and distributed systems, but I am bothered by not having read such a classical text for its field. A traditional Borders store sells the book at cover price: 74.99USD. Buying the book at cover price was not very appealing. Borders.com, powered by Amazon.com, sells the book for 52.49USD, and after applying the 25USD gift card, I was able to purchase the 75USD book for 27.49USD. Averting instant gratification saved me (74.99 * 1.0825 – 52.49 =) 28.69USD!

Struggling with Perfectionism

January 24th, 2007

The question about my greatest weakness has been raised in almost all my job interviews. Many books on job interviews discourage people from construing a strength as a weakness. One of my greatest weaknesses is my drive for perfection. When I perform a task, I want its completion to approximate perfection. Paying attention to details in workmanship and quality is viewed by many people as a positive characteristic for an employee. Being obsessed and compulsive about achieving perfection at the levels that are satisfactory to me actually serves as a big drawback.

My high school English teacher made me aware of my perfectionist nature. She told me that my persistent drive toward perfection would be a source of many failures. With the memory of her warning imprinted on my mind and some introspection, it is easy for me to remember instances when perfectionism caused failure. I state that perfectionism is my greatest weakness for this reason.

As a project milestone draws near, I feel my desire for perfection resurface. My apparent options are to continue developing an environment that will simplify future tasks with the cost of missing the milestone or delay the development of the environment, switch to a brute-force coding effort, and attempt to reach a milestone with a low probability of success. I believe that game theory calls this a “lose-lose” situation. I am, however, driven to lose this situation in such a way that winning future situations is easier.

Although I see perfectionism as one of my shortcomings, I believe that perfectionism or the desire to make future tasks easier is appropriate for the current situation. Sometimes, perfectionism serves as an acceptable heuristic for finding the best path to an optimal solution. One adage that I saw on a whiteboard at a previous company is “do things right the first time.” I shall commit myself to doing just that.

A Hint for Enhancing Software Dev Agility

January 16th, 2007

Just know that when it comes down to the wire, it’s just garbage in and garbage out. Reducing the implementation of software to the practice of accepting data from somewhere and preparing it to be used elsewhere has certainly helped me hit the ground running and get up to speed with existing projects.