Archive | Home Page

Articles to appear on the home page (nearly all)

CentraLUG, 6 July 2009: Philip Sbrogna, WINE

WINE may or may not stand for “WINE Is Not an Emulator;” you might consider coming to the meeting to find out.

The July meeting of the Central New Hampshire Linux User Group, CentraLUG, will happen on the usual first Monday of the month, starting at 7 PM at the Hopkinton Public Library’s Community Room. Gather for Q&A and informal chat at 6:30.

Philip Sbrogna, an activist with the Monadnock Linux User Group, MonadLUG, will be presenting WINE. Philip got his start in the field of computers programming games for early microcomputers in ’79 after which he spent some time on mini’s at DEC. After an intermission on submarines he returned to the world of corporate computing where his daily fare at a small southern NH company provides him some opportunity to do the DB & Web dev thing. Personal interests include optimizing algorithms & innovative datastructures; particularly NXDs. He’s been a Linux enthusiast since switching from Coherent to Slackware in ’94.

Learn more about running Windows programs under Linux natively (Ubuntu Jaunty for presentation). Talk will include architectural overview & practical demonstration of what works and what doesn’t. Bring your favorite Window program along to see how it fares.

Note this meeting is at the Hopkinton Public Library 61 Houston Drive, Hopkinton/Contoocook, NH. Google map here. (Also, if you are coming from the southwest on route 202/9, the route 127 road over the Hopkinton Dam is once again open after a long repair closure.)

No CentraLUG meeting tonight

I had no luck in securing an alternate location in time to advertise the Central NH Linux User Group meeting that usually meets the first Monday of the month, and so have canceled the meeting. Please join us in July on July 6th at the Hopkinton Public Library when Philip Sbrogna will make a presentation on Wine, the Windows runtime environment for Linux.

Tonight, MonadLUG (new location): Tim Wessels, Kablink

If it’s Thursday, it’s LUG-Day. Tonight: Tim Wessels demos Kablink open collaboration at MonadLUG: – note unusual location.

Kablink looks promising: a synchronizing folder feature, document management, and conferencing software. It appears to be (or have been) the Open Source version of Novell’s SiteScape, at least a portion of which came from the 2008 acquisition of SiteScape, Inc., a company that traces its roots back to Clock Tower Place in Maynard, Massachusetts and the Alta Vista folks.

Looking forward to the presentation!

New Hampshire’s UNIX license plate

David Brooks posts a teaser for an article coming up in Sunday’s Nashua Telegraph on maddog’s UNIX license plate:

NH Ruby Group meeting video from 30-April-2009

Thanks to Tim Golden for arranging a WebEx recording of our meeting last Thursday. It’s nowhere near as good as being there, but it does leave more pizza for the rest of us!

See my notes from the meeting, here.

Notes from NH Ruby presentation, 30-April-2009

Fourteen attendees made it to the NH Ruby / Rails group meeting on Thursday, April 30th. We met on the 5th Thursday of the month, unlike our regular third Thursday (note that the next meeting is on May 21st, our regular night) at RMC Research in Portsmouth, thanks to host Tim Golden.

We did the usual round of introductions. NH Ruby attracts a great mix of people: beginners, experts, professionals, hobbyists, computer people, engineers. We had two presentations — Russ Jones on state machines, and Nick Quaranto on Git — as well as pizza provided by organizer Nick Plante and announcements and discussions from all.

Russ Jones is an independent contractor (as “codeofficer“) and has been working in Rails for some time. His presentation was on state machines. Russ has presented before, speaking on Design Patterns in Portland for the Maine Ruby User Group. Russ admits he was a more of a skript kiddie in PHP, getting code to work, but is taking a more serious engineering angle to his work on Ruby. See Russ’s slides here. We reviewed the definition of state machine from wikipedia, formal and correct, but Russ prefers a simpler one: a machine serves as a container for states, and supports the events and transitions between states. Typically implemented as the supporting structure for a single attribute of an object, ex: states could be “draft,” “reviewed,” “approved,” published,” “destroyed.” Attributes are most often a string. Events are often exposed as methods and have “guards” that could be used to validate and/or nullify an event, log it, or trigger afterwards. Two most common implementations are State Machine and Acts As State Machine — the first is a Ruby plugin, the second originally Rails code, migrated into a gem. Russ showed us an example code of a class “Light” that has a state machine to store “intensity” and an event “switch.” Showed another example from the State Machine docs of an auto transmission.

Russ switched to Safari and TextMate at this point, and showed us a hand-coded CMS used for publishing items to the web. The Admin module has the ability to change the state (submitted, reviewed, approved, published, rejected, spam) of submitted articles. Digging into the code, he shows us he was using two Listable and Statusable mixins as separate modules as his primary posting entities – Jobs, Events, Classifieds, etc. — share these behaviors, but not all their attributes. State Machine also includes a link into graphviz that generates diagrams of state transitions, great for documentation. His final example was a command-line driven simulation of the states of his motorcyle, from off to idle to 1st, 2nd, 3rd, crash and repair states! An excellent presentation with clear examples!

Nick Quaranto is in a 5-year Software Engineering program at RIT and is interning this semester at Boston-based Thoughtbot. He blogs at and can be found on twitter and github as qrush. Nick’s slides can be viewed and download at While Nick’s presentation was all-slides, it wasn’t fluff: he packed a lot of heavy concepts and pushed through a lot of material pretty quickly and clearly. I think Nick made a fair assumption that most of the people in the room should have the basic concepts of source code control down, and dove right into the material. So, we got a brief introduction to the basics followed by some intensive work on forking, branches and rebasing. I found this to be a very useful presentation and took lots of great notes for future reference. Also, note there is a “Learn More” slide near the end of Nick’s presentation with a couple of very useful links.

Thanks to Russ and Nick for great presentations, to (the other) Nick for organizing and publicizing the meeting, to Tim and RMC Research for hosting and to all for attending and participating. Next meeting is scheduled for May 21st, same location, topic TBA. Hope to see you there!

Notes from DLSLUG, 2-April-2009: Nifties!

“Nifties!” are the name for the Dartmouth-Lake Sunapee Linux User Group meeting nights when a featured speaker can’t be found: the Users of the Group make short presentations to each other, hopefully eliciting the “Nifty!” response.

I spoke on my work with Nick Plante and Brian Turnbull starting a business to host a coworking site in Portsmouth, NH with several of the folks there before the meeting started. We had some insightful discussions on the terminology of commercial space leasing, and the intricacies and politics of finding the right spot to start a business.

Rich Brown of Dartware talked about Dojo, the javascript library, and a book he borrowed from the DLSLUG library. (see below for more)

Lloyd Kvam presented his book report on the Google Apps books. Google Apps allows a small business or group to buy a domain, register it with Google Apps. We shared experiences of setting up domains in Google Apps.

Then we realized the meeting was actually next door in L02 rather than L01, not the first time we’ve gotten the wrong room, so we moved over and caught the end of a presentation. Then Bill McGonigle showed how ejabberd was set up with Red Hat – family user accounts (Pluggable Authentication Module – PAM) to which he contributed some code.

Richard Brittain ( showed a ksh script to kill a subprocess after a specified timout and another script that would check a path (checkpath.ksh) and remove all the cruft that builds up as software is added and removed, machines appear and disappear, etc.

Rich Brown of Dartware presented his Dojo report again. Rich needed a simple web page that would let his clients enter in several key pieces of information in a form and from that data generate a configuration file in a specific format. Eventually, he realized a prebuilt library of JavaScript could do a better job, he worked with Dojo and realized he needed a reference. He borrowed the Dojo book from the DLSLUG library. While there were a few frustrations, overall he was pleased with the content of the book, it’s organization, clean examples and good indexing. The book didn’t have a good description of how the CDN supplied JS libraries can be downloaded over the web quicker and in the correct forms and versions; he ran into a race condition that took a while to debug. The Dojo book covers 1.1 while he was working with 1.2, may even be up to 1.3 by now, always a problem with letting the ink dry.

Parker (I didn’t catch his last name) posted a blog entry that was spurred on by trying to make a copy of document, but the machine was eating dollars, so scanned to his email address and sent it to himself: nine pdfs in nine pages. The Dartmouth facilities wisely try to minimize the waste of paper with something called “GreenPrint” but the implementation leaves something to be desired, especially for folks running Linux. He searched around and found a command line to concatenate the documents together into one PDF for faster printing and management.

Ten folks made it to the meeting, and I have no doubt everyone learned something; a great result!

Updated tedsriver to planetfoxpro

Many years ago, I cobbled together the Planet feed aggregator to host a page of FoxPro posts on my website, called ‘tedsriver.’ It was primarily an experiment in using Planet and was pretty much a quick hack. Well, it’s turned out a number of people are following the postings there, and the Planet software hasn’t kept up. Over the weekend, I updated from Planet to Venus (cute, eh?) that Sam Ruby and a number of others are maintaining, and cleared out a bunch of errors from blogs that had moved. I’ve also moved the URL to be a bit more descriptive:

If you know of other FoxPro blogs that should be included on the list, please don’t hesitate to let me know and I’ll add them!

Notes from NH Ruby/Rails Group, 19-February-2009: Josh Nichols, Jeweler, Brian Turnbull, Rails 2.3

The New Hampshire Ruby / Rails group met as usual at the RMC Research offices in Portsmouth. Thirteen people attended the meeting, a suspicious number of them from Maine. We started, as we often do, with a round of introductions.

Josh Nichols presented RubyGems and You. A former Java developer, started working with Ruby about two years ago, got a “real” Ruby job about 6 months ago, laid off 2 months ago, currently “employment independent.” Josh presented an excellent overview of how gems work, how they fit into the logic of Rails apps, how they are distinguished from plugins, and how gems can be created. He went on to talk about the two primary repositories, RubyForge and GitHub, and talked about the benifits and liabilities of each. This was all pretty much background for his presentation of Jeweler, a set of scripts that can generate the framework needed to build a gem, with support for pushing it directly up onto GitHub, automating the bumping of version numbers (patch, minor and major versions). Josh made a very clear presentation of the skeletal files that were created and touched on issues with RSpec testing, rake scripts, how to tie in library paths, vendor-izing your gems. Whew! A great amount of material covered quickly and well. Thanks, Josh!

Brian Turnbull did a presentation on the new features of Rails 2.3: Engines, nested transactions, nested forms, nested attributes, dynamic and default scope, other changes (multiple conditions for callbacks, HTTP digest authentication, lazy loaded sessions, localized views, and more!)

Brian then did a short presentation on Rails Metal. Metal runs on top of Rack, and is a tool you turn to when the full Rails stack is too complex or too slow. There was some interesting discussion on how Metal can fit into the calling stack, short-circuiting calls that didn’t need the full Rails process.

Demo version:

You can view their slides via SlideShare and also view a WebEx video of the event (see the post’s comments) at

Thanks to Josh for the trip up from Boston and the great presentation. Thanks to Brian for two cool presentations. Thanks to Tim Golden and our hosts at RMC Research for the great facilities and for broadcasting the presentation via WebEx this month. Thanks to Nick for herding the cats and ordering the pizza and making the announcements and giving away a couple of cool O’Reilly books. Thanks to all for attending and participating!

Next month: Ted Roche presents an introduction to Cascading Style Sheets, Nick Plante presents Sinatra. Hope to see you there!

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.