As you may have guessed by the titles of the last few posts, I have had the pleasure of waiting on hold for support from Giant Faceless Corporations lately. I am so glad I am able to supply personal, timely and appropriate support for my clients so they don’t have to put up with this nonsense.
Updating the many plugins I have running the site in the background: WordPress SEO by Yoast, WooDojo, the Woo Canvas theme, the wplicense Creative Commons license plugin, the Google Sitemap and Google Author Links, and more. Stay tuned…
A quick recovery of the blog was functional by noon, and had its appearance restored 99% before the end of the day. I was extremely cautious on this one, as there were some abnormal log entries that indicated the remote possibility that a bad update or malicious software might have corrupted the site. So, rather than patching a potentially corrupted site, I put the site in deep freeze, and built it again from reliable sources. All seems well, so far, and I look forward to digging in and determining the root cause.
Astute fans may have noticed the site seems to be having a little trouble. Yup. The site became non-responsive the morning of 20-Nov-2014, and the usual actions had little effect. There were few clues in the logs nor diagnostics easily pulled from the software. To get up and running quickly, I did the famous “WordPress 5 minute Install” and restored the essential configuration. I’ll be restoring the usual theme, fonts, plugins and assets (pictures, links, videos, etc.) from backups as time allows.
Thank you for your understanding.
The April meeting of the Seacoast Web Dev group took place on April 23rd at the AlphaLoft coworking space. Proprietor Josh Cyr had his usual welcoming speech: thanks to Flatbread Pizza for the pizza, the corporate and community supporters for the free beer, and to the speakers for volunteering. There were two excellent presentations last night:
Charles Denault of SimpleCharters spoke on Hack, the Facebook fork of the PHP language, designed to work with static data typing and run on the Hip Hop Virtual Machine. Both HHVM and Hack are Open Sourced, licensed under the PHP and BSD license, respectively. Facebook started the Hack project as a way to improve performance and they report a 5x to 10x gain in speed using Hack on HHVM. Charles cautioned that while moving existing PHP on HHVM is fairly painless, if the choice is made to move your PHP code onto Hack, reversing that decision is more difficult, as the changes will occur in much of the code (a good source code control mechanism and branches ought to handle this, methinks). There was a lot of interest in the performance specs, and questions from the audience on , and performance benchmarks between PHP 5.6 and HHVM. (PHP 5.5+ have the newly-open-sourced Zend OpCode cache, see article here). Clearly, there is a lot of interest in the subjects of PHP and web site performance improvements!
Thanks to Charles and Byron for excellent presentations, to Josh and AlphaLoft for organizing and hosting the meeting.
The Boston Computer News Network was an email newsletter sent out by the Xbase Special Interest Group of the Boston Computer Society. Les Pinter, the organizer of that group, commissioned a group of local volunteers to come out with a FoxPro-specific version of the newsletters. The timing was great; MS had just bought Fox, VFP 3 was coming, DevCons were awesome. Here are the first few newsletters, recovered from an old dusty cave in the frozen northeast, scraped off an old 3½″ floppy.
Some classic stuff out there for old geezers: Arnold Bilansky facing down Bill Gates, the first demo of VFP3 beta in Boston, Arnold and Ted’s excellent adventures in San Diego, and more. Contributors include Brad Shulz, Whil Hentzen, Dale Gilstrap Leopold, Ken Levy, Harold Chattaway, Stephen Sawyer, and more!
The Portsmouth Web Dev meetup is hosted at Alpha Loft in Portsmouth. This month there were two meetings: Ember on the 25th and Lightning talks on the 26th. On the 25th was the first, with Brian Cardarella of dockyard.com giving the main presentation on Ember.js.
The run loop is the core event loop engine of Ember, and code in Ember can enqueue new items onto the loop, which continues to loop as long as there are items to be processed. There is great documentation in the Ember Guides, and a good video overview. Brian suggests that the Ember Starter Kit is just that, a good way to get started, but likely not appropriately robust for a professional application.
Enough background, we jumped into http://ember.jsbin.com/ and Brian commenced live coding in Ember to demonstrate how the Ember application essentially hooks into the body tag of the DOM and can read and write elements from there. He showed how actions could be triggered by observed changes, that setters and getters were required for property manipulation.
Ember has its own form of MVC (doesn’t everything?) where Models are business rules containers, and Controllers are contexts in which your interactions with models occurs, essentially acting as proxies. Views are nearly becoming deprecated as their functionality is being replaced with HTML5 Web Components (there’s currently a polyfill for these called polymer.) Routes are similar to Rails with nesting. URLs can be considered a state manager for an Ember app, so two users see the same thing at the same URL, unlike some other JS frameworks. There is an Ember Inspector for Chrome and FireFox that allows you to dive deep into the View Tree, Routes and Data for debugging. Excellent peer support is available on IRC at emberjs and emberjs-dev.
Brian and Dockyard have built Ember-AppKit-Rails as a gem to create a shared directory for an Ember app and its Rails backend. Note this is Very Beta, Somewhat Experimental and may be abandoned. You have been warned. Brian explained there are not yet any Best Practices worked out, so different attempts have been tried. Side-by-side projects where the two are separate may turn out to be a better design; Brian is looking at Ember AppKit [Update: Deprecated, but URL updated for reference]. Ember is designed to deal with different backends, depending on their API syntax. The one he was using was , build to work with Rails.
An excellent question on “Where do you do validation?” And the answer: pretty much everywhere. Brian is the author of ClientSideValidations and has some experience with this. He tried something similar with Ember but points out that the context of the front end and backends can be so different that the validations aren’t necessarily the same.
Brian then proceeded to do a demonstration of an under-development project by Dockyard and even in its early stages, it appeared pretty promising.
Brian recommended downloading Ember, reading through the Guides, and taking some time to learn the components. Promises are a key element to the Ember framework and are worth reviewing; ECMAScript 6 will have promises built in. Handlebars, the templating language, is expected to be replaced by HTMLBars in the next major revision. Best practices and calling conventions (especially error/exception/validation handling) are still up in the air; check out JSONAPI.org for some work on this front.
So, we had an action-packed, fact-filled, acronym-filled session with a lot of good material and an excellent overview of the state of Ember and its promising future. Thanks for Brian for speaking and for Josh Cyr, Alpha Loft proprietor, for hosting!
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.
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:
- 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.
- Blogging with the Ghost blogging platform. Sean Baker blogs at http://www.seanvbaker.com 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.
- 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.
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.