Author Archive | Ted Roche

Recommendations for FOSS podcatcher?

I listen to audiocasts (I don’t have a *pod, and don’t agree with the brand implications. Since I listen on my ThinkPad, they’re PadCasts for me. Let’s say “audiocast” or we could be really retro about it and refer to them as “audio recordings” since they’re neither cast nor podded.) while working out and go through quite a few. The Conversations Network has been a great source for these: IT Conversations in particular. Phil Windley’s Technometria is one I try to catch each weekly episode. Other features, like David Heinemeier Hansson’s keynote at the 2007 RailsConf or Tim’ O’Reilly’s keynote as OSCON are other favorites. There’s lots of other good stuff on Coversations Network, so much so that I’ve contributed to the network, a non-profit 501(c)(3) organization.

But there are other, far smaller operations. I met Peter Nikolaidis through the Dartmouth Lake Sunapee Linux User Group, and he does an audiocast called “Fresh Ubuntu” with a fellow from the west coast named Harlem, a man with a voice for radio. An interesting show with contributions from many others, too, focused on Ubuntu, but ranging over many of the topics involving Open Source.

I like to keep up with all of these audiocasts (and would welcome more recommendations from others!), but it involves manually visiting the web site, checking to figure out if I’ve heard the audiocast already, and downloading it. I’m looking for an automated way of doing this.

I was (and still am!) a regular subscriber to Dave Winer’s Scripting News, and listened to his first audio enclosure (imagine that!) in his RSS feed, accessible directly through the Radio Userland built in feed reader. Since then, I’ve changed hardware a few times, operating systems at least twice, and feed reader software more times than I can recall. I’m looking for an application I can run from my Linux desktop that will regularly check the RSS feeds put out by the audicasting sites and download the new audiocasts of interests. Bonus points if the software is under a FOSS license, +1 for efficient and frugal resource use, cool interfaces, etc.

One recommendation off the Conversations Network is labeled iPodder, but points to JuiceReceiver, which doesn’t “yet” have a Linux port, despite being written in Python. It seems like there are close relatives to this code in CastPodder and IcePodder, but it’s not clear to me which of any of these projects is alive, well and legitimate. It appears to me that IcePodder has roots in the others, with directories still named iPodder (likely renamed due to near trademark infringement of a well-known player?) and a CastPodder manual buried in the download, dated 2005. (Here’s a clue: IcePodder’s About page says “IcePodder is a podcatcher (RSS client) for Linux conceived as a replacement for CastPodder. ” So my guess is that iPodder begat JuiceReceiver begat CastPodder begat IcePodder. Whether or not I’m on the “right” branch is something that a little more research ought to bring to light. (Update: a little Googling confirms the theory, and it appears to be pretty amicable.)

IcePodder was an easy install: download, unpackage, review the README and INSTALL, review and run the install.sh script. Written in Python, using wxWidgets for UI, GPL. A little shaky in operation – I’ve crashed it once or twice, but I’m running the old “stable” release rather than the current code, so I should upgrade before passing judgement. The code needs some serious search-and-replace s/CastPodder/IcePodder/g but it looks pretty promising. Anyone else have recommendations?

UPDATE: gPodder also looks promising. Don’t let the version 0.10 fool you – apparantly, that’s the version after 0.9, according to the developers…

Retro-tagging a WordPress blog

I’ve got a WordPress blog with a couple thousand posts, upgraded several times, from a TWiki blog to a Radio Userland blog to WordPress and a couple of upgrades. And I’d like to add the new taggin features available in WordPress 2.3. Here’s what I’ve figured out from poking around: what used to be wp_category is now wp_terms and terms contains both categories and tags. The categories are hierarchical from a self-join using the group column to link back into the term’s term_id primary key. wp_terms in turn links into wp_term_taxonomy: that’s got a column named taxonomy that contains groups like ‘category’ and ‘link_tag’ and a parent column that self links into term_id, which I think is a duplication of what wp_terms is doing. There’s also a count field, meaning that we’re denormalizing the count of categories and tags, meaning if we hack at them, we’ll need to manually update this (see below). Finally, the posts are related to categories and tags using the table wp_term_relationships that’s a many-to-many link from the post’s primary key, object_id, to the term_taxonomy_id primary key of the wp_term_taxonomy table.

So, here’s the recipe to retrofit tags into some posts. I used phpMyAdmin as the web interface into the MySQL table that holds WordPress’ data. You can do the same via the mysql terminal interface or using other remote connectivity like ODBC or your choice of tools.

1. Create or update a tag in the wp_terms table. Note the term_id PK.
2. Insert the term_id and category of ‘post_tag’ into the wp_term_taxonomy table.
3. Create the linking records in wp_term_relationships with the following SQL. In this case, I’m tagging with “Ruby” any post that has “Ruby” in the title or post.

INSERT INTO wp_term_relationships
SELECT wpp.id object_id, `term_taxonomy_id`
FROM wp_posts wpp, `wp_term_taxonomy` wptt
JOIN wp_terms wpt ON wptt.term_id=wpt.term_id
WHERE wpt.name='Ruby'
AND wptt.taxonomy='post_tag'
AND (wpp.post_content LIKE '%Ruby%'
OR wpp.post_title LIKE '%Ruby%' )
ON DUPLICATE KEY UPDATE
wp_term_relationships.term_taxonomy_id=
wp_term_relationships.term_taxonomy_id

(The ON DUPLICATE code is just a quick hack to tell MySQL to ignore it if you’ve already tagged some posts Ruby by hand.)

4. Hack away. When you’re all done, you’ll want to fix the count in the table with the code below:

UPDATE wp_term_taxonomy wptt
SET wptt.count=
(SELECT count(*)
FROM wp_term_relationships wptr
WHERE wptr.term_taxonomy_id = wptt.term_taxonomy_id
GROUP BY term_taxonomy_id)

Fedora 8 Everything Spin Released! — Fedora Unity Project

The Fedora Unity Project announces Fedora 8 Everything Spin Released!: “The Fedora Unity Project is proud to announce the release of new spin, the Everything Spin. Included in this spin are all the packages available at the time Fedora 8 was released.”

A neat feature of recent ( 7 & 8 ) Fedora releases is the ability to create your own derivative distributions based on the tools supplied with the package. This allows the LiveCD and LiveUSB features I mentioned earlier, and allows independent groups to create specialized disk images (“spins” in their inside chatter) to meet specific needs, in this case, a set of CDs for those who don’t have a DVD handy. I ran into this situation recently with a customer who had chosen to economize on his server specifications by cutting out a DVD that was likely to be used only a few times over the lifetime of the hardware. It’s cool that the Fedora build process has been made public and the tools to do this added to the distro itself.

Comment is free: Space cadets

Dan Kennedy writes in Comment is free: Space cadets, “Is seeing a UFO any more crazy than believing God created the universe in six days? It is if you are running to be president of the United States.” Go, Dan!

I have seen things in the skies I could not identify. I’ve seen meteors and comets and planets and even satellites I could identify, but I’m not an expert in astronomics nor aeronautics, so I have seen objects that may have been flying that I could not identify. I haven’t seen Elvis, and I haven’t communicated with little green men. That’s crazy talk. Which is crazier: Charles Darwin or X-Files? I’ve got that all sorted out, thanks.

Red Hat Magazine | I am Fedora, and so can you!

Max Spevack, the benevolent dictator in charge of herding cats for the Fedora project, doesn’t announce the official release of Fedora 8 today in his posting, I am Fedora, and so can you! in Red Hat Magazine, but it’s out there. (His post is actually a great HOWTO on running Fedora off a USB memory stick, neat trick that that is!) Find the bittorrents and conventional downloads at http://fedoraproject.org/get-fedora and hop aboard. I run Fedora, and so can you!

Slide presentations: S5 and Google Present

I’ve mentioned and endorsed S5 (the Simple Standards-based Slide Show System, if memory serves) before, as a great way to write a presentation, and at the same time generate slides, handouts and the HTML to post it to the internet, all as the same set of documents. Creating a set of slides in S5 means I don’t have to worry if the machine at the presentation site has a ‘viewer’ as long as they can read standard XHTML and run Javascript. I can post it directly to my web site archive of shows, and carry it on a USB tab in case my laptop decides not to work.

Google has recently announced Google Present as part of their free Google Apps. It’s a pretty cool AJAXy interface familiar to anyone who’s worked with one the many slide programs. One killer feature is that it will import PowerPoint files, even some of the ugly old ones. You can publish them online as I’ve done here with a Y2K presentation from the dFPUG Conference. The import came over with pretty good fidelity, far better than the original HTML export that PowerPoint 9 attempted. So far, so good. But what happens if you’re planning on doing a presentation and can’t trust the internet will be available (important safety tip here, folks: you can’t trust the internet to be available. Murphy has a special place in his heart for presentations)? Even better news: Google Apps also lets you download a copy of this. It comes down as a ZIP file, handy to throw on a USB tab (you should save an unzipped copy, too) and put in a different bag than the one that holds your laptop. It unZIPs to an HTML file and a couple folders holding the CSS, JavaScript, images and supporting files to run the show and runs from a local disk. You could upload this version to your web site, too, and look what you get: a slick slideshow with slides, fonts and graphics that scale to size of the screen (essential when you discover the projector can only handle 800×600!) and redraw pretty snappily.

Finally, S5 has a competitor! This one looks promising.

Max Spevack: FC6 end of life is December 7

Max Spevack blogs fedora core 6 end of life is december 7:

Those of you who dont read the fedora-devel-announce list but who do read Fedora Planet will probably be interested in this reminder: Fedora 8 will be released on Thursday November 8th, 2007. According to our policy of “supporting release X until one month after release X 2”, Fedora Core 6s end of life date will be Friday December 7th, 2007. Fedora Core 6 Zod was released on October 24th, 2006. Its total supported lifespan will end up being 13.5 months. Fedora 7 will be supported until about 1 month after Fedora 9 is released.

This is the Paradox of Change: we want our software to evolve, keep moving forward, improving, but we hate the costs of upkeep. Backup, reinstall, reconfigure, restore, tweak, update, etc. is a long process, though worthwhile. Bear in mind that this is fedora’s legacy: it’s for folks who like to surf the cutting edge, at the cost of flatten-and-restore. If you want more stable choices, there are many, at the cost of not getting to play with (and risk getting cut on the sharp edges of) the latest stuff.

Someone at last Thursday’s LUG meeting asked about the feasibility of upgrading an Ubuntu install done “middle of last year” with the latest 7.10 release, and the folks were skeptical, at best. I recently tried an in-place upgrade of 7.04 to 7.10, but that was a pretty clean and fresh install and it went well. Others have not been so fortunate. The best practices of Freemanizing™ a machine (backup, format, install from scratch, clean installs of new versions, copy over data, preferences, scripts and settings) still has some merit, I think.

Happy Halloween

Free Software Foundation - click for more info!

Treats this year included getting some of my annual charitable contributions done before the 31st of December. A new contribution this year was to become a member of the Free Software Foundation, the group responsible for the GNU Public License, along with many other good works. Help them to help you. I did.

MonadLUG notes, 11-October-2007: Ben Scott and DNS

Late post: a great meeting Thursday night the 11th of October: thirteen people made it to the October meeting of the Monadnock Area Linux User Group, held as usual at the SAU #1 offices in Peterborough on the second Thursday at 7 PM. Thanks to Ken for sponsoring us at the offices, and dealing diplomatically with the double-booking of the space.

Ben had a little trouble finding the place, after a long, long drive from Dover. We forgot to mention in the driving directions which of the dozens of “Use other door” doors the meeting was held behind, so Ben had to find the Boy Scout meeting and the girls volleyball practices before finding us. Charlie promised to update the directions.

Nonplussed by all of this, Ben gave a great presentation on DNS, reprising his previous presentations. He’d replaced the MagicPoint presentation with S5, and had a few technical issues with getting it to behave, but persevered. I expect we’ll see an update to the slides on:

http://wiki.gnhlug.org/twiki2/bin/view/Www/PresentDNS

But the other files there (bind configuration files, sample inside and external zone files, etc.) should be relevant.

Ben gave a great overview of the Domain Name System and how it works from several client OSes, how the trail of DNS queries is processed, the structure of zone files, the structure of the BIND configuration files, and many of the common misconfigurations that lead to errors or just quiet failures.

It was a meeting well worth attending. Thanks to Ben for efforts above and beyond, to Charlie for hosting and managing the meeting, and to Ken and the SAU#1 offices for providing the facilities.

PySIG notes, 25-Oct-2007, Kent Johnson and Beautiful Soup sprint

Thirteen people elected to skip watching the second game of the World Series (Go Sox!) to attend the October meeting of the Python Special Interest Group (PySIG), held as usual at the Amoskeag Business Incubator in Manchester, New Hampshire, on the fourth Thursday of the month, 7 PM until… well, 10 PM last night!

The usual slew of announcements was made: the PySIG won’t meet on the usual night due to the Thanksgiving holiday. A meeting might happen the week after, since there are five Thursdays. Stay tuned for the official announcement. Other affiliated GNHLUG meetings are posted to http://www.gnhlug.org and all are welcome.

I had proposed a programming challenge to PySIG: following recent discussions on the GNHLUG mailing lists about attendance at meetings, Jim Kuzdrall had suggested we more closely analyze the attendance data that’s been posted to the GNHLUG wiki [1] for the past two years or so. The data is accessible from there, but the HTML format is not too easy to manipulate into an analyze-able format.

Enter BeautifulSoup. BS is a utility written in Python that parses HTML, with a lot of toleration for somewhat malformed HTML, and produces a parsed tree that can be traversed or queried or parsed into its various elements. Kent S Johnson continued his great Kent’s Korner series with a presentation on the basics of using BeautifulSoup. Kent noted that the documentation on BS is remarkably good, with illustrative examples and exhaustive discussions. BS is in its third major version and continues to be supported by its original author.

After Kent’s Korner, Bill Sconce took the driver’s seat, set up BS on his machine and we began with the kernel of source Kent had supplied to parse the source. The group participated, suggested, yelled at typos, experimented, threw out code, started over, changed the angle of attack, and successfully produced code that not only parsed the existing page, but generated a comma-separated-value file with proper escaping, thanks to the csv module. Along the way, we discussed issued of character conversion (since BS uses the aptly-named UnicodeDammit module and csv wants ASCII), escaping issues, coding styles, and more.

At the end of the presentation, Kent got the projector again to show a somewhat different tack he had used to parse the HTML, with an emphasis on writing small functions to clean each column of the idiosyncracies found in the data (a “Saturday” in the date field, a date field a two-day event, approximated attendance ~24 and so forth) and generate some results: which groups had the highest attendance for the year? No one was surprised that Nashua/MerriLUG was #1, but who knew that PySIG was #2? Woo-hoo! We noted that RubySIG was last, but there’s a good sampling problem: they had just started up early in the year, and a couple attendance figures were missing.

To follow up from the meeting, we intended to merge Kent’s improvements into the group’s code and generate some CSV files that we can make available for download from the GNHLUG wiki for all to analyze, graph, visualize and study.

Thanks to Kent for preparing his Beautiful Soup presentation, to Bill Sconce and Alex Hewitt for arranging the meeting, to Bill again for having the patience to type while twelve people tsk’d at him, to the Amoskeag Business Incubator for providing the fine facilities, and to all for attending and vigorously participating in the meeting!

[1] which actually breaks down to:
http://wiki.gnhlug.org/twiki2/bin/view/Www/PastEvents2007,
http://wiki.gnhlug.org/twiki2/bin/view/Www/PastEvents2006, and
http://wiki.gnhlug.org/twiki2/bin/view/Www/PastEvents2005

Adding a “skin=print.pattern” eliminates some of the “chrome”
surrounding the content.

Powered by WordPress. Designed by Woo Themes

This work by Ted Roche is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States.