Posted 1 minute back at Dr Nic
If you are using TextMate (OS X) or E Text Editor (Windows) then you’ll be dead keen to know there is a TextMate bundle for Merb, and another one for Datamapper.
[This is cross-posted on the new Merbunity community site for Merb]
Currently, you can access the bundles via git:
cd "~/Library/Application Support/TextMate/Bundles"
git clone git://github.com/drnic/datamapper-tmbundle.git Datamapper.tmbundle
git clone git://github.com/drnic/merb-tmbundle.git Merb.tmbundle
Now “Reload Bundles” or restart TextMate.
You can now select from three Merb syntax/scopes. Press Shift+Alt+Cmd+M to see the options (below)

- If you select Merb (Datamapper) you will have access to the Merb bundle AND the Datamapper bundle.
- If you select Merb (ActiveRecord) you have access to the Merb bundle AND the Ruby on Rails bundle.
- If you select Merb (Sequel) then nothing special happens as there isn’t a Sequel bundle yet. Want to create one?
Currently there is no separation in the Rails bundle for ActiveRecord and non-ActiveRecord snippets and commands, so if you use Merb (ActiveRecord) there will be some snippets + commands that you don’t want from Rails. In future, there may be more separation to help the Merb bundle. Also, TextMate 2 may help this cause.
As always, to learn what snippets are available at any given cursor position, use Ctrl+Cmd+T.
If you have new snippets for any of the bundles, I suggest forking the git repositories, pushing up the changes to github and sending Pull Requests to me (drnic).
Sponsored by Engine Yard
The initial development of this bundle was sponsored by Engine Yard because they care.
Rails bundle
There is also the hughly popular Ruby on Rails bundle for TextMate that you can use. Download from http://railsbundle.com/ or via github.
If you want to learn everything about the new Ruby on Rails bundle for TextMate and daily life with TextMate (short cuts, editing bundles) then I highly recommend the new TextMate for Rails 2 Peepcode:

This recommendation comes from inside information on the quality of the Peepcode… it was written by me, and incorporates the vocal skills of the operatic Geoffrey Grosenbach.
Posted about 1 hour back at Ruby Inside
Most Ruby developers should be familiar with Rack, an interface / library that abstracts away a lot of the banalities of hooking up application code to HTTP servers. It’s used by several Ruby Web application frameworks already, some as a default - such as Merb, and others as an optional extra - such as Rails. Rack is significant because it provides a standard for Web-facing Ruby applications and frameworks to adhere to and is rapidly becoming the de-facto standard in this space.
Nick Sieger has developed JRuby-Rack, a variant of Rack that runs on the Java-based Ruby implementation, JRuby. You can use it to run any Rack-compatible application (e.g. Rails or Merb applications) inside a Java application server. This is significant because it gives application developers an independent, abstracted way to roll out Ruby-based Web applications on a Java server with significant ease (at least, more ease than before!).
If JRuby’s of particular interest to you, you might also want to check out JRuby Inside, one of Ruby Inside’s sister sites, and one dedicated entirely to JRuby links and news.
This post is sponsored by SaaS — Looking to build a subscription-based or membership web site with Rails? Use the SaaS Rails Kit to skip having to write the billing code. Instead of starting from scratch, start with subscription management and recurring billing all ready to go.
Posted about 2 hours back at PluginAWeek
What good would a comeback be if there wasn’t some Rocky story about how I found myself at the end of the road, the bottom of the bottle, the back of the bus, only to be miraculously motivated to push myself to the limits to get back in shape and fight for glory? That actually would be pretty awesome, but this ain’t Hollywood, Dorothy, and I ain’t Chris Gardner.
So I could just start talking about the actual plugins, but where’s the fun in that? I mean, c’mon, I have to tease you for a little while. Everyone likes a tease, don’t lie
Before I start talking about the meat of this project, I want to give a background for newcomers and an explanation for oldcomers newcomebackers everyone else. I promise, this will be one of the few long posts here and it’s worth it.
Mommy, where do babies come from?
The PluginAWeek project started back in September 2006 and, like lots of people, I was really excited to contribute back to a community I had joined 6 months earlier. The goal was simple (or so it seemed): release at least 1 new plugin each week and add the occasional post on plugin development. A lot of cool things came out of that project and I met a lot of great people. Unfortunately, I couldn’t keep up.
The school bully is winning
In early 2007, school reared its ugly head and the PluginAWeek project went dry with no blog posts. I graduated in May, moved to Boston, and tried my hand at starting a company. When the company went nowhere, I spent time on covert operation PluginAWeek: Reloaded (yes, I’m a Matrix fan, don’t make fun). By October 2007, there were almost 70 plugins which had been developed and released into the public repository, but never announced in any fashion.
In November 2007, I joined a startup called Viximo, and put PluginAWeek in hibernation mode as I focused on other things.
If he were any cooler, he’d still be frozen, baby!
Last week I publicly announced the reopening of the project. For over a month, I’ve been spending my free time cleaning old plugins out of the repository and re-building, from scratch, every single plugin based on the experience I’ve gained working with this stuff for 2 1/2 years. And I’m really excited about the results.
There are now currently 32 plugins in the project. If you’ve tried your hand at one of them before, I’d ask you to take a look at it again. I assure you things have changed for the better.
RubyMan could totally take on IronMan!
So you’ve made it this far. That’s a good sign. It either means you’re legitimately interested in the project or you’re a sneaky recruiter trying to get me to give you some leads. What should you look forward to over the next few months? A lot.
I’ll soon start talking about the various plugins available in this project, but I implore you to go ahead and take a look yourself. I hope that they’ll help you out in one way or another!
I love me some preludes.
Posted about 2 hours back at Robby on Rails
It’s been quiet here the past several weeks and that’s because for the first time since I started Planet Argon, I was able to take an extended vacation.

My partner and I headed to France (Paris, Nice, Lascaux II, and Bordeaux) for a few weeks. It was a first time for both of us. I’ve posted some photos on my flickr (vacation set).

I’d like to thank my amazing team for helping make it easy for me to take off for that much time. :-)
In any event, I wanted to post a few non-technical links…
Link yours up!
In the coming weeks… I’ll be posting some more thoughts on Project Management, time management, and anything else that seems to come up. If there is anything you’d like me to write about, feel free to drop me a line with a request.
Posted about 3 hours back at townx - tech
Another patch of mine has gone into an open source project. I did it so long ago, I'd actually forgotten all about it. The project: RailRoad, which creates nice class diagrams for your Rails models. My patch extended it to include plugin model classes in your diagrams. Always gratifying to have my stuff included in this sort of project.
Posted about 18 hours back at redemption in a blog
This week’s report covers changes from 5th May 2008 to 11th May 2008 (the day the corresponding Rails Envy podcast was recorded).
script/dbconsole
A script/dbconsole script has been added that allows you to connect to your database using its console client.
If you needed to connect to your production MySQL database (you better know what you are doing!), for example, you can run RAILS_ENV=production script/dbconsole and it will login to your database server using the command line MySQL client. This also works with the PostgreSQL and SQLite databases.
To use this script in your Rails app, remember to run rake rails:update:scripts after updating to edge Rails.
This nice little enhancement courtesy of Steve Purcell, who originally had a similar database console plugin.
Related changeset: http://github.com/rails/rails/commit/4a07103687084496b773e18a03b1f2f5e686f7ad
flash.now is now accessible in tests
This is something that many of us Rails developers have probably come across when writing tests for flash messages being set with flash.now, myself included. Basically, you couldn’t test the contents of your flash.now because they were always being emptied before your test could get to them.
# In your controller:
flash.now[:notice] = 'You gotta be kidding me!'
# In your test:
assert_equal 'You gotta be kidding me!', flash.now[:notice]
# FAILS because flash.now[:notice] is nil
Andreas Neuhaus took a good look at how it works and figured out how to make testing flash.now work without resorting to assert_selects.
Related changeset: http://github.com/rails/rails/commit/74eed6290e63111d1aad2b181692a84f4f040aea
There isn’t much else of note so far but if you’d like to know every gritty detail, you’d probably want to peruse the Rails commit logs. As always, let me know of any suggestions or how I can improve the Living on the Edge (of Rails) series.
Posted about 19 hours back at ones zeros majors and minors
Master Rubyist Charles Nutter recently posted an entry titled The Rubyists are wrong. Wrong about the way rubies featured in our Ruby logos are cut.
My father has worked in the jewelry business for over 30 years. As soon as I read Charles’ article, I wondered what Pop would think. So, I emailed him.
Here is his response:
[Charles] is close, but he missed it. The diamond part is correct. But in my experience and having worked with diamonds and color all over the world there is one common thread in the cutting of any color stone. Diamonds are cut for brilliance and yield. Any color stone is cut into a shape which will bring out the color to its upmost beauty and at the same time maximize the yield of the rough. That is why you see more cushion shapes and ovals in rubies. But you usually only see those in larger stones. The majority of the small stones are round. So, I would have to say the round cut is cut the most. Also, the round cut is different from the diamond brilliant cut. Faceting is done to bring out the color in the color stones. So, there really isn’t a facet count on round color like a diamond would have. Also, all of the Ruby logos are correct. If that was the best way to cut the rough to maximize the color than it’s possible a cutter would use any of the shapes, including the JRuby logo. Yes, a lot of color stones are cut off center or in a nonsymmetrical shape.
Thanks Dad.
-- Delivered by Feed43 service
Posted about 22 hours back at Err the Blog
Surely, by now, you’ve heard of GitHub. (Don’t call me surely.) It’s totally the Indiana Jones of repository hosts. Feel free to stalk Pj and I to see what we’re up to. Blogging be damned!
If you haven’t heard of GitHub, there are tons of posts explaining the hows and whys of its awesomeness. This is not one of the posts. Instead, I want to quickly share some oft overlooked but tasty GitHub tidbits.
The GitHub Gem
GitHub supports gems, which is cool, and also means we can install the official GitHub gem with ease:
$ gem install defunkt-github --source=http://gems.github.com/
Great. At this point, possibilities become reality. The gem has a few cool features, all of which are displayed via $ github -h, but the best feature by far is pull.
Here’s how it works: I have my fork of technoweenie’s exception_logger. I’ve cloned it and am sitting in the working directory. Suddenly I discover ryanb (of RailsCasts fame) has sent me a pull request. Open source’s finest moment.
So, I type $ github pull ryanb. A remote is added, a new branch is created, and Ryan’s changes are pulled into that branch. (It’s probably named ryanb/master.) I then review the changes and, if they rock, either rebase or merge them back into master. Like this:
$ git checkout master
$ git merge ryanb/master
$ git push
Already reviewed the changes on the web and know they’re legit? Just $ github pull --merge ryanb. This’ll grab the changes and merge them into master for you. Oh, right, you can also specify a branch. The assumption is master, but you know what they say about assumptions: you’re a jerk.
Thus: $ github pull—merge ryanb weird_branch
And just like that, GitHub pull requests are no longer a pain in the ass.
But really, this is just start. Please please please fork the gem and add awesome features. github clone, anyone?
Keyboard Shortcuts
Let’s say you want to peep some Rails changes. In classic vi style, j and k navigate between changes. c, t, and p lead you to the selected change’s commit, tree, or parent. h and l navigate between pages.
In fact, h and l will always go back and forward on any paginated page. We’ve written an evil twin which adds those hotkeys to any will_paginate call.
Also cool: s. If you’re logged in, hitting s will display and focus the search bar. I use this one the most.
Ranged Code Highlighting
Clicking on any line number then shift clicking a higher value line number selects a range. Super useful for code discussion. Discussion such as, “Dude, nonzero? is so awesome. Check it out!” (People definitely talk like that.)
Sweet.
Keep Your Dotfiles in Git
Okay, this isn’t strictly related to GitHub, but it’s good. You should be keeping your dotfiles in Git. Here are the steps to do so:
1. Create a ‘dotfiles’ directory.
2. Move your dotfiles to this new directory, sans leading dot. For example, to keep your ˜/.vimrc under version control, do this:
$ mv ˜/.vimrc ˜/Projects/dotfiles/vimrc. Rinse and repeat as necessary.
3. Add the following file to your dotfiles project, then run it: http://pastie.org/195036
4. Finally: $ git init && git add . Then: $ git commit -m ‘new dotfiles project’
You’re all set. Now your dotfiles that live in ˜ are symlinked to their counterparts in ˜/Projects/dotfiles. As a bonus, any time you git commit it will automatically git push. One of the entire points of keeping your files under version control is to back them up regularly.
I push to a private ‘dotfiles’ repo on GitHub. Others have created public repos. Your call.
For posterity’s sake, here’s my version controlled dotfiles:
bashrc
gitconfig
irbrc
railsrc
sake
screenrc
ssh
vim
vimrc
The best part?
The best part about GitHub, f’sure, is all the outrageously cool open source projects hosted on it. _why’s stuff, the jQuery plugins and mirrors, all the LISP projects, newer languages like Io, and of course the assorted GitHub-related projects.
Got something cool hosted there? Let us know.
Til next time, keep on hubbin’.
Update: GitHub Open Sores
I just created the GitHub account and did two things: created and pushed up some extractions from GitHub itself (like the jQuery hotkeys plugin) and also forked all the projects that are used on GitHub which we’re using on GitHub. Dude, meta. Anyway, have fun with that.
Posted 1 day back at ShiftEleven
So not only is git useful for the small projects, it’s also good for keeping track of todos and issues. Ticgit is a distributed ticketing systems based on git. It provides a command line interface as well as a web interface via sinatra and stores all of the ticket info in a separate branch, called ticgit. Rather clever I think.
Ticgit takes a simplistic approach to issue tracking as Lighthouse has done. You can comment, add tags, manage the state of an issue, save views, and change to whom an issue is assigned. There is still more planned, like keeping track of milestones and syncing the tickets to Lighthouse.
As mentioned, there is a web interface to ticgit; however, it wasn’t my cup of tea. So I have started my own web interface, tiwatchtower. It’s still a little rough around the edges, but I would love to hear any thoughts.
Conclusion
So far, I like it and it’s exciting to see how git can be pushed. It’s great for keeping track of things that are on my mind without worrying about having to setup trac or having to use up a Lighthouse project. It’s simple, effective, and worth a look at.
Posted 1 day back at InfoQ Personalized Feed for unregistered user - Register to upgrade!
Service simulation (mocking) – the ability to mimic service behavior even before they are implemented - enables service consumer developers and testers to parallelize their efforts without having to wait for service implementation to complete. Service simulation also provides a light-weight alternative to building expensive reference environments. By Boris Lublinsky
Posted 1 day back at Smarticus - Home
I have a dilemma. I have three personal online presences. The first one is this blog, smartic.us. Next, there is my tumblelog, iHackRails. And finally, I’ve pretty chatty on twitter as bryanl. My issue these days is what do I post where?
I’ve come up with a simple set of rules for myself, and I’m gonna share here. My thoughts which actually took some thought go there on smartic.us. I like to put these thoughts here because I often post code and I like the comments this blog gives me.
I use iHackRails tumblelog to follow my online actions. I use it to subscribe to my online creations (delicious postings mostly) or other smaller items that don’t deserve any other input from me (like interesting youtube videos or interesting quotes).
I use twitter for everything else. Sometimes I want to share—I don’t really care who reads it, but I know I will feel better if I share. I also like twitter because the feedback to my thought is basically instant. Usually the replies are unfiltered and candid, so it is great for feedback.
Posted 1 day back at Relevance - Relevance Weblog
Folks in the Java community know a ton about scalability. So when they needed to connect at JavaOne last week, they turned to a scalable social networking platform.
Posted 1 day back at InfoQ Personalized Feed for unregistered user - Register to upgrade!
Blogger Gustavo Duarte cursed in church when he said that learning new programming languages is often a waste of time. He said that "In reality learning a new language is a gritty business in which most of the effort is spent on low-value tasks with poor return on time invested.". But not everyone agreed. By Niclas Nilsson
Posted 2 days back at Nuby on Rails
I just realized that it’s been almost two months since I’ve blogged! Some saw the announcement on Twitter, but for the rest, here’s what I’ve been up to:

PeepCode Screencasts – Learn Ruby on Rails and Javascript! Hour-long screencasts for $9.
Posted 2 days back at InfoQ Personalized Feed for unregistered user - Register to upgrade!
Since Linus Torvalds presentation at Google about git in May 2007, the adoption and interest for Distributed Version Control Systems has been constantly rising. In this article, Sebastien Auvray introduces the concept of Distributed Version Control, see when to use it, why it may be better than what you're currently using, and have a look at three actors in the area: git, Mercurial and Bazaar. By Niclas Nilsson
1 2 3 ... 849