Friday, January 30, 2009

From MySQL to Ruby on Rails - part 1

I've made enough progress with MySQL to feel comfortable using it with Ruby on Rails. I can create tables, enter data, update data, and change security settings. I even solved a problem with the 'LOAD DATA LOCAL INFILE' command, although it was a trivial command-line switch for the mysql client program.

I've installed gems and Ruby on Rails. The next step is to start using Ruby on Rails. That will have to wait until Monday.

I accomplished other things today. I attached the old HP CD-writer 8200 to //desdemona, so now I can (theoretically) copy CDs. Not that I need to, but its good to know that the drive works. Or at least reads CDs. I should test burning capabilities.

I moved the HP 950C printer from //mylene to //desdemona and tested it. I can print from //desdemona with no problems, but //mylene cannot see the CUPS server, even after specifying the exact IP address. I see no reason for the failure. (Yes, I allowed CUPS through the firewall on //desdemona.) Grrr.

I read a bit more of The Anatomy of a Compiler. I finished chapter six, which covers the parsing of arithmetic expressions. In excruciating detail. Only four chapters to go!

Thursday, January 29, 2009

Progress with MySQL

I made some progress with MySQL today. I configured it to recognize my user account and to let me create a table. This took a little doing, and the book I had was not quite helping. The book is MySQL first edition by Paul DuBois which is for MySQL 3.2, and I am running MySQL 5.0. A few things have changed. Fortunately, the ACM-supplied Safari website has a later version of the book, which I have now added to my bookshelf. That version had the pertinent information.

I also had lunch with Derek and Julie, two former co-workers. It was a nice lunch, with a good discussion about the current state of the market. We also discussed a few items that had transitioned from me to them and resolved a few questions.

Balancing my work and personal life, I went to the symphony tonight. They had three pieces: Liadnov, Tchaikovsky, and Shostakovitch, each progressively heavier. The last was a bit of a bear; I just do get Shostakovitch. Maybe I need to listen more and learn a little more about the background.

Wednesday, January 28, 2009

Balacing act

Some successes today!

I had an interview with a contracting/staffing company. The interview went well, in that it was a conversation with a purpose, and I learned things about the company and their clients. They work with large and mid-sized companies, which may not be quite what I want. I want to come in for a brief period, share some knowledge and maybe build some tools, and then leave. (Almost like "who was that masked man?", except I don't have a mask.)

In addition to the interview, I installed MySQL and got the server running. At first it would not run; I had to execute the "mysql_install_db" script. The MySQL book by Paul DuBois (another Book Thing find) was helpful here. I need MySQL to use Ruby on Rails, so the RoR install is waiting until the MySQL install is done. Tomorrow I can work on user accounts and rights within the database.

I also installed and tested the JPilot software on desdemona. Desdemona is the new acquisition, and replaces most functions of delia, the old Dell 266 MHz computer. Now that desdemona can sync with my PalmPilot, delia's only purpose is to burn CDs. And maybe that can go to desdemona, too.

A non-success today was accessing the Citibank credit card web site. They kill the web account after six months of inactivity, and there is no way to reactivate an account. Even if you forget your password, there is no way to have them send it to you or reset it. And besides, their web site does not work on Firefox or Opera; I had to use Safari on the Mac to get to them. (Maybe it's not the browser but the operating system. I used Firefox and Opera on Linux; Safari runs on Apple OS X which is derived from NetBSD.) The end result was that I did not get to the Citibank web site and I will simply put that credit card on "hold" until the next statement arrives.

I finished the day with dinner with a former co-worker. We had a good conversation about jobs, careers, and personal decisions. She gave me some good advice and agreed with my reasons for this move, both of which made me feel good.

One thing I want to improve is balance. For a while, I let my professional life take over my personal life. I need both. The emphasis may shift from one to the other, but both must live. I need to set some goals in both and set some boundaries to keep both in check.

Tuesday, January 27, 2009

Day 2: Recap

I accomplished several things today.

I set up one computer to host Apache and act as a web server. I also created a simple "Hello, world!" page. After a bit of adjustments to settings (static IP address, firewall, DNS server addresses, and default gateway) it is working. This is a good first step: it gets me ready to explore Ruby on Rails.

My web server is strictly behind the firewall, and not available to the public internet. But it is enough for me to use and learn.

I read a bit more of The Anatomy of a Compiler by John A. N. Lee. This is a pretty detailed description of a compiler and covers the major topics. The work is a bit dated; it is geared for a person writing in assembly or C and the author provides a lot of explanations of the data structures needed by the compiler. In modern languages (Perl, Ruby) you get these data structures for free.

I also found (or remembered) some additional resources. The ACM web site has job postings, Safari books on line, and they also offer health insurance. I'll have to visit it again and get more details.

In addition to ACM, there is also my alma mater's web site and the alumni association web site. These provide ways to network with fellow alumni.

I should send an update to the class secretary.

I signed up for the 2009 E-Tech conference in March. Taking advantage of the early registration and alumni (read that as "previous attendee") discount, I can afford the con. I used points for the hotel stay, and also found a cheaper hotel in Santa Clara. (The con is in downtown San Jose, and hotels there are a bit pricey -- even for points.) I also booked airfare on Southwest, and found a pretty good deal.The E-Tech con may be a good opportunity to meet folks and find contacts. It depends on how many people attend.

I sent my resume to another contracting firm, one a little more local that tomorrow's meeting. I received a prompt and polite "thanks for checking in and we will let you know" response. Less enthusiasm than I hoped, but at least it is a response and not a black hole for e-mail.

Dinner with the former co-worker has moved from tonight to tomorrow night, due to the snow. It's a small amount of snow, just enough to make the roads and the sidewalk treacherous.

Tomorrow is the appointment with the first contracting company, and then more work on setting up Ruby on Rails.

Day 2: Best practices

Today is "day 2" of separation from the big company. (I'm not counting this past weekend.) Here's what I'm doing:

First, I am sticking to my routine. I get up in the morning, shave and shower, and have a small breakfast. I am not laying about in bed until late in the day. I may not be employed but I do have a job: find a new situation and work on my software x-ray project.

I'm also keeping regular meals. Breakfast is "the usual" of cold cereal and some juice, with some degree of flexibility. Today I substituted an orange for the juice. On other days I may have oatmeal. For lunch, it is either a sandwich (on warmer days) or soup (on colder days) with some fruit. Dinner is usually home-made chili, spaghetti, or my not-so-famous chicken teriyaki with vegetables over rice. Or left-overs -- I usually have enough for left-overs.

Beyond waking and eating, I am networking and improving my knowledge of things technical. I'm keeping in touch with former co-workers through e-mail and informing friends of my recent decision. I communicate with friends via e-mail, the phone, or hand-written notes, depending on the friend. I'm also on LinkedIn and I have pages on LiveJournal and MySpace.

I'm using resources at home and resources on the internet. At home I have two PCs and one Mac, all networked together. I use them for writing letters, tracking expenses and preparing budgets, and developing my experience with open source software. Current projects include "Ruby on Rails" and "subversion".

I'm also using resources on the web. I have accounts with Google and Yahoo, which give me e-mail, address books, calendars, to-do lists, and news. I use the ACM and IEEE e-mail forwarding accounts for permanent e-mail addresses; they forward mail into the Google and Yahoo accounts.

With finances, I am keeping an eye on expenditures. I've cut back on dining out and other discretionary expenses. But not completely: I am meeting with a former co-worker for dinner tonight. I'm also keeping a careful watch on bills and making sure that they get paid on time.

Task management is important too. I'm using envelopes from junk mail as notepaper. I keep a pile of blanks ready for ideas, and jot them down when I am away from the computer. Later, I add the notes into the central to-do list. I'm still prioritizing ideas into "today", "this week", and "future", but also into categories "network", "technology", and "housekeeping". The last includes things such as "pay bills" and "grocery shopping". They aren't part of the job hunt, but they are important.

I try to allocate a portion of each day to each of the big areas. Part of the day is for networking and jobhunting. Another part of the day is for technical knowledge. I find that I am good at different things at different times of the day. I am creative and productive with technical knowledge in the early morning and late afternoon, and better at communicating in the late morning and early afternoon. Matching the task to the time when I am most effective at it improves my productivity. Or so I think.

Monday, January 26, 2009

I take the leap

This blog is about me and my leap from a safe, secure position with a large Fortune-50 (maybe Fortune-30) company into the unknown.

First, a little about me. I'm a geek. I'm a computer programmer working in the US. I've been interested in computers since I was, oh, eight years old and my father took me into his office for some week-end work. (He did the work, I occupied myself with an IBM 026 keypunch.)

My first "real" computer experience was in high school with a DEC PDP-8/e, a refrigerator-sized unit with an RK-8E removable disk and a TU-67 DECtape unit. It had four terminals: three Teletype ASR-33s and a DECwriter of some sort (perhaps an LA-36). It ran BASIC.

My second computer was a Heathkit H-89 computer with 16KB RAM and a 100KB floppy disk. It ran HDOS (and later after some upgrades, CP/M) and I used it for BASIC, 8080 assembly language, and C.

Next was the college computer, a DECsystem-10 with about seventy terminals. Each student had an account in DEC's project-programmer number format (mine was 3004,11427) and time limitations for use during the day. As a commuter to school and being absent in the non-peak hours, it was hard to get work done. I used it for FORTRAN, Pascal, and a brief attempt at ALGOL. We also used LINDO, SPSS, and CSMP.

Since then, I've been involved with microcomputers, PCs, and networks. I've taught myself COBOL, 8086 assembly, C++, Perl, C-sharp, and Ruby, as well as other language-wannabees like dBase II, Clarion, and R:Base 5000.

My post-college career consists of two employers: Morris County Savings Bank and UPS. The bank ('MCSB' in short-speak) was my employer directly out of college. (I started the Monday after graduation. Well, technically the Tuesday, since the Monday was a holiday.) I was with them for six years, helping them install and use the (at the time) new-fangled PCs. We used Zenith Z-100s, IBM PCs and XTs, no-name clones, and Compaq units, all running MS-DOS. The team I was on had several names over the six-year period ("Distributed Processing Services", "Mini/Micro Services", and "Micro/Mini Support") but basically did the same thing: install PCs, train people in their use, and help them when they had problems. After six years (and being acquired by First Fidelity Bank), the bank let a number of people go and I was one of them.

The second employer was UPS. Yes, *that* UPS, with the brown delivery vans. I worked in a number of locations and for a number of departments. Or maybe it was one department that changed its name, since the people were pretty much the same. I started with C programming in MS-DOS, taught myself C++, learned programming for Windows, and eventually moved on to C-sharp and .NET programming. At the end, I was a "buildmaster" and version control "sheriff" for a largish project. I was with UPS for 18 years, 7 months, and 25 days. (All together now: "no time off for good behavior".)

For the last several years, I have been hatching an idea about software analytics and visualization. I won't go into details of the idea here. The important thing for this blog is that I have this idea, and I want to make it happen. And I could not do that working at UPS. (Not through any fault of UPS. This idea is outside of their core business, and they shouldn't be working on projects such as this. They don't build their own compilers or word processors, which is as it should be.)

After enough hatching, I think I know enough about the idea to act.

So, perhaps impulsively, I left the employ of a steady company. I provided the standard (and required by my hiring agreement) two-week notice. In that two weeks, I shared my knowledge of the build and version control systems. I had long sessions with a number of people, and probably worked harder in the two-week period than I had for a while.

Today is my first day "free" of the company. Now I am on my own to pursue this idea. Will I succeed? That remains to be seen. But this is something that I must try.

The timing may seem a bit odd. Here in the beginning of 2009, starting a new venture is not considered the best idea. Companies are shedding jobs right and left. Some companies are shutting down. Lots of people are talking about the economy and a few are struggling with the name of this thing. (The "New Depression"? The "Big Crunch"? We won't know the name history picks for another ten years at least.)

I am prepared for such a change. I have money set aside, and with care I can fly for a year.

My first move will be to find some income. While I have savings, it is better to have *some* income. I am considering short-term contracting with breaks for working on my idea. Oddly, a contracting firm telephoned on the very day that I provided notice to UPS. Providence? Coincidence? One cannot say for sure. I have been e-mailing a recruiter at this firm for the past few weeks, and spoke with her today. We have an appointment on Wednesday.

I'm looking to delay contracting work for a few weeks. I want to organize some programs here at home (install MySQL and Ruby On Rails, for example) and also re-learn to breathe. The pressure at UPS was high, and I need some time to decompress.