A Disitributed Workforce

June 2nd, 2006

“Few businesses are as spread out as MySQL, which employs 320 workers in 25 countries, 70 percent of whom work from home,” says Fortune’s Josh Hyatt in MySQL: Workers in 25 Countries with no HQ. A discussion of this can be found on Slashdot.

Coordinating Development with a Growing Team

May 31st, 2006

The development team of a small company that I have recently joined is continually growing, and coordinating development efforts within this team requires more than controlling file permissions. Using file permissions as a primitive means of source code control worked when the team was small, but simply using file permissions and a de facto standard of appending version numbers to modified files is becoming harder to manage as the team continues to grow. Maintaining such a hacked solution kludges the operating system’s permission control without the benefit of refined control. A more elegant solution is the use of a software versioning control system, which maintains file modification history as well as refined control over source code.

By adopting a common practice of big development companies, we gain greater project manageability. I do not believe that this will significantly affect our company’s agility, and the benefits far outweigh the costs. Training developers, who do not possess experience with versioning control systems, is a short-term cost that will yield long-term returns in the form of reduced development time and ease of project coordination. The deployment of a version control system is a strong indication that the company is interested in transforming individual developers into a team of engineers. I am a strong proponent of developing team members, and introducing them to new tools and methodologies increases their marketability to other companies and utility to our company.

Many companies worry that developing the skills of their workers results in increased turnover or wage costs. I am confident that we can continue to develop our team members’ skills as we continue to grow our team. Although our team members will become more marketable to other companies, I am also confident that each member of our team is dedicated to keeping it intact. Our company has a real interest in developing all its members, and deploying a software version control system to introduce tools to our team members and improve our development practices exemplifies our motivation.

Google Web Toolkit — Installation (Part I)

May 27th, 2006

What follows is a mini-howto on setting up the Google Web Toolkit on a fresh “Workstation” installation of CentOS or Fedora Core with Apache HTTP server and PHP installed. A series of commands that can be used to setup Google Web Toolkit. Although the howto is intended for environments that primarily use PHP, the information presented may be useful to others. The Google Web Toolkit installation process that is explored here will also cover the installation of Tomcat and configuration of Apache as a reverse proxy.

I. Installing Sun’s Java 2 Standard Edition Development Kit

0. Remove any old Java environments that may be installed and not used. For example, a Java implementation that is part of the GNU compiler collection may be preinstalled with the operating system. “rpm -e java-1.4.2-gcj-compat-1.4.2.0-27jpp” removes the preinstalled Java development environment for the CentOS 4.3 Workstation installation.

1. Go to http://java.sun.com/j2se/1.5.0/download.jsp, and download jdk-1_5_0_07-linux-i586-rpm.bin (or a later version, if available).

2. With the command line terminal, navigate to the directory that contains the file and enter the command “chmod +x jdk-1_5_0_07-linux-i586-rpm.bin”

3. Enter the command “./jdk-1_5_0_07-linux-i586-rpm.bin”

4. You may need to su into root to carry out the following command: “rpm -ivh jdk-1_5_0_07-linux-i586-rpm”

5. The Java Development Kit should now be installed at /usr/java/jdk1.5.0_06. I usually create a symbolic link “ln -s /usr/java/jdk1.5.0_06 /usr/java/jdk”

II. Installing Apache Ant

1. “wget ftp://ftp.wayne.edu/apache/ant/binaries/apache-ant-1.6.5-bin.tar.gz”

2. “tar zxvf apache-ant-1.6.5-bin.tar.gz”

3. “mv apache-ant-1.6.5 /usr/.”

4. “ln -s /usr/apache-ant-1.6.5 /usr/apache-ant”

III. Installing Apache Tomcat

1. “wget ftp://ftp.wayne.edu/apache/tomcat/tomcat-5/v5.5.17/bin/apache-tomcat-5.5.17.tar.gz”

2. “tar zxvf apache-tomcat-5.5.17.tar.gz”

3. “mv apache-tomcat-5.5.17 /usr/.”

4. “ln -s /usr/apache-tomcat-5.5.17 /usr/apache-tomcat”

III. Installing Google Web Toolkit

1. Get the Google Web Toolkit from http://code.google.com/webtoolkit/. We cover installation of gwt-linux-1.0.21.tar.gz.

2. “tar zxvf gwt-linux-1.0.21.tar.gz”

3. “mv gwt-linux-1.0.21 /usr/.”

4. “ln -s /usr/gwt-linux-1.0.21 /usr/google-gwt”

The required components are now installed on the system, however Apache Tomcat is currently not running. In Part II of this series of posts, I plan to cover the configuration of Tomcat and the configuration of Apache HTTP server as a reverse proxy for the Tomcat server. Init scripts will be set up as well. Then, in Part III, we’ll get to the more exciting stuff such as a “Hello World” application that uses GWT’s RPC features, which allow AJAX to be interesting within the Google Web Toolkit.

stevedoria.net down

May 23rd, 2006

As a super administrator, being served some humble pie from time to time has its benefits.

Starbucks: An Office Always Near Me

May 17th, 2006
Posted in - blah - | 2 Comments

Starbucks LogoHere I am at my third Starbucks location for the last 24 hours. I worked at the Starbucks location in Woodland Hills throughout yesterday. I started today at the Starbucks in Atwater Village, and I ended the day at a Starbucks in Canoga Park. Aside from Chipotle Mexican Grill, Starbucks Coffee Company must be one of the best investment choices to make today. A steady stream of customers can be observed at each of these locations, and a Starbucks location with a T-Mobile hotspot can be found almost anywhere.

I have recently been working at several cities. My service radius appears to encompass Corona and Calabasas Hills. The drive to Corona, which is approximately 55 miles away from my principle location, is quite enjoyable, even though the time to travel (1 hour) is comparable to my rush hour morning commute to cities such as Marina del Rey (24 miles in 1.25 hours) and Calabasas Hills (34 miles in 1.5 hours). Long commutes are simply a part of my life’s story. I’ve been commuting since high school (15 miles) and through my first year of college (56 miles). I love driving, especially when driving conditions are favorable.

I drive to distant locations, and I require quick access to the Internet in order to fulfill my responsibilities. T-Mobile and Starbucks provide the infrastructure for easy Internet access wherever I go. As long as I am at a city with a sizable population, I’m sure to find a Starbucks location, and I am almost always available when the shit hits the fan.

The worst-case cost for an average 30 day month is: 160USD (40USD for the connection on a monthly basis + 30 days * 4USD for a Venti Mocha Frappuccino®). The cost for easy access to the Internet can possibly be reduced to 80USD per month with Sprint’s Mobile Broadband Solutions, but I am willing to pay a premium price to work at a place where people hang out instead of a place where I am alone. 160USD per month is certainly worth access to the networks that I manage, and the connection has been very valuable when compared to the currently unreliable service at home.