Categories
Burningbird Technology Weblogging

Another year, another web server

Drupal 7 is right around the corner, and my efforts to see how it would work on my existing server made me decide it is time to move to another hosting company. I need more control over my own space, and what is, or is not, installed. After discussions with the inestimable Laura Scott (@lauras), my go-to person for anything Drupal, I’ve decided on a Linode VPS account.

Linode has attracted a good Drupal community, which is important to me. In addition, it provides an extremely easy to use interface, which makes it quite simple to manage the space. I also like the fact that the company provides a good selection of documentation on how to do things geared to its own environment.

Since I’m making a major Drupal upgrade and moving to a new server, now is the time to look seriously at how my web sites are configured and designed, and make changes. I think this is one of the advantages to major releases—they provide a time to stop, think, and decide if you want to keep what you, or if now is the time to make all those other little changes you’ve been thinking about.

Since I’ve designed my own Drupal themes, I need to upgrade them to Drupal 7, as well as incorporate new HTML5/RDFa features. I may even do a re-design, not sure yet. I don’t like web site designing, so I may just grab one of the existing Drupal themes, and tweak it.

Several of my sites haven’t been updated in a donkey’s age, so I need to figure out if I’m going to continue writing at the sites. I probably will keep most, if not all, but I may do some major re-organizing.

I’ve not been taking many photos this year, as some of you have noticed. I need to re-design my photo pages to incorporate Drupal 7 changes and also my changed photography habits.

I’ve become much more interested in eBooks and the ePub format this last year. I was looking at creating an ePub module for Drupal, but someone already started this effort(Drupal ePub Module). However, there’s been little work on the module, and I’m thinking that an extension to the Print Module is a better approach. Or perhaps the best thing to do is just create an ePub friendly XHTML theme, and do a wget or curl on a book’s pages and use one of the many existing ePub publishing tools to create an ePub eBook. It’s better to be a smart developer than a clever one, and smart developers use what exists. Plus the same pages can be used to create a Kindle book, a Nook, and others.

I have been thinking of incorporating Disqus into some of my web sites. I’ve used this service at other sites, and I like how it works. Commenters can edit their comments, track their discussions across many sites, and they don’t have to provide a username and password for each web site (*cough* Gawker) to expose to hackers. Plus, if I turn comments off, the people still have access to their own writing. And Drupal has a module for Disqus, though I’ve not been able to get it to work with my theme (another reason to re-design my pages).

One thing I really like about Drupal 7 is if you don’t like the new administration interface, you can turn off all the new bits. You can turn off the overlay (don’t like), the page-top toolbar (still considering), and the new Dashboard (a keeper). I also like the fact that all the modules I use now are either incorporated directly into Drupal 7, or the developers have guaranteed a first day Drupal 7 release. Most of the modules have also committed to accessibility—that’s something you don’t often see with content management systems. Or W3C specifications.

Categories
Burningbird Technology Weblogging

My first attempt at Drupal 7 upgrade fails

I made my first attempt to use the new Drupal 7 beta to upgrade my existing module experiment site. Unfortunately, I quickly ran into a fatal error:

DatabaseSchemaObjectExistsException: Table cache_path already exists. in DatabaseSchema->createTable() (line 621 of /home/myname/public_html/books/includes/database/schema.inc).

I submitted a bug for the error at the time it happened. Checking back later, though, I couldn’t find the bug. I assumed I had mucked it up somehow when submitting, so re-submitted it. However, when I checked a couple of minutes later, I couldn’t find the second bug. I noticed then that when you access My Issues, it only shows open bugs. When I adjusted to show all bugs, I found that my bugs had been quickly closed out by someone saying they were duplicates of another.

I can understand the enthusiasm the developers have with wanting to close out bugs quickly, but unfortunately, my bug was not a duplicate of the bug so noted. What caused the problem, though, is known, but the error message I received was inaccurate.

Drupal 7 is dependent on the PHP Data Objects (PDO) extension that is now in PHP core. Previously, we could add PDO via PECL—the PHP Extension Community Library. However, the PECL PDO is out of date and Drupal 7 now only supports the core PDO.

One problem with this, though, is that cPanel, the site management tool popular with many Shared Hosting companies, disabled PHP core PDO because of compatibility issues. It’s only been recently that the application has stopped disabling PDO, but hosting companies like mine are still in the process of upgrading to the PHP core PDO. Until these companies make this upgrade, we can’t upgrade to Drupal 7.

The problem is further compounded by the fact that the Drupal 7 upgrade doesn’t test for the appropriate version of PDO, and we get bizarre errors such as the one I described earlier. Luckily, there is now a patch, which I ended up testing yesterday and that should give people the appropriate error. The problem with it, though, is that it recommends people check out the requirements page for Drupal, which, among other things, informs people that they can install PDO with PECL.

screenshot of Drupal requirements page with PECL PDO instruction highlighted

Hopefully, the disconnects will soon be corrected, and most folks are in environments where the PDO is from PHP core, rather than PECL. I was impressed at how fast everyone did jump on this after the initial duplicate bug mistake was discovered. Once the patch is in place, and the documentation updated, people will at least now know why they can’t upgrade and can chat with their hosting provider about the necessary upgrade.

Until my own shared environment is upgraded, though, I’ll have to stay in 6.x land. Many thanks to Everett Zufelt for his help in pulling all the Drupal pieces together for me.

Categories
Writing

When last we spoke

When last I posted, I had planned on updating that post with W3C co-chair decisions on my other HTML5 issues. I wasn’t quite expecting to be here, over a month later, still waiting on decisions. Not sure what’s happening with the W3C HTML WG at the moment, other than I think the group is making like an iceberg.

Eventually the decisions will be posted. Since I have a good idea what the decisions will be, no need to continue waiting.

Other than watching pots boil, I’ve been slowly working on my first self-publishing book on HTML5. I say slowly, because I ended up drastically changing the focus of the book, and hence the table of contents.

Though I would love nothing more than to fill 150 pages with details about the various HTML5 exploits, in the end I felt that an exposé on HTML5 isn’t going to be all that useful. Cathartic, maybe, but not useful. On the other hand, I refuse to jump on the “Isn’t HTML5 just peachy keen!” bandwagon, either.

I had to find a delicate balance between HTML5 rant and HTML5 rah-rah. Once found, I then had to dig for actual HTML5 implementation experience, which is a lot more difficult than you would think, given the fooflah about HTML5.

I’m still wrestling with the new TOC, so I don’t have any early peeks, yet. One thing the book won’t have is a discussion about HTML5 the brand. For one, isn’t it time to let the Geolocation folks have a little of the spotlight, all on their own? For another, there’s been enough confusion about HTML5 without conflating a formally defined and delimited specification, with a marketing buzzword.

So in the book, I’ll talk about HTML5…and Web 5.0, and Ajax5, not to mention P2P5, as well as Cloud #5, and throw in a little DHTML5, for good measure.

Categories
Writing

JavaScript Cookbook on way to printers

We just finished the last of the quality control checks on the JavaScript Cookbook, and it is now on its way to the printers. The Table of Contents should be showing soon at the O’Reilly book web site, but I’ll give you a taste of what I covered:

  • The usual suspects, such as String, Date, Math, Function, and so on
  • Creating JavaScript objects, including the new ECMAScript 5 object methods
  • The new HTML5 and WebApps 1.0 material, including drag and drop, worker threads, postMessage, and the local storage options
  • Debugging JavaScript, working with a library framework, such as jQuery, and packaging your libraries for reuse
  • Working with media and graphics options, such as SVG, Canvas, and the new audio and video elements
  • Complex performance functionality, such as currying and memoization
  • JavaScript out of the box, including working with desktop-like applications using client-side file access
  • Working with interesting data formats, such as RDFa, microformats, even ePub
  • Ajax, including working with XML and JSON formatted data
  • Debugging and using JavaScript test tools
  • Working with ARIA (Accessible Rich Internet Applications) and creating accessible dynamic applications

I devoted one chapter to ARIA and integrating accessibility into dynamic solutions. Because we now have access to an open source and freely available screen reader (NVDA), we can easily test our use of ARIA for dynamic applications. In addition, most framework libraries now incorporate ARIA support, so we need to understand how to use this rich and simple-to-use accessibility enabler.

I also covered ARIA because of my interest in semantic web technologies: ARIA is way of recording rendering semantics, which opens the door for interesting possibilities.

The JavaScript Cookbook should be in the stores in less than a month, and is available for pre-order. It’s a largish book—21 chapters and 530+ pages. The format is cookbook style, where I provide “recipes” in a Problem/Solution/Discussion format. All the code bits are included in example files, so you can play along, as you read.

One thing this book does not provide is support for IE6. Now that major sites and companies are no longer providing support for IE6, it’s time to stop wasting book space on an insecure, broken, and badly outdated browser.

Categories
Burningbird

Evidently, the web is like the petroleum industry

here are times I really miss the mark. From a past writing I stumbled across when looking for something else:

if the web were any other industry—petroleum, pharmaceutical, airline, auto, electrical utility, and so on— allowing the companies who produce products in the industry free and unfettered reign to define the standards for their industries, would draw howls of protests, and a demand for accountability.

From If the Web were the Petroleum Industry.