Post»Peeling a Bucket Full of Drupal Potatoes

Posted by Steve Or Steven Read on Monday, January 16, 2012 at 8:50 PM in the News & Stuff section

the key to drupal

Isn't that a lovely image? I found it at a site that I dare not link to as I have plenty enough spam traffic from that country.

This week I finished another Drupal upgrade. Drupal 7! If you don't know what Drupal is, well it's basically the content engine that runs my website here. Totally a very excellent tool and absolutely free. Drupal is similar to Wordpress which you may have heard of. Drupal is very powerful, but using this power has its costs. One of them is maintenance. Uugggggh yuck. This upgrade was nail biting tedious work that resulted in my website looking and functioning nearly the same. This was my 3rd "major version" upgrade since this website project started in 2005.

Let's have a quick look at how much time these upgrades took:
  • Drupal version 4 to 5  =  10 hours of work (link to that news post)
  • Drupal version 5 to 6  =  40 hours of work (and that news post)
  • Drupal version 6 to 7  =  200 hours of work (you're reading this news post)

Isn't that looking exponential? Yikes a Drupal 8 upgrade in a couple years could be 1000 hours. Out of the millions and millions of Drupal sites out there, likely very few have upgraded from version 4 to 5 to 6 to 7. (not possible to skip a number!) That's because it's becoming to be a pain in the ass. Not that I'm really complaining. This is what I do. I am Steven Read Dot Com. But because I have laid some good eggs into this Drupal basket, I think about this stuff and like to watch out for bad apples. The archiving of data and technological creations is obviously a very complex subject. And when you are knee deep in the shit of thousands of broken data structures, trying to keep the blue train a rollin', it feels serious man! So fragile.

When planning the upgrade and seeking advice, some asked why upgrade to Drupal 7 at all? Honestly, there weren't *that* many new features that I needed. Maybe it just buys me time. As here comes Web 4.0 and Drupal 8, Drupal 9, 10, 15, 23. Yay new versions! Or maybe Drupal peaks soon and then I'll have to migrate everything to the "next big thing". Its dizzying. When will I even have time to make new art content? Technology is the master, I am the slave. Haven't I preached about avoiding this relationship? What Thee Fuck. Maybe the idea to give all your data to other companies so they can manage it for you isn't just a silly fashion. But then I would have really bad startup and/or corporate logos surrounding my work. And maybe they would go out of business and sell my data. Maybe they would change the visual interface into something very sucky. But maybe they would even let me download all my data eventually. Maybe not. It certainly doesn't sound like I would be in control of my own work. Someone else's short-term goals would always trump my long-term ones. So instead... I maintain, therefore I am.

So why was the Drupal 6->7 upgrade such a mess? Many reasons.

The first 50 hours went into reverse engineering a module which died with Drupal 6, the Category Module. This wasn't just any old module. Back in Drupal 4 and 5, this was *the* module that many folks built their sites around. You "simply" created these nice hierarchical categories and then it would generate all the other drupaley stuff like nodes, taxonomies, views, menus, breadcrumbs, etc. Seemed like Drupal paradise...

awesome drupal category module logo

...with such nice sunsets, but then you wake up with a throbbing hangover and you have to reverse engineer your entire website if you want to live to see the light of Drupal 7. After that was complete I realized the theme (basically a system of code hooks and templates) I was using also died with Drupal 6. In 2005 I originally chose an empty, skeletal theme called "foundation" which I liked for its Drupal default-ness. I ran with that aesthetic, and still do today - it's the apple of my eye. But visual simplicity doesn't mean programmatic simplicity. I had to upgrade the theme manually, which has all kinds of hooks and function calls to the Drupal API. And of course wouldn't you know, Drupal 7 has a completely revamped API with very little that is backwards compatible. Grrrrrrrr.

Yes the 'new and improved' Drupal 7 core API has thousands upon thousands of changes. Take a look here and here and scroll down the page very quickly because it's fun like that. And if you assume those documents cover all the changes, you'd be wrong. Call me a dystopian, call me crazy, but at least tell me why thousands of awesome brilliant volunteer coders would create such a nightmarish scenario? Can't we at least have a wrapper to support old interfaces for a transitory period? Drupal is a headless monster. Of course I am very thankful for having this hungry monster at home for dinner every night, but whoa. Yeah. I've been in this business a long time. Definitely not chill. But somehow I worked my way down to the bottom of the barrel here as I upgraded my custom module code, some contributed modules that I had hooked and hacked, views (generated queries), administration settings, all kinds of stuff. Some code was upgraded automagically (coder module), but that didn't peel away much. At one point during the upgrade when my site was finally running in Drupal 7, every single page type on my site had errrors and broken chunks strewn about. I have over 1000 pages here now, many containing custom programming, it's alot to test.

It was epic. Well, no not really. I'm just being dramatic. It was applesauce. Just 200 hours not including planning and preparation. I have spent more hours than that on just one painting (this yellow one for instance). But this was maintenance duty, not paint on a blank canvas. It wasn't much creative fun. Or was it? Could long-term software maintenance be "art"? Perhaps it is the key to something new. And anything worthwhile is hard work, so I'll stop rambling about my software right around now and get back to Durpal contents craetion. Maybe next time I can obtain some funding and hire someone else to help in the code kitchen. Perhaps I can also get them to help peel back for you some of this damaged metaphor usage.

Threads:  Content Art  
Drupal 6 Upgrade

Updates And Downgrades


testing 123. test. test. speaking of drupal i just made some changes to allow for commenting on "blog" posts. so right now i am just testing that out here. you would think that enabling comments would be like 1 or 2 administrative clicks but no sir i had to do all kinds of stuff because i want these comments to look and act a certain way because i am an artist i do things like that. ok well lets hope that this comment submission works because now it seems like i have typed alot and i certainly would not want to lose this valuable data because of some stupid error. ok.

 Posted by Steve Or Steven Read on January 24, 2012 - 10:42pm 

hello, its me again. just doing some more testing. this time i am pretending to be an anonymous user just like you. lets just see what happens after i click save. ok good it asked me for a word verification. this is my spam filter called mollom writted by the dude who started drupal. i may seem annoying to have to enter another captcha but if i don't do this stuff you have no idea how much spam gets injected into my system which wastes my time and resources. anyway i am very happy to see this lovely word verification box after i pressed the save button which is the result i expected but i had to pretend to be anonymous and also i had to piss off mollom a few times because it caches ip addresses and it thinks i am a good guy at this ip address since it is the same one i use to administer the site all the time, but actually if i am pretending to be anonymous at this same ip address it can be tricky to get mollom to trigger the captcha. ok good.

 Posted by mister anonymous on January 24, 2012 - 11:05pm 

In the singular point, I enjoyed your comments above. I have also written free software and I did it because I thought moodle was too heavy. People just want to be able to come in and it works for them. Anyway, I have been playing with Drupal 6- 7.14, but not 8. My recent experience, Drupal is slowing down unless your site is just simple. I am looking into HTML5 and CSS3 to see if site loads can improve. Do you think it is time for another rewrite using maybe RUBY and Lua as in Dreamlinux5? Loading pages seems to be the final deciding factor in code. Creating a blend between drupal and outside of Drupal code? Your thoughts are welcome to save me time in this new direction. Other thoughts- I did use a combination of java, html, SQL and PHP5 in the development of my site from scratch. It works for people as an exam prep site. I am not a professional at programming or even looked at the algorithem aspect of code. Thanks for your perseverance AND CONTRIBUTIONS.

 Posted by Toro on October 27, 2012 - 10:30am