August 19th, 2006 at 6:37 pm
Tags: Blogging, Example, Google, Open Source, OS X, Programming, PyObjC, Python, Screensaver
[Update: Thanks to Blake Winton for pointing out that the project page link to the Pastels download was broken, fixed now. Also added a link to the project page.]
Pastels is an example project for creating an OS X screensaver in Python using PyObjC. By extension it could be used as an example for building nearly any plugin or bundle for OS X. It started when I had an idea for drawing a simple squiggle, over and over, while cycling the colours and moving the squiggle around. I was very pleased with how it turned out.
Project page: http://livingcode.org/project/pastels/
It’s also my first attempt at hosting an open-source project at Google with their new hosting program. If it works out well I will add more of my projects there, which will save me trying to set up and configure Subversion on Dreamhost for public access (probably not difficult, but one more thing I don’t have to do means more time for writing example code and tutorials).
I’m working on the tutorial text to go along with this project, so ask any questions you have and I’ll try to get to them in the tutorial.
If you are seeing this on my site (as opposed to the Atom feed), there are some changes I’m making to the site that I’d like to point out. I’ve added pages for projects and mini-projects which use the same stylesheet and includes as the rest of the site. I know the stylesheet is uglyless than completely attractive right now–the first thing was to get everything factored and consistent, then to make it pretty. The projects page only has one item on it (Pastels), but that should be changing now that I have the infrastructure set up the way I want it. Nearly all the projects I mentioned in my presentation at the Vancouver Python Workshop will get their own pages soon. More about that in my next post.
Comments
August 4th, 2006 at 8:52 pm
Tags: Google, OS X, PyObjC, Python, Python Workshop, XML, XML Matters
My latest article for David Mertz’s column XML Matters is up at IBM developerWorks: Lighter than microformats: Picoformats Ajax without X, Microformats without angle brackets went live a couple of days ago. It isn’t so much about XML as how to avoid XML. My feelings towards XML are that it is useful and good, but overused and not a panacea. By providing some alternatives, maybe some of the backlash against the “XML everywhere for everything” meme can be averted.
I’ve been meaning to post about the article, but I keep getting caught up preparing my presentation for the Vancouver Python Workshop on Saturday (the workshop starts Friday August 3rd and goes through Sunday August 5th). My talk this year is on using [PyObjC] to create applications and plugins for OS X using Python. I’ll get the slides up after, as soon as I can. I’m also planning on doing a shorter version of this talk at Bar Camp Vancouver which is 6 pm Friday, August 25 to 6 pm Saturday, August 26.
And I should have mentioned the Google talk at the Vancouver High Performance Computing User Group before it happened on July 27th. Narayanan ‘Shiva’ Shivakumar came up from their Seattle office to present mostly old information from their published papers such as The Google File System, MapReduce, and BigTable (video). The talk over beers after was fun, and it was good to see my friend Mark and find out he has a blog, even if it’s over my head much of the time.
Well, that’s my update dump. More stuff on actually using PyObjC coming Real Soon Now.
Comments
May 31st, 2006 at 9:05 pm
Tags: Atom, Blogging, Microformats, Planets, Syndication, XML, XML Matters
My most recent article at IBM developerWorks is up (part of David Mertz’s “XML Matters” column), discussing the intersection of Atom Syndication Format, Atom Publishing Protocol, and Microformats:
Up And Atom
Actually, it’s been up for at least a week, but I was out of town at JavaOne (and too tired to post), then off the grid completely taking my daughter’s school to camp. I’m still getting caught up, but nearly recovered.
I think I’ve figured out why my new blog is not being picked up by Planet Python too: the planet software has only recently begun to support Atom 1.0, and that version hasn’t been officially released yet. There should be a 1.0 release of the planet code soon, and hopefully Planet Python will upgrade then and all will be well with the world.
I guess that’s one downside to developing my own blogging tools to support open standards: I may not have to implement deprecated formats or protocols, but if others are still stuck with legacy systems it can still hurt.
Comments
May 12th, 2006 at 9:36 pm
Tags: AI, Dictionary, Games, Javascript, Python, Web
In my sidebar, under Mini Projects is one called Silent Boggle. When my daughter was born, my wifed Daniela and I like to play Boggle a lot, but we worried about the noise waking the baby, so I coded up a quick CGI script to create a web page listing the letters with the same frequency as the game. That worked OK, and now we could play without rattling the box, but of course a project never stops where you thought it would. I kept thinking that it would be cool if I could list all the words available, making it useful for learning new vocabulary, or just checking your score. It turns out that Peter Norvig covered solving Boggle as an AI problem in his book AI: A Modern Approach. And he also provides the code from the book, in both Lisp and Python. So, armed with a standard linux word list, munged to remove words illegal or impossible in Boggle (and to handly my funky hack involving the Qu face of the Boggle dice) and the AIMA python libarary, I was able to get something going. A little slow, and resource intensive, but it works (if that project ever starts getting much traffic, I’ll have to stick the wordlist in a seperate, long-running process).
The thing is, the linux word list has a lot of words I don’t recognize and cannot find in any dictionary. At first I wanted to create links from the “answers” to a site with their definitions, but for many of the words there don’t appear to be definitions. I’d like to use this as a vocabulary building tool for my kids (my newborn daughter at the start of this project is now nine, and my son is now five and both are avid readers), but I can find two types of resources on the web: word lists suitable for use with the AIMA library, and dictionaries that don’t have associated word lists. I suppose I can dowload an open-source dictionary and extract the word-list myself, but it seems like with all the work that’s been done out there on wordlists and dictionaries, that there should be one that combines them both, that I just haven’t found yet.
So, lazyweb, I invoke thee! Please help me to find the wordlist + dictionary that I have overlooked in my searching.
3 Comments
May 9th, 2006 at 9:46 pm
Tags: Java, Metaphor, Python, Unix, XML, XML Matters
![](../../../image/pipedreaming.jpg)
My latest article for David Mertz’s column XML Matters on IBM’s developerWorks site has been up for over a week now, but I’m finally coming up for air long enough to post about it. The title is Pipestreaming Microformats and it is a survey of attempts to apply the Unix pipe metaphor to XML content, then some blue-sky dreaming of how to apply that to microformats.
One thing I mention in the article is that Norm Walsh’s SXPipe would be cool to re-implement in Python using lxml. While I was writing the article and in the time since, lxml has been undergoing a flurry of activity the results of which (among other cool things) are that it now has Python eggs for easy install on Windows, OS X, and Linux. So I think it’s ready, I just need to find time to spend with that project. If there is interest in such a thing, let me know so I can bump the priority up.
Comments