By ludovic on January 15, 2010
Everybody knows that Gmail is great for consolidating multiple email accounts into one place that’s easy to search, organize, backup, and get out of. What less people know is that it’s also a great place to consolidate your instant messenger accounts, too!
Watch out, this article is pretty long and gets quite nerdy at the end.
Some background information (and a few rants)
We’re going to talk about merging accounts from different instant messaging services (Gtalk, MSN, ICQ, etc.) so let’s get this out of the door first: yes, I could use programs like Pidgin or Trillian to log into all those networks simultaneously, but I’d still have to search in at least two places when it comes to past communications, and that’s without considering problems like chat history being only stored locally on one computer, which means I then have to sync that with my other computers using Dropbox or Mesh. Also, it’s really way to simple for my tastes. There’s a better, more complicated and geek-fulfilling way.
Google made the very good decision of using Jabber, a.k.a. XMPP, an open protocol, to implement their own instant messaging system Gtalk. As usual with Google, though, they didn’t quite follow the standard entirely but it’s compatible enough for what I need… mostly. The other good thing with Google is that they integrated the whole thing into Gmail so that chats are searchable along with emails, which is what I’m after, here. Some people may be uncomfortable with the privacy implications, but those people probably don’t use Google services anyway (why would you trust them with your emails or videos or pictures but not chats?). In fact, people worried about privacy probably don’t use many web services in general, unless they’re one of those weirdoes who actually read the whole terms of services and really compare them (I don’t even know if such weirdoes exist). Besides, when you start worrying about privacy, you generally end up setting up your own email server, which then makes you worry about other things like backup, whitelisting/greylisting, encryption, etc… Anyway.
So what then? Well, the XMPP protocol has things called “transports” who basically translate to and from other IM networks like MSN, Yahoo and others. That’s the way we’ll consolidate all our IM networks into Gmail!
There are a few tutorials out there that explain how to set that up, so I’ll quickly walk through the first steps and then get to what I did differently, which is the good part.
Posted in GMail, Productivity | Tagged google talk, gtalk, icq, im, jabber, msn, xmpp
By ludovic on January 9, 2010
Visual Studio Express only has a subset of what you can find in Visual Studio Professional, which makes complete sense, but two missing features actually prevent users from following best programming practices in my opinion. The whole point of Express is to let enthusiasts and students discover the joys of programming – so we might as well let them do it the proper way.

Continue reading “Visual Studio Express’ limitations lead to bad practices”
Posted in Programming, Visual Studio Express
By ludovic on January 5, 2010
I was working on this article when I spotted that my friend Bertrand Le Roy posted on that very same subject so I’ll turn this into a reply to his. The new year seems like a good time for bragging about one’s home video setup, it seems.
First, you may notice that my setup is quite simple because I don’t have any audio gear. Yet. That’s because until recently, my apartments were too small for me to have any decent speakers.

Posted in Entertainment, Hardware
By ludovic on December 24, 2009
Lately I’ve been playing around a bit with IronPython and how to embed it inside an application to add scripting features. I’m still figuring things out, but I had a hard time exposing global variables to the Python environment.
The idea was to expose a couple of .NET objects (mainly a few important managers/singletons from the app’s API) as global variables so that scripts could access and act on the important parts of the app (query the database, batch run actions, etc.).
At first, I exposed some objects as variables of my ScriptScope:
public void SetupScope(ScriptScope scope)
{
scope.SetVariable("test_string", "This is a test string");
scope.SetVariable("test_callback_method", new Action(TestCallbackMethod));
scope.SetVariable("test_callback_function", new Func<string, string>(TestCallbackFunction));
}
The problem was that only interactive scripting would get access to those variables (I had a simple UI for typing commands to be executed on that ScriptScope). Using “test_string” in a function loaded from a module would result in a “name ‘test_string’ is not defined” error. Using either “import” or “global” would not fix it.
Continue reading “Exposing global variables in IronPython”
Posted in C#, Gotcha, IronPython
By ludovic on November 2, 2009
I recently published the new version of my personal website and you’ll have no problem figuring out that I had some fun with jQuery. Probably a bit too much fun, actually, but hey, a personal website is supposed to be just usable enough that you can contact the owner without hassle.
My first approach to the website was a mix of good practices and totally blasphemous process:
- I wanted a simple website that only lists ways to get in touch with me (Facebook, LinkedIn, and all that social web stuff), and ways to follow what I’m doing online (my blogs, twitter updates, and all that other social web stuff). It would additionally have a contact form so that people could send me a quick message without any extra steps.
- I also wanted a website with some funky jQuery shit going on. I wanted to learn the API along with vanilla Javascript.
After some research about what jQuery can and cannot do, and a few sketches on my trusted notebook, I came up with a totally revolutionary (in the post-Web 2.0 / post-iPhone 21st century definition of the term) idea: the vertical “Coda” slider!
This UI pattern has been popularized by Panic’s website for their Coda software. It features a panel in which pages slide in and out when you click on their title, displayed in some kind of list or menu bar. There’s a nice tutorial on “jQuery for designers“ that explains how to reimplement it. The only difference is that I wanted the pages to slide in and out vertically instead of horizontally. You may point out that the aformentioned tutorial features an option to do just that, but it’s not quite the way I wanted. I want it to look like a standard page until you click one of the navigation links, which is when it goes “shwoop” and you go “wow I did not expect that!”.
No need to go through a lengthy tutorial, as you can probably figure how it works by just looking at the code, but still, to make it easier on you I created a “demo” version of the page with placeholder content and none of the other bouncy crap going on. Go check it out if you want to steal some of it, although I still have a couple of little quirks to fix, especially with window resizing.
Posted in Announcement, JQuery, Web | Tagged javascript, JQuery, personal, ui, website
By ludovic on September 4, 2009
Apple is company whose boss is a guy named Steve who is, by reputation, quite charismatic but also a real asshole when it comes to working with him and using his intellectual property. Their main product gives them only a small fraction of the market, and its core of devoted fans can be loyal up to a rather fanatical point. This product is always set against the more popular product, which is seen as outdated, inferior, over-marketed, and riddled with product updates that break compatibility with silly new features. Flamewars about which product is better are frequent. Apple’s product supposedly covers everything you may need, although fans still usually spend large amounts of money to get add-ons and accessories. However, the other product is still the dominant one by far, and most beginners start with it. Ironically, Apple’s most successful product is a small and fun “side” product. It has seen several iterations and lots of additional products are available.
Steve Jackson Games is company whose boss is a guy named Steve who is, by reputation, quite charismatic but also a real asshole when it comes to working with him and using his intellectual property. Their main product gives them only a small fraction of the market, and its core of devoted fans can be loyal up to a rather fanatical point. This product is always set against the more popular product, which is seen as outdated, inferior, over-marketed, and riddled with product updates that break compatibility with silly new features. Flamewars about which product is better are frequent. Steve Jackson Games’ product supposedly covers everything you may need, although fans still usually spend large amounts of money to get add-ons and accessories. However, the other product is still the dominant one by far, and most beginners start with it. Ironically, Steve Jackson Games’ most successful product is a small and fun “side” product. It has seen several iterations and lots of additional products are available.
Posted in Apple, Games | Tagged gurps, ipod, mac, munchkin
By ludovic on April 23, 2009
I created 2 experimental branches for future versions of IronCow.
- “IronCow Mobile” is a branch that adds support for the .NET Compact Framework. Thanks to jwboer for the initial patch.
- “IronCow Local Search” is a branch that adds local search for tasks. We basically cache all the tasks in memory, and handle search queries locally, instead of sending a request to the RTM server and parsing the response markup. The lexical analysis and AST building of the search query is a bit dodgy, as I can’t get a proper tool like ANTLR to work with RTM’s search grammar (probably me doing something wrong), but it’s not too much of a problem right now since search queries tend to be quite short, and we already are significantly faster than a web request.
Check them out!
Posted in .NET, Announcement, IronCow, Programming
By ludovic on April 19, 2009
Microsoft only supports Visual Studio Professional for developing Windows Mobile applications and, more generally, code based on the .NET Compact Framework. You get nice things like application deployment and emulators and remote debugging and all. But if you just want to compile something against the .NET Compact Framework, for example to check that you’re using supported methods and classes, you can do that with Visual Studio Express.
Create a project in Visual Studio Express and open it in a text editor. In the first “<PropertyGroup>” node, add the following at the end:
1: <NoStdLib>true</NoStdLib>
This will tell MSBuild to not include mscorlib.dll automatically, so we can make it use the Compact Framework’s version.
Next, re-open the project in Visual Studio Express, delete all the system references (System.dll, System.Xml.dll, System.Data.dll, etc.), and re-add them, only this time use the Compact Framework’s assemblies. You’ll have to directly browse to those DLLs, as they probably won’t show up in the default dialog.
Now rebuild you application. It should build against the Compact Framework. You can test that by adding an instruction that’s unsupported, like for example “Thread.Sleep(TimeSpan)”.
Posted in .NET, MSBuild, Programming, Visual Studio Express | Tagged compactframework, mobile
By ludovic on April 12, 2009
Migrating from a regular public Google account (GMail, etc.) to a Google Apps account seem to be a hot topic among geeks. Lots of people did it and posted their experience on their blog, which is often helpful for the next ones to try it. Since I recently migrated my account too, I thought I’d share this here. The important difference is that most people only post how they migrate their email. I tried to post about a lot more than that, including how to migrate contacts and groups and filters and quick links and documents and all that. I also tried to write a complete “pros & cons” section up front so you can check whether Google Apps is for you.
Pros and Cons
Pros
- You can administer your domain using Google’s control panel. All the users in your group (probably your family, or some kind of circle of friends) have a common ground to communicate on (chat integrated in mail, calendars, documents sharing, etc.). Scott Hanselman has a few pros & cons on that subject in his article about migrating his whole family to Google Apps, and the follow-up article . Note that these articles are outdated in a few places (some things have been fixed, some methods of backup/transfer don’t work anymore, some pros/cons are not valid anymore).
- Your integrated GMail chat will now make you appear online as “username@domain.com” instead of “username@gmail.com“. This is way better if you want maximum portability of your identity, but want to keep the practicality of GMail’s integrated chat.
- If you ever need to, you can upgrade some accounts to paid “Premier” accounts to get more space, reliability and support.
Cons
- Not all Google services are available in Google Apps. For example, Google Reader or Picasa or Google Maps are not included in Google Apps, and you would end up having to login using your public GMail account. This means that whatever links you see at the top (“Mail”, “Calendar”, “Documents”, etc.) will take you to the wrong application (the public one instead of your Google Apps one). Also, your beloved iGoogle homepage will only work in the “public Google” space, so you won’t be able to make it work with your Google Apps things. Instead, in Google Apps, you’ll have the lame and ugly “Partner Homepage”.
- As mentioned in the previous point, Google still hasn’t fixed the whole Google Accounts debacle. Namely, your regular public account will still be needed to log into non-Apps places like Google Reader, Picasa, Google Maps, etc. You can’t use your Google Apps account for this, which results in a slightly schizophrenic user experience. The cookies seem to use different tokens, though, so you can transparently be logged in to Google Apps and public Google services using the same browser.
- Your chat history won’t be migrated, nor will be your chat buddies (for this you’ll have to re-invite people to chat with you at your new “username@domain.com” address).
The Procedure
If you’ve decided that Google Apps is still for you, then this is how you can migrate your regular Google account (GMail, GCal, etc.) to Google Apps.
Posted in GMail, Google | Tagged gcal, GMail, Google, googleapps, googledocuments, gtalk