Wednesday, June 17. 2009
This one stumped me for a while today. I had an application to deploy which worked fine in development. Deploying to production led to this error:
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.0.5/lib/active_support/dependencies.rb:249:in `load_missing_constant': Expected /myapp/releases/20090617160914/app/models/widget.rb to define Widget (LoadError)
Googling that error turned up lots of pages for Rails 1.2.x and issues with underscores in names. None of it applied. Widget was definitely being defined in widget.rb. Following the stack trace it appeared that the error was thrown in the Ultrasphinx plugin. After trying a lot of other things, I decided to comment out the Ultrasphinx code in the model and retry. The error changed to this, which was helpful:
Errno::EACCES: Permission denied - /myapp/releases/20090617160914/public/widget/myfile
This model was also using the file_column plugin, and the underlying error was just a permissions problem in the file attachment target directory. I fixed the permissions and put the Ultrasphinx code back in the model, and all was happy. If only that permissions error had shown up first!
Friday, February 27. 2009
Last Saturday I participated in my first triathlon at Santee State Park. It was an "off-road" triathlon which consisted of 3 miles of trail running, 3 miles of lake kayaking, and 7 miles of mountain biking. They had lots of participants for the short and long races, and the weather was excellent. It was good mix of people, so I didn't feel intimidated just by being there. I was there more just to compete with myself anyway.
The race made for a good excuse to exercise during the winter. I did a little more activity right after Christmas, but I didn't really get into it until the last month. Then I spent extra time at the gym and also did some "mini" triathlons here in the neighborhood.
For the race, the running was tough; I should have trained more for that and run more on trails instead of roads and treadmills. I felt great kayaking, and passed several people, but my wide poly kayak was a barge compared to the sea kayaks and racing kayaks that some other folks had. The biking was harder than expected; I was pretty tired by then and you can't coast as much on a trail as you can on the road. But all in all, I was happy just to finish! And to not be last was a bit of a bonus. I came in 19th of 26.
Now you give it a "tri."
Thursday, January 29. 2009
Update 2011-09-18: See here for the most up-to-date instructions (MAMP 1.9). I got it working on 2.0, but experienced some of the same problems other commenters noted). See also these instructions for MAMP 1.8.
After much frustration, I found a way to get the Ruby mysql Gem installed and talking to my MySQL server on MAMP. Credit goes largely to "Hootbah" who followed a similar path to get MAMP talking to Perl's MySQL library. Here's the steps I followed for MAMP 1.7.2:
Sunday, December 7. 2008
I recently needed to run through one data file, pull a number, and look that number up in several other data files. So in Ruby, I first opened the initial file, pulled the number, and then opened the other files, iterating through every line until I found a match, then call break to move on. This worked, but it was sort of slow.
It occurred to me that I could use grep to see if the number was in the other files. So I had to figure out how to call it from Ruby. Here's what I came up with:
The speed improvement depends on how many searches you're doing and the size of the files you're searching, but in a quick test the grep calls were 5x faster.
Tuesday, November 4. 2008
I hereby declare my candidacy for President of the United States. So please write my name in when you vote today. Why did I wait until today? My platform is procrastination. You can expect me to drag my feet on such projects as:
And whatever you do, please don't vote for this guy!
Friday, October 10. 2008
Shoulda is a handy plugin for Rails (now a Gem), which makes writing tests easier. It's worth checking out. Shoulda has been very helpful with a big Rails project I've been working on all summer, and I submitted a couple small contributions and bug fixes. I was surprised to see my name mentioned in the newest release, but I appreciate it, and it was fun helping out!
Tuesday, September 16. 2008
Here's a gotcha that I came across today: don't define a constant as something in one Rails rake task file, and then define the same constant as something different in another file, because the last constant will supercede them all:
DATA = 'Hi there!'
desc "Test A"
task :test_a do
DATA = 'Hallo!'
desc "Test B"
task :test_b do
$ rake test_a
$ rake test_b
I guess this happens because Rake is loading all of the task files before running the requested task. There's probably a way to namespace the constant, but I need to do more research on that. In the meantime I'll use different constant names!
Saturday, August 23. 2008
A couple weeks ago I went north to Tennesee for the 2008 BugGuide Swarm. Two and a half days of bug photography in the Smoky Mountains. I didn't get much sleep as we stayed up late taking pictures of moths at the lights and then up early to head out for day trips into the national park. The bug photos and IDs are still coming in, but we've turned up lots of interesting bugs so far. It was a blast.
Then while cutting my grass this week, I spotted a striking pattern slowly gliding across the rocks that border our shrubbery. My foot on the riding mower was maybe a foot away from those rocks when I saw it. I quickly recognized that pattern as that of a copperhead. I was freaked out about it being so close to the house where my boys play. Fortunately while I was debating what to do about it, I saw the snake slither its way from the house and into the woods out back. It was only about 18" long, but still spooky with that bold coloration. Note to self: keep the grass trimmed and the yard more tidy in the summer!
Tuesday, July 15. 2008
Thursday, May 22. 2008
I was initially disappointed when it was announced that Ruby on Rails was moving its version control system from Subversion to Git. There's enough to keep up with in Rails that I didn't relish having to keep up with this as well. It wasn't so much that Rails was moving, but related code began to move too, so we're currently in this limbo where many plugins have both git and soon-to-be-deprecated SVN repositories, and it's just another detail to keep track of. Hopefully there will be tools to sort all this out soon.
I like my SVN GUI tools, but it turns out that git works pretty well on Windows under Cygwin, if you can live with the command line. It's certainly sufficient for cloning plugin repositories.
I could take or leave git by itself, but I love GitHub. They make it so easy to fork an existing project, make your own changes to it, and share it back with the world. Your changes can easily be pulled back into the original projects, too. I've been able to make a couple of small contributions to shoulda and acts_as_xapian.
So git is fun after all, and I'm looking forward to using it more; especially when the GUI tools show up.