Author Archive | Ted Roche

Happy Birthday, iMac


My iMac is celebrating its 10th birthday today. Laura and I purchased the machine on 2/3/4 and were immediately enchanted. Here’s the launch video with Jonny Ives, Phil Schiller, Annie Leibovitz, Seal, Francis Ford Coppola and a great soundtrack:

That was great, and I loved the commercials, too:

While the iMac is no longer safe to keep attached to the internet (its Power PC CPU limits it to OS X 10.4), the machine still serves in a place of honor in the workout room, powering videos and music for our workouts and serving as a backup DVD burner.

Notes from Web Dev Meetup, 22-Jan-2014

There was a packed house, as usual, for the January meetup of the Web Dev group, held at the AlphaLoft coworking space. After the usual announcements by organizer and AlphaLoft proprietor Josh Cyr, there were three lightning presentations:

  1. Open Source Software: an excellent overview of the concerns developers should have about Open Source Software and the processes they should be doing. Introduced by Matt Jacobs of Acentage Law, PLLC, the main presentation was by Matthew Jacobs, General Counsel of Black Duck Software, Inc. Mr. Jacobs included a copy of his white paper, “The Talk: What a General Counsel Needs To Know About Open Source Software” also available on the Black Duck Software web site.
  2. Blogging with the Ghost blogging platform. Sean Baker blogs at web site using Ghost software. Sean was very intrigued with the new business model adopted by Ghost founder John O’Nolan and the non-profit business model he set up for Ghost. Ghost appears to be a minimal product (in the good, lean sense) focused on blogging alone, and avoiding the complexities of morphing into a Content-Management-System-To-Rule-Them-All.
  3. Elastic Search, presented by Nick Plante. Elastic Search is technology based on Lucene. Nick moved from Solr to Elastic. [Side note: the right time to use MongoDB: never.]  Elastic Search is used by some of the big guns: Etsy, GitHub, Path, Foursquare, since 2010. It’s all JSON, all the time, so you avoid the bottlenecks of interfaces and impedance mismatches of query languages, object models, etc. It supports excellent horizontal scaling: hand it hosts, and it creates shards across them. It has excellent tokenizers  built-in, since it is based on Lucene. Nick suggests avoiding NIH syndrome by searching for tokenizers before taking the DIY route: it’s probably already out there: tokenizers are available for strings, numerics, arrays, stemming, synonyms and more.

Thanks to Josh for organizing and all the speakers for putting together coherent and informative presentations.

Notes from Seacoast WordPress Meetup, 29-Jan-2014

Official WordPress Logo, see


The Seacoast WordPress group had a second Meetup in January, with a dozen in attendance. That leaves February free for our alternate organizer, Eric, to kick off the debut meeting of the ‘Users’ meeting. The intent is to make the group more inclusive by holding two meetings most months, one focused on developers, talking PHP and CSS3 and Javascript and plugin and theme development and geekier stuff, and second meeting focused on users, talking about managing sites, hosting issues, finding plugins and designing sites, more on using WordPress than tinkering under the hood. I’m sure there will be a lot of overlap between meetings, and I’m looking forward to seeing how this works out.

We continued our series on HTML5/CSS3 features last night, with a number of speakers taking turns showing off new capabilities of HTML and talking about how they could be integrated into WordPress or might already be in your favorite theme, or if there were incompatibility issues (did anyone say “Internet Explorer?”) and whether there were work-arounds.

Jacqui talked about the new semantic tags of <header>, <footer>, <nav>, <section>, <article>, <aside> and <main> and also on media queries. There’s enough materials in either of those two topics for an entire meeting! I spoke on data entry: placeholders, required attributes, data types and the output tag. Andy talked about <audio>, <video>, <canvas>, <progress>, <meter>, <details> and <figure>. Amanda showed the <datalist> feature and the related CSS of animations, transformations and transitions.

There was a lot of material, and I’m looking forward to finding some spare time to play with many of the features I saw demonstrated.

Several more presentations were at the ready, and we’ll be looking forward to David and Kevin next meeting. Developers will likely get together on March 5th, the first Wednesday meeting. The kick-off users meeting will be held in February. Please join the Meetup group to keep up to date on the details.

Web Forms 2.0

HTML5 Powered with Semantics

At tomorrow’s Seacoast WordPress meeting, we’ll be doing a round-robin session where many attendees have volunteered to do short presentations on what’s new in HTML5. I’ll be covering the “features previously known as Web Forms 2.0” especially placeholder, required, autocomplete and the new Input types and output fields.
The best resources I’ve found are the WHATWG reference on forms and the CanIUse web page and the jQueryUI pages and plugin pages.

Ted Roche awarded FoxPro Lifetime Achievement Award

Picture of the Lifetime Achievement Award

FoxPro Lifetime Achievement Award

At the Southwest Fox 2013 conference, held in Gilbert, Arizona on October of 2013, I was awarded the FoxPro Lifetime Achievement Award. I am honored and humbled to recognized by the FoxPro community, a group of developers I hold in high esteem.

Sadly, I wasn’t able to attend the conference, but the keynote was live streamed and recorded at

I join an impressive group of people. All the award winners are listed in our equivalent of the FoxPro Hall of Fame here on the Fox wiki:


CentOS joins Red Hat

Well! This is quite a development. The CentOS group has announced that they have joined Red Hat. It will take some time to sort out exactly what that means. In short form and somewhat inaccurately, CentOS is/was a free (as in beer, as in speech) distribution of Linux built on the free (as in speech, not in beer) distribution of Red Hat. The Red Hat distribution was typically packaged up and only available as part of an annual support arrangement with Red Hat. The source is freely-available, and the CentOS group used that source, removing the proprietary Red Hat trademarks and logos, and distributed the source freely. Red Hat has been focused on delivering reliable enterprise-grade software, and hasn’t really be targeted to small- and medium-sized businesses such as mine nor my clients. CentOS has been my distro-of-choice for my servers for in-house development, on-site client services, and data-center-hosted services.

Now, the CentOS group has announced that they have “joined forces” with Red Hat. It will be interesting to see how this plays how, and how the roles of Red Hat Enterprise Linux, the Fedora distribution and CentOS plays out.

It hasn’t always been this way. I bought a box of RedHat (probably version 5.1) at Best Buy many years ago. Red Hat has tried reaching out to the smaller market before. There was also a developer/OEM program (I don’t recall the name) where individuals could obtain inexpensive copies of RHEL, less the support, for development and pilot testing. This is a new direction, and I look forward to seeing how it works out.

Steven J. Vaughan-Nichols reports on the announcements for ZDNet here.

Notes from Seacoast WordPress group, 8 January 2014

The first 2014 meeting of the Seacoast WordPress group took place on Tuesday (not our usual night), January 8th, amid bitterly cold conditions in Portsmouth, NH. Nonetheless, we had a big crowd of a dozen attendees. I spoke on HTML5 and CSS3. My slides can be found at

Our next meeting is a week early, on January 29th. Join the group on Meetup for further details and to stay up on group news.

Thanks to Amanda Giles for organizing the meetup and Josh Cyr for providing the AlphaLoft meeting space.

Google Chromecast

Chromecast needs cables and power.

Chromecast needs cables and power.

My son presented me with a Chromecast for Christmas. Chromecast has an excellent out-of-box experience: a slipcase box with a smooth matte finish, four simple pieces and a tiny little manual. Unlike the ads, the Chromecast needs a cable plugged into the rear while the front plugs into the HDMI port. The rear cable powers the unit, since HDMI doesn’t supply power. The cable is a mini-USB, which you could hook up to your TV/monitor if it has USB, or attach the cable the supplied wall-wart power supply. The last item in the box is an HDMI extension cable, just in case your back panel is too cramped to fit the Chromecast directly into the socket.

Setup was drop-dead simple. Power up the TV, select the HDMI input, follow the onscreen instructions to download the corresponding Chromecast extension to your Chrome/Chromium browser, or the Android App and follow the instructions. About the only pain in the neck was typing in the WPA2 impossibly-long password, but that’s not Chromecast’s fault. Up and running!

Chromecast is limited to video-forwarding YouTube, playing Google Play music and videos, proprietary services (NetFlix, HBO GO, Pandora, etc.) and (beta) sharing a single Chrome tab to the TV.
A little searching (on Google, of course) says there’s interesting hacking going on already. The single-core CPU, 2 GB RAM and 512Mb Flash is a dedicated System-On–a-Chip (SOC). It runs Linux, of course. And it appears to share a lot in common with not-so-successful GoogleTV. Hit up your favorite search engines for the latest details, views of the internals, and some interesting reviews.

The only disappointment was reading the license (yes, who reads the licenses?) that tells me the Chromecast includes some Microsoft DRM to protect “content providers” and you agree to let the device be updated to protect the content providers. I’d be happier to opt out and remove the “Play Now” features to make room for something more useful, like an XBMC install 🙂

Broken tag cloud

Broken Tag Cloud

Broken Tag Cloud

I noticed this morning that the tag cloud on my blog’s home page was only three lines long. That’s not right. A little study showed that the three lines were word-wrapping based on spaces within individual tags, and that there was no space between the tags, causing them to run off the right side of the pages, where the overflow was hidden. I poked around a couple of places looking for changes to the code that could have caused this: both the WooTheme’s Canvas theme I’m using and the WooDojo add-on only specify the minimum and maximum font sizes, leaving the default ‘separator’ parameter value. The tag cloud is built up in the wp-includes/category-template.php file, where the default is rather strangely set as “\n” as documented on the WordPress site. Adding an explicit parameter of separator to the Woo elements didn’t seem to have an effect. As a temporary fix to confirm I’m on the right track, I overrode the defaul in the wp-includes file to “&middot” and the word-wrap problem is gone. Next, I’ll see if I can find some other place within the Admin UI and/or the database where the separator is specified and see if I can get it reset properly. Stay tuned.

CDN Syncing!

Magnifying glass

Detective Work

So, I rolled up the sleeves and dug into the web server logs and the code of the CDN synchronizing tool. I found the GitHub site where the code came from, forked the code and created a branch with a couple of different attempts at fixing it. On my third attempt, seem to have a working hourly sync run using the WordPress pseudo-cron functionality. I’ll bundle up my changes and offer a pull request to the upstream developers so they can have the changes as well.

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.