Prime Minister Stephen Harper has said he will introduce a motion to recognize Quebec as a "nation within a united Canada". This was immediately pounced upon by Gilles Duceppe who demanded that the motion be reformulated in order to recognize a "nation that is currently within Canada".
The unfortunate thing is that we are spending our time debating the wrong thing. That a certain socio-ethnic group of people exists in Canada is not a question. That the people in that group have inherited a certain culture and certain beliefs is not at issue. The real problem is not that nobody "recognizes" Quebec. The real problem is the divide between those who believe that Quebec should have a certain level of sovereignty and those who disagree.
It all comes down to control; and a lot of separatists/sovereignists feel that Quebec should have full and complete control over everything that goes on inside its borders; including immigration/emigration and any other kind of import/export. This is not a question of culture, nor is it a question of inclusion/exclusion: this is a question of power. We can see it when people suggest sending delegates from Quebec to international assemblies; as if we really wanted to debate the north american missile shield with the "ambassador" of the state of New Mexico. Countries exist for a reason. They are a grouping of geographically and socio-economically like-minded people who get together for the same reasons as any other community forms. They provide a tool for dealing with other groups of people and, as such, are very useful.
In the case of Canada, the country also provides a way to re-distribute wealth to attenuate the issues encountered by one or another constituent population going through hard times. When the farmers of western Canada need help, the fishers of eastern Canada provide it (albeit indirectly). With regards to this particular issue, Quebec has historically felt hard done-by because of its own richness and other provinces relative poverty.
Meta-communities also provide the opportunity to set certain guidelines and enforce them at a higher level. We can see some of the effects of this by looking at organizations like the U.N. where a number of participants agree to live by the rules established by all. Difficulties arise however when participants in such a scheme attempt to assert their independence or sovereignty. A perfect example is when the U.S. decided unilaterally to invade Iraq against the recommendations of the U.N. security council. Unfortunately, the sanctions available to the U.N. is very limited. It comes down to "might makes right" and in Quebec's case we can expect more of the same: because of its socio-economic place in the country, Quebec stands to gain a significant amount of "bullying power" by declaring its independence (or at least having it recognized). The simple fact that a political party exists at the federal level to represent and defend the concerns of a single province is proof enough of the fact that Quebeckers are prepared to do what it takes in order to guarantee that their concerns become matters of national importance.
Do I believe that Quebec is distinct? Absolutely! I was born here and will always be a Quebecker in my heart. Do I think that this "distinctness" (as opposed to the distinctness of Ontarians or Nova Scotians) merits the declaration of the independence of the province from the "rule" of the rest of the dominion? No. Absolutely not. So let's stop debating our uniqueness and start debating what's really at stake here: whether or not Quebeckers (and to a certain extent the rest of Canada) are entitled to a greater amount of "self-determination" than other provinces; I mean, at some level, each city could declare itself sovereign and we could start all over again building counties from cities, provinces from counties and (gasp) countries from provinces. If the only goal here is to get more power in parliament I say "let it be." You already have a whole national-level political party to yourself. Isn't that enough bullying for one nation? If not, then let's get the Mohawks and the Haida and the Inuit in there too so that they can represent their people.
Thursday, November 23, 2006
Tuesday, November 21, 2006
pkg_resources.VersionConflict
This exception is raised when you update the version of a
setuptools
package without deleting the egg-info
folder. The test
command ends up expecting that the version is whatever is listed from the previous build whereas the value has changed in the meantime. Just run setup.py clean --all
from your "root" directory to get rid of the error.
Sunday, November 12, 2006
Some long-awaited updates
I took some time this weekend to revamp a lot of the infrastructure around this site. I really would like to start documenting my progress in pipe-making as well as some of the other things I'm currently juggling.
I have set up my own little proprietary engine to pipe the contents of different RSS feeds of mine onto the front page of my site. This should allow me to collect the various things I'm up to into a single spot.
I have set up my own little proprietary engine to pipe the contents of different RSS feeds of mine onto the front page of my site. This should allow me to collect the various things I'm up to into a single spot.
Monday, March 20, 2006
Packaging Python
Ian Bicking writes about packaging Python libraries. He says simply that his advice is: "you shouldn't".
I really can't say that I agree on this one. While I do see the benefits of packaging libraries with the applications they go with, I have to say that after years of working in Java, where JARs are distributed and need to be included in an application-specific classpath, I really find the Python
I really can't say that I agree on this one. While I do see the benefits of packaging libraries with the applications they go with, I have to say that after years of working in Java, where JARs are distributed and need to be included in an application-specific classpath, I really find the Python
site-packages
to be a breath of fresh air.
Friday, March 10, 2006
Users don't care about you
Jeff Atwood has posted an entry titled "Users don't care about you". I will use this soapbox to pick at a semantic nit and explain why not instead of trying to explain how to get them to care.
The reason is pretty simple (as all good reasons are in hindsight): they are users. There are no "users" reading my blog. There never will be. And this is really the crux of the whole revival-of-the-cult-of-personality-but-on-the-web thing. Unless your audience feels they have a personal relationship with you, they won't read your blog. I read all of my friends' blogs (if you are my friend and I don't read your blog, please send me a link to it). Why? Because even if the crap they write is boring, pompous, puerile, silly, humiliating, myopic and self-centered it's familiar crap. There's something about the odour that reminds me of that person. It's probably why you're reading this right now.
The majority of people writing blogs are doing it for their personal acquaintances. The "long tail" of blogdom is the really real world. You all know where I work, what I do, what my hobbies are and so on. Because you care about me. If you didn't, you wouldn't be reading this. What causes so many broken hearts (and wasted electrons) is that a huge number of bloggers sort of expect that they will clickety-click over to blogspot.com, tappity-tap to fill in the fields in the registration form, select a template, dash off an article or two on what they had for dinner and skyrocket to Number One On Google. Everybody wants to be the next Scoble (or whatever). Don't worry, the podcasters all want to be Adam Curry (much to Dave Winer's dismay); the real-estate agents all want to be Donald Trump; the investors all want to be Warren Buffet; the programmers all want to be Bill Gates or Linus Torvalds (depending on whether they want to be rich and famous or just plain famous).
Of course everybody wants to be just like those heroes and anti-heroes that epitomize and characterize their environments. That's normal. It's OK to wanna be cool. And part of being cool is being you. I know, I know, it's trite (oops, I missed that adjective up there in the rant about crap) but it's so true: who is Bill Gates like? Who did Michael Jordan copy? Do they have heroes? Sure! But they didn't rush out to try to be carbon copies of whatever they thought was the best thing since sliced bread.
I just watched a video of Seth Godin presenting at Google. In it he talks about making a remarkable product as being the first step in a marketing campaign. Of course, we're talking about blogs (or are we?) but the same principle applies: if you want people to make remarks and tell their friends to go and read your blog, you need to be remarkable. It's sort of like getting a girl to go with you to the dance in high school. You need to be remarkable if you want people to notice you. Truism after truism.
I would like to segue briefly here into a comment about attention. It's not enough to get attention, you need to get the kind of attention you want. I was talking to a friend recently and he mentioned that (verbally at least) I am able to hold people's attention for a lot longer than most. I credit this to the incredibly competitive environment at the dinner table in the house where I grew up. I am the eldest of three sons and if you are the eldest of your siblings, you know what it is to need to fight for that spotlight. I employ a range of techniques to keep people's attention and none of them involve brutally assaulting my listeners verbally or physically. I do things like only pausing for breath at a place in my sentence where I know that everybody wants to hear the end; raising my voice just enough to be heard and then lowering it again as attention focuses on me, rewarding my listeners by not continuing to bludgeon them with a loud, crass delivery of my idea(s); shifting my physical position to be in more people's line of sight or so that there are less obstructions between me and my listeners - every person in the vicinity not listening to me is not only not a part of my audience but may even begin to sabotage me by luring other listeners into separate conversations. What I'm getting at here is that throwing big temper tantrums and gesticulating wildly will make people sidle quietly away to talk to me until you are left with only the most spineless of people standing around you desperately trying to finish their drinks so they can escape to the punch table before you start another long-winded story. Or maybe that's me...
OK, so what's the bottom line here? Well, if you really want people to read your crap (I know I said I wouldn't explain how just why but this is my blog so...) they need to really know you. I remember when I first got into podcasting and I listened a lot to this one guy who was rude, crude and whose podcast was really just him blabbing around a couple of pieces of "underground" hip-hop and techno music. I fast-forwarded through the music. What I really liked about this guy was:
I identified, ultimately, with how crappy this guy was - there was something so human about it. Adam Curry, in contrast, with his silky voice (run through 18 compressors) and his trailers (recorded by adoring fans and mixed on donated software from companies hoping for a plug), seemed more of a confection than anything else.
So, at the end of the day I just want to read a blog, written by you, to me, for us and our friends. If you can slip in some stuff that only we know (it's like a club) or that I don't know yet ('cause I still like to learn - even when I'm killing time reading my friends' blogs) then that's a real bonus. But really, please, just be you and I'll be me, and hopefully, because we're friends, we'll actually have something to say to each other.
Update: After posting this I realized how huge that first item in the list is. This is both because I am being clever (see Ma, no hands) and because it is really the most important. I like it raw.
The reason is pretty simple (as all good reasons are in hindsight): they are users. There are no "users" reading my blog. There never will be. And this is really the crux of the whole revival-of-the-cult-of-personality-but-on-the-web thing. Unless your audience feels they have a personal relationship with you, they won't read your blog. I read all of my friends' blogs (if you are my friend and I don't read your blog, please send me a link to it). Why? Because even if the crap they write is boring, pompous, puerile, silly, humiliating, myopic and self-centered it's familiar crap. There's something about the odour that reminds me of that person. It's probably why you're reading this right now.
The majority of people writing blogs are doing it for their personal acquaintances. The "long tail" of blogdom is the really real world. You all know where I work, what I do, what my hobbies are and so on. Because you care about me. If you didn't, you wouldn't be reading this. What causes so many broken hearts (and wasted electrons) is that a huge number of bloggers sort of expect that they will clickety-click over to blogspot.com, tappity-tap to fill in the fields in the registration form, select a template, dash off an article or two on what they had for dinner and skyrocket to Number One On Google. Everybody wants to be the next Scoble (or whatever). Don't worry, the podcasters all want to be Adam Curry (much to Dave Winer's dismay); the real-estate agents all want to be Donald Trump; the investors all want to be Warren Buffet; the programmers all want to be Bill Gates or Linus Torvalds (depending on whether they want to be rich and famous or just plain famous).
Of course everybody wants to be just like those heroes and anti-heroes that epitomize and characterize their environments. That's normal. It's OK to wanna be cool. And part of being cool is being you. I know, I know, it's trite (oops, I missed that adjective up there in the rant about crap) but it's so true: who is Bill Gates like? Who did Michael Jordan copy? Do they have heroes? Sure! But they didn't rush out to try to be carbon copies of whatever they thought was the best thing since sliced bread.
I just watched a video of Seth Godin presenting at Google. In it he talks about making a remarkable product as being the first step in a marketing campaign. Of course, we're talking about blogs (or are we?) but the same principle applies: if you want people to make remarks and tell their friends to go and read your blog, you need to be remarkable. It's sort of like getting a girl to go with you to the dance in high school. You need to be remarkable if you want people to notice you. Truism after truism.
I would like to segue briefly here into a comment about attention. It's not enough to get attention, you need to get the kind of attention you want. I was talking to a friend recently and he mentioned that (verbally at least) I am able to hold people's attention for a lot longer than most. I credit this to the incredibly competitive environment at the dinner table in the house where I grew up. I am the eldest of three sons and if you are the eldest of your siblings, you know what it is to need to fight for that spotlight. I employ a range of techniques to keep people's attention and none of them involve brutally assaulting my listeners verbally or physically. I do things like only pausing for breath at a place in my sentence where I know that everybody wants to hear the end; raising my voice just enough to be heard and then lowering it again as attention focuses on me, rewarding my listeners by not continuing to bludgeon them with a loud, crass delivery of my idea(s); shifting my physical position to be in more people's line of sight or so that there are less obstructions between me and my listeners - every person in the vicinity not listening to me is not only not a part of my audience but may even begin to sabotage me by luring other listeners into separate conversations. What I'm getting at here is that throwing big temper tantrums and gesticulating wildly will make people sidle quietly away to talk to me until you are left with only the most spineless of people standing around you desperately trying to finish their drinks so they can escape to the punch table before you start another long-winded story. Or maybe that's me...
OK, so what's the bottom line here? Well, if you really want people to read your crap (I know I said I wouldn't explain how just why but this is my blog so...) they need to really know you. I remember when I first got into podcasting and I listened a lot to this one guy who was rude, crude and whose podcast was really just him blabbing around a couple of pieces of "underground" hip-hop and techno music. I fast-forwarded through the music. What I really liked about this guy was:
- How raw he was: there was nothing polished about his performance (lots of "ums" and "ahs" and plenty of swearing), his podcasts (plenty of snap, whistle and pop) or his distribution (a simple RSS feed without much around it)
- He came from Montreal (yay locals!)
- He talked about the shit going on in his life and made me feel his pain
I identified, ultimately, with how crappy this guy was - there was something so human about it. Adam Curry, in contrast, with his silky voice (run through 18 compressors) and his trailers (recorded by adoring fans and mixed on donated software from companies hoping for a plug), seemed more of a confection than anything else.
So, at the end of the day I just want to read a blog, written by you, to me, for us and our friends. If you can slip in some stuff that only we know (it's like a club) or that I don't know yet ('cause I still like to learn - even when I'm killing time reading my friends' blogs) then that's a real bonus. But really, please, just be you and I'll be me, and hopefully, because we're friends, we'll actually have something to say to each other.
Update: After posting this I realized how huge that first item in the list is. This is both because I am being clever (see Ma, no hands) and because it is really the most important. I like it raw.
Monday, February 13, 2006
Pivot points
I just completed a webservice that calculates pivot points for major FX pairs. Try it out with USDJPY. The data backing it is downloaded and cached from Forexite Ltd. You can swap the symbol in the URL for different sets of pivots. You can also append
.txt
or .html
at the end of the URL to specify the output format - the default is HTML.
Sunday, February 12, 2006
Foreign Exchange
Over the Christmas holidays I discovered forex trading. This is the practice of buying and selling large amouints of foreign and domestic currencies and speculating on changes in the price. I have spent much of the last several weeks reading books on the subject of technical analysis and accumulating a small hoard of resources to help me understand how to trade. I have opened a demo account with Alpari, a russian forex site (don't worry Mom, they don't have my money yet) and am attempting to learn how to play with the big boys.
I have started a blog to track my trading progress. You can watch my progress as I battle my way through a $1.5 trillion market.
I have started a blog to track my trading progress. You can watch my progress as I battle my way through a $1.5 trillion market.
Friday, January 06, 2006
An email address for every site
I wrote this advice to a friend on the topic of alternate email addresses used to sign up at various sites:
By the way, a cool trick that I picked up somewhere is to register an account at http://www.cjb.net. You pick a subdomain of cjb.net (like joeblow.cjb.net) and then they redirect any email that goes to@joeblow.cjb.net to an email address of your choosing. So what I do is I have ilowe.cjb.net and every time I sign up somewhere, I give an address that encodes the name of the site I am registering on (for example yahoo-groups@ilowe.cjb.net). This has two benefits: first, I don't have to give out my real email address; second, if somebody starts spamming me using one of the addresses, I just add a filter to my mail client to kill that particular address and continue along my merry way. That way I don't have dozens of sites pointing to one "junk" email address that I need to log into every once in a while to clean out.
Friday, December 30, 2005
Subversion with Python 2.4
Buried deep in the comments on one of Simon Brunner's posts I found a reference to Eugene Lazutkin's setup where he hacked the Python SVN bindings to work with Python 2.4. I am pleased to report that his hack worked beautifully for me and I am now the proud owner of a Trac installation running on Subversion v1.2.3 and Python 2.4.
The trick is to download the Python 2.3 bindings in ZIP format, then unzip them and drop them into your
The trick is to download the Python 2.3 bindings in ZIP format, then unzip them and drop them into your
site-packages
folder. Once this is done, fire up a hex editor and edit each of the DLLs that are installed in the libsvn
package and replace all instances of the string python23.dll
with the string python24.dll
. That's all there is to it.
Saturday, December 10, 2005
YAXL v0.0.16 released
I just released version 0.0.16 of YAXL, tightening up QName manipulation and overall documentation. Check out the website.
Update: the source in the website looks horrible. I'm working on fixing it.
Update (20051219): the source in the website is fixed.
Update: the source in the website looks horrible. I'm working on fixing it.
Update (20051219): the source in the website is fixed.
Tuesday, November 22, 2005
typecheck
v0.2.0 released
I just released version 0.2.0 of the
The new version of the module maintains 90% compatibility with my old API - the only change is that you can no longer elect to not typecheck a parameter; a feature that I hope we will be able to bring back in a subsequent release.
typecheck
module to the Python Package Index. The module's website has been updated to reflect the new version number and link to the newest build but has not yet been modified to document the changed interface after the merge with Collin's code. He tagged the 0.2.0 version yesterday so we still need to catch up on a couple of minor documentation points.The new version of the module maintains 90% compatibility with my old API - the only change is that you can no longer elect to not typecheck a parameter; a feature that I hope we will be able to bring back in a subsequent release.
Wednesday, November 16, 2005
YAXL v0.0.15 released
I just released a maintenance version of YAXL. This release contains a couple of passing test cases that had been waiting for release for a little while. I also fixed an embarrassing bug in the Python Egg distro that screwed up the builtin help.
YAXL's Subversion repository is now public. You can browse version 0.0.15's tag or just snoop around in the trunk to find the bleeding-edge stuff.
YAXL's Subversion repository is now public. You can browse version 0.0.15's tag or just snoop around in the trunk to find the bleeding-edge stuff.
New code updates for typecheck
I will be merging the code in my typechecking module with Collin Winter's codebase. The new subversion repository for the continued development of this module is at http://www.ilowe.net/software/typecheck/svn.
We should be releasing a new version shortly with a whole whack of other/new features that Collin has implemented such as return-type checking and logical operators on types (
We should be releasing a new version shortly with a whole whack of other/new features that Collin has implemented such as return-type checking and logical operators on types (
and
and or
). Look for version 0.2.0 in your local Cheeseshop RSS Feed.
Wednesday, October 19, 2005
Email tacks
Rob Bray suggests a different tack to take for spam prevention/reduction.
Rob blogged about his resistance to the penny tax for emails that Tim Bray suggested in a recent blog post. In this installment, however, he changes his mind and instead comes up with a brilliant solution: only un-answered emails cost you anything. Most of us write emails to people and receive answers from those same people; spammers on the other hand send emails to thousands of people and only a few (idiots) reply. If we could make it really costly to send un-answered emails and cheap to send answered emails we might have the beginnings of a really nice, low-tech solution.
This suggestion of Rob's reminds me of a socio-economic system called Stone Society described by Peter Merel. The system involves creating an artificial resource that is then exchanged and manipulated by participants in order to allow decision-making to proceed.
In the world that Rob describes, you would exchange tokens freely with people with whom you have a back-and-forth. Spammers would simply send you tokens which you could accumulate. In other words, spam would be beneficial to you even if you didn't want to receive it.
If the tokens here were indeed pennies you would actually get paid to receive spam. You could still have email filters to make sure you don't have to read it. This plan is all about raising the barrier to entry for spammers.
Rob blogged about his resistance to the penny tax for emails that Tim Bray suggested in a recent blog post. In this installment, however, he changes his mind and instead comes up with a brilliant solution: only un-answered emails cost you anything. Most of us write emails to people and receive answers from those same people; spammers on the other hand send emails to thousands of people and only a few (idiots) reply. If we could make it really costly to send un-answered emails and cheap to send answered emails we might have the beginnings of a really nice, low-tech solution.
This suggestion of Rob's reminds me of a socio-economic system called Stone Society described by Peter Merel. The system involves creating an artificial resource that is then exchanged and manipulated by participants in order to allow decision-making to proceed.
In the world that Rob describes, you would exchange tokens freely with people with whom you have a back-and-forth. Spammers would simply send you tokens which you could accumulate. In other words, spam would be beneficial to you even if you didn't want to receive it.
If the tokens here were indeed pennies you would actually get paid to receive spam. You could still have email filters to make sure you don't have to read it. This plan is all about raising the barrier to entry for spammers.
Tuesday, October 18, 2005
Hacking the iPod nano
I hacked together a little Python script that scrapes Atom feeds and transforms them to iPod "contacts" allowing me to read blog posts from my nano. It uses
I managed to get a couple of the vCalendar features working and found out that even though Apple says you need iSync or iCal to use the nano to add TODO items, you can just add standard
Also, the
Now it's time to go to bed...
html2text
right now but a lot of entries with embedded HTML come out looking pretty weird. I'll post the script once I clean up the text generation.I managed to get a couple of the vCalendar features working and found out that even though Apple says you need iSync or iCal to use the nano to add TODO items, you can just add standard
vTodo
objects to a vCalendar stream and it works just fine.Also, the
rdate
property is what controls repeating tasks/events - not any of the other ones that purportedly serve the same purpose.Now it's time to go to bed...
Sunday, October 16, 2005
String/XML representations in YAXL
Damian Cugley asks
In YAXL v0.0.14 I've split the representation of an element between
I'm pleased with the separation since now if you evaluate an element at the interactive prompt, it returns the XML for the element but if you
YAXL elements retain the
Thanks for the suggestion Damian!
Could you eliminate the need for the text member variable by usingstr(elt)
instead? Or would that interfere with usingstr
to return the XML representation for the whole element?
In YAXL v0.0.14 I've split the representation of an element between
str
and repr
so that the former would be a shortcut to return the text
property and the latter would return the XML representation of the element.I'm pleased with the separation since now if you evaluate an element at the interactive prompt, it returns the XML for the element but if you
print
or interpolate the element its string value will be used. There is also a nice parallel with the way nodes are handled in XPath.YAXL elements retain the
text
property in order to continue to support the oodles of screaming fans who have already shipped billion-dollar projects based on my little library.Thanks for the suggestion Damian!
Fall cleaning
Justin and I cleaned out some of the more cobwebby parts of
The transition from Apache 1.3 to 2.x was pretty smooth with the SSL stuff at the high end weighing in at about 20-30 minutes to figure out. Although the new
The other rough item on our plate was permissions when using the Berkeley DB version of a subversion repository. My advice: don't go there. Just stick to FSFS and you should be OK. This being said, I had originally created the repository in FSFS but had subsequently
We also tossed in Apache subversion support for good measure so now we can setup anonymous browsing and reading of our SVN repositories.
mystic
yesterday. We wanted to install Python 2.4 with subversion, trac and apache 2. It took a fair bit of wrangling (i.e. building from source) to get everything working together after which Justin realised that we hadn't upgraded to Sarge (duh!). He rebuilt everything using the latest packages and it looks OK so far.The transition from Apache 1.3 to 2.x was pretty smooth with the SSL stuff at the high end weighing in at about 20-30 minutes to figure out. Although the new
sites-available
/sites-enabled
organization is nicely architected, it does make for some pretty painful contortions when performing wholesale changes on a group of virtual hosts. For example, we started off testing the new installation of Apache 2.x on port 81 (which required that we split out the vhost declarations into files of their own) and then proceeded to switch it to port 80 (which ended up requiring a quick cat
/sed
/re-direct combination). Without a good knowledge of shell scripts or some scripting language this would have been really painful.The other rough item on our plate was permissions when using the Berkeley DB version of a subversion repository. My advice: don't go there. Just stick to FSFS and you should be OK. This being said, I had originally created the repository in FSFS but had subsequently
dump
ed it and load
ed it onto mystic
. It seems that I did something wrong because it load
ed in Berkeley DB mode. All that is fixed now and taken care of.We also tossed in Apache subversion support for good measure so now we can setup anonymous browsing and reading of our SVN repositories.
Saturday, October 15, 2005
iPod nano in da house
Vem and I finally both got our iPod nanos! What a cool gadget. These things are too slick to be real!
My one small gripe is that we ordered a bunch of stuff from Apple and they shipped it all separately with the predictable result that the iPod armband for Vem's gym sessions arrived first (wow, look - an armband) followed by her iPod, followed several days and a trip to the local Fedex detention centre for un-claimed packages later by mine own.
Rumors about the nano being scratch-prone seem to have some truth to them as I can already (after a fay and a half) detect small scoring on the exterior plastic. Of course, we ordered protective "skins" but since Apple hasn't shipped them yet (and nobody in their right mind would leave an un-opened nano sitting on the shelf for three weeks) we may find that our nanos are not as pristine as they could be. Ah well...
Still, the photo feature is pretty sweet (useless but sweet) although it would be nice to be able to set a photo that displays automatically when you power on (sort of like Vem's digital camera), the rating feature is very cool (I was just ranting to Vem the other day about needing one of these). iTunes is not all it could be but I haven't started playing around with the iPod libraries out there to see what I can hack up.
Anyways, overall we love our nanos and would buy them again: 9.8/10
My one small gripe is that we ordered a bunch of stuff from Apple and they shipped it all separately with the predictable result that the iPod armband for Vem's gym sessions arrived first (wow, look - an armband) followed by her iPod, followed several days and a trip to the local Fedex detention centre for un-claimed packages later by mine own.
Rumors about the nano being scratch-prone seem to have some truth to them as I can already (after a fay and a half) detect small scoring on the exterior plastic. Of course, we ordered protective "skins" but since Apple hasn't shipped them yet (and nobody in their right mind would leave an un-opened nano sitting on the shelf for three weeks) we may find that our nanos are not as pristine as they could be. Ah well...
Still, the photo feature is pretty sweet (useless but sweet) although it would be nice to be able to set a photo that displays automatically when you power on (sort of like Vem's digital camera), the rating feature is very cool (I was just ranting to Vem the other day about needing one of these). iTunes is not all it could be but I haven't started playing around with the iPod libraries out there to see what I can hack up.
Anyways, overall we love our nanos and would buy them again: 9.8/10
Monday, October 10, 2005
YAXL v0.0.12 released
Over the weekend I've managed to work in a number of bugfixes, add some more XPath support, add sequence-style access for children and implement a whole slew of namespace features. The latest source version includes 78 unit-tests that cover all this fancy functionality.
I'm still debating the question of whether or not to allow access to children via property names (like xmltramp). The problem is that you end up having to mangle either child names or "real" property names. Also, you need to have a mangled way for dealing with node-sets. YAXL curretly supports XPath even in XML fragments so theoretically you should use that, but it's hard not to like
Ideally, YAXL would support both methods but I still need to come to terms with all the mangling required.
I'm still debating the question of whether or not to allow access to children via property names (like xmltramp). The problem is that you end up having to mangle either child names or "real" property names. Also, you need to have a mangled way for dealing with node-sets. YAXL curretly supports XPath even in XML fragments so theoretically you should use that, but it's hard not to like
root.title
as opposed to root('title')
. More complex queries, however, reveal the power of XPath: compare [x for x in root.head.children if x.localname == 'style']
to root('head//style')
to retrieve all style
elements of an HTML document. Or even root('//p')
to retrieve all the paragraphs.Ideally, YAXL would support both methods but I still need to come to terms with all the mangling required.
Friday, October 07, 2005
Expat doesn't support namespace prefixes
This via "Crest" who sent in some nice stack traces generated by YAXL. I wrote in a fix yesterday to handle a missing QName but I didn't realise that expat would throw a SAXException. As a result, nobody using expat can use the
parse
function until I add a try/except
for that exception.
Subscribe to:
Posts (Atom)