Double Shot #73

There's plenty going on in the Rails community (and other corners of non-Microsoft software development). Here are a few more shiny things that have caught my eye lately.

Double Shot #72

I fear I let things pile up a bit last week. Time to clear out some of these open browser windows and hope that the news isn't too stale.

  • A 'DHH Approved' Logo? - There's been a fair amount of discussion the last week over the fact that DHH wants to keep the Rails logo locked down as far as book cover usage goes. While I understand the trademark law argument, there's some clash with open source principles here. And handing out a copy of the logo in every generated Rails app may have already fatally weakened the protection anyhow - though IANAL.

  • Editing Multiple Models in One Form - I needed UI to edit all the records in a model on one web form in Rails; this proved to be easy to set up once I knew how, and hard to figure out. This tutorial pointed me in the right direction.

  • Apache Lucene - Query Parser Syntax - Since Solr builds on Lucene, trying to figure out how to write queries for acts_as_solr will eventually lead to this page.

  • redMine - Rails Based Open Source Project Management Application - Review of another competitor to Trac/BaseCamp/et al. Looks worth digging into.

  • OpenID Sample Application Updated - Ben Curtis has revved his OpenID reference app for Rails.

  • GeoKit - Rails plugin for geocoding. I'm gonna need this soon.

Double Shot #71

The bookmarks have piled up a bit again. Time to clean them out to start the week.

  • Capistrano 2.0 - The release of a significant new version. I guess I finally have to stop putting off learning about the new features and changes now.

  • In-Place Editing: The Summer 2007 Rewrite - And speaking of new features, there's been a significant bit of code thrash over at script.aculo.us.

  • pure class - Discussion of the best way to define a user.reviews.good (or analogous) method, something that I need to do soon for the current app I'm working on.

Double Shot #69

We're trying to prep our house to put it on the market. This sucks down a great deal of time, and explains why posting may be spottier than usual for a little bit.

Double Shot #68

A few random links for the Fourth of July.

  • Information Card Ruby - Yes, you can now make InfoCard play with Rails, if you must. This will be a good thing for those trying to smuggle Rails into Microsoft shops.

  • Mingle is Now Available - That would be the new agile project management tool from ThoughtWorks, now in an Early Access release.

  • Comatose - Micro-CMS implemented as a Rails plugin, to handle editing of those few semi-static pages that pile up in every application.

Progress Report

Here I am, half a year into my experiment with cutting loose from Microsoft, and I think I can pronounce it a success:

  • I now have two Rails consulting jobs running, and I'm as busy on that front as I want to be from now until about the end of August, which is about as far out as my consulting time has ever been assured. This doesn't mean that I'm not looking for more, but it means that I'm feeling a comfortable cushion, and a confidence that I'll find more work to keep the pipeline full. My Rails rate is nowhere near what my top C# rate was (or for that matter, what my top Netware rate was many years ago), but that's OK.

  • I've got a couple of leads on actual US-dollar paying Second Life work, which I am actively pursuing.

  • I still don't feel like I've reached the "expert" level with Rails yet, but at least I can get it to mostly do what I want with minimal fuss. The times when I go off the clock to research something are getting fewer and taking less time.

  • My .NET skills are rapidly deteriorating; I haven't written a line of C# or VB code in months.

  • I'm moved almost entirely to the Mac for my day-to-day work, with the exception of maintaining the Larkware site.

Double Shot #67

I'm getting to the point where I'm finding more interesting links for my new blog than for my old one. This is a good sign of transition, I think.

Double Shot #66

Time to repost another few links for my own reference and yours.

Double Shot #65

There are always about a million little fiddly bits to do to get an application out the door, aren't there?

  • Backing Up Your Mac - Recently-revised article from MacZealots listing some easy alternatives. Doesn't answer all of my questions but it's a good starting point.

  • mirRoR Placement - A pure Rails job shop. It's another sign of the rapid growth of the Rails ecosystem that we're seeing firms like this pop up.

  • Announcing Multisite Plugin for Rails - Serve multiple domains from a single Rails application by giving each a distinct set of views.

Double Shot #64

Woo, starting another consulting job today, without a speck of MS stuff in sight. I feel all vindicated and stuff.

  • iStat Menus - There are about a million different Mac system monitors out there. This one is free and doesn't take up screen real estate when you don't want it to.

  • VSS to SVN: Part 3 - This tutorial for source code control switchers continues.

  • Ruby on Rails EC2 'Appliance' - Practically turnkey Rails deployment to the Amazon server cloud. (via Ruby Insie)

  • Sake Bomb - Sake is system-wide Rake. Looks like it still has some warts, but is already useful

Double Shot #63

With a second Rails contract about to be signed, I guess I really am a Rails consultant now. How about that?

Production Rails Setup at RimuHosting

I've finished getting my first production Rails server up and running at RimuHosting . I kept reasonably careful notes along the way, and now I'm going to brain-dump them here, in part because I might need them again in the future, and in part because they might help someone else. Of course, there are so many variables that your setup very likely will not be a precise match for my setup, so use with appropriate caution.

We started with a MiroVPS3 (224MB) host with Debian Etch, the Webmin control panel, and RimuHosting's own basic Rails stack preinstalled. That's probably overkill for this little app, but the client wanted to be sure of plenty of breathing room. I'm targeting Apache + Mongrel for serving pages because that's what I've been using in development and staging; production is not the time to experiment with a new-to-me server.

  1. ssh root@nn.nn.nn.nn

  2. adduser mike

  3. logout

  4. ssh mike@nn.nn.nn.nn

  5. started mysql via Webmin control panel

  6. changed mysql root user password to DBPassword via Webmin control panel

  7. set up mike as a full admin using sudo by using visudo

  8. sudo adduser appuser

  9. mysql -u root -p

  10. CREATE DATABASE appproduction;</li>

  11. GRANT ALL PRIVILEGES ON appproduction.* TO 'appuser'@'localhost' IDENTIFIED BY 'apppassword' WITH GRANT OPTION;</li>

  12. quit; get out of mysql

  13. used Webmin to set mysql to listen on any

  14. sudo apt-get install libopenssl-ruby1.8 Without this step, recent Rails won't run properly on Ubuntu or Debian

  15. mkdir /Library

  16. cd /Library

  17. sudo mkdir Rails -p -m 777 I like to keep my Rails apps in /Library/Rails. Your mileage may vary.

  18. changed server info in deploy.rb to point to the production server

  19. (on development machine) cap setup

  20. sudo gem install:include-dependencies mongrel_cluster

  21. (on development machine) cap deploy

  22. cd /Library/Rails/app/current

  23. rake db:migrate RAILS_ENV=production

  24. cd /etc/apache2/sites-enabled

  25. sudo nano 000-default edited this to basically match my staging version

  26. sudo a2enmod proxy_balancer

  27. sudo a2enmod proxy_http

  28. sudo a2enmod rewrite

  29. sudo /etc/init.d/apache2 force-reload

  30. sudo /etc/init.d/apache2 restart

  31. used Webmin control panel to set mysql to start at boot

  32. sudo ln -s /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-0.2.1/resources/mongrel_cluster /etc/init.d/mongrel_cluster

  33. sudo chmod +x /etc/init.d/mongrel_cluster

  34. sudo mkdir /etc/mongrel_cluster

  35. sudo ln -s /Libray/Rails/app/current/config/mongrel_cluster.yml /etc/mongrel_cluster/nrafh.yml

  36. used Webmin to set mongrel_cluster to start at boot time

Double Shot #60

First client Rails app successfully up and running at RimuHosting. I'll be writing up my notes for future reference soon. Meanwhile, a few links.

  • SimpleLog - A Rails weblog application I hadn't run across before. By the way, I know my RSS feed for this one is still goofy; I'll take a look when I've got spare cycles. Thanks for your forbearance. (via Same Shirt Every Day)

  • Scripting Second Life with Rational Application Developer- - IBM continues to take Second Life seriously. There are also a bunch of crossover events from this week's IBM/Rational conference being held in Second Life.

  • JRuby 1.0 - The JRuby team announces full Ruby compatibility. I don't personally have a whole lot of interest in JRuby (my ambition is to never work in an "enterprise" again), but it's a nice validation point for the community.

  • Rails Business: Weekly Review #1 - Roundup from one of the mailing lists spawned by this year's RailsConf.

What is the Deal with Second Life?

People tend to look askance at me when I tell them that I'm looking at two main avenues of revenue for replacing the .NET stuff that I'm giving the boot: Rails and Second Life. Rails they understand, but the thought that any adult might take Second Life seriously is still apparently a silly one to many people. So, time for a few words of explanation so that I can stop repeating myself.

Second Life is of interest to me on several levels. It has some game-like aspects, of course, and one can't neglect that it's fun (without having any particular goal) to hang out with online friends, just as IRC can be fun. And I do agree with those who think that some form of the 3D internet will take off over the next decade. While Second Life may not end up being the winning horse in that race (Linden Labs has plenty of opportunities to fail), it's one of the contenders and a good place to get some idea of what might work.

But from a business point of view, right now, it's also a place where real people make real incomes in real money. There are two distinct ways that this happens. First, there are around 100,000 paying customers (never mind the nearly 7 million signups; many of those don't stick around) putting hard currency into the Second Life economy. Linden Labs does manage to take a house rake on every transaction that involves converting real currency into Linden dollars or back, but much of that money comes back out again. The paying population is the size of a medium-sized real life city, and that's plenty big enough for some people to be making a living selling virtual stuff. Thanks to my wife's jewelry business, our membership costs are already covered, and we're on our way to being cashflow positive (not quite there yet, because we've invested in virtual land, but we'll be there well before year end and making extra income as well).

Second, there are consulting companies - "sherpa firms" - who make money by billing real money directly to first life companies who have come to the conclusion "Hey, we need some of that Second Life stuff" and who have no idea how to go about it. Creating a place in the world for the company down the street is the equivalent of building web sites a decade ago, and we're seeing a similar land rush just starting up. Right now most of this activity is big firms paying big dollars, but I expect we're going to see some commoditization over the next year or two. It's possible that one could make a decent living doing four-figure (US dollar) Second Life setups for small and medium businesses.

Anyhow, that's the basics. If you want to poke around, you can try out Second Life for free. If you do get in-world, you can find me by searching for MikeG1 Schumann and I'll be happy to chat with you there.

Double Shot #58

You know, I was worried about "slippery slope" censorship issues 20 years ago in zinedom, and here I am worrying about them again in Second Life. Some things just never change.

subscribe via RSS