I’ve been doing some more coding these days in Ruby.
With introduction of RVM, bundler, and so on, I’ve gotten a feeling that RadRails maybe too much. It seems to get contexts confused and create more hassles. I am not sure yet, but it’s caused me to go back and use TextMate, which I’ve always had in an honored spot in my toolset.
Poking around forums and other resources there seems to be some frustration that TextMate 2 has not been completed yet, having been ‘in development’ for I think over two years. Also there seems to be more and more talk of Sublime Text 2 as a great alternative to TextMate. So… Here I go. I will report back.
A random, highly specific and geeky tip:
If you’ve used Capistrano before, you’re familiar with the large error logs. Finding errors is, well, a hassle. You’ve got a whole slew of text, some just saying what command it’s going to execute next, sometimes errors, sometimes just output from Bundler or whatever it’s running. (from Rails Tip #8: Capistrano Colors)
Just follow the link to Rails Tip #8: Capistrano Colors) and your Cap life will be a little better.
Just a quick hit: Ruby on Rails tips that will male you a better programmer.
How to build authentication into Rails applications? Well, at least at RailsConf 2011, the buzz was around a new Authentication gem called Devise.
I played with it a little (here in the airport) at it seems quite nice and straightforward. Check it out if you were looking for something like that.
Another tidbit I came across at RailsConf is Hobo. I haven’t tried it myself but did just go through the screencast and tutorial. I think it’s worth a closer look.
“Hobo is a plugin for Ruby on Rails that brings a number of extensions—some small some large—to Rails application development. The common theme to these extensions is rapid development.
Like Rails itself, Hobo encapsulates a number of opinions about web application development. The opinion that is most central to Hobo is this: we have found that there is a great deal of similarity from one web application to the next. Much more similarity in fact, than is supported by today’s frameworks. We would rather implement this stuff once.” (from Hobo Web Site)
The question with these kinds of packages is whether they are flexible in the right ways or whether they will get in your way when you try to do what you need to do. I can’t answer for sure.
If you are looking for a further accelerator for building Rails apps, Hobo is a good option to explore.
This is really nice: Restfulie – Rest from Scratch. It’s a package of code for creating REST clients and servers with built in content type negotiation and other goodies. Watch the fun tour-do-force video too:
- Unlike most all ‘business’ type conferences and talks I have gone to, the RubyConf style of presentation (and perhaps the Rails or Ruby community — I don’t know where it stops) is beautifully minimalist. Very few words on slides, large and impactful photographs. Is it because no one uses PowerPoint and few even use Keynote? I don’t know. But there were no text heavy, bullet heavy word slides. And also, lots and lots of code (that part is definitely a geek thing.)
Here is a loosely organized set of links to the things that hit me most at RubyConf this year. It’s random and idiosyncratic (same thing?) but it reflects my real-time notes and feelings. These were all new to me but they might be old news to you, of course.
These are my top links:
- nicksieger’s warbler at master – GitHub – This was one of my top 5 talks. Warbler is a tool to package a Ruby and/or Rails application into a single .jar or .war file to be run on any other computer that has a Java VM installed. If this works as advertised it is a very important bit of technology. I am going to try it out
- MacRuby: The Definitive Guide – Another one of my favorite talks, about MacRuby, a Mac OS X implementation of Ruby. From what I saw it looks very real, with good integration with all the Mac OS X libraries, and running on top of the Objective C runtime. It wasn’t totally clear what Apple’s posture is relative to MacRuby, but I hope it is positive.
- mattmatt’s showoff at master – GitHub – Showoff is a very neat presentation tool. It’s not an app like Keynote its actually a gem which processes a minimalist markup and serves it up in a local Sinatra server. Also easily lets you deploy your presentation to Heroku. Hmm. Is it mattmatt’s or schacon’s showoff at master – GitHub???
- Git Wrangling – This was an intense and complex talk about Git. There is as we know, so much more in Git than most people use, and this talk touched into it. Also, Scott Chacon had a funny (but I think he was serious about it) interlude about how to be a gentleman. It includes the recommendation that a gentleman will always rise when a lady enters the room. Also check out these links with further details about the slides (really, they are good!).
- Ruby Mendicant University – A really inspiring talk by Greg Brown about his vision and mission to teach people about Ruby and programming. But this is not a fly by night little course, Greg has a big vision and is pursuing this in a comprehensive and highly innovative manner. I was very impressed and will follow and support Greg’s work. A great guy!
And here are many more really good ones:
- https://github.com/sconover/wrong – And this is the lightening talk that never happened but I saw mentioned in an email. Apparently there was not sufficient time allowed, and some great talks never happened. This one is about a gem called wrong that defines (can you believe it?) yet another way to express expectations (like assert_ and expect_ and etc etc.) But it’s really nice and minimalist. I think it’s a good addition to the canon!
- DNS Simple – This looks important to me, and I think I could really use it. Except… I wish I understood better where DNS Simple fits in my scheme of things. Does it mean that I could ditch GoDaddy as the keeper of my own set of domain names? Would it cost less? Would I be able to cloak my personal name and address like I do with GoDaddy? What are the plusses and minusses? (N.B. See the detailed responses to all these points in the comments)
- The GO language – I hadn’t heard of this language, although it’s pretty (really) old after all it’s only about 1 year old. Worth looking at for its support of co-routines.
- http://www.kanbanpad.com/ – A nicely executed very lightweight project planning ‘virtual whiteboard’, for the new/old Kanban methodology.
- Ticketmaster – A tool or platform to connect project/ticket tracking systems together. I post to my ticket tracker, and TicketMaster forwards the new ticket to one or more other ticket trackers (e.g. those my client uses.) This is a tricky problem – how do you handle deletes, and do changes to tickets flow both ways? I didn’t look how well TicketMaster tries to solve those problems.
- Hipster – A bit of 2010 Culture that I hadn’t seen before. Ok. Culture is stretching it.
- http://dl.dropbox.com/u/163257/macruby_2010.pdf – PDF of the Mac Ruby Presentation
- Apigee | Free and Enterprise API Management Products and Infrastructure – This is a super cool tool to test and experiment with web apis. Interestingly this comes from the guy who build Swivel.com.
- rabbit | RubyGems.org | your community gem host – Another presentation tool, analogous to showoff.
- Stop procrastination: Introducing the noprocrast gem – rfw.posterous.com – Proof that I am not the only one that gets distracted while working. Here a fellow designed a little utility to cut him off from the net while he is trying to focus. This is called self-binding. Check out this other article which I have pointed to before about the concept of self-binding (it’s not as kinky as it sounds.)
- RubyConf 2010 | SpeakerRate – We are a community who loves building tools. Here’s a tool that lets listeners at any conference rate speakers. Very cool building block.
- http://blog.danieljackoway.com/rubyconf-2010.html – Daniel presented about Ruboto, a tool allowing us to write Android applications in Ruby. One nice thing that Jack covers, and I saw this in many of the presentation, is a forthright summary of other tools and solutions that one might consider in addition to Ruboto.
- Redcar – An all-ruby programmers editor — TextMate written in Ruby. This was a very popular talk and it generated a lot of conversation. It is a work in progress but is very promising. The demonstrations of writing custom commands in Ruby on the fly were impressive. For me personally, I still prefer a full IDE especially one with a visual debugger. I am actually surprised that Rubyists as far as I can tell don’t use an interactive debugger (see this survey)
- http://tmm1.net/debugging-ruby-systems.pdf – A really good presentation. This pdf (after a bunch of photos at the beginning) is chock full of specific utilities and techniques for advanced profiling and analysis of your ruby and Rails code.
- ZOMG WHY IS THIS CODE SO SLOW – A presentation that unfortunately I missed, but so good that the slides stand on their own. Lots of specific tips around Rails and Ruby Performance
- bfts’s minitest-2.0.0 Documentation – A small replacement for Test::Unit. I thought I heard that it was part of Ruby 1.9, but I might have misunderstood.
- tmm1’s perftools.rb at master – GitHub – An interesting package of performance tools on Git
- MIRAH – An interesting little language, it looks like Ruby (but it’s NOT Ruby). It is statically typed and compiles directly into efficient JVM byte code.
- schacon’s grit at master – GitHub – One of several gems to access Git and Github functionality from Ruby
- libgit2’s ribbit at master – GitHub Another one of several gems to access Git and Github functionality from Ruby
- BusyConf – Making Great Conferences Even Better – A promising service for conferences. From what you can see so far, there will be a nice and detailed conference schedule. But I can imagine many additional bits of functionality.
- Rc2010 refinements – A presentation by Shugo Maeda, close confidant of Matz and a Ruby Committer. The presentation contemplates some rather exotic additions to the Ruby language to overcome some problems that are encountered by large systems built in Ruby. Coyly described as features that might be in Ruby 2.0, which is on an unknown schedule.
- RabbitMQ – Messaging that just works – A highly touted message queueing platform, usable with Ruby and Rails and other systems.
- collectiveidea’s delayed_job at master – GitHub – Delayed job is a popular Ruby based background job product.
- markbates’s dj_remixes at master – GitHub – Mark Bates adds some great additional functionality to Delayed Job
- slagyr’s solari at master – GitHub – A very cute Raffling applications used when you have to raffle something to a big crowd. Very cute, looks great, sound effects and so on.
- robey’s kestrel at master – GitHub – Kestrel is the follow on to Starling, which is a message queueing platform, originally from Twitter.
- Home — JRuby.org – JRuby is JRuby. I haven’t tried it yet. But my sense is that it’s definitely worth using in many situations. You can access the huge collection of Java libraries, and, because of the highly optimized JVM, you often will have better performance than MRI (the original and still default Ruby VM)
- Rails Talk Ruby CSS Parser – I was thinking back to some of my own projects, and one is to create a CSS simplifier/optimizer. Here’s a Ruby based CSS parser.
OSDV is a non-profit organization dedicated to developing a suite of election (as in Democracy) hardware and software.
The umbrella name for that project is TrustTheVote: an open source project, which will work closely with election officials around the country to learn requirements and then develop software which in turn will be offered free of charge to those who want to deploy it. So we won’t be selling the technology, but we will be evangelizing it like crazy. Think Apache or Drupal.
Here are some links to satisfy your curiosity:
We are getting closer and closer to being properly funded with some major contributions so it is time for me to start finding people who might want to join the team. This being an open source project, the idea is of course that any interested person can look and work on the code.
But we also plan to hire 3 developers in the Boston area. Right now it looks like a good part of our code will be Ruby and Ruby on Rails. But that may change; it certainly will be broadened. Really more than anything I would ask if you consider yourself a really good software developer, who loves to design, write, debug and deploy code. And then secondly I would ask if working on a project that is mega ambitious and/but that has a chance to really have an impact on our society – whether that excites you.
Please contact me directly if you want to learn more or throw your virtual hat into the virtual ring.