Friday, January 11, 2008

Fun with Linux

I have been having a great time over the last couple of years employing various versions of Linux in my personal network. I have been a Windows user (not a fan), since I worked on a piece of Powerpoint 1.0 in 1990, just before the Windows 3.0 release. I have migrated to Windows 2000, and that is the planned end of the line for my use of Microsoft operating systems.

My original intention was to move all my work to Linux. I do, however, use several key applications for which there is no Linux equivalent, such at Tivo Desktop and Quicken. I also have a large library of photos, music, and videos stored on a big NTFS volume, so I needed a coexistence strategy.

I have developed a wireless network with 1 Windows system and 3 Linux systems. The network consists of 3 wireless routers, two of which are configured as wireless access points. Two of the Linux systems, a laptop and a large desktop workstation have VMware Workstation 6 installed, so those machines can support W2k as a guest. The network also supports two Tivo boxes.

Once I got a machine with a working version of Linux (Fedora 5, in my case), I needed some way to share file systems across the various boxes. Samba came to my rescue. The initial install was somewhat daunting, and I fumbled around for awhile, trying to decode the documentation and edit configuration files. I finally developed a fairly simple configuration that suits my needs, and I am pleased with the results. It is now quite simple to add a new host into the file sharing environment.

I am not a fan of command line interfaces. Those may be "fightin' words" in the Linux world, but I find GUI interfaces much more approachable and easier to learn. I do, however, like the fact that the command line in Linux allows access into configuration areas that Microsoft products keep hidden. The availability of the command line is empowering to the Linux user, even if not used every day. I especially like the fact that many Linux command line assets have nice GUI front-ends, which keeps both camps happy. I like to use Synaptic to browse for new packages to install, but I also comfortable with using apt-get from the command line.

I tried various distros and settled on Ubuntu, starting with 6.06. I am now up to 9.10 and like each release more than the last. I like the Gnome window manager and have chosen it over KDE. There is not a huge difference between the two, but who needs to have all your application names start with the letter 'K'?

With the help of grandson Steve, I upgraded my Linksys router by flashing it with DD-WRT, an open source router based on Linux. This gives me the ability to set static leases for all my permanent hosts, while still employing DHCP consistently across the network. The dd-wrt software also provides a lot of other functionality, such as the ability to use WCP to attach a console terminal on the router. This makes the router file system accessible from my other workstations.

My resume

1966-1968 General Electric
Structural Methods Engineer
Developed Finite Element programs for thermostructural analysis of re-entry vehicles. Programmed in Fortran on IBM 7094 and GE 600 systems.

1968-1970 General Electric
Math Analyst
Developed command and control programs for military reconnaissance satellites. Programmed in Jovial and assembler on a CDC 3800 system.

1970-1973 Eldorado Electrodata
Software Development Manager
Developed and managed a complete suite of software for small business computer systems. Among the products developed were tape and disk operating systems, asynchronous communication systems, word processors, sort/merge tools, application languages and compilers. In short, everything needed to support the sale of small business systems. Programmed in assembler on proprietary 8-bit minicomputers.

1973-1977 Intel Corporation
Lead Software Development Engineer
Was second engineer hired in new Microprocessor department. Developed the first program for the 8080 microprocessor, an early BIOS/debugger. Designed and developed a complete range of development tools: disk operating systems, editors, compilers, assemblers, linkers, and in-circuit emulation tools for 8080 and 8086 systems. Developed a real-time kernel for the 8080. Programmed in PL/M and assembler.

1977-1982 Dharma Systems
Independent Consultant
Consulted with companies in the process of adopting microprocessor technologies. Provided development tools and software development skills.

1982-1989 Convergent Technologies
Manager, Applied Services
Ran a department that performed custom development services for the companies’ line of x86-based distributed business systems. During this period, I learned a great deal about distributed systems.

1989-1995 Callosum
Independent Consultant
Provided software development services to client companies. Clients included Bull Corporation, Microsoft, and Xerox. Programmed in C, C++, and Smalltalk.

1995 – 2006 IBM Corporation
Senior IT Architect
1995 -1996 DSOM Architect
Applied DSOM (Distributed System Object Model) products to a currency position trading system for a major bank. Implemented DSOM server and OpenDoc clients to provide near-real time currency positions to traders. Judicious use of caching reduced position calculation time from 7 minutes to 2 seconds.

Designed a publish-subscribe network for a major railroad. Acted as architect and team leader for the prototype implementation. Results of the project informed and influenced development of the Java Messaging Service and Message-driven Enterprise Java Beans later.

1997-2000 Consulting Architect, Software Group Technical Marketing
Worked on the introduction of the Component Broker application server, which evolved into the WebSphere Application Server. Sold the first CB opportunity in EMEA, at Swiss Bank Corp. Managed the EMEA beta program, with teams deployed at Volvo, GAD, France Telecom, and Swiss Bank Corp. I learned a lot about CORBA and other distributed technologies during this intense period.

2001-2003 Senior Architect, Worldwide WebSphere Technical Sales
Focused on Application Integration with WebSphere, using MQ and JMS. Conducted architectural design sessions with major corporations, such as 3M, Sabre, American Express, and American Airlines. Led a weekly discussion group on J2EE architectural patterns. With the advent of Web Services, this evolved into a Services-Oriented Architecture discussion group. I have given SOA presentations in North and South America, Europe, Asia, and wherever else needed. I have been an invited speaker on many occasions.

2004-2006 Senior Architect, Worldwide WebSphere Commerce
I have applied my experience with application integration and SOA principles to help WebSphere Commerce evolve to better fit the SOA model. Version 5.6.1, in beta in 2005, has a generic service interface, which should reduce integration costs substantially and enable Commerce to participate in BPEL-style process choreography.

2006-present Ruby-on-Rails consulting
I have been combining my love of Ruby and Rails with my extensive background in Enterprise Architecture to help clients build out web applications that are reliable, scalable, secure, and integrate well into existing systems.