PyBlosxom status: 03/28/2009

It's been a long time since the last status. PyBlosxom 2.0 had been stagnating for a year and I decided to move it out of the way, put it out of its misery, and start new progress with the PyBlosxom 1.4.3 tag. I scaled back the vision and now I'm working on PyBlosxom 1.5.

I've pulled in some of the changes that were destined for 2.0 and added some new ones:

  • lots of code cleanup

  • pyblosxom-cmd script that automates a whole bunch of things and gives plugins command-line abilities

  • re-working the documentation using Sphinx

  • doubling the number of unit tests

  • fixing a lot of bugs

In the very near future, I plan to overhaul the website and fix project infrastructure issues.

That's where things are. Hoping to have an April release of PyBlosxom 1.5.

notes for remote control support for mirofullscreen on linux

I spent the greater part of today adding remote control support to the Miro Fullscreen project. I thought I'd do a write up on it because there are a lot of pieces involved and it took me ages to figure it out and I'm paranoid I'll forget.

Quick caveats:

  • I'm doing this on Ubuntu Intrepid (8.10). If you want to translate this to your favorite distribution, feel free to add any notes in the comments.

  • If you're using OSX or Windows and want to know how to get things working there, I have no idea how to do it and that's not going to be covered here.

  • I used a StreamZap remote and didn't try it with other remotes.

  • This is a set of notes; it's not a good essay and I'm definitely not an expert.

Requirements

I installed three packages: lirc, python-pylirc, and gnome-lirc-properties.

sudo apt-get install lirc python-pylirc gnome-lirc-properties

LIRC

lirc has a web-site at http://lirc.org/. I had no idea what I was looking at while wandering aimlessly through that site. I think the important pages are these:

python-pylirc

The only useful site I could find for this project was at http://pylirc.mccabe.nu/. It says that Paul Hummer took over the project and moved it to http://pylirc.ironlionsoftware.com/, but that's a dead link. I found Paul's blog at http://theironlion.net/blog/. He uses tagging on his blog, but there's only one article tagged as pylirc2 at http://theironlion.net/tag/pylirc2/. I couldn't find anything useful about pylirc, the project, its status, or what's going on. Paul suggests he was going to add LIRC support to Entertainer, but it doesn't look like he ever did that.

Anyhow, so I ended up going with the documentation on http://pylirc.mccabe.nu/ and that seemed to work out ok.

gnome-lirc-properties

I don't know if I really needed gnome-lirc-properties.

The .lircrc file

So you install the three (or two--depending on whether gnome-lirc-properties is really needed) packages and you create a .lircrc file like this:

begin
    prog   = mirofullscreen
    button = MUTE
    config = n
end
begin
    prog   = mirofullscreen
    button = VOL_UP
    config = Up
end
begin
    prog   = mirofullscreen
    button = VOL_DOWN
    config = Down
end
begin
    prog   = mirofullscreen
    button = UP
    config = Up
end
...

where prog is the string you pass to pylirc.init, button comes from the remote control lirc file and config is the string you add handling for in your application.

the Python code

The sample code at http://pylirc.mccabe.nu/?/article/articleview/Documentation/1426&themex=public gave me enough of an idea on how it worked to implement the code in Miro Fullscreen.

In closing

Hope that's useful to someone at some point.

Name Change

A little over a year ago, I changed my name, but I never really followed through on all the things I should have followed through on.

Today I finally got around to switching it on IRC. So I'm now willkg instead of willguaraldi.

Figured I'd mention it so there's less confusion.

Who's part of the team?

I saw the Our wonderful team post just now. The PCF staff is great and, but "the team" constitutes a much larger group of great people without whom the magic could never happen.

There are hackers like Uwe, Nathan, Zach, Michael and others who have sent in patches that add new features, add test cases, and fix bugs.

There are testers like Keith, Pan, Sedat, Robbt, Sumana, and dozens of others whose work directly impacts the quality of Miro.

There are bug reporters who spend their time helping us work out complex problems that result in fixes and better experiences for future users. Some of these bug reports and comments are simply awe-inspiring.

There are translators like Karl, Lukasz, and Sedat who through their efforts have done some great translation work and also fixed issues smoothing the path for other translators.

There are packagers like Uwe (Debian), Iain (Ubuntu), Christian (Ubuntu), Alex (Fedora) and others that I'm either forgetting or haven't interacted with who package Miro for other distributions, send bugs and fixes upstream to us, and help us generalize the code so that it works on as many systems as possible.

There are developers of libraries that Miro uses like Arvid who works on libtorrent, lurks on our bug system and IRC, and helps us with libtorrent issues.

There are developers and members of other projects that are actively seeking areas where we can help each other build better things like Nathan and Asheesh from Creative Commons, Gabriel Burt from Banshee, and Chris Blizzard, Aza Dotzler, and others from Mozilla.

There are thousands of users who use Miro, find and report issues, tell their friends about Miro, wax on about the importance of an open Internet and open media distribution, and give feedback that molds future versions of Miro.

There are thousands of content producers who benefit from and add to the infrastructure that we're helping to facilitate.

This massive group of people is the team. The best part is that the team is getting bigger and better every day.

what I use Miro for

One thing I've been meaning to write a post about was to list the things I use Miro for. There are probably other ways to do them, but that's outside the scope of this post.

  1. Keeping track of government President Obama's weekly address and key speeches - http://www.whitehouse.gov/rss/speeches.xml Metavid - http://metavid.org/wiki/

    The metavid one is really interesting. From their site:

    "Metavid is a community driven archive of legislative video from both houses of the U.S. Congress, spanning from early 2006 to the present. This archive is searchable by speaker name, spoken text, date, metadata we've scraped from outside sources and user contributions. Metavid is video wiki where users improve its accuracy by fixing transcripts and annotating speeches."

    I can subscribe to an RSS feed of anything that has to do with "Kerry" or "Kennedy". It's ultra-convenient, fascinating and a really awesome use of the all these technologies.

  2. Continuing education Open Courseware Consortium - http://www.ocwconsortium.org/use/use-dynamic.html MIT OCW - http://ocw.mit.edu/OcwWeb/web/home/home/index.htm

    Video and audio lectures and other course materials to learn subjects you didn't have time to take in college. The MIT OCW is a great site, but any of the other groups that participate in the Open Courseware Consortium are also really useful.

  3. Learning a new application InkScape - http://feeds.feedburner.com/Screencastersheathenxorg The Gimp - http://feeds2.feedburner.com/meetthegimp Blender - http://feeds2.feedburner.com/TheBlenderShow Microsoft Office on the Mac - http://mac.microsoft.com/macoffice/videos/en-us/xml/videopodcast.xml ...

    There are lots of podcasts out there that walk you through using specific applications to do the things you need to do. Watching how someone does something tends to be a lot easier to understand than reading about someone doing something.

  4. Learning new libraries, APIs, toolkits, whatever, ... Git - http://feeds.feedburner.com/Gitcasts CSS - http://feeds.feedburner.com/CSS-Tricks-Screencasts ...

    Any time I need to come up to speed on something programming related (toolkits, utilities, APIs, libraries, ...), I almost always do a Video Search on YouTube and Google Video. I go through the results and download the videos that seem relevant to what I'm doing. Often I tweak the search terms and search again. Doing this brings up tutorials, demos, presentations, tech talks, and a variety of other interesting bits. This greatly adds to what I can gather by looking through the project web-site and forums because it's distilled in a different way.

  5. Keeping up with projects, communities, conventions, meetups ... Ubuntu Developer Videos - http://gdata.youtube.com/feeds/api/users/ubuntudevelopers/uploads?orderby=updated Fedora TV - https://fedorahosted.org/releases/f/e/fedoratv/fedora-tv.xml BSD Conferences - http://gdata.youtube.com/feeds/api/videos?vq=bsdconferences&alt=rss ...

    These are useful to watch because you can see where these projects are going, who's involved, and what they're working on.

I'd love to know what other things people use Miro for. Add your uses in the comments.

Miro 2.0 rc3 released!

I tagged and built Miro 2.0 rc3 builds and placed them in the sticky section of the nightlies page.

Pre-release release notes are at https://develop.participatoryculture.org/trac/democracy/wiki/2.0ReleaseNotes.

Changes since rc2:

  • updated translations as of today

  • bug 11329: decimal value for movie duration is never correct in channel view

  • bug 11327: os x crash, windows error - when selecting item (non-ascii) to share

  • bug 11149: New OSX DMG Background to replace current one

  • bug 11296: 'show more' jumps back to top of list on 'Single Items' and 'New'

  • bug 11322: File "mirofeedupdate.pyc", line 67, in update_finished KeyError: 26

  • bug 11262: python 2.6 support (preliminary and untested)

  • bug 11317: os x - crash after added torrent feed then selecting channel tab.

  • bug 11354: "Global name 'time' is not defined" death on laptop

  • bug 11348: os -x - automatic update failure

  • bug 11357: list view for new tab broken

  • bug 11027: Changing default guide on windows: AttributeError: 'NoneType' object has no attribute 'url'

  • bug 11321: ValueError: I/O operation on closed file

  • bug 6179: Wrong Language (only some work done on this one)

  • bug 11360: os x r9142 - update notification is show release notes text.

  • bug 11362: Dissmising detached external playback dialog freezes Miro

  • OSX crashers and memory leaks

  • probably some other things I’m missing

The new Miro Guide will be launching very soon now. When that's released, the second browser bar you see in Miro will go away.

I've synced translations, so rc3 has the latest translations. I will sync them one more time before we do a release. If you’re a translator, we sure could use your help! See more at https://translations.launchpad.net/democracy.

We think this release candidate is release-worthy. Assuming testers don't hit any snags, there shouldn't be any changes between now and the final Miro 2.0 release. We're planning to follow Miro 2.0 with a 2.0.1 release in the near future to get the most updated translations and to fix minor issues that pop up.

To Ubuntu Hardy and Intrepid users: Some day I’ll get to learning how PPA works. When that happens, we’ll start building release candidate builds for the Ubuntu versions we support. Until then, you’ll have to download the tarball and build it yourself. If someone can spare some time to help us with this, I’d be much obliged.

Barring snags with this release candidate, we're looking at a full on Miro 2.0 release some time in the next few days. Getting really super close now!

Miro 2.0 rc2 released!

I tagged and built Miro 2.0 rc2 builds and placed them in the sticky section of the nightlies page.

Pre-release release notes are at https://develop.participatoryculture.org/trac/democracy/wiki/2.0ReleaseNotes.

Changes since rc1:

  • updated translations as of today

  • bug 11260: hover controls on OSX

  • bug 10552: memory leaks in Windows

  • bug 10299: re-enabled DailyMotion search (but it downloads 80x60 flv files so it still sucks)

  • bug 11269: audio visualisation still present when playing video on Windows

  • bug 11178: interface "hangs" when playing audio files

  • bug 11272: removing folders dialog didn't show information about child feeds

  • bug 11267: errors when searching on OSX

  • bug 11266: videos play on OSX after dragging a video file onto Miro

  • bug 11275, 11301: toolbar for watched folders no longer shows irrelevant functionality

  • bug 11268: fix the save resume time functionality in regards to videos that have finished playback

  • bug 11291: make sure pop in/out label is hidden/shown along with icon

  • probably some other things I'm missing

When we release Miro 2.0, we'll also be releasing a new version of the Miro Guide web-site. Amongst other things, this will remove the second browser bar that you see.

Also, prior to releasing Miro 2.0, I'll sync translations from Launchpad. If you're a translator, we sure could use your help! https://translations.launchpad.net/democracy

There are still some outstanding issues that are blocking Miro 2.0, so we're still working. You can see the existing set of bugs to fix here.

To Ubuntu Hardy and Intrepid users: Some day I'll get to learning how PPA works. When that happens, we'll start building release candidate builds for the Ubuntu versions we support. Until then, you'll have to download the tarball and build it yourself. If someone can spare some time to help us with this, I'd be much obliged.

Almost there!

Miro 2.0 rc1 released!

I built and posted Miro 2.0 rc1 builds in the sticky section of the nightlies page (http://pculture.org/nightlies).

We have a set of pre-release 2.0 release notes that still need updating but are pretty up-to-date at https://develop.participatoryculture.org/trac/democracy/wiki/2.0ReleaseNotes.

Please post any bugs to http://bugzilla.pculture.org/ with the version as 2.0-rc1. Please include as much information as possible. See GoodBugReports for more details.

To put this in some context, this is a HUGE release for us. We've been working hard on Miro 2.0 since May or thereabouts. It's good to get to the end of the development cycle. At the same time, there are things we're leaving on the table that we'll address in future versions.

Last call for translation help--if you're a translator and familiar with Launchpad, we could use your help! https://translations.launchpad.net/democracy.

I want to send a huge thank you for all the people who have contributed to Miro development thus far especially people I've worked with like Alex, Uwe, Keith, Pan, Robbt, Sedat, Lukasz, Arvid, Elmargol, and others.

Also, thank you to my life partner, Sadie, who has put up with me fixing bugs and doing a release candidate on my birthday.

Finally, happy birthday to me! w00t!

Miro needs your translation help! (update 1)

I imported translation updates today. Anything done in since the 22nd should be available in tonight's nightlies.

Since I originally posted this cry for help four days ago, twelve of the languages have been edited.

We now have four completed translations:

  • German

  • Finnish

  • Slovenian

  • Norwegian Nynorsk

Bravo!

We've got five more that are getting close:

  • Norwegian Bokmal

  • Polish

  • French

  • Swedish

  • Spanish

The rest of the languages have more than 100 untranslated strings.

If there's anything I can do to help you out, let me know. If you know anyone else that can help with translations, I sure would appreciate the help!

https://translations.launchpad.net/democracy/trunk/+pots/democracyplayer

Expert Python Programming book review

The story

I, too, was contacted by Packt Press to review Export Python Programming by Tarek Ziadé. I finished reading the book months ago, but didn't get around to writing the review.

Then I saw the review from some person I don't know and the reply from Tarek.

Tarek then went on to work through all the "bugs" and put out a new revision of the book. I still didn't get around to writing a review.

Then I saw Orestis' review. This review is pretty comprehensive. I think it covers a lot of the things I was going to say, so I'll just fill in the gaps.

My short review

The book is pretty good. It's really aggressive in that it's trying to cover a lot of ground and as such some of the chapters don't get very deep. Even so, I think the book does achieve it's mission:

  • it tells Python developers who are unaware of tools that would help them do development in Python what they're missing,

  • it tells them what tools and other things in the Python world fill those gaps,

  • it walks through how to use those things (generally speaking)

There are two things I wish had been different. The first is that every chapter should have ended with a "further reading" section that listed books, magazine articles, urls and other resources that further cover the topic. That would have really helped people the book is targeting.

The other thing I wish had been different is that many of the urls used throughout the book are "fragile": they're really long, have a lot of funky bits in them, and if the owner of that site moves anything around, the url becomes a dead link. I'm not really sure how to fix this, but maybe books should have bit.ly-like links in them that redirect through the book's web-site to the url in question. When the resource at that url goes away, then the book author can change the web-site to summarize what was there or provide a different link.

If you're interested in the book

If you think that's interesting, check out the Tarek's blog entry about the book and sample chapter.

If you still like it, then it's probably worth buying or waiting for Packt Press to send you an email to review it. ;)

Update January 18th, 2021 I wrote this a long time ago. Since then, Tarek and I became co-workers and friends. I also did the tech review for his book Python Microservices Development.