26/04/2011
For years, I had to get up really early to beat the traffic (which is increasingly stupid in Montréal) and find a parking spot near ETS (where I work). Suffice to have one circulation cone misplaced (or a dick using two parking spaces) and you have to pay for parking.

However, working schedules can really mess you up, and I decided recently to let go of it and just get at work later.
Read the rest of this entry »
2 Comments |
Life | Tagged: ÉTS, Coffee, Night, Night Shift, Stupid Neighbors, Working Schedule |
Permalink
Posted by Steven Pigeon
19/04/2011
Expecting security by obscurity to protect you is quite naïve, maybe a bit stupid, certainly negligent. Still, we still see accounts bob with initial password bob which are quite amenable to low-intensity attacks. Even worse is when you give away so much information about accounts that it becomes easy to home in on usernames and passwords.

Read the rest of this entry »
Leave a Comment » |
hacks, Life in the workplace | Tagged: hash, login, NIP, Passwords, security, SSH, stupid |
Permalink
Posted by Steven Pigeon
12/04/2011
There are times when you must hide information from a document without changing its appearance and layout. I’m not talking about plain censorship, I meant like when you have to submit a paper to a journal or a conference anonymously while required to follow stringent layout guidelines. It may suffice to set a background of the same colors as the text, but if it does the thing in print, it doesn’t work so well with PDF where you can still select the text (and I did a blog entry using this behavior a while ago).

There’s a censor package for
but it doesn’t play well with whole paragraphs, and it messes out the layout if you select more than just a word or two. This week’s entry proposes a simple
macro to do nice (but not weapon-grade) “censoring”.
Read the rest of this entry »
6 Comments |
LaTeX, Life in the workplace | Tagged: Anonymization, Cat, Cat Vomit, Censor |
Permalink
Posted by Steven Pigeon
05/04/2011
Making a difference isn’t easy. Like everybody else, we are taken by our daily tasks and obligations and we end up having little or no spare time, and, anyway, we rarely know how to make a difference with the means we can afford.

Making a donation (other than getting rid of the clothes or furniture we can’t stand anymore—and that nobody wants anyway) isn’t easy because we are never sure we can actually afford to give money away and that we are never sure that the money goes were it should and that it’s used as it should.
Read the rest of this entry »
Leave a Comment » |
Life | Tagged: Alma Mater, Charities, Donation, Fondation des maladies du Cœur, Food Banks, Goldberg Variations, Shelter, Société du Cancer, Wikipedia |
Permalink
Posted by Steven Pigeon
29/03/2011
Initializing large arrays of data before use is always cumbersome but it seems to be unavoidable.

The first types of solutions fill the array with a value that denotes an empty entry. While this sounds straightforward, the choice of that value is not always easy. For floating points numbers, zero may or may not be a good candidate. If convenient (as a zero floating point value is encoded as binary zeroes filling the variable) it may be difficult in some contexts to use because zero may be valid. Fortunately, there’s always the possibility to initialize the array with NaNs, which can be tested and used correctly (but you need the POSIX functions to do that).
Read the rest of this entry »
6 Comments |
algorithms, C-plus-plus, data structures, programming | Tagged: Aho, array, Bitmap, Hopcroft, Ullman |
Permalink
Posted by Steven Pigeon
27/03/2011
Two weeks ago, I went back to the Université de Montréal to pay a visit to my Ph. D. Adviser. As we toured his laboratories, I noticed that a drawing I scotch-taped to a wall ( as a Masters’ student) was still there after all those years.

…So it’s been there since 1994. Damn, I’m old!
Leave a Comment » |
Lost+Found, wtf |
Permalink
Posted by Steven Pigeon
22/03/2011
A friend of mine, Arthur, is developing a voxel-based game and found himself having to deal with large volumes of data. Unlike 2½D games where the map is essentially a 2D expanse with occasional relief, his game allows the definition of things in full (discrete) 3D.

To avoid loading the entire map in memory, he made the wise design decision of making his world tile-based, so that it can, simultaneously, reduce the working set as well as having an essentially open map, by loading only a small set of visible world blocks at all time. So together we took a look at compressing these world blocks, and it turned out that we can do a lot with fairly simple algorithms and VLCs.
Read the rest of this entry »
9 Comments |
algorithms, bit twiddling, C-plus-plus, data compression, data structures, Design, programming | Tagged: 2½D, Game, Game Programming, Huffman, Prediction, Prefix Codes, RLE, Tile-Based Map, Tree Structured Codes, Voxel |
Permalink
Posted by Steven Pigeon