November 2006 Archives

2 and 4, 1/2 and 1

Two weeks from now I am arriving in Delhi.
A month from now, Tokyo.

The next 4 weeks are going to fly by in an instant, and then... and then... ?

Montreal -> Narita -> Delhi (4 days) -> Goa (beach 4-5 days) -> Bangalore (urban groove 4-5 days) -> Dehli -> Tokyo (who knows) -> Hong Kong (hopefully) -> Tokyo ... ...

Updated string 2 color

I needed to update my string to hexcolor function to also check the luminosity before returning a color cause I was often getting colors too bright to be legible when applied to text on a white background.

It now takes an optional $luminosity parameter. The default is 150 (0-255, the lower the darker).
It returns the first hexcolor that passes the test. If it runs thorugh all 5 possibilities without finding one, tough luck, it returns the first one in the array. (Ideally it should then test for the closest hex to the luminosity cutoff and return that but eh... I have other things to do! ;)


Just came across this:
What are the odds that two commenters leave the exact same comment (barring the capitalization of one word) at the same moment on the same photoblog post?

"Selena" and "Mojo â„¢" both said "LOL home!!!" at 10:48pm, March 29th, 2006, on this post.

My problem is why is a post dated March 14th, 2006 showing up in my GVO aggregator as "posted 10 minutes ago"... :p

A consciousness

(get past the melodrama and the fact that it's an anime / "oh it's cheesy scifi" ;)


Just as there are many parts needed to make a human a human
there's a remarkable number of things needed to make an individual what they are.

A face to distinguish yourself from others.
A voice you aren't aware of yourself.
The hand you see when you awaken.
The memories of childhood, the feelings for the future

That's not all.

There's the expanse of the data net my cyber-brain can access...*

All of that goes into making me what I am.
Giving rise to a consciousness that I call "me."

And simultaneously confining "me" within set limits.

* Drop this phrase for a moment, and consider "what am I? What constitutes "me"?". Then consider that your knowledge and memories are all products of your experience, as transmitted to your mind via your 5 senses. Then imagine that you have a new sense, which feeds knowledge directly into your mind (regardless of I/O: be it visual/audio, direct neural stimulation, whatever).

What is "real" then, and what makes you, you?
And when everyone you interact with is at that same level, where knowledge and experince sync happens, what differentiates you from me? (this is explored in the later TV series, where 9 AI robots develop personalities even though they are continuously synchronizing their minds.)

We are still far from accessible "augmented reality" systems, let alone sync'ing capabilites, but we do have their early forbearers now: weblogs, social network aware software (still crap), aggregators, moblog photo sharing. All these things contribute to peripheral awareness enhancements of select people and data sources around us. Most of those who have been exposed to all this have stymied the "data overload" by retreating a little bit, hitting our aggregators a little less often, etc, but we have tasted the fruit and we do seek to stay connected.

I'd like to start building better tools and UIs for this peripheral awareness, this external, tele proprioception.


The MacBook was repaired earlier this week and I am now on it full time. Sadly, it is hotter than the G4 Powerbook it replaces, and noisier (the HDD). It is also markedly faster, so the tradeoff is... acceptable.

India trip preparations are moving along. Visas have been procured and immunization shots, administered. Tetanus bruising is... less that pleasant. The indian travel agent never replied my email so as of now I still have no idea what the hell I am going to do in India for a week and a half, other than one or two encounters with friends of friends. Must get my act together. Desire to sit on beach, waning. With just over two weeks left until departure, there is lots to do.

Primarily due to sickness last week, I exposed myself to the entire corpus of Ghost in the Shell material (the two movies, both seasons of the TV series as well as the recent TV special). There will be repercussions, starting with the next blog post. Be warned: my fetish for connected awareness and consciousness is spiked.
Without you I am nothing.

coded email

|| BlueMail | v17 | NETWORK PERFORMANCE: transversalMemory_Instance_#_05
|| 2006/11/24 : FRANCE / LYON / INTERSTICE / 144 Grande rue Guillotière
|| URL = " ";
---> this.mail :IS_NOT: SPAM;
---> this.mail :IS_NOT: ERROR;
---> this.mail :IS_NOT: FOR COMPUTER;
---> this.mail :IS: FOR YOU! (Boris)
function init()
$From = "BlueScreen";
$To = "BlueList";
$Title = "BlueMail | v17 | transversalMemory_Instance_#_05";
$Vers = 17;
$Date = 2006/11/24; //(yyyy/mm//dd)
$Author = "BlueScreen";
$Url=" ";
function intro()
if(time<19) print "Bonjour!";
else print "Bonsoir!";
else print "Hi";

function transversalMemory(instance)


$WHEN="2006/11/24 - 21h00";

$WHERE[physical][0]="France / Lyon / Interstice";
$WHERE[physical][1]="144 Grande rue de la Guillotière - 69007 Lyon";
$WHERE[physical][2]="Metro Ligne D: Garibaldi";
$WHERE[physical][3]="Info 0033 6 61 79 47 40";

$WHERE[virtual]=" ";

if($moreInfo) open("";)


function outro();
//Mrci d'avoir pris le tmps 2 tenter 2 lire ce msg;
//Thank U 4 ur interest 4 this msg;

// {AT} Bientot pour de nouvelles cyber aventures...

if ( LANGUAGE == "FR" ):

Le BlueMail est un message envoyé occasionnellement
aux adresses figurant sur la BlueList;

Pour ajouter une adresse sur cette liste:
Envoyez simplement un mail à cette adresse:
avec pour objet: "BlobIsNotDead";

Pour supprimer une adresse sur cette liste:
Envoyez simplement un mail à cette adresse:
avec pour objet: "BlobIsDead";

if ( LANGUAGE == "EN" ):

The BlueMail is a mail occasionaly sent to
the addresses in the BlueList;

To add 1 address: Just send a mail to this address:
with "BlobIsNotDead" in the subject area;

To delete 1 address: Just send a mail to this address:
with "BlobIsDead" in the subject area;

function contact()
$NAME = "BlueScreen";
$URL[0] = " "
$URL[1] = " "
$MAIL = "b-l-u-e-s-c-r-e-e-n{AT}"




Waiting for my laundry this evening, I went for a walk down St-Denis to find some food. Walking buy a "smart games" boutique, I decided to duck in and see if I could find...

Quarto is the game Chicken had me play with him for an hour or two on that flight from San Francisco to Tokyo last May.

Quarto is a board game for two players invented by Blaise Müller.

It is played on a 4×4 board. There are 16 pieces, each of which has four attributes:

1. large or small;
2. red or blue (or some other pair of colors, such as light or dark stained wood);
3. square or circle;
4. with or without a hole.

Players take turns to choose a piece which the other player must then place on the board. A player wins by placing their piece to make four pieces in a horizontal, vertical, or diagonal row, all of which have a common attribute (all small, all circular, etc).

Quarto is distinctive in that there is only one set of common pieces, rather than a set for one player and a different set for the other. It is therefore an impartial game.

In other words, the object is to be the first player to line up for pieces that share a characteristic (color, height, shape, hole-ed-ness). That means you are tracking multiple variables and extrapolating multiple possibilities. Now, to twist it around some, you pick pieces for your opponent to play. Any progress towards achieving your goal is purely thanks to oversight of your opponent.

Loads of fun and incredibly challenging. I ordered the travel size.

Morning dose

business idea

the product:
freshly pressed fruit juices and smoothies, in two size formats each, coming in a handful of standard combinations (based on price of raw materials and, you know, what tastes good and sells).
at order time, buyer has choice from handful of "doses" of healthy and/or stimulating adds:
- gurana
- ginko biloba
- panax ginseng
- echinacea
- vitamin D
- vitamin C
- vitamin E
(premium... expensive stuff)

Offer dose bundles, with silly names:
- "northern lights - to get you through the winter: vitamin D, ginseng, panax, enchinacea, vitamin C"
- "smart and beautiful - leader of the pack: premium dose, everything!"

yada yada

Young urban professionals with disposable income who are performance, appearance and pseudo health obsessed, of course!

distribution strategy:
identify key metro stations in both peripheral and core urban areas, so as to target the major young urban professional nexuses. mouahaha
(local examples: Laurier, Mont-Royal, Sherbrooke, All the university/downtown stations, Vendome...)

I'm putting this out there cause obviously it's not something I can do myself. Lots of research required for a basic business plan (cost of drink ingredients, availability and cost of dose ingredients, cost of containers, juicers, dispensers, cost and availability of booth-like location(s) (I'd put the first at Mont-Royal). If I were 22 I'd be out there right now doing this though. ;)

Vicious Interface

vi Cheat sheet

the above is a cheat sheet for the vi terminal-based text editor. it is evil in it's powerful complexity. amongst geek ideology wars, vi is often pitted again emacs. the emacs camp backronyms vi to mean "vicious interface"

my intention in posting this is to communicate the idea that this cheat sheet is, in effect, the GUI of vi, and that that is indeed vicious.

editing crontab in vi is a pita.

Ok that wasn't so hard... ;)


Hello, what's this?

"We automatically detect new buzz by crawling 50,000 of the very best web sites, blogs, and news sources. Then our technology crunches the raw data from these sites to identify new buzz that’s just starting to spread. We developed the technology to find new things just when they start accelerating in popularity and provoking interesting conversations. Our technology is also supplemented by a network of human taste-makers and tips submitted by BuzzFeed readers. These savvy humans can spot subtle trends our robots might miss."

Aggregator + some statistical analysis + human editors.

Very interesting.

All the lonely people

I'm over at my mobile carrier, Fido, 's website. Was gonna see if I can login somewhere and manage my services. Time to get rid of voicemail as, well, I just don't ever check it. Been over a year.

I decide to poke around a bit and check out their "Promotions."

Fido's main marketing schtick is dogs. Everything has to do with dogs.
Back when Fido first launched, then-roomate Jonathan M. and I were assigned a location scouting job for their teaser series of TV commercials. The scene where the guy is perched up on the outer wall of St-Joseph Oratory calling out "Fiiiidoooo!"... that was my idea. ;p

So, yeah, I'm looking at their current "promotions and new stuff"...

First up: "Fido presents Lavalife's "Click at a Flick"

Fido FlickLavalife, Fido and Cineplex are hosting great events called Click at a Flick at a Cineplex movie theatre near you.

For the price of a movie ticket, you can go to a Click at a Flick pre-show party every other Wednesday and hang out with 100s of friendly singles before you watch a new movie together at a Cineplex theatre. Who knows, maybe you'll even connect with someone before the lights go down.


Ok, it gets better...

New service! *28! An automated call service that allows you to easily... pay us!! haha!!
Nice little badge of a dutiful dog sitting attentively, mouth-breathing. Fan.Tas.Tic.

Here comes the best one: "New! Romance services"

Want to talk with other singles in your area or connect with people from all over the world? Now’s your chance with Fido’s new Romance services.

Ok. Are you ready? Here's the visual for this hot new service:

Fido Romance

Way. To . Go.

More IMD aggregation fun

Yesterday's achievement for IMD was a bit more straight forward: put a Flickr badge of the department's group photo pool on the homepage.

Can you tell I did it? ;) To be honest the hardest part was the calculations for the styling: how many thumbnails at what size with a right margin of 1 pixel can I fit on the top row, ditto for the second, while maintaining the grid? View source for some hints...

This was really basic and simple but I had never played with the API before so it was a fun learning experience. If you need to do anything with the Flickr API and are doing it in PHP4, phpFlickr makes it easy (even if the documentation is essentially non-existent... poke around in the Class itself to find some goodies.)

Next up... :p

Find teh kittens!

From a list of undergraduate projects available at the Center for Intelligent machines at McGill, "Content-Based Image Retrieval":

2. Finding Animals in Internet Imagery Using Learning Methods

This project, based on a recently published paper, involves finding images on the Internet that contain animals. Recently Viola et al. have introduced a rapid object detection scheme based on a boosted cascade of simple feature classifiers. In a more current paper, two extensions to their approach were introduced: Firstly, a novel set of rotated Haar-like features was proposed. These features significantly enrich the original simple features and can also be calculated efficiently. Secondly, based on a thorough analysis of different boosting algorithms (namely, Discrete, Real and Gentle Adaboost), it was found that the Gentle Adaboost learning method was the superior training approach. The complete object detection training and detection system is available in the Open Computer Vision Library Therefore, the primary objective of this project is to use this software to implement the search for animals.

Far less funny are numbers 1 ("Keeping Track of Humans and Objects in Videos for Surveillance Applications") and 3 ("Detecting Moving Objects on the Street Using a Color Video Surveillance Camera"), which are basically top-down surveillance research. Shame on you Mr. Levine.

In any case, I am a little surprised to realize this stuff is going on here. I'm especially intrigued by the "Shared Reality Environment" Lab. Where do these people hang out and socialize? ;)

IMD group calendar solution using microformats and Technorati

I woke up this morning with, in my head, the first words from an email I had gotten from Scott last night, pleading: "*Desperately* need some kind of shared calendar capability on the [IMD] events page."

"How could I do this?" I thought. The existing events page was already an aggregate of all posts that IMD students and staffers had tagged as "events", so we already had "something". Just not a calendar, and no vCal file...

I spent breakfast researching possibilities:
- create a group on Upcoming and fetch the output from there? No good; it's a separate system, user logins, entry screens etc. I need something integrated.
- hack apart the Drupal "events" module for the calendar display code. Possible. Poked around in there for a few minutes... yeeeeaaahh not so much... drupal modules are pretty deeply integrated with the whole Drupal framework. Not gonna happen.

Let's see if there's anything I can do with Microformats' hCalendar. Neat, they provide a web-based, Javascript enabled hCalendar creator form. Very handy. Zoink!

Since for the IMD blog system I already have a custom Post screen, it was no problem to add a quick link to the above creator and add some instructions: "If you are posting an event, plug the info into this form, then copy and paste the HTML it gives you back into your blog post."

Great, now I have a reasonably easy way for the people to add hCalendar data to their events-related blog posts. Now I need to *do something* with that.

To his great chagrin, Hugh recently showed me Technorati's hReviews service. Maybe they have one for events? Yes sir they do. And what that form is, is essentially a front end for a RESTful hCalendar munging webservice. I feed it an html file full of hCalendar data, it gives me back.. a vCal file.

So, now, every 15 minutes, I fetch that vCal file and feed it to PHPiCalendar and presto: I have a group calendar generated from blog posts.

2 1/2 hours, from initial concept to completion.

(No, switching to Drupal in one afternoon was not only not possible, it was not an option. ;)

Words of wisdom

Mike couldn't remember the source, but I needed to take this down one way or another:

  1. tell em what you're going to tell em
  2. tell em
  3. then tell em what you told em

However, now that I think of it, I do this, all the time, and people hate it. Can't blame 'em I guess. ;)

Municipal silliness

Seems our local municipal "government" is high on something.

Nevermind the fact that they are driving landowners to pave over small parks because the local police can't handle a couple of drunk teenagers, now they are fining a mother of 13 (!!) for selling flowers outside her dépanneur (ergh, that's québecois for "convenience store or konbini ;). Local residents are of course outraged. She's been out there for 15 years and now you wanna extract $6000 from her children's mouthes for "security and maintenance concerns"?

Please, Mr. Michel Tangeay and Ms. Helen Fotopulos, that's insulting to the community... the community you supposedly represent.

Petition time!!!

Considering how well the "No to renaming Parc Avenue "Bourrassa"" one went... well...


Not Dead, Defective.
So it's not the Hard Drive, but rather, it seems, the right fan is misaligned. According to the technician at the Apple Certified place I went, usually the cause of such misalignment is sudden impact; someone dropped it.

Considering I got it, opened it, started it and immediately observed the problem, without dropping it...

Upon further visual inspection, oh boy... the thin metal strip above the latch is buckled and there is a nick in the plastic boarder. Oh and of course the lid/screen doesn't close flush, what a surprise.

So I have a choice: pick a fight with Apple and get it replaced (Joel says he'd back me on that claim, but that I'd likely not see a machine for upwards of two weeks) or just get the fan replaced (get it back by wednesday).


On the bright side, the guy ahead of me at the shop was told "repairing this 4 year old iBook would cost you more than buying a new one and would then still be far less reliable... go buy a new one." Tough break man.

Ça commence bien...

("It starts well...")

Just took delivery on a brand new MacBook Pro. The only customized part was the 160Gig Hard Drive.

Unpacked, let the battery charge up to full.

Press the power button and ... ROOOAAARRRRRRrrrrrrrr...

Nice, the Hard Drive sounds like it is grinding itself into the pavement.

Sigh. Day one: tech support ticket one. Thankfully i-technique is around. Going by now and they'll hopefully have a new drive in by Wednesday. :p

When the money comes knocking, egotism answers.

Flickr patents "Interestingness".

Media objects, such as images or soundtracks, may be ranked according to a new class of metrics known as "interestingness." These rankings may be based at least in part on the quantity of user-entered metadata concerning the media object, the number of users who have assigned metadata to the media object, access patterns related to the media object, and/or a lapse of time related to the media object.

Sorry guys. I am officially revolted. Peh.
An awesome bit of code, for sure. A great idea, no doubt. An idea that needs to be "protected" and hoarded and kept from anyone else benefitting from? Hmmmm... hooray for progress!
Peh. Lame, lame, lame.

The party's over...

Absolutely most see.

"Robert Newman gets to grips with the wars and politics of the last hundred years - but rather than adhering to the history we were fed at ... all » school, the places oil centre stage as the cause of all commotion."

45 minutes well spent.


setfacl gets soooo much more useful after you realise you can also getfacl.


getfacl --access --tabular -R -P ... ah that's why you can't do anything on that server, Jer...