December 18th, 2007 — Ruby, Ruby on Rails
Lo and behold, Omni Group’s OmniFocus beta used to have a web application built in to allow folks to, say, expose a web server via dynamic DNS that provides web access to their OmniFocus’ projects and contexts.
That app is written in, you guessed it, Ruby on Rails!
The current version of the web application is available here.
Oh, and I just double-checked with Omni: they’re AOK with starting a project up on RubyForge to maintain the OmniFocus web application under an MIT license.
I know what I’m going to be playing with for the next several days/weeks/months now….
October 31st, 2007 — Ruby, RubyOSA
Steven Bristol noted that the posted version of my “Change IM Status” script doesn’t work in Leopard. That may be as I’ve tweaked the heck out of it over the past several months but never posted the updates.
Hell, this is the first that I’ve heard of anyone else using the little beast. Cool!
What I really want to do with my IM/messaging apps is selectively block contacts programatically. This would let me build an “I’m Working” state where I could block out the world except for my immediate colleagues, for instance. Being somewhat ADD-ish (show me a developer who isn’t!) and a nearly-compulsive checker of incoming e-mail/IMs, this would be huge for me. I’m DYING for this.
Sadly, neither app seems to provide that level of event to OSA such that I could “veto” an incoming chat. I’m probably SoL regarding Skype but perhaps not so with Adium. I taught myself Objective-C for shits and giggles a few months ago after a chat with uber-hacker Marcel Molina. Maybe the Adium folks would be amenable to a new feature?
I’d still prefer for an event-based architecture where I could register my app for OSA events from Skype/Adium and use them to effect Skype/Adium.
Hrm. I wonder if iChat provides a more robust OSA model? Worth a looksy.
P.S. I’m ticked that the “Current Application” -> “Show Menu Items” feature of Quicksilver seems to be broken in Leopard. I loved this feature for blog posting from TextMate…
October 1st, 2007 — Ruby
Ruby East, on the whole, was a fine conference. I, and several other conference attendees, noted that the local Ruby conferences seem to be just that: Ruby conferences. They seem to eschew addressing Rails and prefer to discuss a wide range of topcs.
I really like this.
I was among many who expressed disappointment with the high level of abstraction in the RailsConf ‘07 talks. Very few of them got into the weeds, talked about the code, and challenged the listener technically. I’m not sure about the (extremely few) rest of you but I go to these conferences to hear what my peers are doing, why, and determine if I should consider trying new technologies and techniques. For that to occur, I need to obtain at least a certain minimum depth of technical knowledge of a topic. Hoedown (especially) and Ruby East proved satisfying in that regard.
And, of course, there was Werewolf. Travel to exciting conferences, meet new and interesting people, and lynch and/or eat them. Who would imagine that a game involving argument, bluffing, and outright coercion could be such a team building exercise? It was a pleasure meeting, eviscerating, and being eviscerated by everyone.
Anyhow, below are my notes from Ezra’s Ruby East talk — far and away my favorite talk. For more notes from Ruby East, see Giles Bowkett’s notes on Pastie.
Continue reading →
September 20th, 2007 — NovaRUG, Ruby
Yesterday evening, I gave a presentation on the macro level of Behavior Driven Development and the basics of RSpec to the Northern Virginia Ruby User’s Group. Sadly, either the group was either unhip to LOLCats or simply was not amused by my sense of humor. O, the humanity.
In any events, PDFs of the slides are linked below.
BDD with RSpec
Incidentally, here are some links to Heckle and rcov that are referenced within the presentation (and easily supported from RSpec).
September 9th, 2007 — Mac OS X Software, Ruby
I’d always heard that building RMagick was supposed to be just this side of Hell. However, some intrepid soul (I’m sorry, I lost the original post), listed several steps for building RMagick. I put these steps together into a single bash script that downloaded everything that I needed and built RMagick with only a few complaints and what seems to be a working final product. Just beware that the script is nothing fancy, i.e., it is hard-coded to what I believe are the current versions of the RMagick dependencies.
Follow the link for the script.
Continue reading →
August 22nd, 2007 — NovaRUG, Ruby, RubyOSA
This evening’s NoVaRUG was a good time. Rodney Degracia spoke first about RubyCLR, which provides a dynamically generated bridge between a Ruby VM and the RubyCLR. If I ever need to get at .NET internals again, now I know how I’m going to do it. In fact, I dropped an e-mail to a colleague in the office about it — except that his assembly is executed from Python. A quick Google turned up “Python for .NET” as an option.
Then it was my turn to talk to RubyOSA and RB-AppScript. Admittedly, after using both, I’m strongly biased toward RubyOSA. I have the distinct feeling that, after my presentation, the audience felt the same way.
Well, the Mac users in the audience.
Out of twenty or so people in the room, it turned out that I was really presenting to perhaps five or six Mac users. I suppose that RailsConf is in no way representative of your average Right Coast Ruby developer. However, oddly, nearly everyone stayed for my presentation. I even fielded several good questions. All in all, I had a blast.
When Xandy asked for topics for next time, I asked if someone would present on RSpec. His next words were, “Thanks for volunteering, Evan.”
Time to learn RSpec…
Slides available here: OS X Scripting with Ruby
August 19th, 2007 — Ruby, iPhone
Yes, that’s right, ladies and gents. Thanks the hackery of a great many individuals (no, I am not among them), just this evening, I ran the following on my iPhone:
ruby -e “10.times { puts ‘foo’ }”
You can guess what happened.
Here’s how you do it, in short order, with minimal agony: Use the unofficial Installer.app developed by some folks at NullRiver. That’s it! From there, install the “Community Sources”, install “Ruby”, the BSD extensions, and “Mobile Terminal” and then go rubify yourself.
Ironically, this is not officially a product of theirs — more than likely because it is unwise to declare third party software for the iPhone as an official product at this tenuous time.
I wonder how long it will be before some intrepid Ruby coder works out a way to get to UIKit easily from Ruby and gens up some rdoc for it. I wonder if SWIG would help here?
Just for giggles, I tried:
ruby -e ’start=Time.now;a=1;b=1;1000000.times {a=a+b};puts a;puts “time: #{Time.now - start}”‘”
On my 2.16 Ghz Core Duo Macbook Pro, this took 0.280763 seconds.
On the iPhone, this took 10.060393 seconds.
Looks like a speed difference of a factor of 50 for this simple computation.
Update: Um, ok, maybe it’s closer to 36 than 50.
August 10th, 2007 — RubyOSA
While holding the Ruby Hoedown BoF about RubyOSA and AppScript, I mentioned how I’ve never gotten a return value out of RubyOSA — which is why I used AppScript when I needed a return value.
Shoot me now.
A quick google of “rubyosa applescript return value” yielded this post to ruby-talk-google. Woops…
It’s this simple:
require 'rubygems'
require 'rbosa'
skype = OSA.app('Skype')
OSA.wait_reply = true
call = skype.send2 "call echo123"
And call is non-nil.
Admittedly, I’m somewhat at a loss as to why wait_reply is defaulted to nil…
Update 8/11/04 1609: Laurent tells me that, if the Applescript definition is correct, RubyOSA should correctly provide return values. Chalk that up as yet another bug in the Skype Applescript API. I’ll report it soon (it’s going into iGTD now…).
– Thanks, Laurent!
July 1st, 2007 — iPhone
Ordinarily, I would not blog “gadget” here. However, as a would-be iPhone developer and a new user, I have some bones to pick. I call this my “What the hell were the iPhone designers smoking?” list.
- For whatever reason, Apple didn’t include a mass e-mail deletion utility. While most folks are not likely to be on 10 or more listservs about Ruby and Ruby on Rails, several are likely to have a PEBKAC moment and download their entire collection of e-mail to their iPhone. What oh what to do? I suppose it’s just time to sit in a corner, cry, get angry, accept your situation, and then begin the arduous and tedious task of deleting e-mails one by one…(Update: Alternatively, host your e-mail on IMAP and manage bulk mail activities from a dekstop mail client)
- Why can’t I save images from Safari and E-mail to my “Photo” list (for use as wallpaper or just to add to my collection)? Many of those crazy enough to pick up an iPhone on launch day will have something like a Flickr account. Sure, there’s a workaround:
- Save image to hard drive
- Add to iPhoto (You’re on a PC, you say? Oops…)
- Put photo in album
- Sync album to iPhone
- Create wallpaper from new photo on iPhone
Meh.
- If we’re limited to “web applications” for 3rd party software, why oh why can’t the iPhone save pages in memory to its generous 4/8GBs of storage? If I have an application that is one HTML file with associated CSS and JavaScript and data being saved to a cookie, this just makes common sense. I already love OneTrip but everytime you load it over EDGE a kitten cries…
- The Calendar is nice but To-Do lists, anyone? I suppose that none of the iPhone devs are GTDers…..
- No copy/paste? Three letters: WTF?
- Turn by turn Google Map instructions but no GPS — not even “poor man’s GPS” triangulating your location based on nearby cell towers? E911 already does it….
- Did I mention that interacting with the screen while Safari is loading a complex web page (try
http://iphoneapplicationlist.com/) will cause Safari to “crash” and dump you back to the iPhone home screen.
Is this why Leopard was delayed in favor of the iPhone? Too much scope, too few resources?
Don’t misunderstand, I love my iPhone. However, I still see it as a v0.95 product — just one that, so far, has bugs/quirks that I can work around.
June 20th, 2007 — Ruby
Here are recordings for the following sessions:
Also, here are Andrea O.K. Wright’s slides from her respond_to code walkthrough presentation. This was one of the most technical and in-depth code walkthroughs other than the “Rails Way” walktrhough. Enjoy!