Innovation in Montreal

Still looking for creative folks in Montreal. I figured that I’d follow the money. Found Innovatech’s web site. It is particularly nice because they list the companies they’ve invested in. I think it is a Quebec government shop, probably along the lines of IRAP, but with maybe much less of a research strength. Also interesting, maybe, is T2C2 capital which seems to fund IT startups for those crazy folks willing to launch a startup.

Of course, money is not the key ingredient. Remember rule number 2 from previous post: keep in lean.

How to recognize a succesful long term project

Through Lucas’, I got to an interesting article called Who’s Behind This Mess? He applied his ideas to companies, but I claim that it can be applied to long term projects as well.

  • The project must address a pain point, an existing or soon-to-be problem
  • The project must be run lean
  • The project must not require its users to change their behavior in any significant way

(I substituted “project” for “company” throughout.)

I think the last point is so-so. It is true that it is much easier to meet customer demand without asking people to change the way they work. And you have to be very careful about asking people to change because they will resist. However, I believe that if they have a compelling reason to do so, people will change the way they behave.

So, I’d rephrase this being saying that an easy long term project will have the above 3 properties. If you drop some of these properties, life will get tougher.

Capturing the Value of the e-Generation

Here’s an interesting article, Capturing the Value of “Generation Tech” Employees, I got through Downes’.

The premise of the article is that there is a new generation (< 30 years old) which was born with computers around and thus, thinks and act differently. I’d argue that even if I’m thirty something, I still belong to the tech generation, or rather, the tech natives, whatever it means since I got my first computer as I kid and learned to program assembly and BASIC when I was 13 years old. Other than that, the article seems fairly accurate. It matches my expectations.

  • The tech natives are team-based, not hierarchy-based. This is sooo amazingly true. I see many older people who want to stick with a heavy hierarchy, but it just doesn’t fit the new business model in a tech era. When things are fast changing, it doesn’t make sense to have 10 superiors on top of you. It also doesn’t make sense to have 10 layers of people under you. You need to get at your team directly, and you need to get the feedback from your boss right away. Layers don’t make so much sense anymore.
  • The tech natives crave information, they don’t fear it. They are fast and furious when processing data. This rings true: younger folks are fast on emails, blogs, wikis… whereas older ones, non-techie, needs time to swallow information. Of course, this means that tech natives are somewhat more shallow in their processing of the information, but I’d argue that being shallow is needed, it is our way to adapt. You choose when to be deep.

I think speed is the critical issue. The tech native understand that things need to go very fast, always.

This makes me hopeful: we might see a reversal of the ever increasing bureaucracy one day soon.

Do you censor your own blog?

Yuhong is worried that as more people visit her blog, she will censor her content. You might recall that Yuhong is the latest NRC researcher to join the blogger community.

There is no question that writting for a public, however small, will impact the content. In this sense, a blog is not intimate. But I think she forgets that a blog is social tool.

I do take notes, very careful notes… and they are not in this blog. My blog is not for private thoughts, but rather, to express thoughts that I feel free to share. Because I know other people might read me, I have to think about them a bit more, and this process leads me to think more about what I do and why I do it. The fact that many other people, including Yuhong, spend more time worrying about why they do things and how they do them, will just all make us smarter as a community.

Why are blogs working?

Life is funny, you’ll work like a dog on something, and it will just plain won’t work. And once in a while, a very simple concept will just work. I think that research and life has more to do with luck, as in “try many things and hope that something will work”, rather than pure intellect. Which is why I think that centralized, authoritarian systems are doomed to failure. And I think it also explains why the Americans, with their relatively free flowing class structure are eating up the rest of the world. Build all the castles you want, and force people to be your servants… but you’ll never be able to compete with a loosely controlled community. This doesn’t mean anarchy works: I said loosely controlled, not out-of-control.

This also means that as a researcher, you shouldn’t be too focused. I didn’t write that you should be unfocused… but don’t be narrow. You might get lucky and hit gold even if you had a single target, but maybe that will just be luck.

I found this post called A Partially Definitive But Slightly Abstract Guide To Why Blogs Are So Successful through a post by Seb. I really like some of the comments:

  • Blogs are “person-centric not place-centric”. In this day and age where you’ll probably have 20 different employers in your life, go through 20 different cities… who wants to be place-centric? Universities have to take this into account. They should stop assuming that their students are their students. They aren’t. Just like banks realized some years ago that because you had a bank account with the Royal Bank, you might not have a VISA card from them. People are not loyal nor should they be. Realize this and the students will love you. In practice, this means that instead of trying to fit students into a mold, they should put the students as much in control as they can. Universities that get this will win.
  • “Don’t Try And Make The Computer Do Things It Can’t And We Can” : I’m all for Knowledge Management (KM) research and I consider myself to be a KM researcher, but I know that computers can’t do KM. They just can’t. We should stop fooling around. Humans do KM and until computers get much, much, much improved, they won’t do KM. We have to let the humans be in charge, always. Software is there to help humans with KM, but it doesn’t do KM.

Turning the fight for Linux up one level

The Open Source Initiative just published its Halloween XI. The Halloween documents started from an internal memo issued by Microsoft in 1998. This was the very first time Microsoft noticed the Linux threat. Back then, they were relatively calm about it but made the following statement:

Loosely applied to the vernacular of the software industry, a product/process is long-term credible if FUD tactics can not be used to combat it. OSS [open source software] is Long-Term Credible.

This was 6 years ago. This year, they are organizing meetings in various cities to convince people not to switch to Linux. In many ways, Microsoft is losing this war against Linux, against us. They went from internal meetings, to ads, and now they are touring countries.

Microsoft crushed everything else in the software industry and made Bill Gates the richest man in the world. But they finally met something they couldn’t, wouldn’t crush the same way. Make no mistake about it: Microsoft will lose, Microsoft will fail. Not this year, not next year, but soon. They must fail.

Gates built his empire by noticing that he could sell software whereas people had been freely sharing software. Indeed, why sell what can be copied freely? Whereas most people saw software as something that had to be shared, Gates saw a nearly infinite source of revenue. And he took it for himself.

Gates’ vision has profound consequences which seems to espace most people. It might seem to be a small issue whether you store your data in a Microsoft forward and lock your work in Microsoft software… After all, who cares? Microsoft products are relatively inexpensive and well supported, so often, it is much easier to go with Microsoft… why bother fighting the system? Why indeed.

Suppose tomorrow we would have machines able to freely copy food. Suppose someone said no, this ought to be illegal, I can use this machine but everyone else has to pay for the food. We would think this individual was mad. Well, that’s what the software industry is: people who own food creating machine and they keep it for themselves. Food might not be as vital as software, but it is nevertheless quite vital in our century. Software is humanity’s future. We may soon be able to produce goods in a similar fashion. Buy one nanotech machine and it can generate any goods you want for very cheap as long as you can input the proper software into it. Are we going to allow a few people to take control of software? of our future?

I’m not advocating your break the law and copy Microsoft software. Don’t break the law. Copy software though: copy Linux everywhere you can. Because software is weatlh and by copying it you make humanity wealthier.

What defines leadership?

Yuhong’s new blog talks about leadership. She quite accurately points out that in research, as in all creative work, leadership is a very important quality. I’ve struggled myself with the concept while I was filling out funding applications (yes, I’m still working on funding). People ask you to prove you are a leader… but what does it mean to be a leader?

Yuhong proposes the following definition:

  • Always take into account everyone’s interest
  • Be generous
  • Have a vision

I like Yuhong’s definition!

Is Montréal a creative city?

This morning, I went out and decided to do some research on the city where I live from a creative class point of view. I found two reports. One by Richard Florida himself on Canadian cities. The report was paid for by Ontario, but it looks objective. Second of all, I found a report by the department of Canadian Heritage on attracting talent in Canada.

What comes out of these reports is that Montréal is not a very creative city. It more creative than the Canadian average, but well below Vancouver and Toronto. However, it is definitively a tech. center, it actually surpass both Toronto and Vancouver in terms of being a technopolis. Florida’s report point out though that these figures might be misleading: a lot of tech. workers in Montréal work in the aerospace industry and their job might be in a tech. industry, but it is unclear how much technology is involved in their work. There are creative and talented people in Montréal, but according to the Heritage Canada report, they are poor if not starving.

Let complexity be thy guide

Stephen wrote an article: Whither the Semantic Web. We agree so much that you’d think I steal my good ideas from him (I do).

Semantic Web researchers need to realize that the Semantic Web is happening now. But it isn’t happening where they think. My blog, my entire web site, is described using simple, accessible XML in a RSS format and useful software access it now. Millions of people do the same, either because they are technically capable or by using existing some of the great software out there, much of it free.

On the other hand, the W3C is in a sea of insanity with specifications adopted merely for their political merits, certainly not because they’ve proven themselves to be useful. Don’t get me wrong: some of XPath and XSLT is truly useful. DTDs are useful. But then, things like OWL? Please! I’ve seen no demonstration that such sophisticated specs are actually usable in the real world. Yes, people are lazy and stupid: take it into account when designing new technology.

I think that a lot of this insanity is motivated by researcher’s need for difficult and complex problems to justify their existence. After all, if Joe in his tavern can understand your problem and your solution, it can’t be very serious research.

Let complexity be thy guide.

Got any non-reusable Learning Object?

Here’s an interesting post by viral-learning about Learning Object reuse. One of the defining factor for Learning Objects ought to be reusability, you’d think. However, Downes once correctly pointed out to me that reusability is not really a defining factor… indeed, can you point out to a non-reusable learning object?

It remains an interesting topic. One of the pretensions of object-oriented programming is object reuse. You see it in textbooks. Supposedly, people would continuously reuse code because code is embedded in objets. In practice, it is a claim I haven’t seen come true. It hasn’t proven to be a powerful paradigm in my experience. Objects are useful modeling tool, but they are no magical bullet and they don’t clearly make reuse easier. Not in my experience.

What works? APIs. Coherence sets of function calls you can use in many of your projects.

What would be the equivalent in the Learning Object setting? The closest thing I could think of is a textbook. Are textbooks dead? I don’t think… they may simply no longer be printed in the near future…

Sun’s employee can blog without asking permission

I like Tim Bray. He gave us so many great things and I’m sure he will help Sun. I’ve learned through OLDaily that Sun’s employees can now blog without asking permission. This is quite clear: if you want to comment on today’s technology or on your daily work, go right ahead. You don’t need to ask your boss first as to whether you can say that or this. I would imagine that company secrets have to remain off the blogs, but such “secrets” are usually quite boring anyway and not what employees would want to write about, and a large company like Sun cannot hold secrets very well anyhow.

To be fair, many Microsoft employees have done this too, and with support from Microsoft. Again, these companies encourage open communication and thus, creativity. They cannot lose.

Is Python going bad? or The curse of unicode….

I’ve wasted a considerable amount of time in the last two days upgrading my RSS aggregate so that it will have better support for atom feeds. I use the feedparser library.

One thing that gets to me is how unintuitive unicode is under Python. For example, the following is a string…

t="éee"

Just copy this in your python interpreter, and it will work nicely. For example,


>>> t='éee'
>>> print t
�ee

However, for some reason, if I just type “t”, then it can’t print it properly…

>>> t
'xe9ee'

See how it is already confusing? (And we haven’t used unicode yet!)

Next, we can map this string to unicode…

r=unicode(t)

which has the following result…

>>> r=unicode(t)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)
</stdin>

Ah… so it tries to interpret t as ascii… fair enough, we know it is “latin-1” or “iso8859-1”. It is already quite strange that “print” knows what to do with my string, but nothing else in Python seems to know… so we do


>>> r=unicode(t,'latin-1')
>>> r
u'xe9ee'
>>> print r
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode character u'xe9' in position 0: ordinal not in range(128)
</stdin>

because, see, you can’t print unicode to the string… but you can do the following…


>>> print r.encode('latin-1')
éee
>>> print r.encode('iso-8859-1')
éee

but also


>>> r.encode('latin-1')
'xe9ee'
>>> r.encode('iso-8859-1')
'xe9ee'

What is my beef?

  • If ‘print’ assumes ‘latin-1’ then shouldn’t everything else? Why is this not consistent? If it is unsafe to assume ‘latin-1’, then why does print do it?
  • The encode, decode thing is a mess. We had a perfectly valid construct for converting things to strings, and that’s ‘str’. Now, we have a new one called ‘encode’. So that, given some unicode, I can do either t.encode(‘ascii’) or str(t) for the same result. Bad. Now, I’m stuck forever in a world where I have to figure out whether I encode or decode a string, and which is which. This is hard. This is confusing.
  • A string object should know its encoding so I don’t have to. What happens if I receive a string from some library and I need to convert it to unicode? How am I supposed to know what the encoding of the string is? There is no sensible way to communicate this right now which makes debugging a pain. The only excuse I see is that sometimes it is impossible for python to know the encoding… well, then it should just fail and require the programmer to specify the encoding. There are way too many things that can go wrong when you expect the programmer to keep tracks of his strings and which is encoded how…

The world is changing, and I’m there!

Tonight, I really feel like the world is changing.

The typical problem scientists and scholars in general have is that we need to be able to predict paradigms changes, or at least study them. But how can you know that things are changing while you are in it? Can humans study humans? Well, I’m not a social scientist, so I don’t have to worry, officially, with such issues… but all scholars are affected to some level by this paradox.

Well, I’ve been using inDiscover.net. Yes, I’m linking to my own project, well, it isn’t my project, but I’m involved from the side. So, it is self-promotion. Fine. Still, using inDiscover.net has made me realized how the world has changed. A bit like when Stephen Downes worked on his MuniMall portal project and, while the project was a failure, he realized that the world was changing and he embarked on a mission (see his value statement on his site).

Look on the right-hand-side of my blog, you should see my current playlist from inDiscover.net. All of this music is free. It is out there. You can download the MP3s and listen to the same music I listen to. No matter where you are in the world. You can then share your playlist with the world. You can have my playlist, live, as XML, that you can incorporate in any application, any web site.

I hope to write later on why I think this is a paradigm shift. We are beyond the world of blogs, beyond the Web… this is deep. I think it will eventually change society all the way.

Ok, I’m making many claims here… I need to write this up, but it is late…

Changing job for a Linux addict

People who are happy with whatever operating system they are offered probably find it much easier to change job. When you are a linux addict, it means that you have to secretly install Linux and then reverse-engineer the network configuration so that you can, well, print.

This time I installed Gentoo in my office. As it turns out, it was rather painless, but as an overworked prof., it was still hurtful to waste a day configuring the machine. The toughest part this time was getting the printing to work. As it turns out, I had to the cups to use smb://mylogin:[email protected]/uer_com instead of smb://tlmnt4/uer_com. Somehow, cups couldn’t just reuse my known username and password. Hmmm… I wonder why I never had this problem before? I really wish cups was easier to configure. But at least, it works now.

There is also a special java applet system called [email protected] here. But I think I mostly figured out how to get it running “ok” under linux (in French), though I had to waste another day on it.

I have good reasons to believe I must be the only prof. around using Linux. My addiction to command line interfaces has a thing or two to do with it. You can emulate pretty much the unix environment under Windows, but it is never quite the same in terms of productivity.

I’ve been told that MacOS X would be a good choice too. Except that I couldn’t have done what I just did here: take the “free” PC they put in my office and transform it in a Linux box.

Some facts people often don’t know:

  • Networking is mostly painless under Linux. Since most networks use DHCP, the configuration is a joke. With samba, you can access pretty much all of the network services you need even when they are hosted on a Windows server.
  • With OpenOffice and latex2rtf, you can pretty live within the MS Word universe and not get noticed. People will complain that the documents don’t look quite as they expect, but I’m a prof. and I can always claim that I’m not very good with word processing. You can consume and produce Word documents. Not very good ones, but unless you do secretarial work, it will be ok.
  • Email is not a problem even in a supposedly windows-only world: just use the exchange server as a POP server and you’ll be fine. Microsoft is not yet crazy enough to prevent people from checking their mail using the POP protocol. You might not get all the features from Exchange, but what you are missing won’t hurt you, much.

In the end, you can be very productive with Linux.

Now, if I could find how to turn the system bell off once and for all, I’d be happy.

Update: it turns out that we can turn off the system bell easily under Linux. I never knew this. Just do “xset b off”. You can put this in your .xsession file too.