Author Archive

That’s a helluva canoe:

That’s my cousin, Rob Bean. He’s standing next to a 23 foot, 35 pound (!) canoe that he’s planning to paddle some 250 miles in a charity event he’s calling the Big Moo Canoe. He’s hoping to raise $5,000 for Heifer International Heifer helps to fight hunger and poverty around the world.

Comments No Comments »

There’s a new language that is soon to be open sourced called Newspeak. Gilad Bracha and team are creating a new language to address what they see as the future of programming (online/offline operation, lots of service oriented design, more concurrency). They’re angling for a Smalltalk-like environment and, indeed, their current implementation is in Squeak.

Ignoring that there’s at least one other language called Newspeak, it seems like Gilad Bracha’s Newspeak is built on reasonable premises. You can read a bit about what Newspeak is like. Newspeak is definitely not done yet, but things like this give me some doubt:

note that the caret (ˆ) is used to indicate that an expression should be returned from the method, just like the return keyword in conventional languages

If I were creating a programming language, writing a sentence like that would give me pause. I would ask myself “why am I doing this differently?” If everyone in the world is using return, why choose ^? To save a few characters of typing? Really? The Newspeak document does not explain why it’s like that, it just states matter-of-factly that ^ means return.

Though they reference Self as an influence for Newspeak, they chose to go with classes rather than prototypes. That’s a good decision for adoption, because people are familiar with and like classes.

Anyhow, I think Newspeak looks interesting and it will be interesting to see how it matures. But too many arbitrary changes from “conventional” syntax are likely to hinder adoption.

Comments 5 Comments »

“Apple Keyboard Kit” (Apple Computer)

I’m fixing up my home office a bit, and I was using a dirt cheap eMachines keyboard with my MacBook Pro. That keyboard had a PS/2 connector which I ran to a KVM switch (I did have two computers hooked up at one point). So, the first problem was that that keyboard was contributing the my overall cabling mess because of the KVM switch. The other problem was that my current desk, which I bought a few months back, has a much smaller keyboard tray and I’d have to peer under the edge of the desk to see the function keys. It’s also kind of annoying having the wrong meta key arrangement… I’ve been a Mac user for years now, and it would be nice to use a keyboard with Mac keys.

So, I went out and bought an Apple keyboard. It obviously fits much better on my desk. I have no problem seeing all of the keys on this little guy. Additionally, I’ve got to say that I really like the feel. I wasn’t sure that I would, but the keys of this keyboard have a nice tactile response while still requiring very little key pressure or finger travel.

Of course, the Apple keyboard is still a conventional layout keyboard, rather than an ergonomic one. I might be better off with an ergonomic keyboard layout, but for a standard layout keyboard I’m much happier with the feel of this one.

Comments 1 Comment »

I’m delighted to release Paver 0.7. If you missed my original announcement, the short story is that Paver is a new build, distribution and deployment scripting tool geared toward Python projects. My original announcement and the new foreword to the docs explain the motivation.

Ben Bangert and others pointed out a giant documentation bug in 0.4: there was a fair bit of reference doc but no doc that said “here’s how you get started with Paver”. Now there is: Paver’s Getting Started Guide.

Paver 0.7 is a big step up from 0.4 (hence the version number bump). I implemented one of the two major features I had planned for 1.0: distutils/setuptools integration. It’s really cool. Have you ever wanted to just slightly change how “sdist” or “upload” or “develop” worked? Now you can, just by writing a function in your pavement.py file. And don’t worry, you don’t need to duplicate anything between setup.py and pavement.py. It all just moves into pavement.py and Paver can even generate a setup.py file for you, since most people are use to the common “python setup.py install” command.

I’ve gone even farther than that with making it easy to use Paver and not annoy users that don’t yet have Paver. Paver can create a small zip file of Paver’s core bits so that “python setup.py install” will work just fine even for users who don’t have Paver installed. Paver can also create a virtualenv bootstrap script for you, so that users don’t necessarily need to install your package on their systems in order to use it.

Paver’s got new documentation tools that work great with Sphinx. It’s now easy to mark sections of sample code files and then include those sections in your documentation, using the built-in version of Ned Batchelder’s Cog.

And I’m definitely eating my own dogfood. Paver is built using Paver itself and the source distribution includes the paver-minilib so that setup.py install should work fine (let me know if it doesn’t!) The new Getting Started Guide uses the new documentation tools.

There are even more changes than these, and you can look at the changelog for the full list. Note that if you’re using Paver 0.4, there are a couple of trivial breaking changes.

Comments 9 Comments »

My latest blog post is up on the SitePen blog:

Mark Ramm-Christensen posed some questions about using the JVM as a platform for dynamic languages. Many people do, in fact, use dynamic languages on the JVM (Groovy, Beanshell, Rhino, Jython, JRuby are some big ones… and don’t forget Scala, Nice and other “non-dynamic” languages that target the JVM). But Java the platform has not gotten widespread or serious attention until recently (witness the recent resurgence of Jython, the rise of JRuby and the coming of the Da Vinci Machine).
[From Why Java remains the most popular language on the JVM]

Answering the question “Why Java remains the most popular language on the JVM” gives clues as to what might be the next most popular language on that platform.

Comments No Comments »

Seeing this on Bob Ippolito’s blog might seem a little odd to many:

Rewrote test suite with unittest and doctest (no more nosetest dependency)
[From simplejson 1.9]

Why on Earth would someone change from nose-style tests to unittest tests? How about so that the library can go into the Python Standard Library?

simplejson will be a great addition. Thanks to Bob and the others who are working to get simplejson in!

Comments No Comments »

The May Michigan Python Users Group (MichiPUG) meeting is coming up on Thursday, May 1. I’ll be leading discussion on zc.buildout and Paver. Any build/distribution/deployment tool talk is welcome, as well as our usual general talk about Python topics.

I hope to see you there!

Comments No Comments »

This past weekend, Best Buy offered free electronic waste recycling. The amount of junk people brought out was amazing:

Electronic Waste at Best Buy

Seeing all of that stuff there and knowing that this is just the Ann Arbor Best Buy really brings it home about just how much of this stuff we all collect and trash. The good thing, though, is that it all ended up here. It will be recycle or at least disposed of properly so that the mercury, lead, etc. don’t wind up in the ground.

Comments No Comments »

  • The first hard drive I owned had 5MB of space. SuperDuper says my laptop (which is smaller than that drive was) has 1.1M *files*. #

Powered by Twitter Tools.

Comments No Comments »

For those people who read my blog and happen to live around Ann Arbor, there are two free electronic waste recycling opportunities coming up.

  • Tomorrow (April 28, 2008) from 10am to 4pm at the Best Buy on Lohr Road
  • Saturday May 10 from 9am to 2pm at Pioneer High School

Keep that mercury, lead and other nasty stuff out of our landfills by taking your electronic junk to one of these places. It’s finally time to get rid of that 14″ CRT and the 486.

Comments 2 Comments »