Starting the new year right, three weeks late

I wanted to write this post before 2008 started, but better late than never, huh?

I’ve been working with Ruby on Rails for over 18 months now, and it continues to be a lot of fun. There are still challenges, as projects are never a total walk in the park. There is also new stuff to learn almost every week. The Rails team keeps improving the framework, and the community keeps authoring more plugins. Keeping up is a demanding part of the job, but it adds to the fun factor.

One activity I’ve been doing lately on my own time is learning different programming languages, development environments, and frameworks. The move to Rails from Java seems to have been a good choice career-wise, and I did it by trying to keep current on technology. I want to be ready for the next shift, whatever that may happen to be and whenever it comes into prominence.

After many attempts, I finally had published not just one IT-related article, but three, at IBM DeveloperWorks and Amazon Web Services Developer Portal. The articles were published between late October and late December 2007. They are:

Display Google Calendar events on your PHP Web site with XPath

Don’t Get Caught with Your Instance Down

Using Parameterized Launches to Customize Your AMIs

These articles are just the start of a shift from developing software as one of the faceless multitude of IT geeks, to being somewhat more known among my peers. I hope to turn these and other articles into presentations at software development conferences in 2008. Hopefully this enhanced exposure and networking will lead to great new things in 2008 and beyond.

Just before beginning this post, I updated Wordpress to the latest stable version. I am always amazed by how easy Wordpress upgrades are. Considering how easy it is to write unmaintainable crap in PHP, the Wordpress team deserves a big standing ovation for doing software right in PHP.

The theme I had up for the last year was not compatible with the change to Wordpress 2.3.x, so I picked out a totally different theme this once. It’s really simple and unobtrusive. If I get creative, I may tweak it or pick another theme altogether.

That’s it for now. I’ll try to post more often. Feel free to give me a nudge in the comments if I let posting to the weblog slide again.

Technorati Tags:
, , ,

More upgrades, more spam, a visit with friends, and a new gig!

I just upgraded to Wordpress 2.1.3. It was another flawless upgrade.

Akismet tells me that it has blocked over 1900 comment spam since March 22, and 3,130 since I installed it. I have only had three or four false negatives. That is, spam that wasn’t caught and ended up in my moderation queue. I made an effort to go through all my caught spam looking for false positives, and found none.

So when they flew me to NYC for lunch, I was very sure this company was interested in hiring me (duh!) I had a great time talking with the company CEO and the president, enjoying their wit and seeing their lifelong friendship at work during our discussions. That was quite interesting. I also had a good conversation with a fellow grunt, Sonny, with whom I will probably be working. I start at the new job on April 16.

They paid for my flight, overnight stay, and lunch. The lunch was really enjoyable, both conversation-wise and food-wise. I don’t remember the name of the family-oriented seafood restaurant where we went. It was within two or three blocks of Broadway and 19th Street. I want to go there again and try more items from their menu.

At the end of the day, I received a job offer, which I accepted. I’ll still be working from home as a Ruby on Rails developer, but I will be a salaried full-timer with benefits, instead of an hourly gun-for-hire. I have had enough of the gun-for-hire lifestyle for now, and this opportunity with this company was too good to pass up.

NYC was a hoot. I saw this guy with a giant inflatable cockroach in front of a building. Turns out he was a paid protester! When some group wants to protest something, they hire this guy, and he prints out some flyers, drives to wherever they ask him to go, gets out the giant inflatable rat and/or the giant inflatable cockroach, gets out his bullhorn, and he has a protest! He is also available for political campaigns, but he prefers hanging out with the cockroach and the rat. I thought that was pretty funny.

Another funny aspect of NYC, is that every block has at least one guy in a small plexiglass shop on wheels hitched to a truck, selling a bagel or donut with coffee for about $3. Each of these vendors has enough coffee, bagels and donuts for a few hours of sales. When they run out, they drive to the bakery where they get their goods, stock up, and drive back to the area they were last at, to continue selling their wares.

I really had a good time in Manhattan, and would like to visit again and do more touristy things.

After my interview in NYC last March, I took a train to Lancaster County, PA, and stayed with my friend the sci-fi writer, her husband and twin 3 year old girls. I rented a car to visit my other college friends and an aunt and her husband in Southeastern PA over the weekend. It was great to see everybody and to see them well. I’m glad they all live within one and a half hours of each other.

I am going to be planning a move to the Philadelphia suburbs over the next six months. I don’t own any furniture, don’t have a wife and kids, so it’s just me, my computers, and game consoles. I’ll probably disassemble the two PC clone towers and ship the parts separately, then reassemble them back in PA.

Wednesday is my last day at the hourly Rails gig. It has been a crazy seven weeks. We’ve been ready to go live for the last two weeks or so, but the client wanted some changes to how a few things worked. And of course that meant new bugs to stomp.

I’ve thrown in a few hints as to what the site is about, specifically mentioning yesterday’s Malaysian Gran Prix in a previous post. I can’t wait to show off what we’ve worked on. It really is a cool site. Latest news is that we go live Wednesday, but I’m taking that with a grain of salt. So don’t hold me to it.

Technorati Tags:
, , , ,

Racing To The Big Apple

I’m flying to NYC this afternoon, for a lunch / interview Thursday. The company interviewing me has been in business for nearly 15 years, with Linux and BSD, Perl and Interchange as their platform (Interchange is a Perl-based e-commerce platform.) They want to build a Ruby on Rails e-commerce platform to support their customers for the next 15 years.

They’ve been in touch with me for the last six weeks. I have had 4 phone interviews with them. This is the final face-to-face interview in their hiring process. If all goes well during and after lunch and we still like each other, they’ll be a job contract to sign when all is said and done.

After the interview, I will have the rest of the week and weekend to spend as I like. I’ll be staying in Southeastern Pennsylvania with my friend the sci-fi author, her husband and twin 3 year old girls. I will visit other friends and family in SE PA over the weekend. It will be great to see them again. Last I saw them was in August of 2005.

It’s been six weeks with the racing-oriented Ruby on Rails custom CMS. The past two weeks have been kind of slow work wise. There’s been very little overtime compared to the first four weeks of the project. Since I last wrote about the project here, I’ve done some on-the-job learning about RJS and the Prototype JavaScript library, and about Capistrano and deploying on Apache clusters.

In these past two weeks, there were short bursts of frantic bug squashing in between quiet hours of chit chat in the project’s Campfire group chat and on Skype. It was difficult to stay awake some evenings, when there was nothing to do but chat, and wait for the customer to QA the latest release.

Speaking of release, the client finally wants to go live, on Monday, April 2nd. This Monday evening, the code was deployed to the live Apache and MySQL cluster where the application will live out its public life.

Just in time for the Malaysian Gran Prix next weekend, don’t you think? ;-)

Technorati Tags:
, ,

I’m still alive here …

I survived the crazy work schedule and lack of sleep from my recent gig. I know there are still a few outstanding bugs, less than 5, but they are not critical. They are so non-critical, our employer is giving us Friday off, and there’s no more overtime until perhaps well into phase 2, which starts later this month.

The Rails app I have been working on should be up already, but it’s out of our hands now. The customer is tasked with deploying it, not us. The first race of the F1 championship starts Sunday March 18. If the site goes up after that, it’s gonna lose impact. But that’s not my responsibility.

I want to show it off already. It’s been a crazy four weeks, and the site looks and runs great. I had nothing to do with the visual aspects. I’m a Rails code monkey, not a graphic designer by any means. Our web designer did a great job on the CMS and press/journalist access site, along with the Flash guys’ tremendous job on the Flash client on the consumer site.

Before this project, I had only worked on Rails with another Rails newcomer, for just six months last summer. But in this project I am working with a few Rails experts. One of them is even a Rails open source contributor. And I learned just how much I didn’t know. I am humbled and acknowledge I am just a junior Rails developer.

So I’m back to the books for more knowledge. I meant to do that earlier, but the overtime kept me away. Since I have the weekend off, I’m gonna study some more Rails stuff, like RJS and RESTful web services.

(Aside: You know you’re a real geek when you have the weekend off from working in front of a computer, and your time off consists of sitting in front of a computer, studying about work-related stuff.)

Also, I’ve already started writing a post about using embedded Ruby templates and ActiveRecord within command-line Ruby scripts. This can be useful to generate templated emails, XML feeds, and all kinds of other formatted output from cron jobs and the like using Ruby. I’m sure that will be of interest to quite a few Ruby fans.

Now if you’ll excuse me, I’m gonna use my free Thursday evening to begin to catch up on some teevee and anime I’ve had to let accumulate in my BitTorrent folder in the last four weeks. I also look forward to IMing with friends tonight for more than a few sentences, without having to divide my attention between work chat discussions and my friends’ conversations.

Talk to you again soon!

Technorati Tags:
, ,

More like rakin’ in da dough …

It’s been two and a half weeks since I started my most recent freelancing software development project. Two and a half weeks of 20 hour days and seven day work weeks. Yep, if this project were to end today, I could weather out the rest of the year before another project came along. I wasn’t born a fool and took advantage of the overtime for precisely this reason. I have aged a year in only three weeks, busting my ass into a nubbin’, but with this in my résumé, this is promising to be the wonderful start of a great year.

This project is huge both in scope and publicity, for our customer and for Rails. And we go live after Monday, March 12! There is still work after that, but next week, you all will get to know what I was working on! That’s cool! I’ve been dying to tell you. In some countries, this is as big as NASCAR.

The project backend is in Rails, and like most systems, it has a data entry component and an end user component. In this project, one data entry system feeds two end user components with more or less the same data, but styled and delivered differently. As I mentioned two weeks ago, this is a project about car racing, and as in any sport, the press and the consumer both need different levels of access to information about the race cars, the racers, and the race information itself.

One of the coolest aspect of this project is working with delivery from the Rails side, of Atom feeds to a Flash client. The Flash client is slick enough, as you will soon see. But the support of XML generation in Rails is sick slick. I would love to write about that in the future, as there are plenty of gotchas to learn about and work around.

I was not responsible for the Flash side of this project, not in the least. It was perfected by one of the masters of the craft, along with two other cool Flash guys. Hats off to them. Next week they get their 5 minutes of fame on this blog, as I will mention all team members by name when all is out in the open and the stupid NDA is moot.

Alright, I have to get going, as I have to eat dinner before I throw myself into the pit of overtime one last time. It’s all smooth sailing after Thursday night.

Technorati Tags:
, , , ,

Bringin’ in da dough, baby!

Last Wednesday, I sent emails and résumés for various job posts, and by that afternoon, I started getting nibbles. It was weird! Whereas I barely got any attention for over a dozen job applications I sent out between September and early February, I suddenly had five companies interested in me in a matter of hours! Maybe companies were waiting for post-holiday economy reports to start hiring? I wonder.

So to cut to the chase, I got a great hourly-pay remote development gig working on a Ruby on Rails project, on a really cool sounding website, for a very-high-profile vehicle racing company in the UK. It’s right down Ken’s alley, but if I’m not mistaken, this sport usually has a definitely more European racing audience. I think American racing fans like Ken, might resent these are not American cars, and just don’t watch. LOL

I cannot disclose any more information because of client confidentiality, but I think I may already have said too much. :-p

I’ll post a link here when the site goes up, at any rate. Only then can we drop all this silly NDA crap. It’s a bummer, because I can’t discuss application architecture specifics that would be of interest to my readers.

But fret not. There’s no rule about my discussing the project’s architecture in general. I just can’t say right out what architecture I’m dealing with on this gig.

I’ll be writing more about Rails in the weeks ahead, but just cuz I write about it, don’t mean it’s got a thing to do with work, you hear? :: rolls eyes ::

Technorati Tags:
, , , , , , , , ,

End of January Report

You can see from the title, I started this post two days ago! And I just managed to post it now! Busy, busy!

Hi there, readers!

I have been busy for the last week, looking for new gigs, and sending out article proposals for a few sites and print magazines. I’ve also been toying with making screencasts, using my camcorder, and operating iMovie, for a not-so-secret pjtrix project from the summer. And then there’s another two projects, but they are secret for now. All this fun left me with little time for pjtrix posts.

Among other news, this here weblog finally got approved for PayPerPost.com and ReviewMe.com. Let’s see if I find something you and I might be interested in. First thoughts: … meh …

I continue to cover living expenses with the odd gig here and there. I have to find a way out of the hole into better gigs, though. The secret and not-so-secret projects should help, as well as the writing. We’ll see. I remain hopeful for the near future.

iCal to GCal Sync

I started this open source project in December, but I’ve actually made little progress in all of January. The learning curve is a little steeper than expected. Drawing a Mac OS GUI is super easy with Interface Builder, but making it work in a foolproof manner isn’t.

Then there’s the added complexity that all the Mac OS specific documentation is in Objective-C, a language I haven’t used or even looked at until now, and very different from the PHP, Python, Ruby, C++ and Java I know. And then I have to convert from the Objective-C examples to the Ruby-Cocoa construct I need to write my application. It’s not difficult, it’s just I haven’t yet internalized all the “bastard C-like object-oriented language from hell” newness.

From what I have gathered, Mac OS X Leopard is going to come with built-in Python and Ruby bindings to Objective-C. Maybe Apple will add some helpful documentation to their developer site that will help with this kind of conversion. I have half a mind to write a little GUI tool to convert short Objective-C snippets to their Ruby-Cocoa equivalents.

Spam, SPAM, Spam, SPAM, Spam, SPAM, Spam, SPAM

It’s not a pirate movie, and it’s not quite as good as the The Princess Bride, but Robin Hood: Men in Tights gets a good quote now and then in my emails and chats with my old college buds. And the Spam song always makes me laugh. So without much further ado, here is the monthly Akismet comment spam report.

In the month of January, Akismet reports I received 57 spam comments! This is compared to 74 for the entire year 2006. I remember not having any spam comments for quite a while, until some time in August 2006. I don’t remember the exact amount of spam comments I received in December, but I think it was less than 30, and November 2006 had about 20. So it seems that as I become more prolific in my posting, the spammers turn up their attempts. Or whatever.

Slight change of plans

Before 2006 ended, I wrote a post here, where I mentioned I was going to be dividing my workday into three five-hour shifts. During the day, I planned to spend five hours writing for an online technical website, another five hours trying to get a part-time gig with Assembla.com through their paid trials, and another five hours working on pjtrix-related stuff.

After a week of the New Year, I can tell you that’s not gonna work. There simply aren’t enough hours in a 24-hour day to work three five-hour shifts and take care of the stuff one has to do day to day outside of work. This is so even though I work from home and don’t have a commute. Not unless I sleep less than six hours, which isn’t happening. I should be sleeping more than six hours, not less.

So the new plan is to divide the work day into two five-hour shifts, one shift for technical writing, and another for Assembla.com. After accounting for all the stuff one has to do in a day outside of work, this leaves me with more than two hours each day for pjtrix-related stuff. But on Saturday and Sunday, I will usually have about six hours each day for pjtrix-related stuff. That’s not bad.

So I hope with these changes, pjtrix will continue moving forward, without anything important being neglected on the home front.

Last blog post for 2006

Happy New Year, everybody! It’s five and a half hours to the big hour here at Chez PJ, so I am taking this time to update you all about what’s going on.

Last weekend, I finally got Trac and Subversion installed like I wanted: read-only anonymous checkouts through http://svn.pjtrix.com/projectname, and read/write access for certain users only through svn+ssh://svn.pjtrix.com/var/svn/projectname.

As is almost always the case with things Unixy, the problems all had to do with setting the right permissions on the repository folder, and making sure that all related processes create new files with the right permissions set. The fix was a litany of addgroups, modusers, chowns, and chmods. Then I had to make substitute shell scripts for all the subversion commands, which simply set umask 002 before running the actual command.

After the Trac and Subversion headaches came Christmas, so I took a three-day break, visiting family, starting to read one of a few dozen fiction books from my “to read” pile, and generally chilling out. Then from Thursday through Saturday, I only worked on proposals for articles for “the secret online geekly articles site.” I hope to get at least one article proposal accepted in the next weeks.

I also found a potential employer, a place in Amhurst, MA called Assembla.com. They are a remote development consulting company, looking for Ruby on Rails developers that can work remotely. Their main product is something like a mashup between a wiki, a social network site, and a project management repository. They also do custom remote development for customers.

The interesting thing about Assembla.com, is that the hiring process consists of a type of paid audition: instead of sitting through interviews, getting your references and work history checked out, and usual job-getting stuff, they assign you a task out of their real workload, and pay you for a week or two while you get it done. If you accomplish the task to their satisfaction, you’re offered a permanent contract. If not, well, you can keep trying. I’m going to be applying this coming week.

I need to get my time organized, that’s certainly step one of the New Year. I want to work on iCal to GCal Sync and do more pjtrix goodness. I also will need to work on whatever tech article gets the a-OK. And I also need to concentrate on passing a paid trial for Assembla.com. Easy peasy. (Hint: that was sarcasm, folks. But I’ll try nonetheless.)

What I will probably end up doing, is divide my days into five-hour periods, not including sleeping, eating, my mandatory 20-minutes-away-from-the-computers-every-two-hours, and hygiene time. I’ll work on only one thing each period, then rotate among tasks every five hours. It will be like working three part-time at-home jobs! I’ll be like a homemaker mom. :-)
Alright, that about does it with the updates. If I think of anything else, it will be my first post for 2007! See you then!

Technorati Tags:
, , , , ,

Progress and hair pulling

Through the magic of social networking site LinkedIn, a friend of a friend introduced me to a friend. This friend is looking for a technical writer for a website with a geek audience interested in open source, Linux, web technologies, and software development. It’s not as big as Slashdot in readership, but it is sizable and has good credibility.

It’s not a permanent job, it’s more like “we’ll pay you decent money if we publish your article.” Print magazines pay a pittance for a two-thousand word article. This website pays pittance x 3, making it a lot more worth the trouble. If I can get on the stick and write an article per month, it could make a decent source of part-time income.

I know I’m being vague about the site. Once I get my first article published, believe me, I’ll post all the details. :-)
—-

I have finished setting up Trac for hosting my open source projects. As if installing Subversion last week wasn’t enough, Trac configuration took a lot more trial and error. My web hosting provider uses Plesk for setting up web domains. Even though I know my way fairly well around Apache, I had used the Plesk configuration app to set up this web site and my friends’ websites on this server. I practically painted myself into a corner, as Plesk doesn’t like geeks messing around the Apache config files, which you have to do to set up Trac and Subversion. ** sigh **

I am still fighting with the configuration of the Subversion code repository. I want to have check-ins through ssh+svn, and anonymous checkouts through HTTP via Apache mod_dav_svn. I hope to have that all set up tonight so that I can check in the first files of my open source project’s code.

—-

I like and use Google Calendar, but as a bona fide code geek, I am more interested in getting my calendar data out and integrating Google Calendar into desktop and web applications.

My first open source project for pjtrix is a Mac OS X application to integrate together iCal and Google Calendar. In the last few weeks, I’ve been researching the Google Calendar API, writing some test applications to insert calendar events into Google Calendar, pull calendar events out, change calendar event data and put it back in, etc. It’s all done in Ruby, which has made it all really nice.

Right now the integration between iCal and Google Calendar is only one-way. You can import your iCal calendars into Google Calendar. Or you can import your Google Calendar calendars into iCal. But you can’t have changes flow from one application to the other without creating a mess of duplicates every time you change the date or time of an event.

You can read more information about my project at the project’s Trac home page.

Technorati Tags:
, , , ,

Next Page »
Who links to my website?

Bad Behavior has blocked 255 access attempts in the last 7 days.