October 28th, 2006

Desert Code Camp II

I had the opportunity to attend/speak at the fall Desert Code Camp today. Attendance at each of my talks was good, and the overall feedback was encouraging. I was up until 5:30 a.m. preparing, so I definitely appreciate the kind words. For those of you who attended I thank you, for those of you who couldn’t make it feel free to buy me a beer and I’d be more then happy to walk through my example app.

Full example source code can be downloaded from my public svn repository at http://svn.joshknowles.com/projects/contactulous/. The rake tasks I demoed can be found at http://svn.joshknowles.com/projects/plugins/rake_tasks.

Thanks again to Lorin for all his hard work putting this together. This guy definitely deserves a huge thank you for all the time he puts into supporting the development community.



September 25th, 2006

Microsoft Web Development Summit

I had the opportunity to travel up to Seattle to spend the last half of the week at Microsoft attending a Web Development Summit with a small collection of open source hackers. This was a unique and interesting 2 day event in which we were given the opportunity to interact with the members of the DevTools team as well as critique some of the upcoming web development technologies. I was a little leery coming in as I wasn’t sure what to expect, but I was pleasantly surprised that at no point during the event did I feel like I was being given a sales pitch or being asked to make the switch. While I myself don’t develop on Windows, many members of the Rails community do, thus by getting the opportunity to speak directly with the IIS and Visual Studio teams I am attempting to do my part to make Windows a viable platform for both development and deployment of Rails based web applications.

The thing I enjoyed most about this event was the people, both the attendees as well as speakers. With a non-Microsoft attendee count of around 20 we had the opportunity to interact in a much more casual, intimate atmosphere then at a normal conference. Of these 20 the vast majority were PHP hackers including core-developers, speakers and authors. This was the first chance I’ve had to interact with anyone from the core PHP community and I have to say that I was quite impressed with their level of technical knowledge and pragmatism. In addition to this elite group of PHP gurus, also in attendance were Jason Gilmore (Open Source Editorial Director for Apress), Andrew Stopford (MbUnit maintainer and fellow TDD junkie), Keith Elder (self-proclaimed Dot Net Pimp), Christopher Schmitt (CSS God), John Bland II (fellow Phoenix hacker and all around Geek), Reg Charmy (Editor of Web 2.0 Central), Tim Heuer, Drew and Dave Bost (all Microsoft Developer Evangelists) as well as many others whose blogs I didn’t happen to get.

Microsoft definitely took this event seriously, and pulled out the big guns when it came to organizing the speaker line up. We had the privilege of being able to converse with industry legends such as Anders Hejlsberg, Don Box and Scott Guthrie. To complement this amazing lineup we also had access to the technical leaders for all of the major development teams (IE, IIS, Atlas, SQL Server, etc) and I was able to discuss getting official support for Rails development/deployment on both SQL Server as well as IIS. In addition to coming to the regular sessions Scott, Brad and many others even made themselves available during the after-hours events and were genuinely interested in our opinions in the current product line as well as what they could learn from the open source communities we represented. As a whole these guys have an intense technical understanding of the products they manage. In many cases they understand the competitive technologies, such as Rails and PHP, at a level higher then many of developers I come across. It always amazes me at the level of technical abilities that these Microsoft managers have been able to retain. They are a group of extremely passionate geeks who have managed to stay technical as they love what they do.

As far as the technologies being presented; I was impressed at times, bored at others. The organizers did a good job pulling together a wide variety of content, unfortunately there was a bit of overlap at times which I guess is to be expected when you have 12 technical sessions compiled by 12 different people. The only session which I completely zone out in was Workflow; not to say this isn’t a cool technology, or that the speaker did a poor job, it just wasn’t something that I’m interested in nor did I see the relevance to the event.

This event was it was completely jam packed, from 8 a.m. until 10 p.m. The side effect of this was that while I had hoped to take proper notes and blog along the way, but I never really had a chance to sit down and collect my thoughts. Below I’ve done by best to recall my thoughts on the majority of the technologies which we were shown in no particular order.

The most impressive session was on LINQ, which is technology which I’ve seen before. This query language continues to peak my interest as I’m very impressed with the ability at which it can combine disjoined data-sources, such as XML and SQL, through a natural easy to understand syntax. It was great to have Anders give this presentation as he took a bit of a different spin on it then when I saw Scott give it the week before. If you are doing any kind of database querying or XML parsing using Dot Net 2.0 I would definitely recommend downloading and checking out this cool new technology.

Atlas (to be re-named to something silly and utterly unrememberable) is another technology which I’d seen before, but am still very interested with. If you are an ASP.Net developer I highly recommend utilizing this library. Unfortunately I still see no real reason for those of us not using Microsoft technologies (ASP.Net / Visual Studio) to use this over something like Prototype/Scriptaculous, but I plan to keep an eye on it non-the-less.

For you designers in the crowd you should definitely check out the Expression Web Designer. Unlike Frontpage, this looks like a tool which a professional could actually enjoy using. This time around they have built with a strict adherence to XHTML/CSS which has resulted in a tool which I believe will be a true competitor of Dreamweaver.

The IIS team has come a long way since the 5.0 days. It appears as if they have totally overhauled the existing code-base to make way for a completely modularized architecture in which will allow for technologies such as Ruby and PHP to easily plug-in. I really liked the easy to use config UI which will allow you to manage remote sites over HTTP. I was also impressed with the ability to set per site/directory settings using a web.config file, this will allow for much easier deployment into a shared-hosting environment.

The IE 7 team stood up and apologized for the fact that they haven’t really done much over the last 5 years. That said, IE 7 is shaping up to be a great tool and has definitely come a long ways since the current revision. There are some features in there which are definitely copies of Firefox, and others which are original and very impressive. This update should definitely bring back some much-needed competition into a market in which tabs have been the only real innovation in the last 5 years. One thing to note is that it will be distributed via Windows Update to XP (SP2) machines, so if you’re a [Windows][] user make sure to keep you’re eyes peeled to the system-tray for that update icon during Q4 of this year.

In the areas of dynamic languages Microsoft is still weak, but Jim Hugunin has done an amazing job on Iron Python and they appear to be heading in the right direction. My only complaint with this session was that Jim focused the Q&A time entirely around PHP and basically blew off my questions of when we would see official support from Microsoft for additional dynamic languages such as Ruby.

While the above mentioned talks were great, the most entertaining session had to be when Don Box discussed “Why Microsoft Sucks”. During the open-forum Don asked the crowd what Microsoft could do to better enhance the developer experience. After a series of legitimate suggestions; such as true SSH access, getting rid of the registry, proper console and scripting support someone threw out “make it free”. Don then went into a tirade (in jest of course) in which he said, “F@k you! F@k you! F*@ you! I have a family to feed, do you want to see them on the street? Is that what you’re asking for?” This was a truly hilarious response to a silly remark, and definitely a nice break from the technical demos.

In addition to all of these sessions we heard about CodePlex (cool), WorkFlow (boring), CardSpace (cool), WCF (cool) as well as many, many others. Check some of the additional trip-notes provided below for additional technical details as well as others opinions on this unique event:

So with all of this excitement over [Micrsoft][] technolgies there are those of you which may be questioning my loyalty and direction moving forward… Well fear not my fellow Rubyists for I have no intention of trading in my PowerBook and copy of TextMate for VisualStudio. I do however appreciate the willingness of everyone I met to listen to, and engage with, the Open Source development community. Microsoft appears to be moving in the right direction which in the end will help all web developers, Microsoft or not. Overall I came away from this event with much greater respect for the Microsoft development teams and hopefully was able to peak the interests of a few key people to get proper support for Rails on IIS and SQL Server. Many thanks to Sanjoy and Tanya for putting on a great event, as well as to Tim for the invite. I look forward to coming back in the spring to see the results of our feedback!



August 15th, 2006

Growl Envy

For you tortured souls who want to play with Growl or Ruby-Growl but are stuck on Windows please check out Snarl and Ruby-Snarl.

I’ll leave the coding example up to you, but at first glance it looks very similar to what I demonstrated last night at the Phoenix Ruby Users Group.



August 15th, 2006

Typo the Memory Hog

Like many people I have been bit many times by my FCGI sockets suddenly disappearing on TextDrive. With no real indication in the logs as to what was going on I turned to the development community and within 10 minutes had a great link to a blog post describing the fact that Typo is still a memory hog and is constantly going over the memory usage limits for TextDrive.

Thanks to the tips from Steve Longdo I have attempted to trim down my Typo instance a bit by removing all unused sidebar components. We’ll see if this does the trick, if not I may be making the switch to Mephisto. As always thanks for your patience as I work through these administrative headaches.



August 15th, 2006

August Phoenix Ruby Users Group

We had another successful Phoenix Ruby Users Group this evening. I believe that we once again had a record turn out, many thanks to all who gave up their evening to come support the community. To be honest I was quite surprised with the number of people who attended, mainly do the the fact that I posted to the mailing list last week stating that I wanted to take a break from focusing on Rails to demo some of the other cool libraries that tend to get overlooked.

The original intent of this month’s meeting was for me to do an in-depth tutorial on Rake followed by a demo from James on automating Trac tasks via Rake tasks. Unfortunetly due to a prior commitment by James, and a sudden lack of interest on my part to talk about Rake for 45 min, plans needed to change. Thankfully this morning Jason convinced me that it would be cool to show off some of the capabilities of RubyCocoa. Thus having never even opened Xcode or InterfaceBuilder I spent my lunch hour doing a little research and was actually quite impressed at what I was able to figure out and hack together (how’s that for being agile!). In the end I decided to stumble through a demo of Ruby-Growl for showing cool little notifications, and RubyCocoa for building a sweet little UI to manage the execution of Rake tasks.

I’ve listed some very brief code-samples below, along with some links to the references that I found most helpful. If you are at all interested in either of these libraries please contact as I’d love to continue hacking on both.

Ruby-Growl

Code:

require ‘rubygems’
require ‘ruby-growl’
require ‘open-uri’

growl = Growl.new(“localhost”, “ruby-growl”, [“ruby-growl”])

begin
  URI.parse(“http://joshknowles.com”).open 
rescue 
  growl.notify(“ruby-growl”, “Error”, “joshknowles.com unavailable”) 
end

References:

RubyCocoa

References:

Once again thanks to all that attended and showed your support for the local development community. I apologize for my lack of preparation, and appreciate your patience I stumbled my way through my latest pet-project, hopefully you were able to see a thing or two that interests you. For those of you I met the first time, I hope to see you again. For you old timers it’s always a pleasure. I hope to see everyone next Tuesday evening for the AZ on Rails meeting where I will be giving a demo of Capistrano.



August 14th, 2006

Development Environment

Recently Robby convinced me that I should be using DarwinPorts as opposed to the src based configuration that had worked so well for me in the past. So with the help of a few good tutorials I deleted my /usr/local/ directory and made the plunge. After about a week now, having fully played with the new environment, I’ve got to say that if you haven’t tried out DarwinPorts you really should take the time to switch. I know it seems a bit odd that all your files are in this weird /opt directory (at least it was for me), but trust me the dependency management and install/update process is definitely worth the switch.

What follows is a brief recap of my installation process. Nothing here is original, it is all derived from the articles mentioned above, I just wanted to consolidate the information for my own archiving benefit.

Note: The following assumes you are running Mac OSX 10.4 (Tiger)

Install Xcode

Install the Application Image available from the Xcode section of the Apple Developer Connection website (ADC login required).

Install DarwinPorts

Install the Application Image available from the Downloads section of the DarwinPorts website.

Update PATH

echo ‘export PATH=”/opt/local/bin:/opt/local/sbin:$PATH”’ >> ~/.bash_profile

Update DarwinPorts

sudo port selfupdate

Install Ruby & Required RubyGems

sudo port install ruby
sudo port install rb-rubygems
sudo gem install -y rake
sudo gem install -y capistrano

Install RubyCocoa

sudo port install rb-cocoa

Install SQLite

sudo port install swig
sudo port install sqlite3
sudo port install rb-sqlite3

Install MySQL

sudo port install mysql5 +server
sudo port install rb-mysql5
sudo mysql_install_db5 –user=mysql
sudo launchctl load -w /Library/LaunchDaemons/org.darwinports.mysql5.plist

Secure MySQL

cat /etc/my.conf
[mysqld]
skip-thread-priority
skip-networking

Install Subversion

sudo port install subversion +tools

That’s it for now. I’ll update soon with lighttpd, Mongrel, etc. (currently I’m going old-school and running all local dev off of Webrick).

[Update 08/15/2006: Added install of RubyCocoa]



June 22nd, 2006

RailsConf Photos

Full trip report from the train to come… for now check out the photos posted up at flickr: http://www.flickr.com/photos/joshknowles/



June 19th, 2006

And we're off...

For those who haven’t been keeping up…

I’m heading to RailsConf in Chicago this Thursday - Sunday. Instead of just flying into Chicago I decided to join the crew from Planet Argon, along with a crew of 16 other random rails-hackers, on the Argon Express, a 40 hour train ride & hacking session to Chicago.

Expect many good stories, pictures and perhaps some code. I’ll try and keep the site updated as we travel. Currently we’re all sharing my GPRS connection, feel free to hop onto #theargonexpress on freenode to chat it up, I’m sure we’ll all be online while we have connection.



June 19th, 2006

All aboard the Argon Express!

T-Minus 8 hours until I board the Argon Express!

Currently I’m sitting in the PHX airport preparing to head to Portland where I’ll meet up with the Planet Argon guys as well as the rest of my traveling companions. At that point we’ll board the AmTrack headed for RailsConf in Chicago. Approximate travel time: 40 hours.

I’m definetly excited for this trip; mostly because I have no clue what to expect, who I’m going to meet, or what I’ll be doing! I’ll do my best to take lots of pictures as well as blog the entire week. I expect this to be a very memorable trip.

Expect a quick update before we board, then I’m not sure what my net access will be like while on the train so there will most likely be a bit of a blackout over the next 3 days while I’m traveling.



June 13th, 2006

Phoenix Tech Community

One of the main reasons for my decision to re-locate to Phoenix was how well I’ve been embraced in the local development community. In the 3 months I’ve been here I’ve found a great group of talented developers through the Ruby Users Group, Refresh Phoenix and the Desert Code Camp. Many thanks to everyone who has made this a great transition, I look forward to helping to continue to grow the local development community.

Speaking of the Ruby Users Group… tonight was another successful meeting. Today we had 20+ developers show up! Not quite sure what exactly drew everyone in for tonight’s meeting, but whatever it was we were glad to have you there. Many thanks as always to Will and Cyclone Commerce for providing us the great space as well as to James Britt for promoting & facilitating.

Looking forward to next month’s meeting where I plan on presenting more of my plugin work as well as some in-depth Rails testing tutorials and an introduction to Capistrano