Search Results: "nate"

4 December 2006

Uwe Hermann: The Free Ryzom Campaign - A campaign to buy Ryzom and publish it under the GPL

Ryzom is a Massive Multiplayer Online Role-Playing Game (MMORPG) developed by the French company Nevrax. It is based on the NeL game engine (also from Nevrax), which is GPL'd already. As "due to market conditions and other unforseen cirucumstances, a request to begin bankruptcy proceedings has been filed at the commerce tribunal", the Free Ryzom Campaign has formed with the aim to buy the source code and game data and release it under the GPL:
Help us make Ryzom a Free MMORPG! Donate now to help us purchase the source code, artwork and other game data associated with Ryzom, so we can breathe new life into it as an open, democratically run player project.
They've even set up a Social Contract (modeled after the Debian Social Contract) which states among other things that "Ryzom and all materials produced by the Free Ryzom Project will become and remain 100% Free Software". If you want to support the project, you can make a donation pledge (used to convince the official presiding over the liquidation process). No real donations are possible at the moment. More info/material on the game: I'm looking forward to the day where I can apt-get install ryzom and play a fully free MMORG... [1] I recommend using the Mozilla/Firefox/Iceweasel VideoDownloader extension to download the videos and watch them with mplayer. (via Karl-Tux-Stadt)

Evan Prodromou: 12 Frimaire CCXV

My work permit in Canada expired on December 1 (that's 10 Frimaire for you French Revolutionary Calendar fanatics), so I needed to renew it. It's possible to renew these things by mail, which is worrisome and time-consuming, or even to go into an office in Montreal (near-mythical, crowded, reportedly ineffective). I've never liked doing either, so whenever we have to deal with immigration, our family drives the 50km down to the border with the US. They have a big immigration facility there, and if you drive out of Canada and back in again, they have lots of nice officers in bullet-proof vests to deal with any immigration issues on the spot. It's called "driving around the flagpole" here, but Maj and I try to make a trip out of it when we have to go. So we drove down to Lake Placid in the Adirondacks last Friday morning -- sufficiently distant and different to seem exotic, without being too far away for a weekend trip. Plattsburgh, the nearest American town to us, is, well, kinda boring. We've spent a day in Burlington (Vermont) before, and that was pretty fun, but we wanted to try something different -- so Lake Placid it was. Friday was a crummy day for a drive, though -- there was snow and freezing rain in equal measures, so the roads were a little dangerous. The hood of our car kept building up this several-inches-thick icy-snowy mass that I was afraid would rip off the hood and go careening into the dark, so I kept stopping to chip it off with my handy ice scraper. Once we got down to the Adirondack park, though, the rain was just a regular drizzly non-freezing kind, and we could actually enjoy the scenery. The roads in were remarkably small -- hard to believe that not one but two Winter Olympics were held at this remote location. When we got to town, we took a look around at the main drag -- a single street that fronts onto Mirror Lake and points directly into the Olympic centre. We stopped at the Great Adirondack Brewing Company for a late lunch, and had a nice crabcake and caesar salad with roasted shrimp. Maj is a little squeamish about eating seafood in the mountains -- with good reason, since she's been burnt before -- but we both ate up anyways, and it was real good. Amita June had a grilled-cheese sandwich that came with french fries shaped like little happy faces. Awww. We then went to check into our motel, the Wildwood Inn. I've got a weakness for a certain kind of woodsy mountain motel -- lots of wood paneling and alpine flavor -- and I especially like paying motel prices. The Wildwood was just what I like -- clean, inexpensive ($65/night), and charming, with a nice view from our room out onto Lake Placid proper. It also had a nice big indoor heated pool complex and free WiFi. (On that subject -- why is it that so many motels in North America now have perfectly acceptable free WiFi, but major hotels in big cities charge you $30/night for crummy WiFi with complicated authentication schemes that take half an hour to configure? Is it just because the big hotels charge too much for everything, or is it because they know they can rake business travelers over the coals and it all will go on the expense report? It makes me really mad to pay for WiFi, and it makes me extra-mad that it's usually so complicated and of such poor quality. Anyways.) We took a big nap and went out after dark (4:30PM) to look at the town and get some dinner. Unfortunately, it was still raining big fat cold raindrops all over downtown. The ski season was supposed to start this weekend in the Adirondacks, but with all the rain they canceled opening the runs, and with the bad weather and no skiing the town was pretty empty. Most of the restaurants we passed were closed, and when we eventually got to one, the Black Bear, we were the only people there. The Black Bear turned out to be really nice. They had a good selection of organic vegetables and seafood nicely prepared but not too fancy -- what we Californians call "California cuisine". I dunno what anyone else calls it. Amita liked it because they had a big chalkboard on the wall and she spent most of her time running between our table and the board or drawing big jagged marks on the wall. That night the wind and storm howled outside our motel room -- I dreamed the place was falling down. When we got up in the morning, though, there was a light dusting of snow on the ground outside -- the first one of the season! Maj and Amita June went outside on the motel lawn to play around -- Amita doesn't remember last winter, I don't think, so snow is new all over again for her -- and I went to clear off the car. Then we went downtown to get some breakfast. We shopped for books (I bought James Fenimore Cooper's The Pathfinder) and winter gear (Maj almost but didn't buy some boots) walking up and down the main street in the light snow, then piled into the Soulshine Bagel shop for some bagel sandwiches and coffee. The food was good -- the bagels were thick and doughy, not like the little Montreal bagels I've grown fond of -- but the place only took cash, and we hadn't gotten out any American money yet. Oops. They were nice enough to take our Canadian cash, which earned them a decent tip, and then the three of us walked back to the car in the snow, Amita trying for the first time to catch snowflakes on her tongue. After our nap, we went out with good intentions to go visit the Olympic Centre and get ourselves a little bit of cultural value from the trip, but the early dark and our darker natures drove us instead to the Lake Placid Pub in a residential area right by Mirror Lake. The Pub was great -- really good beers (I liked the 7% Ubu Ale) and fine pub-grub. There was a table of kids next to our table, and they had a little table barbecue on which they were making s'mores. They kept handing Amita their extra graham crackers, which she noshed contentedly. This morning we went to the Saranac Sourdough deli and bakery for an early breakfast. It was right across highway 86 from our motel, and they had great pancakes. I had a big spinach-crab frittata with sourdough rye toast -- really satisfying. We took the long route back to Montreal -- west through Saranac Lake then north up to Malone (New York), a little town on the Salmon River with a big collapsed mill in the middle of downtown. By the time we got down to Malone, all the snow was gone, and it was back to that bitter snowless winter look all over the place. Malone had some nice architecture, but we ducked into the homey Nancy's Village Diner for some lunch. Then out onto the road again, through Chateaugay and Mooers and back to the border after a brief stop at duty-free. Our immigration issues took about an hour -- that was pretty good turnaround -- and we were on autoroute 15 back home to Montreal pretty quick. Not far from the border, though, the snow started coming down hard, and by the time we got to the St. Laurent river it was sticking to the road, making driving a little hazardous. But we managed to get home OK, glad for a nice little weekender. tags:

3 December 2006

David Welton: OFBiz progress at the ASF

OFBiz passed its vote to exit the "incubator" at the Apache Software Foundation. For those not up on the inner workings and jargon, this means that it should soon (as of the next board meeting) become a regular project at the ASF, like httpd, Tomcat, and so on Si Chen, one of the core team, sums up the whole process here, which is an interesting read for those considering approaching the ASF. Having helped set things in motion via an out of the blue question on their mailing list, I'm pleased to see that things are working out well, and continue to be impressed with the progress they are making, as well as the dedication with which they pursued integration with the ASF (and the bureaucracy that entailed). It would have been nice to use OFBiz where I'm working, but unfortunately that was not to be. In any case, I do glance at the code and data models from time to time, because they encapsulate a lot of good ideas.

2 December 2006

Jaldhar Vyas: The Real Meaning of Nalanda

Venkatesh Hariharan recently wrote an article on Indias traditions of knowledge and how Open Source meshes with them. Now having met him at foss.in and knowing of his work, I am 100% convinced he is on the side of the angels and their is no malice in what he wrote. However, his interpretation (really not his, but the conventional wisdom amongst the Indian elite.) of Indian history and culture is so monumentally wrong it bears correction. While I admit my hackles were raised by the cultural and theological mistakes made, there are implications for Open Source advocacy in India and the world at large too. He starts by giving the example of Nalanda, supposedly "the first university in the world." but more accurately a Buddhist vihara (monastery.) Its' very name indicated sharing. I use the past tense because Nalanda doesn't exist anymore. In fact except in a few border areas influenced by Tibet or Burma, Buddhism itself is so thoroughly extinct in the land of its birth, the place where it flourished for over 1500 years, that the only reason people like Hariharan or myself only know that there ever was such a thing due to the work of 19th century Western Indologists. How could this be? One theory is that a resurgent Hinduism coopted or persecuted the Buddhists into oblivion. However this is unsatisfactory. It does not explain why Jainism (a religion as old as Buddhism and equally heretical for exactly the same reasons from the Hindu point of view) still survives to this day and it doesn't explain how it could have happened for even the most advanced genocidal regimes of the 20th century have been unable to "disappear" undesirables to the extent which Buddhism disappeared. A more plausible explanation revolves around the fact that, as I mentioned before, places like Nalanda were Viharas. This doesn't mean that they can't have university-like properties too; after all the great academic institutions of Europe also had religious foundations but the monastic nature of a vihara is salient. A monastery is not a place you go to engage the world, its a place you go to escape it. To mix metaphors a bit, the viharas were cathedrals not bazaars. While there may have been a lively intellectual life within its walls, there is no evidence that Nalanda and its denizens interacted much with the surrounding culture. An economically unproductive institution of such vast size (15,000 monks at its peak) could only survive by the patronage of kings and other rich people. When that patronage dried up as for example when the medieval Muslim invasions swept away the old royalty, Nalanda and its sisters couldn't survive. Just as when a proprietary software company dies, its "intellectual property" often dies with it, when centralized Buddhism died, Buddhist ideas died with it. (Luckily Buddhism had spread to other countries by then and developed new, less monolithic forms so it was not lost to the world altogether.) In contrast Hinduism (and for that matter Jainism) while having all due respect for monks were and are primarily lay movements. The pursuit of morality (Dharma), wealth (artha) and pleasure (kama) in this world are equally valid human goals alongside liberation from the world (moksha.) and this manifested as the much maligned institution of caste. Hariharan quotes the conventional view probably familiar to Westerners from Anthropology 101, a lock-step hierarchy of four classes (varna is the Sanskrt word) with fixed occupations, with knowledge and privilege on top and ignorance and oppression at the bottom. The thing is, this view bears no relationship whatsoever with social reality in India now or historically. There is another Sanskrit word, jati, which can be translated as caste. There are thousands of these jatis and while Indian thinkers have periodically attempted to try and shoehorn them into the varna framework, they have had little success and varna is for all practical purposes just a theory. And this is not just a fall from some putative golden age (Like the canard that once caste was flexible and merit based and only later became rigid.) but the state of affairs throughout recorded history.

A jati consists of people who share a common (or fictive) kinship, who have particular food and ritual choices, and marry endogamously. While many jatis are associated with a particular occupation, many others are not. This is what caste means to a typical Indian (it is also the social organization prevalent amongst Jains, Sikhs, Muslims and Christians even if they don't accept its theological basis.) Yes, hierarchy and concommitantly oppression, are in some cases a byproduct of casteist thinking but they are hardly its raison d'etre. A comparison can be made to the Western nuclear family system. Some people think it is superior to any other form of social organization. Most people wouldn't go that far but go along with it as "the way it is." Some of those of a liberal persuasion might want tweaks of certain aspects of it. A very small fringe think it is nothing more than a nefarious plot to spread patriarchy, subjugation and racism etc. They are mostly considered kooks by the other groups. (Unfortunately when India and caste are concerned, the kooks are ruling the roost.) The diversity of jatis like the diversity of open source creates a certain resistence to disruption that a monoculture cannot. Thus though Hinduism also suffered grievously from invasions, it was able to hold on where Indian Buddhism could not. Brahmin (sic. That's an English mispronounciation.) is also misinterpreted as one who knows Brahma (masculine noun. The Creator God.) instead of Brahman (neuter noun. The supreme spirit pervading the Universe.) though even then it would be wrong because Brahmin, Brahma, and Brahman all come from a common root word brhati (feminine noun. Sacred speech.) as any Sanskrit dictionary will attest. Hariharan cites the example of the sacred scriptures (Sic. He means the Vedas) and the notorious statement of the Manusmrti saying that an unqualified person who hears them should have molten lead poured into their ears as examples of the proprietarization of knowledge. Now the long-suffering untouchables may have been afraid of many things but having lead earplugs was not one of them. There is no historical evidence that any such action was ever attempted. You can criticize the Manusmrti for even saying such a thing but that is a far cry from using it as evidence of historical attitudes. You see, the Manusmrti is not even in the most orthodox conception Hindu Sharia and the Vedas are not "Sacred Scriptures" in the sense that the Bible or Koran are. Rather they are part of a wide range of significant literary works respected in Hinduism of which other important examples are the two Epics the Mahabharata (which includes the Bhagavadgita), and the Ramayana, and the vast compendia of geneologies, philosophy, lore and legend called the Puranas. Hariharan actually missed a good chance to make his point here because while the Vedas are indeed "proprietary" the other works I mentioned are not and have in fact permeated all over India and even beyond its borders. Many Indian languages owe their literary existence to translation of the epics or Puranas. For instance one of the earliest monuments of Hindi literature is the Ramacharitamanasa, Saint Tulsidas's translation of the Ramayana. When he wrote it in the 16th century, he did face some opposition from those who didn't think such an august work should be rendered into a "vulgar" tongue, he also received encouragement from equally orthodox people (including those who believed the Vedas should be restricted to Brahmins) Today it is by many accounts the most popular Hindu holy book in existence. So really the whole idea that the Hindu canon shows a fall from open grace to rigidly controlled private property is just bogus. To those who have slogged their way though all this verbiage wondering what it has do with Linux and Open Source, let me assure you I am getting to the point :-) It's bad enough from my point of view as a devout Hindu that my religion would be misrepresented this way but from my point of view as a supporter of Free Software ideals, it is catastrophic. Linux and Open Source in India has spread, as in most parts of the world, primararily as a hobby amongst computer enthusiasts and for a hobby it's doing ok. However if you think of it as more than that, as a tool to enhance society and empower peoples lives, that is not nearly good enough. But how can one serve a society if one apparently has no clue about that societies history and mores? The developing world is littered with failed projects that were carried out with the purest of motives but no regard to what the putative clients actually wanted. Do we want Linux and Open Source deployments to go the same way? For a couple of years now I've been trying to get Indian and NRI programmers to get involved in localization in debian-installer and elsewhere but even with the small minority that are sympathetic to Open Source (a scandal in itself.) it is like pulling teeth. To their credit, Red Hat India pays people to work on such things but volunteerism is the heart of the Open Source movement as we all know so the apathy of Indian IT professionals is deeply troubling. Hariharan is trying to increase interest by appealing to the Indians' sense of cultural pride which is a good tactic--it has been successfuly applied by many non-western or minority cultures--but he is not going to be very successful if the vision of Indian culture he is presenting is as alien as Eskimo culture to the vast majority of the people. Western Open Source advocates also run into difficulties due to being tone-deaf in their understanding of how third-world cultures actually operate. When India declined to participate in the One Laptop Per Child (OLPC) project, some commentators on places like Slashdot were perplexed. Wouldn't a poor country want an inexpensive yet efficient pc using free software instead of high-priced imports? The thing they missed is that while people in India may be poor, thanks to a more-or-less democratic polity and more-or-less open communications, their frame of reference is no longer their village. Their trends are increasingly set in Mumbai, New York, Paris, and London. The forward-thinking amongst them know that computers are the key to the future. They also know Bill Gates is the richest man in the world thanks to something called "Windows" knowing which can get you a green card and your own chance of becoming rich. So if Linux comes along, presented as a cheap alternative which is "just as good", the fake Gucci handbag of IT if you will, it is not going to impress. Thinkpads and Dells appeal to the upwardly-mobile persons vanity, a third-world hand-cranked laptop does not. (This incidently is what is behind the "Nalanda university" meme too. Monasteries are yesterday. Universities are the in thing so we have to have some in our past and not just any but by golly, the first university in the world.) When they venture from pure technology into the realm of culture, Open Source advocates need to be a lot more sophisticated, not to mention accurate, in their arguments lest they fall on deaf ears. Platitudes and sentimentality about "spiritual" versus "material" culture aren't enough. There must be concrete demonstrations of the benefits of why the Open Source approach to knowledge is better. They must be more sensitive in their presentation to avoid needlessly antagonizing people who might otherwise be natural allies. I believe the Open Source ideal is good for India and the whole world, not just in software but for society at large and I wish Venkatesh Hariharan and all the others on the frontlines of the fight for openness the best of luck. But good intentions cannot excuse sloppy thinking.

David Welton: The limits of weak typing

Hecl is a weakly typed programming language, which, for a scripting language is often an advantage. Instead of cluttering your code with lots of (casts) or performing.to_s all the time, things "just work" depending on the context (and assuming that you've verified your data or have error handling for when things go wrong). I've been pondering a weakness of this model that Tcl doesn't adequately solve, discussed here: http://sourceforge.net/mailarchive/message.php?msg_id=37354848 The summary is that if anything can and will be converted to a string at some point in its lifetime, GC'ing "complex objects" (things that can't be represented by a string) gets difficult. In order to be able to go back to an object from a string, you have to maintain a hash table with string handles that point at the actual objects in whatever language you are using, and that in turn requires that you somehow keep track of the lifetime of those objects. Doing GC in Hecl itself is something I'd hoped to avoid - up until now, we have managed to get by ok with Java's GC. The 'best' solution seems to be Salvatore's, discussed here: http://wiki.tcl.tk/13847 But even that is relatively complex, and at least initially, involves a couple of tours through the entire string-space of the running program. Unfortunately, I don't think there's really a clever way around the problem, though... what the weak typing giveth, the weak typing taketh away (or something along those lines). I am not sure what this means for Hecl at this point, whether we simply say "clean up after your own objects", introduce some sort of string typing, or something else entirely...

1 December 2006

Julien Danjou: DeFuBu contest #5

Bug Welcome to this 5th issue of the DeFuBu contest, the monthly championship of the funniest bug reported to the Debian BTS. The challengers How the vote has been done Four Debian related people voted for these bugs, Philipp Kern, Julien Louis, Cyril Brulebois and David Pashley. Full ranking Bugs Challengers The winners Congratulations to Joey Hess, two victories in a row :-) Notes To participate, simply drop me an email with a bug number. About DeFuBu

Joachim Breitner: Personal Podcast Charts

I don t have a TV here in Ghana (and I don t miss it at all), but some audio-visual content consumption from time to time is nice. Therefore, I started to subscribe to various Podcasts, using the comfortable Democracy Player. Here are my regulars , also see my list of German podcasts.BrickfilmsSome like lego. Some like stop motion animation. I like both. Therefore, I am a big fan of lego movies, and the brickfilms blogcast delivers the best ones directly to me. Unfortunately, does not get posted to very often.Olde EnglishMy sense of humer is not every one else s. Therefore, I guess not everyone will enjoy the sketches of the Olde English comedy group. I could try to list some of my favorites episodes, like One picture every day , but discover that for yourself.BSODInteresting, highly technical hour-long podcast covering interesting topics such as how the telefone system works (and what funny things you can do with it), bulding a infra-red remote control gun that will control your (or anyone s) TV from quite a distance and similar topics. It could cover a bit more software topics, and less Windows based things and personally, I think the Bastard Sons of Dial-Up put slightly too much emphasize on bad language and underground-activists-like appearance. But that might be genuine, and the content is of good quality, so it is worth watching.The Tech JunkiesOnly three episodes so far, but these two guy are doing great and funny things with electronics (such as testing what happens when you plug a speaker into the power outlet). They also have covered lock picking, and I especially enjoyed seeing a bump key in action, as so far I only read about that technique.Player 1 vs. Player 2A two-guy talk show about computer games. Slightly oriented towards old and console games, but still interesting for most gamers, I d say. They have not released a new episode for almost a year now, I hope that they will start sending again some day.

Joachim Breitner: Personal Videocast Charts

I don t have a TV here in Ghana (and I don t miss it at all), but some audio-visual content consumption from time to time is nice. Therefore, I started to subscribe to various Videocasts, using the comfortable Democracy Player. Here are my regulars , also see my list of German podcasts.BrickfilmsSome like lego. Some like stop motion animation. I like both. Therefore, I am a big fan of lego movies, and the brickfilms bodcast delivers the best ones directly to me. Unfortunately, does not get posted to very often.Olde EnglishMy sense of humer is not every one else s. Therefore, I guess not everyone will enjoy the sketches of the Olde English comedy group. I could try to list some of my favorites episodes, like One picture every day , but discover that for yourself.BSODInteresting, highly technical hour-long videocast covering interesting topics such as how the telefone system works (and what funny things you can do with it), bulding a infra-red remote control gun that will control your (or anyone s) TV from quite a distance and similar topics. It could cover a bit more software topics, and less Windows based things and personally, I think the Bastard Sons of Dial-Up put slightly too much emphasize on bad language and underground-activists-like appearance. But that might be genuine, and the content is of good quality, so it is worth watching.The Tech JunkiesOnly three episodes so far, but these two guy are doing great and funny things with electronics (such as testing what happens when you plug a speaker into the power outlet). They also have covered lock picking, and I especially enjoyed seeing a bump key in action, as so far I only read about that technique.Player 1 vs. Player 2A two-guy talk show about computer games. Slightly oriented towards old and console games, but still interesting for most gamers, I d say. They have not released a new episode for almost a year now, I hope that they will start sending again some day.

30 November 2006

Ben Armstrong: A pcsx mythgame player using xautomation

Scripting a gui tester for Tuxpaint with xautomation was fun and quite useful too, but really only appeals to developers. Today I found use for xautomation that will appeal to sys admins and users: hacking around a user interface that refuses to work the way it ought to. I wanted to add another mythgame player, this time for the pcsx-df Playstation emulator. Unfortunately, I couldn’t pass it a CD image from the command line. It seems to know only how to do two things: run a game file, or run a real CD. My best guess is that it doesn’t know its plugins until the GUI starts, so it is unaware that it ought to be able to use the cdrmooby plugin to load the specified image when it is parsing the command line. After a brief and fruitless grep through the source, it dawned on me that I could put xautomation to work for me to do the job in much less time. Here is the resulting startpcsx script, which sucessfully operates as my pcsx mythgame player.
#!/bin/bash
slowtype ()  
   echo "$@"   sed -re 's/(.)/\"str \1\"\n\"usleep 15\"\n/g'
 
pcsx &
xte "sleep 2" "keydown Control_R" "key o" "keyup Control_R" "sleep 1" 
slowtype "$@"   xargs xte
xte "key Return" 
The hard part was that pcsx is afflicted by one of my pet peeves, a typeahead find that cannot be disabled. As a result, if you make xte type at full speed into the open file dialog, the filepath comes out all jumbled up. This happens because the filepath is constantly being redrawn as xte types characters, so the cursor isn’t always at the end of the line. The usleep 15 allows the cursor to reach the end of the line before typing the next character. Of course, this is truly a hack, subject to variations in timing between systems, so if you use it, you may have to tweak the sleep and usleep values. But it works well enough as a workaround until pcsx-df is fixed to accept a CD image on the command line.

29 November 2006

Evan Prodromou: 7 Frimaire CCXV

One of my tasks for today was to upgrade to the new versions of the JanRain OpenID libraries for Wikitravel. However, since those libraries implement the draft OpenID 2.0 standard, which includes support for i-names, I had to do some i-names playing today. i-names is a distributed system, with different "i-brokers" (yes, they're really called that) providing naming services. Unfortunately, the service that I used for registering my i-name, 2idi, isn't compatible with the JanRain Open Source libraries I'm using. JanRain's implementation depends on the very latest version of the OpenID 2.0 draft, and 2idi doesn't support it yet. So testing with my current i-name, =evan.prodromou, doesn't work. So, I had to register a new i-name with an i-broker that supports the new draft standard, which, y'know, it's the whole point of this stuff not to have to register all over the place. But whatever. JanRain folks in #openid, the OpenID channel, let me know that i-brokers that use EZ iBroker, a kind of i-broker-in-a-box package, would work with their library. The best one I could come up with is LinkSafe, which works OK. Now, rather than spend another US$20 and register a variant on my given name, I decided to spend the US$55 get an organizational i-name so I could make as many different testing names as I needed. And rather than register an i-name for a real organization, I registered just a bogus one, @gratis, so I could give them away to whoever wanted an i-name. My new i-name, @gratis*evan.prodromou, works great. If you'd like an i-name to play around with, please drop me a line using the Web form at @gratis, and I'll set one up for you. I've toyed around with it, and it seems to work for sites that support i-names. tags:

La ka I met my friend Nicolas Ritoux at La ka, the wireless-enabled lounge on St. Laurent. We hung out at the bar and had a beer or so, which was a nice way to spend the early evening -- of course, it was an hour after dark when I met him, but just 5PM... We talked a lot about his projects working on a new version of Hyst rie, the classic Quebec Web zine, formerly hand-coded in HTML but soon to be implemented in a CMS. He's using SPIP, a cool-looking French jobby that seems to have a lot of features. He's really getting into the XHTML+CSS aspect of it... a sure sign of madness. I like La ka, but it didn't dawn on me until today that it's named after Laika, the Soviet cosmo-dog that was the first living thing intentionally launched into space by humans. Good dog! tags:

Movie night I had to rush back to the house pretty quick, though -- our friends Patti and Meg offered to babysit Amita tonight so Maj and I could go see a movie. Awww! Of course, given that opportunity to have a romantic evening with my beautiful wife, what did I decide to go see? Borat, of course. We were pretty worried about the baby -- she's been kind of feverish and cranky for the last few days -- but when we came home, she and Meg and Patti were dancing and twirling around the room. Good girl! tags:

Eric Warmenhoven: Breeders

As I said a while back, Lisa and I had been in the process of finding and buying a new house. A few months ago, we found one, and moved. We left behind a bit of our furniture that we have had since we were in college, and since then have been in a rather involved process of finding furniture that we’re willing to live with for the next few decades or so. It’s been a rather painless process for me, since Lisa’s been doing all of it. I just have to stay alert for when new things show up. I still tend to miss lamps. We were in the process of selling our townhouse; but after a few months we only had two offers, and both were significantly below our asking price. So we’ve taken it off the market for now, but will list it again in the spring. Fortunately for us it’s paid off, so other than property tax, it isn’t too big of an expense. We considered renting it but have friends who did that and their experience has convinced us that we’ll never rent anything ever. Also, a couple months ago, after we moved, we found out that Lisa’s pregnant. We’re both really excited about it. We had been married for just less than a year when we found out, which doesn’t seem like a long enough time, but we had been together for seven years prior to that. So it seemed like a good time for us. We have our third ultrasound in a couple weeks when hopefully we’ll find out the baby’s gender. Lisa’s hoping for a girl, but she thinks it’s going to be a boy; I think it’s going to be a girl. Everything seems to be going well so far, and Lisa’s starting to show a little. We haven’t started doing any of the baby-related things yet, like picking names, or setting up a nursery and buying a ton of crap that will probably end up being mostly unused. We did receive our first baby-related gift from my grandmother though, and Lisa’s grandmother is busy knitting booties and blankets. One of these days we’ll probably head over to Babies R Us and set up a baby registry, but probably not until after the new year.

Pierre Habouzit: On C and strings APIs

C default str* functions have very poor semantics, and a whole lot of consistency problems. That's a fact, a well known one. For those who still don't know them, and only to cite a few: A good string API MUST treat any string as a buffer + its allocated size (not len, I said size, meaning including the terminating NUL). Moreover, it should return informations that avoid the stupid problem of strcat that has to compute the destination length again and again. There is one function of the usual C string API that has it right, if you forget about the int return type problem: snprintf[1]. Why ? because:
  1. it prevents most buffer overflows because you always pass the buffer size;
  2. unlike strncpy the resulting buffer contains a true NUL-terminated string;
  3. it returns the size the string could have had if there was enough space in the buffer, so that a correct reallocation can work with reduced programatical costs;
  4. if you support negative buffer sizes, you can chain as many of those calls, and be safe !
and if you want a proof that it makes code more concise, just go read that patch. EDIT: Here m_strcpy is a function that respects the 4 previous points: m_strcpy(dest, dlen, src) copies src into dest like its brother strcat, but in a buffer of size dlen, and returns in fact, src length, la snprintf. And if you do m_strcpy(dest, -1, src) it does not breaks, so that I can use it without needing to check if my virtual result length overflowed or not. With those functions it's just obvious how to build new ones with exactly the same semantics. For those who wonder, yes I've forked mutt the hard way, and am trying to deobfuscate its code (I was shocked to see how bad it was given how I like mutt as a MUA). And here what you see is that this string API semantics is very easy to use, is safe, and extendable. For example, in that patch, rfc822_write_address and rfc822_write_address_single that did had the bad property to truncate the result without any way for the caller to know that now use the usual snprintf semantics for no pain at all. with those API no need to care about the ending '\0', or about off-by-ones, you always speak of buffer sizes, and when your current virtual write position in the buffer is pos, you just need to call pos += your_strXXX(buf + pos, buflen - pos, ...) and you'll be safe. If you want to know if a realloc is needed, you just have to verify if pos >= buflen, the same as what you have to do for snprintf. I really wonder why such API are not common in the C world, I see way to much code using the usual C string functions that just are a PITA.
Notes [1] and not printf like I said in the first place...

28 November 2006

Daniel Jacobowitz: Triumph over emacs at last

I do about half my text editing in joe, and half of it in emacs. It's just what I've gotten used to; for a year or two I used primarily joe, and I gradually migrated until I did most of my programming in emacs instead, but I still do random text files in joe. I've been gradually trying to migrate to emacs; not least because upgrading joe has gotten to be such a pain. I use jpico rather than joe, you see. But I started using it a long time ago, probably around when joe 2.8 was current in Debian. And the jpico key bindings keep changing! Which is infuriating, so I keep having to rewrite my keybindings to stay mostly the way I like them. I like that emacs is such a smart editor. Especially since it defaults to all sorts of nice GNU-ish settings and most of my C is for GNU projects. But when I work on other things, I have to learn how to make it either disable smarts or use appropriate ones, so in self defence I keep learning new things about emacs... One things I've been annoyed at before is the binding for scroll-other-window. You can split a window into two (C-x 2). I often do that while writing a changelog up top of a patch file, whether I'm using joe or emacs at the moment. An advantage of emacs is that you can scroll the window that the cursor isn't in, paging down through the text you're describing while keeping the cursor where you're writing. But it's bound by default to C-M-v and C-S-M-v (control-meta and control-shift-meta). Hard to hit C-M-v, and impossible to enter C-S-M-v; you can not distinguish Control and Control-Shift in a vt100 terminal (like, say, inside of screen). Fortunately, you say, it's also bound to M-next and M-prior (meta-page down and meta-page up)? Well, yes... but... you can't type that either at a terminal. Normally. I can now though. Fixing it took two parts. First, I discovered that Meta-next sent the same sequence as plain next, in my xterms. I think I've convinced myself this is a bug in xterm. My keymap, which is a pretty standard pc(pc105)+us+altwin(meta_win), has Super_L and Hyper_L bound to modifier 4 along with Meta_L and Meta_R. xterm sees these strange keys and decides that mod4 must be some sort of "other" modifier, in code that looks like it's for handling num lock. Fortunately, I can work around this easily. I don't have a Super or Hyper key, so I deleted the bindings by adding this to my .xsession:
  xmodmap -e 'remove mod4 = Super_L'
  xmodmap -e 'remove mod4 = Hyper_L'
UPDATE: This will be fixed in xterm #223, since Thomas Dickey agreed it was a bug. Next, I discovered that emacs didn't recognize the sequence produced after that fix. It didn't recognize C-next or A-next either. So I added this to my .emacs:
  ; Key magic.  Emacs nor terminfo normally have bindings for these.
  ; The meta binding in particular takes a bit of X magic also; see
  ; the xmodmap call in /.xsession.
  (define-key function-key-map "\e[6;5~" '[C-next])
  (define-key function-key-map "\e[6;9~" '[M-next])
  (define-key function-key-map "\e[6;3~" '[A-next])
  (define-key function-key-map "\e[5;5~" '[C-prior])
  (define-key function-key-map "\e[5;9~" '[M-prior])
  (define-key function-key-map "\e[5;3~" '[A-prior])
That really should be conditionalized on the terminal type, but I didn't want to mess with it any more. And now it works. Woohoo!

Matthew Palmer: VLAN adventures

Have you ever had a need for a large number of "real" network interfaces on a Linux box? For security reasons, you don't just want to hook everyone up to a single switch and use virtual interfaces (because it's too easy for one of the connected devices to play silly buggers with his neighbours). Up to a certain point, you can stuff more NICs into a box, and when it fills up you can switch to those outrageously expensive 2- and 4-port NICs. But eventually you're going to run out of space[1] or money. At that point, you need something more interesting. For me, this week, that "more interesting" has been Ethernet VLANs. Linux Journal has a good intro to the technical aspects of how to setup VLANs and Linux. VLANs are some crazy stuff. They're implemented by wrapping a little number around every Ethernet frame indicating which VLAN the packet is "on", and the switch (you need a higher-end device, appropriately configured) makes sure that packets don't roam onto ports they're not meant to be on. For a single switch, this isn't very interesting, and you don't really need an IEEE standard to make it work -- just a lot of little jumpers. However, VLANs are mostly useful on larger networks, which tend to use more than one switch. So you need a way for your VLANs to roam amongst your switches -- hence the packet tagging. You stick the tag onto the packets and fling them off to another switch, and packets coming in with the tag are corraled into their VLAN. Naturally, you don't want end-user devices whacking their own VLAN tags onto packets (untrusted data, and all that), so you define most of your ports as being "untagged". Packets that come in on these ports are treated as regular ethernet frames and tagged with the appropriate VLAN ID, and packets that go out have their VLAN IDs stripped before being sent. (This implies that you can tunnel VLANs in VLANs, and I'm pretty sure that is doable in most switches, modulo some nasty problems that can, and probably will, occur). The ports that aren't designated "untagged" spit out tagged packets -- and this is where my interest lies. Like most every other computer-related standard, Linux can decipher and work with VLAN tags (the 8021q module is what you're looking for). You just load up the module, hook your NIC into the appropriate port on your very expensive switch, define your VLAN tags with vconfig, and suddenly you've got vlanN interfaces, which map to real RJ-45 ports, and you can hang network devices off these and get lots and lots of "real" network interfaces on your Linux router. It's all so simple, right? Nothing ever is, of course. The trials and tribulations I've had over the past two days have included: Thankfully, once all those dramas were done, the whole thing just kind of fell into place, and now I've got a machine which has up to 2048(ish) network interfaces (with huge, glaring caveats on that upper bound, of course). With a bit of luck, the live installation in a couple of days will go smoothly. You can stop sniggering now.
1. In this case, there wasn't a lot of space to begin with, as it's a 1RU box I'm working on, and the 4-port NIC didn't want to place nice with me for some reason anyway.

Benjamin Mako Hill: Bring the Bling?

I'm been perplexed by the recent fracas around the possibility of Ubuntu shipping non-free drivers by default as part of the feisty release goal to bring the bling. The issue has been discussed by many people, most recently and eloquently in a blog post by Scott James Remnant. I have never been 100% comfortable with our (Ubuntu's) decision to ship proprietary drivers. The Ubuntu philosophy document -- which Mark Shuttleworth and I drafted originally -- says quite unambiguously:
Every computer user should have the freedom to run, copy, distribute, study, share, change and improve their software for any purpose, without paying licensing fees.
I believe this deeply. Consequently, I feel that binary drivers in Ubuntu are, and always have been, a failure to live up to our principles. If our philosophy document is still representative, most people in our community should be a little uncomfortable with them -- even if they think, as most of us do, that shipping them is the correct thing to do. Early on Ubuntu decided that binary firmware and hardware drivers would be distributed and quasi-supported in restricted. While not completely comfortable with the move, I could understand and defend it for three reasons:
  1. The drivers were easily removable and not enabled by default unless necessary to achieve functioning hardware.
  2. As part of this process, we promised to work with vendors to accelerate the freeing/open-sourcing of their drivers.
  3. Perhaps most importantly, I couldn't imagine not using them if it were the choice between non-free drivers or inoperable hardware.
The proposal to include proprietary nVidia driver in place of the existing free nVidia driver is important because it changes, or eliminates, the first and third justifications. Since the first issue has been discussed in depth, it seem appropriate to focus on the third and final point. The point is perhaps best introduced with an observation:
While I have met many people who research and buy hardware to avoid the need for non-free drivers, something I do myself, I have never met anyone who voluntarily chooses inoperable hardware on a computer they use over working hardware through a non-free driver.
While not airtight, this observation is precisely why the old policy of using non-free drivers only when no free drivers exist works so well. By effectively synonymizing use of the non-free driver with use of the hardware, the crisis created by non-free drivers is rendered paradoxical: anybody using a piece of hardware that only works with non-free drivers is, by definition, either using non-free drivers or not using the hardware. The only way to not use non-free drivers in situations where no free drivers exist is to not use hardware that requires them. If you use different hardware, you will not need to use non-free drivers. This important justification is completely inapplicable to the proposal to include non-free drivers in place of free (but not perfect) alternatives. Second, while shipping non-free drivers is wrong because we lose our freedom and violate our philosophy, the desire for basic hardware support is universal and important enough that it's defensible. One reason that the "binary by default for bling" situation alarms me is that I don't believe that the desire for desktop bling is as universal, or as strong, as the desire for working hardware. An analogy might be stealing food to feed your family and stealing a CD from the record store. Both are wrong because stealing is wrong, but I have a lot more sympathy for the hungry thief in the first example because CDs are not as necessary as food and because many people would rather go without a new CD than steal. We can ask: "Which is worse: selling your soul for a decent job or selling your soul for a PS3?" In an absolute sense, neither is worse; but it's easier to support the former than the latter. I'm very impressed with Beryl -- but I have trouble empathizing strongly with the need for a spinning desktop cube. New users may be impressed and attracted to an Ubuntu desktop powered by proprietary drivers. They might also be impressed by proprietary applications. However, it is self-defeating to attract new users to our free platform and principles by compromising our core values. Many users already make the decision to use non-free video drivers and Ubuntu makes it very easy to do so once they have made that choice. Installing binary drivers by default is choosing for the large number of users who will stick with any default. It may be a conservative stance but as long as we believe that a non-insignificant number of users would choose to live without bling before compromising Ubuntu's philosophy and goals, we should make the difficult decision to side with freedom by default. When discussing this issue, many people say, it's not my decision or it isn't my call. Regardless of whether anyone agrees with me and regardless of who the final decision is up to -- and it's not clear to me now -- I believe that the Ubuntu community has the power to inform and shape the development of their distribution. As the Ubuntu community, we can make our position heard. The best place to do that right now seems to be the Accelerated X specification comments page. One can also email the the Technical Board (for technical comments) and the Community Council (for principle or philosophy related issues).

27 November 2006

Jon Dowland: Thecus

Yesterday I installed debian on my thecus n2100. Thanks to Martin Michlmayr for putting up with my neurotic questions during this process. Normally, this would take about 2 hours. Unfortunately I hit a bug in the r8169 network driver (or the hardware) which made the process excruciatingly slow: over 8 hours. I did delay the process somewhat by going for a stable installation first time through. You need to go for etch, for anyone following along at home. I have two hard discs in this box and I wanted to use RAID-1 for the root filesystem. Actually, the two discs were already in a linux RAID-1 set, with superblocks, an ext3 filesystem and some files, from when I was using the default thecus firmware. The following approach lets you setup RAID in the installer and preserve any existing data. You will need to have at least one connection to the installer running a shell, in addition to the one running the installer. When you enter the disc partitioner stage, you will need to fetch the udeb which gives you the md module. For the current thecus installer image, that's md-modules-2.6.18-3-iop32x-di_1.5_arm.udeb. wget it from a mirror (path pool/main/l/linux-kernel-di-arm-2.6) and udpkg -i it. Then restart the partitioner. To preserve the contents of the RAID-1, you might be able to select "don't wipe this partition", and just make sure nothing on it would clash with the directories that Debian will create. I didn't take this approach. Instead, you can drop one of the discs from the mirror, continue with the installation as normal, copy the data back across after, and re-add the disc to the mirror set. Before you select your filesystems in the partitioner: Now feel free to let the installer stick a new filesystem on the RAID set, and install the base system etc. Once the thing has booted: Periodically check on the rebuild status with mdadm -D /dev/md0. One other thing I would strongly advise is getting the installer's debconf priority to medium or lower before you get the base system installed, so you can skip the bootloader / flashing stage. Update: I've clarified the following paragraphs. At present, the default etch kernel is 2.6.17. The network device in the Thecus is not supported by this kernel, so you have to manually install a particular 2.6.18 kernel prior to rebooting, or you will not be able to communicate with the machine once it boots. Martin makes this very clear in his instructions. However, if you have no experience using a d-i which flashes the kernel (as appose to say, the bootloader prompts you get when doing an x86 install, for example) you may not be aware that by default, the flash stage proceeds without prompts. That means that if you do not prevent it from doing so, there will be a window between the installer flashing 2.6.17, and you manually installing 2.6.18, where the thecus will be in an unbootable state, should you suffer a power cut or similar problem. In my case, I left the base system being unpacked overnight (due to the fact the network was so slow). So, that window was several hours wide. This is only a temporary situation, as the release team plan to have 2.6.18 available for Etch, and the patches for the Thecus hardware are steadily working their way into the mainline kernel.

26 November 2006

Russell Coker: supporting an electrion campaign

Yesterday I handed out "how to vote" cards for the Greens at the state election. It did seem to be a significant waste to have so much paper produced. Slightly more than half the voters who visited my polling booth took cards from all parties, which was obviously of little use. There is some useful information to be gained from reading the cards from all parties, but nothing that you can analyse during the short period spent waiting in line. I expect that most people decide who to vote for before they get anywhere near the polling booth and just accept the cards because they feel that it may be rude to reject them. While ironically some people who didn't like the Greens refused to accept a card from me and told me that they didn't want it with the impression that they would offend me, I'd rather save the trees and not give cards to people who don't want to use them...

I spoke to a representative of the Family First party who tried to convince me that the Greens should be against homosexuality because the Greens are "against unnatural things", he also claimed that people who choose not to have children (being gay is apparently choosing not to have children) are selfish - unless of course they are a celibate priest. He also managed to offend a supporter of the ALP in two different ways which led to an amusing heated debate and then left before I could have any more fun. For the reference of other Family First people, I've pasted in the dictionary definitions of "homo" and "hetero", when used as prefixes those Greek derived words mean "like attracting like" and "opposites attract". An example of such usage is the term "homo-charged electrets" used in electronics.

From The Collaborative International Dictionary of English v.0.48 [gcide]:
Hetero- \Het"er*o-\ [Gr. "e teros other.]
A combining form signifying other, other than usual,
different; as, heteroclite, heterodox, heterogamous.
[1913 Webster]

From The Collaborative International Dictionary of English v.0.48 [gcide]:
Homo- \Ho"mo-\
A combining form from Gr. "omo s, one and the same, common,
joint.
[1913 Webster]

From Bouvier's Law Dictionary, Revised 6th Ed (1856) [bouvier]:
HOMO. This Latin word, in its most enlarged sense, includes both man and
woman. 2 Inst. 45. Vide Man.


The ALP (usually known as Labor) supporters had unfortunately believed the lies of their own apparatchiks. They were convinced that the Greens were directing preferences to the Liberal party, even though in most districts the Greens actually directed preferences to the ALP! The only exceptions were a small number of districts with split preferences (favoring neither Liberal nor ALP). It continually amazes me that while helping the ALP they were attacking us! Once I showed the ALP supporters the cards I was distributing they became quite friendly, as the Greens had a very low chance of winning the lower house in the districts for the polling place in question the preferences would go to the ALP.

It was interesting to talk to a Liberal supporter, he supports the workplace reforms implemented by the Federal government (Liberal) because he was hired for his current job because his employer can easily get rid of him if the business has a down-turn. It is hard to argue with someone who has only got a job because of the policy in question, but I did point out that continuity of employment is a major factor when applying for a mortgage. I recently bought a house and had a significant amount of hassle from the banks due to the fact that I work as a contractor. I had previously enquired about borrowing twice as much money while at my last permanent position and had much fewer problems from the banks.

I mentioned some of the other bad things the Liberal government has done (such as invading Iraq for no good cause), but the Liberal supporter was too sensible to comment on any of the issues where he would only lose. This however left him with not very much to say.

Most of the work of handing out the cards was quite boring and very tiring. Fortunately a friend decided to visit and help out so there were three people handing out Greens cards instead of the scheduled two which made it easier work. The ALP apparently had four people which seems to be an optimal number as there were voters arriving from two directions and no matter where they came from at least two ALP supporters would be able to intercept them.

Surprisingly the work was easier at the most busy times. When the queue stretched out into the street I could stoll along the queue and give the cards to the voters. When the queue disappeared later in the day the voters were walking past at high speed and I had to move quickly to get to them.

Now it's time to start planning for the next Federal election.

John Goerzen: Society's Views of Dads

Back before Jacob was born, I was reading The Expectant Father: Facts, Tips, and Advice for Dads-to-Be, 2nd ed. by Armin A. Brott and Jennifer Ash. It was a good book and I recommend it.

Towards the end, there was a section that the author clearly was passionate about, and it made me mad too.

He was talking about society's attitudes towards dads. He started by looking at messages that are sent out in commercials. One study of commercials said that "100% of jerks singled out in male-female relationships were male. There were no exceptions. . ." That study also said that 100% of the ignorant and incompetant people in commercials were male as well.

He went on to cite some examples. Tons of slogans like "kid tested, mother approved", "choosy moms choose Jif", Robitussin's "recommended by Dr. Mom", etc. And one for Post Raisin Bran in which a father and daughter are impressed by their cereal. Dad says, "somebody must really love us. Who do you think it is?" The daughter answers, "Mommy!"

Of course, these were just some examples from commercials, but they seem to reflect a message that dads are, at best, incompetant. Brott mentions studies that show that men display the same decision-making skill and affection as parents as women do.

Brott went on to talk about some of his experiences. One time, while he was in a park playing with his children, a little girl started to fall off the top of a slide. He was right there and was able to catch her as she fell -- probably saving her from, at best, a broken bone. The girl's mother rushed over, ignored Brott, and said to the girl, "did he hurt you?"

I started to see this sort of thing all over the place even before Jacob was born. In stores, there would be tons of infant shirts, bibs, etc. saying things like "I love mommy," rarely even one thing that mentioned daddy. Similar patterns were there for greeting cards and pretty much everything else baby-related.

I've noticed this even more since Jacob was born. There have been times when Terah and I are somewhere together, standing right beside each other, and someone will ask Terah all about Jacob, and totally ignore me. Even if I'm the one holding him. I'm sure people are well-intentioned; some of them that have done this are people we know well and I know they mean well. Somtimes, I don't even notice when this is going on (though Terah does and when she mentions it later, I remember it).

Do they just expect that men don't care? Or do they think that since Terah is working part time, and I'm working full time, that we must be "traditional" enough that I don't care to be involved in Jacob's life? (Though I'm not sure that the "detached & uninvolved dad" stereotype ever was true, at least from the examples I can think of) It's hard to miss out on so many moments of Jacob's life during the day that Terah gets to be there for. But that doesn't mean that I'm an uninvolved or clueless dad.

Now, despite this little rant, there are quite a few people out there that have no problem including me in discussions about Jacob -- relatives, friends, people at church, co-workers, etc. In fact, probably more people include me than don't. I really appreciate that, and especially the extra effort some of them go to in order to include me. (I know how much effort it took to find baby clothes that mention dad, for instance) Terah is best at all this, making sure that I get to be part of Jacob's life as much as I possibly can be, and I really appreciate that.

But to Wyeth (makers of Robitussin): Don't think I haven't noticed that Walgreens sells "Wal-Tussin", same active ingredients as your product, and at a lower price. Dr. Dad knows how to buy generic.

24 November 2006

Evan Prodromou: 3 Frimaire CCXV

I think there's a certain special sloth that Americans get to experience on the day after Thanksgiving that we don't get on other parts of the year. Something about the combination of gluttony and wholesomeness makes Black Friday a very mellow, enjoyable time. Maybe it's the fact that it's officially now The Holiday Season, but the stressful tasklist of December hasn't started yet. Or maybe just that it's a day off of work for no good reason except it just is. Maybe it's the fridge full of leftovers that still taste kind of good. I dunno. We had a good Thanksgiving dinner yesterday evening. Maj, Amita June and I had planned to go visit family in New Brunswick (New Jersey) for the holiday, which was really nice to do last year. But our visas are running out in December, and although we're (probably) not going to have a problem renewing them, our lawyer said it was a bad time to leave the country. So, we stayed in Montreal for Thanksgiving. Canadians have their own Thanksgiving, of course, on the 2nd Monday of October, but not having grown up with that day as Thanksgiving, and with most of our family celebrating in November, it's hard to get motivated around Canadian Thanksgiving. And it's just not that big a deal in Quebec, anyways. So we had a good dinner here; John Usher, Niko, Jeff Waye, Meg and Patti all came over and had a good time of it. I cooked my first Thanksgiving dinner -- a big salmon, potatoes and sweet potatoes, roasted broccoli and wax beans, a great big salad. Every family has a Thanksgiving dish tradition -- one of the Prodromous' is a big pot of macaroni and cheese. So I made that, too. We all ate pretty well, drank some wine, talked about the future of music and how fun it is to play hockey. Unfortunately, I managed to miss my Blinky Hockey practice last night -- I tried to put the (overtired) baby to bed at 10PM and ended up falling asleep myself. All in all a good TG, even though far from family. tags:

Speaking of home All of Canada is abuzz right now about a recently-proposed bill by the ruling Conservative Party in Parliament to declare the Quebecois to be a nation within Canada. Sovereignty of Quebec has been an extremely contentious issue in Canada over the last 50 years (two sovereignist parties are major players at the federal and provincial level), and this form of recognition is an interesting step. The whole thing began with Michael Ignatieff, a candidate for the leadership of the opposition Liberal Party. He has stated publicly that Quebec is indeed a nation, and his followers are pushing to have that be part of the Liberal Party platform. The sovereignist Bloc Quebecois tried to steal their thunder by introducing a bill in parliament to the same effect. Their thunder was in turn stolen by the Government with the latest bill, which now has the support of all the parties and will almost definitely pass. The wording of the bill is interesting. First, it calls the Quebecois a nation -- the people themselves, not Quebec qua territory or government. Although the government has stated that this includes all people in Quebec, it's still pretty obviously targeted towards recognition of an ethnic group, French-speaking Quebecois, more than everybody who's living inside the borders. Second, it recognizes this group as a nation within Canada -- deflating the suggestion that it may become an independent state. I have to admit that the ambiguous nature of Quebec's status is one of the things I find fascinating about living in Montreal. As far as I can tell, few sovereignists hope for anything like a total split with Canada, but instead are looking for some sort of autonomous status. On the other side, even the staunchest federalists have seemed comfortable with granting Quebec more of an international profile, such as giving Quebec a formal role in UNESCO. My guess is that the nature of Quebec's relationship with Canada will change gradually until it reaches some stable point where everyone's comfortable. I don't know where that stable point is, but I think it'll be interesting to find out. At the turn of the 20th century, if you had told people that the British, Austrian, Turkish and Russian Empires would be dissolved and almost forgotten within 100 years, they would have scoffed. But in that short span of time, the idea of empire, spheres of influence, and Great Powers has passed from the world stage. We simply don't think in terms of Empire any more, but in terms of nation-states. My guess is that the 21st century will see a similar change in the idea of nation-state. With pressure from supranational organizations like the UN, EU, GATT and the International Criminal Court, as well as pressure from unrecognized nations like Quebec and Catalunya and Wales, I think the firm borders of the nation-state are going to loosen up a lot. What it will mean is anyone's guess, but I think if we're lucky we'll have a richer tapestry of nations and people participating in global politics and culture. And I think Quebec will be an important part of those changes. tags:

Thanks, Biella! I'm glad to see that Biella is going to give us the goods on PR. Our Wikitravel 2007 Get-together is going to be on the island of Puerto Rico, and Biella's from there, so she's going to make up a list of good places to check out. Great news! tags:

James Morrison: Canadian fiscal update

I took a look at Five year fiscal projects from the Canadian federal government. The interesting part about these projections, is the text says the debt is going away and the cost of the debt is going down, but nothing in the numbers indicates that. Take two main bullet points:
* Canada s New Government believes that we should aim as a country to eliminate Canada s total government net debt by 2021 at the latest.
* The federal government will show leadership by continuing to plan on annual debt reduction of $3 billion.

Now the first bullet says all government debt, which includes provinces, many of which are still running deficits. So, let's assume that the first bullet point only means the federal debt. Which $3Bn a year is being put towards that. At $3Bn a year, it will take 160 years to pay down the debt, which is much after 2021. So, let's guess that the payments on the debt will go up. We can assume an increase in payments by X percent per year. So we solve for sum(i = 0, 15, 3*x^i) = 480. The result is x = 1.2666, or 26.66% increase per year for 15 years. That means the final payment is $103 billion, or about a third of revenue for 2021.

The other annoying point in the update is that it says the money saved on debt financing can go to tax cuts. However, for the next 5 years, there is no reduction in debt financing. The numbers are "33.8 34.6 34.7 34.6 34.7 34.6 34.6", those don't really go down, now do they?

Next.

Previous.