Archive | 2008

Notes from Python Special Interest Group, 17-December-2008

Six folks attended the December meeting of the Python Special Interest Group, held on the irregular third Wednesday in December to allow for the festivities next week. (We normally meet the fourth Thursday, same place, same time.)

There wasn’t a formal agenda, and discussion was first the ice storms of last week and everyone’s power status.

I talked with Bill about setting up my new Sansa player with Rockbox and using gPodder in Fedora10 to sync music. The gPodder Podcast client can sync with using the standard file-based method or by using the Media Transfer Protocol popular in many players. To run with gPodder, I needed to install libMTP and PyMTP (there’s a Python connection!) I also discovered while importing RSS feeds that there’s a bug in Fedora 10’s version of Mark Pilgrim’s awesome feedparser, fairly easy to patch, documented here. It’s an arguable bug; it may be that feedparser throws an error instead of behaving more gracefully when hander RSS that might not be fully valid, in this case apparently a bad Unicode character. Perhaps not fully following Postel’s Law, paraphrased “be conservative in what you do and liberal in what you accept.” Is ignoring malformed Unicode too liberal? A philosophical question, perhaps. I noted that the RSS feed that fails in gPodder and from the Python command line actually passes the tests. Hmm.

Arc had sent a link, “If Languages were Religions,” which included the suggestion, “Python would be Humanism: It’s simple, unrestrictive, and all you need to follow it is common sense. Many of the followers claim to feel relieved from all the burden imposed by other languages, and that they have rediscovered the joy of programming. There are some who say that it is a form of pseudo-code. ” Read the whole post; there are some good ones!

Bill Freeman had an idea he’d like to float for a project to avoid name contention issues, using a naming scheme similar to Java’s com.sun…. namespace for individual projects. Kent dug around in the comp.lang.python archives for some previous threads on the subject to review what had been said on the issue before.

Kent wanted to talk about Python 3.0! Shawn had sent a link to the list for Python porting resources, but wasn’t able to make the meeting. We discussed some of the issues with porting 2.x Python code to Python 3.0 and tested out the 2to3 program. Arc and Matt arrived and joined in the conversation. We first converted the canonical “hello world” program and worked up to Bill’s telephone list program, Arc suggested jinja, and an unpublished project that Kent had been working on involving recognizing human languages, each of which had gradually more and more complex issues. The 2to3 program won’t always make working code, but it does a fine first pass in making all of the well-known changes in converting a 2.x program to 3.0. In running the programs through 2to3 and examining the results, the group had a good discussion about some of the syntax and structural changes in 3.0

Thanks to Bill Sconce for organizing the meeting and bringing the milk, to Janet for the wonderful airplane cookies, to the Amoskeag Business Incubator for providing us with the great facilities and to all for attending and participating.

Rails Launch Checklist

Robby on Rails posts a thoughtful “Launching Ruby on Rails projects, a checklist,” a handy list of things to be thinking of from day one in a project.

Notes from CentraLUG: 1-Dec-2008

Five members attended the December meeting of the Central New Hampshire Linux User Group, one chapter of the Greater New Hampshire Linux User Group, held as usual on the New Hampshire Technical Institute Library Room 146. (Note that there will not be a January meeting at NHTI, as the facility will be on break.)

A good time was had by all. We discussed and demonstrated the new Fedora 10, released on 25-November. Attendees were impressed with the depth and breadth of the Network Manager, version 0.7.0. We reviewed the dialogs with configuration for wireless, wired, broadband mobile (cell), DSL and VPN configurations. Bill Sconce did some Googling and reported that Network Manager, the application, was available for several other desktop managers, including his favorite, Fluxbox.

We also admired the updated “Monitor Resolution Settings” available off the System|Preferences|Hardware|Screen Resolution GNOME menu. In combination with the latest, the interface gave us the ability to detect the projector and adjust the laptop’s screen display and arrange the geometry of the two outputs, either mirroring them or placing them side-by-side or top-to-bottom. Very slick!

We talked about the ease of upgrade: I had Fedora 9 installed on this laptop and used the Fedora-supplied “preupgrade” package to stage the laptop and perform the upgrade very easily. A restart into the new kernel and confirmation that the /etc/fedora-release version was correct, and I was upgraded! I have never seen an easier upgrade in a RedHat-family-based system.

We discussed the challenges in digging up solutions to more complex troubleshooting problems, not Fedora 10 related. Mark talked about a problem it took him months to track down that eventually pointed to remarking out a single module in rc.d. Dave referred us to A.P. where he was able to come up with the magical incantation to correct the timezone settings on an SCO box.

Meanwhile, back at Fedora 10, we looked at the new 3.0 and talked about some of the compelling features in the new version. The ability to edit PDF files was something that generated a lot of interest. Bill pointed out that there is no concept of text flow within a PDF, so while you can correct a typo, you can’t expect the text to be reflowed.

There were questions on OO.o compatibility with other office packages, like MSOffice and WordPerfect. Novell has come out with a translator to read Office-BASIC macros and translate them into’s StarBASIC. Version 3.0 can apparently read the new proprietary Office DOCX documents. We talked about where to find good resources for (suggestions welcomed!). Bill mentioned that Jim Kuzdrall’s presentation on styles (see Sept 20, 2007 for links to notes and slides) was a real help in him getting working. We also mentioned that Solveig Haugland’s blog was a great resource for more information.

Thanks to Bill Sconce for bringing the projector, to all for participating and to the New Hampshire Technical Library for the great facilities. Note that there is no January meeting planned at the moment, but keep an eye out for a February announcement.

Wrestling GenuineJava onto Fedora 10

In order to get access to a client’s VPN, I needed to get their VPN client software installed on my Fedora 10 workstation. Following their basic directions, it was apparent that there was an attempt to run Java in FireFox, and it was failing. Running FireFox from a shell, I could see IcedTea errors. So, I went off for instructions to get Sun’s Java installed.

There were some clues from the, and few promising Google results. The Fedora Project had an FAQ on Java that was a good start. That pointed to with some fairly intricate instructions to download the Sun JDK package and invoke some serious RPM magic on it to turn it into a set of RPM packages that could be installed on Fedora. Once I followed the instructions, the ‘alternatives’ script showed me that Java was installed – hurrah! I tried the VPN install again, but no joy, same IcedTea error messages. Hmm. It turned out that the global Mozilla FireFox plugins, stored in /usr/lib/mozilla/plugins, had two shortcuts: and Running FireFox and examining about:config and searching for plugin told me that Moz should only be using the first one, but that was pointing to the correct place. The second, on the other hand, was pointing to the Iced Tea installation. FireFox’s about:plugins showed me that Iced Tea was still the preferred plugin. I deleted the second,, link and tried it one more time. Yes! Installed. Whew!

Now to get to work…

Notes from October Python SIG: Unit testing and Sphinx

An even dozen (or maybe an odd dozen…) folks attended the October Python Special Interest Group meeting, held as usual on the fourth Thursday of the month at the Amoskeag Business Incubator.

It was a busy and exciting meeting. Vigorous conversations filled the first half hour, as we welcomed a few new members, a few members not seen in a long time, caught up on news and what’s new in the Python world, and made a round of introductions.

Kent S. Johnson presented a new episode of Kent’s Korner, talking about the unit testing facilities available in Python. Python has a couple of options, including a xUnit-clone version and a more Python system in nose. We got into a great discussion on the philosophy of unit-tests, the test-first-fail-code-test cycle, test-driven development, and so forth. It was quite enlightening.

Arc Riley made the second presentation on the Sphinx documentation generator for Python. Arc talked about the history of Python documentation, with docstrings and EPyDoc and ReStructuredText (not to be confused with ReST, Representational State Transfer!). Sphinx seems to be a popular project name these days, as I heard about a different project by the same codename both at the RubySIG and maintainer Patrick Galbraith’s presentation at MonadLUG).

Arc provided us with the slides to his presentation, available on the gnhlug site here.

Links and notes from this meeting and past meetings can be found at Shawn O’Shea’s blog at — thanks, Shawn!

NOTE that the next meeting of PySIG will take place on Wednesday December 17th at the Amoskeag Business Incubator across the hall from our usual meeting room. Hope to see you there!

Thanks to Arc and Kent for great presentations, to Bill and Alex for organizing and running the meetings, to Janet for the incredible cookies, to the Amoskeag Business Incubator for the great facilities, and to all who attended and participated.

SFTP, DropBear on Linksys WRTSL54GS and OpenWrt

For some reason, I couldn’t get this to work the first time through, but perseverance paid off. On our home office LAN, we use the LinkSys WRTSL54GS router. The WRTSL54GS (whew!) is the Storage Link (that means it has a USB connection) version with 802.11 G technology, the standard 54 Mbps wireless protocols, with the SpeedBoost option.

I’ve upgraded the factory-installed firmware with the third-party Open Source firmware OpenWrt. This gives me more capabilities, the ability to tweak lots of settings, and the ability to add on many, many third party applications. You might not think of a little sub-$100 consumer-grade router as a platform for third-party applications, but under the hood this device is a Linux box with a decent CPU, a bit of spare RAM, switches, routers, bridges and USB connections. Thanks to the storage option, you might make your router a file server using Samba or NFS protocols, or an ftp or SFTP server you can use to share files inside the firewall or securely outside of your firewall (if your contract with your upstream provider allows you to run servers; many consumer connections disallow this, unfairly, in my opinion.)

OpenWrt is accessible remotely through telnet (discouraged, as it is not secure), Secure Shell (ssh), and a web interface. There are even third party add-ons to created an enhanced web interface (WebIf2) with a built-in package manager, usage graphs that update live, and more.

This week’s project was to get the storage working. I was under a misunderstanding that disk sharing had been broken in the version of OpenWrt (White Russian) that I’m using, but a CentraLUG meeting earlier this year, presenter Bruce Dawson showed off one of his LinkSys machines with disk storage working, so I was encouraged to give it another try. Following the instructions at the OpenWrt wiki for USBStorage and SFTP, I was up and running pretty quickly. Nifty!

This is pretty cool. In slightly less geeky terms, this gives me the ability to transfer files to our home office LAN from anywhere on the Internet without having to keep any of the machines in the office running, just the router itself and a USB flash drive hanging off it.

Fedora 10 “Cambridge” ships!

Last Wednesday, just in time to give thanks, the five-year-old Fedora Project released their 10th version, code-named Cambridge. Fedora 10 has all the latest goodies: a very improved wireless networking tool, far better Java support, and a slew of features they list here. I was very impressed with the new version upgrade features: I was able to download a single “pre-upgrade” package and run it to convert my Fedora 9 installation on my ThinkPad T61 to a Fedora 10. Over at the Linux Format website, Andy Hudson reviews the new release and concludes, “If you’ve not tried Fedora, or have moved away from it in the past then you should definitely take a look…”

Jump on the bandwagon and check out the new Fedora 10 here

Electrician’s Mate “A” School class 8017-B

U.S. Navy Electrician's Mate "A" School class 8017-BA fellow LinkedIn member asked me recently if we’d gone to Electrian’s school together, as we’d graduated in the same class from Naval Nuclear Power School. I didn’t recall his name, but it prompted me to dig around in the archives and pull up this photo. (clicking the picture will yield a 1.2 Mb PNG)

Getting Stuff Organized

This next month, I’ll be flipping the calendar page to 2009 to schedule the next month’s work. I’ve been using a “desk-size” Day Runner – 5½” x 8½”, conveniently half a US Letter sized sheet – for fifteen years. I’ve got one of the older 3-ring models, and lots of the cool accessories: zip pouches, business card holders, etc., but I’ve bought the calendar refills each year. I’ve also printed some pages for myself: some grid pages using DOS-characters and FoxPro/DOS, dumps of my contacts, etc. But I’ve kept DayTimer and other vendors busy printing.

This year, I came across a great site,, with some great templates to use. The host developed a set of templates, now up to version 3.0, released under Creative Commons, an nearly 80 pages of clever templates. Many other have contributed templates, graphics, word processing documents and executables to generate some really professionally-finished pages. Supporters of Getting Things Done, Hipster, the Covey plans and the other organizing techniques seem to be getting along pretty civilly, and have posted a number of interesting articles. If you’re a fan of systematic ways of doing things (and that seems to be a common trait amongst the computer nerds), check out

Webpages should accomodate the viewer gracefully.

I regularly run my FireFox browser with JavaScript disabled, using the great NoScript plugin. Keeping JavaScript disabled by default protects me, a little, from malicious sites. “Malicious sites” used to be a codeword for “sites you shouldn’t visit anyway,” but all sites need to be considered malicious, owned by bad guys, until you have a good reason to believe otherwise. Ad networks have accepted ad content containing malware. It happens. Bad guys figure out how to inject code into comments on legitimate sites. And phishing emails are getting so believable that everyone’s going to get caught once in a while. A first visit to a linked web site should let me examine the HTML and the page and decide if this is a site I’d like to trust. Websites that just dump me on a blank page with a disabled Flash animation FAIL.

Sites need to understand there’s good reasons for a client having their JavaScript turned off, and downgrade their presentation gracefully. For example, the site tells me, “IMPORTANT ! This website requires JavaScript support for proper operation. It appears that your browser does not have this feature enabled. Click here for more information and assistance.” Well done. Proctor and Gamble’s site, on the other hand, hangs for 10 seconds at a blank page, and then takes me to a generic page (using a NOSCRIPT tag and redirect) telling me “ is best viewed on Netscape or Internet Explorer version 4 or above. To ensure our Web site works on your system, please upgrade your browser…” Oh, puhleez! Wrong in so many ways.

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.