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…

OpenTextBook

Here’s a cool project: OpenTextBook. When I was at Acadia, we often wondered why students had to pay CAN$80 for a Calculus textbook when it was obvious that all such textbooks are the same, they have to be, and all of the content has been known for quite some time.

What are we paying publisher for, exactly? We could never quite figure out, but because, neither the university nor the professor ends up paying the bill, we keep asking students to buy expensive textbooks for no good reason.

To be fair, professors are not evil. Not all of them. Many wondered whether we could write a free calculus textbooks ourselves. I think there are some free textbooks but who would dare trusting them? I would trust a textbook that the community can peer review though. If people find mistakes, they can come in and correct the mistakes. It would not converge into a free, perfect textbooks, but it might end up producing an acceptable textbook, for sure.

I co-wrote this really cool document on Series. It is free! You can have the LaTeX source if you ask or are clever enough to navigate my hidden Web.

One day soon, I’ll co-wrote an open textbook. I should make a note of it.

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.

Slashdot | Google’s Ph.D. Advantage

Interesting post on slashdot on Google’s Ph.D. Advantage. It would appear that:

Google’s willingness to let every employee spend 20% of his or her time on an independent project is a compelling motivator and that they estimate that Google has as many Ph.D.’s working for it as Microsoft, which is 30 times larger.

What’s interesting to me is that Google has a distinctive culture and everyone has felt it. It is hard to describe really, but the minute people tried to use Google, they discovered that it wasn’t just another search engine driven by business people who focused on the business case. And you know what? It has only gotten better over time. Some say that the dot-bust and generally depressing state of the industrial R&D won’t be with us for very long, that we will rebound. I think that despite everything we can think, Information Technology will still be a very good place to be just because this is what most people have trouble with: managing information and knowledge. If you work in any kind of organisation, I’m sure your days are filled with questions such as “where can I find this, who knows about this?”. I know my days are like that. That’s why I use email so much. That’s why I have a wiki, a cvs server, and a blog… and that’s why I keep on exploring new ways to manage data… because all of these techniques extend the reach of my brain and, to put it bluntly, they do make me smarter.

There aren’t too many job offers where a Ph.D. is considered a plus and unless you want a job in academia or are willing to start a company, if you want to remain in Canada, your Ph.D. might not give you a strong edge (though I don’t know for sure). A search on monster.ca reveals that there are 19 job offers in Canada with Ph.D. in the description. Not all of those are for Ph.D. holders though. For example Google is looking for a sales coordinator (Toronto) but they only mention that the founders had Ph.D.s. I’d say it is more like 10ish job offers in all of Canada.

Call me an optimist, but I think the days when business turns back to innovation for growth have to come back really soon. Google shows that an innovation-driven business can work. It can compete with the largest beasts like Microsoft, at least for a time. I want to believe in the rise of the creative class: wealth is mostly provided by creativity and creativity comes from creative people. My only worry is whether this will happen in Canada and in Montréal in particular. I just don’t know. Some people tell me that industry is really vibrant in Montréal right now. I haven’t been back long enough to know. I need to go downtown a bit more. I need to find out where the creative people are in this city.

One room syndrome

Interesting commentary by 17th century on the One room syndrome. Many Ph.D.s have lived through this and know the feeling. You have to sit at your chair, in the same damn room day after day after day. You can imagine that what you’ll produce will be like a movie that people will pay to see… Hmmm…. not so in my experience. The reward is mostly just that: you become a “doctor”. Some of the time, it might good for your ego, and it helps getting some kind of jobs and contracts. But it ain’t a movie and it doesn’t bring you any kind of fame (99% of the time).

Once you become a “true” researcher (read: actually paid real money), things change a bit, at least for some of us. Sitting in the same room is just one piece of it, then you have meetings, networking, endless emails, administrative duties, funding proposal, students, and so on. Many people find they no longer have any time to sit in a room, especially the poor folks who get a 4-4 teaching load. Then, you have industry, where you end up doing pretty much what everybody else do. In my case, this meant a lot of programming (and I got good at it too!) and getting stressed out about having real people depend on your work.

My Ph.D. was a rather interesting experience. I basically lived totally isolated. I chose to cut ties from the university and from everyone else so I could focus on my work. Did it work? Yes. Was it a good strategy? Probably not. I would run every day, I would spend too much time on the Web, but I ended up finishing my thesis and it was ok. I was even lucky enough to have a job waiting for me (if you call a post-doc a job, but that’s for another day). I recall that I made all these sacrifices because I thought that the good life was waiting for me after the Ph.D.

Are teachers overpaid?

Critical Mass started an interesting debate: are teachers underpaid? The argument why they should be paid more seems a bit on the weak side: they have great job security, relatively good benefits like a summer off, and comparatively decent pay. My mother works 30 something hours a week, she has her summer off, and she makes more than I do as a university professor. Oh. And she lives in a less expensive area, has far less education, but admittedly more work experience.

The debate was taken on by O’DonnellWeb who takes the whole issue apart by bringing it back to supply and demand. Getting a university degree in education is relatively easy (he claims), there are plenty of people qualified to teach, and frankly it isn’t such a difficult job: intellectual rigor is not a requirement (he says).

Here’s what I think. The market is a powerful force to set salaries, but only when people can be trusted to do what’s best for them. People will often aim for job security at all cost. That’s when the system fall apart. Once you have tenure, the school could freeze your salary and many people would never leave… sad… and I’ve recently heard someone say “if I don’t get tenure, where else could I get a job?” These comments are interesting to me. Where else could you get a job? What about the average joe who works at company X and company X fires him… is his life over? Not even close!

People in academia are very insecure. My theory is that most of them have been sheltered for so long, that they have no idea how the world works.

Think of yourself as wolf. You’ve spotted a nice forest where there is plenty to eat… then, one day, you have hard time finding new prey, or maybe there are hunters nearby shooting at you, or maybe they are cutting down the forest. Don’t stand there! Move, go! Any wolf would know this. “But where will I find a new forest? What if there aren’t any?” Well, you’ll die then. But you know what? Failure is ok. Getting stuck in a bad spot is ok. As long as you still feel free to go whenever it is best for you. But my skills are not easily transferable? Ah. See, you should have thought of that earlier on: pick new skills carefully, make sure they can serve in many settings otherwise, be willing to pay a price later on.

I think nobody should go straight from school to a tenure-track position. It is a bad choice: many people will then tend to overvalue their tenure which will be detremental to them if they have tenure at a bad place.

Update: I think we could make the world a better place by requiring teachers and professors to have real work experience (outside schools). Right now, we discourage students to get work experience outside universities: I think we should require it. When I was a professor at Acadia, they wanted to make industry experience a requirement. It was a brilliant move and I hope they did it. Everyone would be better off.

Funding application blues

When I was a student, I got fairly lucky in funding applications: as an undergraduate student, I got the C.D Howe Memorial scholarship which explains why I have $0 in student debt. Then as a graduate student, I had my own funding all the way till I got my Ph.D. It was nice. Then, things got tougher. The forms got longer. The requirements got increasingly more difficult to meet. In the last few years, I got into “funding application hell” where the forms are extremely long to fill, the competition is fierce. You are supposed to talk about the projects and research you are doing, but of course, you have no time for research because you are stuck filling out forms so that, hopefully, you’ll be able to do your work. My first encounter with really boring funding applications was when I first started as a Research Officer at the National Research Council of Canada. At the time, I applied for NSERC funding which I still have to this day, but also, many other funding applications. I was the Team Leader for the e-Health Research Group and so, I automatically got involved with many funding proposals. I could not believe what it meant: stopping all your research for several months while you have meetings, and write relatively boring documents one after the other. Right now, I’m fairly deep in funding applications and will be for at least another month, and after that, I’ll continuously have to work on funding up until this autumn.

I don’t think that many students are aware of the fact that research for a professor or researcher often doesn’t not mean thinking about new ideas, there is very little time for that, sometimes it doesn’t even mean writting about new ideas… sometimes research means filling out long forms.

It is a well guarded secret, but more than brand new exciting ideas and great papers and great teaching… the modern value of a scholar is often measured by how much money he can attract. Whether he needs a lot of money or not is irrelevant. I’m not complaining about the system, but this is a part of it that people don’t often talk about. You don’t see on a researcher’s home page “just spent the last 2 months filling out funding applications, I hope it will work”.

A journal that gets it

There is a special issue of JIME on Semantic Web for Education (as in “Learning Objects”). I picked it up from Downes‘ in one recent post.

Not only is the issue interesting, from what I could tell, it is a journal that gets it. First of all, reviews are on-line, for all to see. Don’t get me wrong: I don’t mind peer review. I cherish it. But I’ve gotten too many poorly written, poorly prepared reviews. I really wish reviews would go on-line when the paper is published. This way, it might give an incentive to the reviewer.

Plus, if a poor paper gets accepted, you can trace back the reasons why it was accepted…

It still doesn’t help if your paper gets rejected for bad reasons, but in such instances, you can go elsewhere with your paper. At the very least, you know that if the paper makes it, you’ll have an exciting review to go with it. Useful for you and the reader.

Update: other blogs have picked up this issue of JIME.

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…