There will be no encore.
posted by meghann on January 29th, 2009
RubyFringe is Dead. But hey — we bore easily!
For months we’ve been shuffling around Unspace HQ in our proverbial togas contemplating life after RubyFringe — the insights gathered in running a successful conference, what’s been created in its wake, and what still remains suspiciously absent on the conference circuit. We certainly don’t need another self-congratulatory party — and therein we saw a more important avenue that currently commands our attention.
Today, we’ll simply implore you to run a black strike through your calendars for the weekend of July 9-12th. The past month we’ve wrestled with idealistic conundrums:
- brainstorming how to get a second helping of high-caliber eccentrics on a single stage
- asking the timeless question of “will this team-building exercise make the Rubyists cry?”
- starting to fortify the yacht club against unfortunate frogmen attacks during FAILCamp
It’s all part of the process. Expect further details to be liberated from red tape here on February 5th.
hissing fauna, are you the controller?
posted by mike on January 27th, 2009
Here at Unspace, we like music. I mean, who doesn't, but we like to have music playing all day long while we work. We're the sort of people who actively seek out new bands and love sharing our finds with each other. Our office setup isn't anything special; my laptop is connected to a speaker system, I have iTunes open, I add things to a playlist, and that playlist plays all day long.
Ideally, we'd like anyone in the office to be able to add music to the playlist; previously they would just yell at me and I would add their request to the playlist. iTunes Remote for the iPhone works well, but I don't really want to take out my phone to change the song — I'd rather do it on the screen where I'm working. A quick googling reveals a few solutions for Apache+PHP, one for Windows XP, a million ugly scripts, and even an entire Java servlet. Talk about bloat!
So I decided to roll my own. I'd been eager to try out Sinatra for a long time, and this seemed to fit the bill nicely: it's a small web app that does one simple thing and does it fast. As for the design and layout, we decided to yoink it from iTunes rather than reinventing the wheel.
Interested? You can clone it here. All you need is ruby, rubygems, and the sinatra, rb-appscript, and active_support gems.
Stuff I'd like to add on later:
- Search
- Adding tracks from remote libraries
- Realtime updating
- Track seek
It's an open github project, so feel free to fork and contribute! Read the README for instructions on running the server.
Know any good XHTML+CSS ninjas?
posted by pete on January 23rd, 2009
As seen on DavidCrow.ca this morning, Unspace is looking for an awesome person to join our design team.
Click the link to read more, but this is a great opportunity for someone that’s looking for the right full-time opportunity in Toronto. If you have someone in mind, tell them to send links to their portfolios to hiring@unspace.ca.
Update! The position has been filled.
Alocola: A new piece of mobile web DNA
posted by pete on January 23rd, 2009
I was fortuitous enough to meet RubyFringe speaker Dan Grigsby at Emerging Tech, so it’s only fitting that three years later I get to announce some genuinely emerging technology that Dan himself is behind.
Since he and RubyInside kingmaker Peter Cooper launched iPhone developer blog Mobile Orchard late last year, they have featured excellent interviews and podcasts as well as articles debunking the popularity of the $.99 app and who’s really making the money on ITMS.
Their first technology offering is Alocola, a free-as-in-beer helper application which allows application developers to access GPS data from visitors to their website — functionality currently not offered by the Safari browser itself. While there are some hoops to jump through at the moment, you can install it and then click this link to see your position on a map. More than just a proof of concept, Alocola works today and is perfect for applications suited to periodic updates; due to the requisite application context switch between Safari and Alocola, constantly bouncing back and forth would be highly frustrating to an end user.
How does it work? The Alocola site explains it best, but in short an alocola:// protocol handler is registered on the phone, setting up Alocola as a helper app. A web developer can prepare an encoded URL which opens Alocola; after retrieving the GPS settings from your iPhone, it responds by opening Safari to a callback page that was embedded in the initial URL, carrying the GPS coordinates in the GET request string. A POST option which will require more integration effort from site authors is on the way.
This is an impressive first outing for Mobile Orchard, which is clearly making itself known as a technology player instead of a passive reporter. Frankly, I haven’t seen this kind of capital-I Innovation since the buzzed release of Ocarina, a Legend of Zelda-influenced virtual pan flute which demands users “play” by tilting their phone and blowing into the microphone. While the implications of a socially-networked, collaborative musical instrument are fascinating, I dare say that Alocola is actually useful and potentially disruptive.
Surely this is welcome news to iPhone developers who eagerly await tidbits of functionality from Apple. As gatekeepers, they are notoriously reticent to unlock business advantages functionality which they might sell to their business partners for a small fortune. Congratulations to Dan and Peter for raising the bar; a promising and auspicious start to 2009 and the new Obama-approved technological future.
Meet the Merbists interview Hampton Catlin
posted by pete on January 8th, 2009
In brief, The Merbist has run a quick interview with the classy member of the Unspace team, Hampton.
Discussed items include the recently announce Rails + Merb merge, why make_resourceful isn’t more popular, Wikipedia, and iPhone development.
Prawn + Prawnto = Ruby PDF win
posted by pete on January 4th, 2009
In early 2008 Greg Brown proposed that he become a “Ruby Mendicant”. A paid, dedicated Ruby hacker that would work on projects that will benefit everyone. At the time, I thought it was little more than clever marketing but I’m happy to say that I’m really excited by what’s come out of the money invested to date: an alternative to PDF::Writer called Prawn.
Prawn isn’t completely baked yet, but it’s quite usable for lots of tasks. In addition to having a really excellent object model and logical bounding and flow capabilities, it’s quick and doesn’t seem to be burdened with the cruft of PDF::Writer. It feels like a breath of fresh air.
Prawnto is a rails plugin leveraging the Prawn library to produce compiled pdf views. It’s like Haml for PDF; you get a local pdf object passed into a white-space indented template. Suddenly you can create sophisticated PDF documents in your application using a syntax with complexity somewhere between Builder and Haml. Yowza!
Prawnto is alpha technology built on Prawn, which is arguably beta technology, so you might not want to deploy it at your securities trading institution quite yet. (Although, it can’t make anything worse there, either… but this counts as a digression.) In the meantime, give it a try! So far, so good.
Protect your Rails app from malicious XSS attacks
posted by pete on January 3rd, 2009
I noticed a post on RubyInside about two new libraries to clean up user submitted form data. Any time someone submits a string which is then displayed in the browser as rendered html, there exists the opportunity for a malicious hacker to insert bad things into your browser. I’m talking about this kind of nonsense:
or this:
You can see more examples of bad on the Cross Site Scripting Vectors Page:
http://ha.ckers.org/xss.html
Anyhow, I have a different approach to sanitizing input: run it through the html5 gem, which outputs clean, valid html5. What a notion!
I like this because you can control what strings are processed, when. No heavy-handed ActiveRecord monkey patching required.
I’ve added String.sanitize and String.sanitize! to the sanitize.rb library, originally by Jacques Distler:
Hopefully you’ll find it useful, too.
