Maybe it was because yesterday was Friday, but on announcing DemoCampMontreal4 yesterday on my blogs, I saw that there were only 4 demos instead of the usual 5. And so I added myself to the wiki in the 5th remaining slot thereby contributing as a presenter to the event this time around.
Initially, I couldn’t have any output from my laptop to the projector. It might have been a cable problem. Before the event start, I had chatted with Gary, Daniel, Tamu and Ben. Simon had a large digital clock readout on his laptop to countdown the 15 minutes per presentation, and Tamu was assigned the clock-keeping duties. Simon really is into these time-reversal devices, isn’t he?
Daniel wasn’t completely ready with his presentation, and so we just rotated the schedule. I informed Philippe, who was MC’ing, of the change. So, out-of-the-blue, I was now 4th presenter at DemoCampMontreal4.
1. Braincuts by Categorical Design Solutions
François Magnan, along with two colleagues, demonstrated their online software, Braincuts, which relies on semantic searches and freely available information from Creative Commons licensed sources. The multimedia information culled from these different sources can then be very easily combined through the Braincuts web interface. More precisely, the GUI enables the positioning of the various multimedia elements on a visual timeline by drag and drop.
Effectively, this means that you could position an audio track in parallel to a video or slideshow, and this way you could edit a whole presentation, documentary or educational multimedia package by arranging various multimedia elements. Finally, the whole presentation can be published and shared with other people.
I found this really interesting, because, this is the kind of information aggregation that we are doing when researching and writing an extensive article for our blogs these days. Except, the blog ‘timeline’ is just how people scroll from top to bottom, reading text, and maybe watching a picture or a video along the way.
Now, if Braincuts could be reused to produce new multimedia blog posts, that would be extremely helpful. And to me, automatic discovery of semantically-related multimedia information based on keywords I specify would really earn it a Web 3.0 moniker.
The team has built an accessible and useful interface using only open standards and protocols, and for the GUI, they rely on JQuery, with additional components developed in-house. An impressive demo with lots of potential, especially in the educational realm.
2. David Xu – PodBeans.com
PodBeans (Podcast hosting, Social subscribing) is actually a well thought-out platform with two aspects, one for podcast publishers and one for podcast subscribers.
For publishers, there is a variety of services integrated into PodBeans to make it simple to start your own podcast and benefit from it. The publishing tool is built on WordPress, and makes it easy to upload your files. PodBeans provides the hosting and the bandwidth and both are unlimited. Moreover, PodBeans also contains tool for promoting your podcast, and there are at least two possible income streams – either through ads or paid subscriptions to your podcast if you want to set up premium content.
If you host your podcast and whole site on PodBeans, you can of course customize the look of it through WordPress themes. However, should you decide to include the content on your own site or blog, despite PodBeans hosting your podcast, then you can also do so by simply embedding automatically generated code into your site.
For podcast listeners or viewers (as PodBeans also does videos), it is possible to collect all your podcasts in one place, tag and organize them, and create a new personal feed from them. In addition, you can also discover what your peers on PodBeans have subscribed to. This part of PodBeans resembles Collectik quite a lot.
Overall, there is a good deal of integration of various services and technologies into PodBeans: open-source technologies, open standards and freely available tools have all been put to great use for this website.
3. Mitch Cohen – ClixConnect
Mitch demonstrated ClixConnect, which has a tagline of 24/7 Live-Chat Sales and Support Service. When a visitor connects to your ClixConnect-enabled website, a small popup window opens with either a representative from your own company or else a person from ClixConnect.
This allows the visitor or prospective customer to asks questions in real-time about the website or the products and services you offer through an unobtrusive and movable chat window. In addition, the system, can provide the visitor with automated recommendations on products based on the products being viewed.
The technology used as back-end is proprietary, but at the client site, all you need to do is sing up to ClixConnect and include a small HTML code in your website. In fact, ClixConnect can even do the integration for you for free if you send them your HTML page.
This is clearly interesting for sales and support, as it accompanies the prospective customer from the point of landing through browsing the product catalog until the close of the sale. I think it could also be used to diagnose website usability. If statistics were kept about frequently asked questions on website navigation for instance, then the benefits for tweaking the web design through direct consumer feedback would be obvious.
4. Josh Nursing – Hacking IronRuby, extending the e Text editor with Ruby, Cygwin and wxCocoaDialog
I had no presentation per se, as I hadn’t prepared any, thinking that the 5 slots for presenting were already taken until just 3 hours before the start of DemoCamoMontreal4. But I wanted to show what I had been hacking with around Ruby/Ruby on Rails on Windows so I stepped up to the mike when Mitch had finished.
First, I talked about Microsoft’s just-released IronRuby (pre-Alpha) which will run on top of the DLR (Dynamic Language Runtime) for .Net and about my tutorial on how to Hack IronRuby, in which I showed how I fixed a bug and also extended IronRuby. It’s easy to do as the source code (C#) and whole project structure is really clean.
IronRuby will run together with other dynamic languages targeting the DLR, namely IronPython, C# and VBx, a dynamic version of Visual Basic. This will enable you to reuse all the libraries from all the DLR languages from your language of choice. I will be able, for instance, to reuse all the IronPython, VBx and C# libraries from IronRuby.
IronRuby is significant to me for many reasons, the first of which is I am really fond of Ruby as a programming language.
Secondly, I mentioned that, to me, Microsoft have some of the best IDEs to develop in. The possibilities for Rapid Application Development of software including database access within Visual Basic are astounding when you know how to use the tool properly. Now imagine how great it would be to have IronRuby integrated with a Visual IDE and target Windows and other platforms.
Thirdly, Microsoft has decided to make IronRuby open-source (using the Microsoft Permissive License), and that means they’ll be accepting outside contributions to enhance and extend IronRuby. Besides, Microsoft will be hosting the source code on Rubyforge rather than Microsoft’s own Codeplex.
And finally, an avowed goal of John Lam is to be able to run the whole Rails framework on IronRuby to test its completeness. Therefore, there is a strong possibility that there will be amazing Ruby on Rails development tools for Windows.
I wanted to show more IDEs for Ruby and Ruby on Rails, but time was limited, and so I showed how to extend the e text editor. e is designed to be compatible with the Mac-only TextMate’s Bundle system. So, with some porting, the TextMate bundles can be reused within e. The latter contains several in-built ones which enabled easy insertion of code snippets, just like TextMate.
What I wanted to do was to access all Ruby methods for the most used data structures, like Strings, Arrays, Hashes and FixNums from e while typing Ruby code – a type of IntelliSense in Microsoft/Windows terminology. Ruby already has great reflection capabilities, and hence, a simple object_name.methods gives you a list of all the internal methods.
The way I did it was to use Cygwin, Ruby and wxCocoaDialog, the latter being a port to wxWidgets of Mac OS X CocoaDialog. That was the technical part of my ‘presentation’ as there was a short but quite complex piece of code there, which I’ll leave for another tutorial post here on YashLabs soon, but suffices to say that this is how it works:
1. A keyboard shortcut triggers a Bundle command.
2. The bundle command is a ruby script in which I referenced the wxCocoaDialog path, as well as the x and y position of the cursor at trigger time.
3. This Ruby script executes and gets all the methods for Strings, and builds a specially formatted array of entries (otherwise some symbols can’t be included in the menu)
4. The Ruby script taps into the system execution (through Cygwin) of wxCocoaDialog which populates a GUI menu with all the methods
5. The menu pops up in the editor, and you can browse through all the entries via the arrow keys or jump straight to an entry by clicking on the starting letter.
I demonstrated this with a string and from the menu, I pressed “u” to reach the .upcase method.
6. On selection of a menu entry, Ruby executes and prints a dot followed by the selected method name within the editor.
Because of time constraints, I didn’t show the other shortcuts for Array, Hash and Fixnum, but they work just the same and as well, and are easy to implement.
What’s also great about this is that the commands are accessible within your Rails code in e too. Because of the compatibility between e and TextMate, something similar can easily be done with TextMate and CocoaDialog on Mac OS X.
I also mentioned Microsoft’s Open-Source moniker adoption.
Daniel showed a partial version of his idea of piping urls and feeds through a RESTful implementation.
In his demonstration, he filtered feeds through Google Maps by proceeding the following way:
1. Feeds were geotagged through the piping mechanism
2. In Google Maps, he defined a polygon to restrain his domain of search to a region on the map (imagine for instance an area around Montreal)
3. By pasting the geotagged feed within Google Maps, and with a calculation of inclusion, he was able to further filter the feed he had based on the region defined.
Daniel used Ruby and Rails to prototype url_pipe and is looking for contributions to the source code. The overall functioning is similar to Yahoo Pipes but without the GUI and to YubNub which I have covered before. A more complete url_pipe could come in real handy for local searches, targeted advertising as well as automated discovery and filtering.
Finally, Simon wrapped up by thanking our sponsors and by reminding us of the upcoming ‘camp’ events, including FaceBookCamp for the end of this month.
I was joined by Philippe Chrun, founder and CEO of MyCarpoolStation and we discussed strategy a bit over a beer. I also caught up with Jérôme Paradis of ParadiVision and we spoke about .Net and where it’s all going. Alok Mohindra and I chatted about what lies ahead in the Rails world especially concerning Windows and .Net. Austin Hill was there and gave me some positive feedback about my impromptu hacking ‘presentation’, as did Simon and Roberto Rocha. Thanks guys, much appreciated. Well done Pierre, for co-presenting with Simon.
After some last minute conversations with Tamu, Gary (‘Use OS X’), Daniel and Simon (expect a Perl 6 demo soon), we parted ways.
It was great to present for a change, and to catch up with other people of the Montreal Tech community.
Thanks to Jérôme Paradis for the pics.
DemoCampMontreal4 is today at the S.A.T. There are 5 demonstrations scheduled by the members of the Montreal Tech Community. It’s free to attend.




I mentioned 

















Recent Comments