Friday, August 28, 2009

Ignite Toronto 1

The first Ignite Toronto went off on Tue 25-Aug-2009 at the Drake Hotel Underground. I was able to shoot a few photos:

All in all, the ignites were enjoyable, although I do wish the ignites had started sooner. There was ample time to drink and discuss in advance, but I'd like time to see all the ignites, and then talk some more afterwards without wishing I were home, asleep.

I'm getting old, I know.

Of particular amusement was when the Creemore Springs tap decided to fail very publicly with a bit of a Beersplosion:

Wednesday, August 19, 2009

GuestList - Ben Vinegar - DemoCamp Toronto 21

Ben Vinegar presented Guestlist at DemoCamp Toronto 21 (Velma Rogers Theatre; 333 Bloor Street East; 28-Jul-2009):

If you'd like to see the large/HD version, click through to YouTube. I also recorded the Q&A that followed (YouTube):

Ben had a self-deprecating style which initially made me wonder if the presentation was going to bomb, but he pulled it off with aplomb, and it ended up being one of the more entertaining demos of the night.

Guestlist is one of the more polished and promising applications I've seen at DemoCamp, and I expect this won't be the last time you hear something about it. I'd say it has a relatively bright future in front of it. It's not a unique product, it's just very well executed.

Apparently the Guestlist folks mostly (all?) work at FreshBooks.

Knight's Tour in Scala

I've been doing some experimentation with Scala lately, mostly by reading the Wampler / Payne Programming Scala in O'Reilly Labs. Learning a language by reading about it is deceptive, so I've been looking for an excuse to write some non-trivial Scala code with which to better exercise and test my knowledge of the language.

After skimming the Daily WTF's Praxis for Automating the Knight's Tour, it seemed like a tractable problem that would be fun to code up in Scala, so I proceeded to do just that. It's a brute-force solution to the problem, and I'm not yet sure how idiomatic my Scala code is, but it does, at least, solve the problem:

class KnightsTour(val dimensions : Pair[int,int], val startPosition : Pair[int,int] ) {

val relativeMoves = List( Pair(2,1), Pair(2,-1), Pair(-2,1), Pair(-2,-1), Pair(1,2), Pair(-1,2), Pair(1,-2), Pair(-1,-2) )
val xPositions = 0 until dimensions._1
val yPositions = 0 until dimensions._2
val tourLength = dimensions._1 * dimensions._2;
var closedTours = 0;
var openTours = 0;

def printPaths() : Unit = {
printChildPaths( List(startPosition) )
println( "There were " + ( openTours + closedTours ) + " tours (" + openTours + " open, " + closedTours + " closed)." );

def printChildPaths( path : List[ Pair[int,int] ] ) : Unit = {
val moves = getMoves( path.first );

if( path.size == tourLength ) {
if( moves.contains(startPosition) ) {
closedTours += 1
println( "Found a closed tour: " + path )
} else {
openTours += 1
println( "Found an open tour: " + path )
} else {
moves.filter( move => !path.contains(move) ).foreach( move => printChildPaths( move :: path ) )

def getMoves( position: Pair[int,int] ) : List[Pair[int,int]] = { move => Pair(position._1 + move._1, position._2 + move._2 ) ).filter( withinDimensions )

def withinDimensions( position: Pair[int,int] ) : boolean = {
return xPositions.contains( position._1 ) && yPositions.contains( position._2 )


val tour = new KnightsTour( Pair(3,4), Pair(0,0) )

All in all, I'm pleased with it, although I'm sure i'll read this again later and wince at my early Scala code. Comments welcome.

Tuesday, August 18, 2009

WeGoWeGo - Dan Wood & Martin Pietrzak - DemoCamp Toronto 21

Dan Wood and Martin Pietrzak presented WeGoWeGo at DemoCamp Toronto 21 (Velma Rogers Theatre, 333 Bloor Street East; 28-Jul-2009):

I also captured the Q&A session that followed:

As always, you can feel free to click through to YouTube (presentation, Q&A) to watch the larger HD stream.

They do a user-generated content site for listing things to do. They attempt to differentiate through the search model ("faceted search categorization"). I have to say, this just didn't seem like it was currently differentiated enough to grab my attention. There's a lot of web sites in this space, and I'm not convinced the search is sufficient, particularly in a world where network effects create a sort of lock-in, giving the first-movers a bit of an edge.

That said, I'm happy to be proven wrong.

Friday, August 14, 2009

Mashup Arts - Shaun MacDonald - DemoCamp Toronto 21

Shaun MacDonald presented Mashup Arts at DemoCamp Toronto 21 (July 28th, 2009; Velma Rogers Theatre; 333 Bloor Street East):

If you'd like to see the video larger in HD, feel free to click through to YouTube.

MashupArts is essentially rich media e-cards whereby you load videos and photos from the web into your card and then share it, and get others to collaborate with you on the card before sending it to the victim/recipient.

The concept seems sound, although I think there's still a fair ways to go before this is a polished, fully-featured application. There are features that I'd like to see added, and parts of the interface felt like they needed further work, but as long as it continues to improve, this seems like something that has potential to succeed.

Thursday, August 13, 2009

Breeze - Alan Lynse / Cascada Mobile - DemoCamp Toronto 21

Alan Lynse of Cascada Mobile presented Breeze at DemoCamp Toronto 21 at the Velma Rogers Theatre (333 Bloor Street East) on July 28th, 2009. Breeze is a platform for building mobile applications using web technologies that run on a wide array of mobile phone platforms (iPhone, Android, etc.):

In this case, not only can you click through to YouTube, I recommend that you do, since part of this demonstration involves coding in Eclipse, which is a lot easier on your eyes if you switch to the larger HD mode.

Seems like a good way for companies to build simple applications that cross all handsets. If you want the polish of a fully native application that's tailored to the capabilities and design of a particular device, this probably won't cut it, but not everybody needs that, particularly for the first pass.

I don't see this surplanting native mobile application development any time soon, but it's a useful option to keep in mind.

Tuesday, August 11, 2009 - Brian Sharwood - DemoCamp Toronto 21

Brian Sharwood presented at DemoCamp Toronto 21 (July 28th, 2009; Velma Rogers Theatre, 333 Bloor Street East):

Feel free to click through to YouTube to see it in full-size HD.

Some good anecdotes, and the site functionality /sounds/ good, but there wasn't much in the way of a demo here. More demo, less presentation would have been good.

That said, I would check out the site if I needed some work done and wasn't going to do it myself.

Monday, August 10, 2009

Twitter Background Credits

I've recently redone my twitter background (which you can see on my twitter page), and in so doing used a few images that, while creative-commons-licensed, should be attributed. Because twitter pages can't easily hold credit links, it seemed worth doing here, rather than there.

Accordingly, you can find the images I used here:

The perforated tractor-feed paper and polaroid were photoshopped together, rather than clipped; they're not perfect, but they're good enough for my purposes.

Wednesday, August 5, 2009

ArtAnywhere - Christine Renaud - DemoCamp Toronto 21

Christine Renaud presented ArtAnywhere at DemoCamp Toronto 21, July 28th, 2009 at the Velma Rogers theatre:

In essence, ArtAnywhere allows artists to rent their art on a monthly basis to people with an interest in art. The cost of renting is fixed, so more expensive work is simply rented for more months in total before it is "paid off." Sounds promising, although it sounded during the question period like they haven't worked out all the details with respect to how to deal with damage done to art, and so forth.

Still, it could be of benefit to all (revenue for artists, art for the general populace), and there's obviously a profit model, so it'll be interesting to see where this goes.

Tuesday, August 4, 2009

Zoocasa, presented by Saul Colt at DemoCamp Toronto 21

Saul Colt presented Zoocasa at DemoCamp Toronto 21 on Wednesday July 28th, 2009 at the Velma Rogers Theatre. Zoocasa is a site to search for real-estate in Canada. They argue they're complementary to other real-estate sites like, and differentiate themselves by ways to search for houses:

You can click-through to YouTube to see the video in larger form; it's available in HD.

They get their listings from the public web, which means that they have some listings that MLS doesn't have, and don't have all the listings that MLS does have. This is their achilles heel; if MLS data were publicly available, Zoocasa might well be a better choice than, but since the real estate business keeps their listings under lock and key, there's only so far Zoocasa can go.

There was a spirited question period. In particular, an audience-member who felt that Zoocasa needed to consider alternate forms of profit-model. I wasn't capturing questions in order to save battery life, which is a position this presentation made me want to revise.

On a side note, I shot the video pretty closely cropped, which doesn't give iMovie much image stabilization to work with, so it's very shaky-cam; I'll have to shoot it a little wider in the future. A tripod would help, but would probably get in the way of catching both the slides and the video in concert.

Saturday, August 1, 2009

'elmcity' by Jon Udell @ DemoCamp Toronto 21

Jon Udell was the first presenter at DemoCamp Toronto 21, covering 'elmcity', his project to allow a directory of events by linking in iCal format using delicious accounts as markers for finding the iCal files.

Despite a proliferation of event information on the web in various forms, it's not always easy to bring that together in a useful way. Although "elmcity" seems like an interesting project, I'm not sure that I see elmcity changing that directly. I agree with the problem statement, but the demo didn't make me want to stand up and ask, "How can I get access to this right away?"

Jon took a little longer than most presentations, and thus is longer than YouTube's 10-minute limit, so I've broken his presentation up into two videos: