Kevin Quillen

Laughing. Coding. Rocking. Ranting.

Daniel Davies

| Comments

My friends new band is coming along quite well it seems. “Daniel Davies” is a new project featuring Daniel Davies, and Jess Margera (CKY, The Company Band, Viking Skull). They are playing this weekend in Philadelphia at the Northstar Bar with Graveyard, but I will be in Atlantic City.

Check out their website, and this video from this weeks performance:

The Move to NameCheap

| Comments

I’m a pretty loyal customer. Once I find a service that does well by me, I tend to stick with it for quite a long time.

I’ve bought exclusively from Dunlop when I need guitar picks for 14 years now. I started with them. I’ll end with them. Same with Mesa Boogie for guitar cabinets, Schaller for straplocks, Sperzel for locking tuners. Lifetime customer.

I stayed with the same mom n pop video store, even when Blockbuster came into town, until their ultimate closure due to said stores moving into town. Something like 20 years I was a customer. I still have fond memories of that place.

I’ve always eaten Utz chips, Lance crackers, and frequent the same deli. I almost live at the Dogfish Brewpub.

You may have noticed though, that during the last 48 hours my site has been unavailable. I sure as hell noticed.

It’s Transfer Time

Today I’m breaking connection with a domain shop who I have used since 2002. I won’t call them out, since it’s not worth getting into. I am transferring my 41 domains over to NameCheap who seem to be decent and are mentioned a lot on Reddit and LifeHacker.

They’ve been mostly good, but a recent DNS mixup (their fault) caused all my personal sites, my fathers site, and domain pointers to go offline for 24 hours, which is not the first time a mistake like that has happened. Not only does that knock websites offline, it also knocks email and other things out, too. I simply do not want to have that happen again. They aren’t a huge registrar, but I gave them my business. This time I am going to step it up.

So far, the process has been painless. NameCheap has really good transfer pricing and makes it pretty easy to do. Each domain will cost me roughly $8 which isn’t bad. I’ve seen higher.

I hope to have this done by February. The only slow part is the move between registrars, which typically takes 5-7 business days.

CKY’s ‘Dressed in Decay’

| Comments

One of my favorite songs by CKY is “Dressed in Decay” off their third album “An Answer Can Be Found” from 2005. This song has always given me trouble playing it without getting my fingers all crossed up or finding myself using overly complicated fingerings. Some of the tabs I have seen are wrong I believe, so I will write out what I use here.

Since I purchased one of the guitars used on this album last month, it’s inspired me to revisit some of my favorite songs and finally tackle them.

Dressed in Decay Tab

Tuning: DCGFAD

Intro and Verse Riff 1
1
2
3
4
5
6
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------5-5------5/7-------------------7-7-------9-9------------
----------5-5-7-7----------------------7-7-10-10--7-7-------7-7-------10-10-7-7-
-3-3-3-3-----------3-3------3-3-------------------------------------------------
Verse Riff 2
1
2
3
4
5
6
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------7-7-4-4---------------------------------------------------------------
------------------------5-5-------5/7------------------7-7-------9-9------------
-3-3-3-3-----------3-3-------3-3-------7-7-10-10--7-7-------7-7-------10-10-7-7-
--------------------------------------------------------------------------------
Bridge / Pre-Chorus
1
2
3
4
5
6
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------4-4------4/6------------------------------------4-4-----
----------4-4-6-6-----------------------------------4-4-------6-6---------------
-2-2-2-2-----------2-2------2-2-------4-4-4-4--7-7-------4-4-------4-4----------
--------------------------------------------------------------------------------
Chorus
1
2
3
4
5
6
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------4---3--------------------------------6---6h8-----------9---8----
-------4---6--------------4-----4/6-----2------6-9---------------6-9-6---6------
-----6-------------2---2-----2-------2------------------------------------------
-4-4-----4---4-----------------------------0-0-----0---0-----0-0----------------

That’s basically it.. at least how I tend to play it, and what I gathered watching Deron play this in his video lesson. The biggest trick to getting this song down is having good control over alt-picking and being comfortable moving up and down the neck when changing sections/riffs.

Clearing Drupal 7 Code Registry

| Comments

Drupal 7 shipped this time last year, introducing many API changes, new features and goodies for everyone. One of the more hidden features though is the new Code Registry engine, which scans Drupal and caches classes and their files to improve system performance by only loading the code it needs per page request.

However, when you are updating code, removing modules, or doing other general site maintenance, you might run into an error like this that scares the bejeesus out of you:

Fatal error: Class ‘EntityFieldHandlerHelper’ not found in ~/public_html/sites/all/modules/entity/views/entity.views.inc on line 134

Boom. Nothing but you, a white screen, a fatal PHP error and probably lots of “WTF??’s” dancing around your head and no clear way to recover and get the site back up.

Whats happening here is you have moved or updated code that changes either the location of a class definition or the file that contained it. Since it is no longer where Drupal’s code registry expects it to be, we need to clear the registry out and rebuild it. There is an internal function to do this, but there is a quicker way to get up and going again.

Any veteran user of Drupal at this point should be familiar with Drush, the excellent shell tool for administering Drupal and using it at every turn. While your first thought may be to call this:

Y U NO WORK DRUSH CC?
1
drush cc all

You may notice that the error will persist beyond this. That’s because (at the time of this writing) the Drush action that clears Drupal cache does not rebuild code registry. It is important to note that this function and the ‘clear cache’ button in Drupal will not rebuild the registry. We need to grab and add an additional command into our Drush arsenal, “Registry Rebuild”.

The easiest method to install this add-on is right in the terminal:

RANDY FAY TO THE RESCUE Registry Rebuild
1
2
3
4
drush dl registry_rebuild                    [success]
drush rr
  The registry has been rebuilt.             [success]
drush cc all    # just for good measure.

Now, you should be good to go. Become a Drush warrior!

Goodbye Wordpress- Hello Octopress

| Comments

Two nights ago, I was reading some developer blogs when I stumbled across one that was put together really well. When I investigated further, I discovered it was running on a platform called Octopress. I was immediately intrigued.

Not only have I wanted to do something new with my site for quite a while, but I made it a goal of mine to convert it to Drupal this year. Well, I could do it in Drupal. Easily. But there would be two problems with that:

  1. Drupal is a bit heavy handed for just blogging purposes.
  2. I wouldn’t learn a thing.

I began reading about Octopress and was quite interested, and began the process of migrating my Wordpress blog to Octopress.

I only needed a handful of things to do the migration:

  1. chitsaou’s branch of exitwp
  2. ruby 1.9.2
  3. coffee
  4. Mad Men in the background, on Netflix

However, there were a couple of hurdles along the way of getting to the end result.

Malformed Start Tag

The first immediate issue when using exitwp was that the BeautifulSoup parser was breaking pretty easy. There were a few suggestions. One was to try using version 3.0.7a, and the other was adding debugging to the html2text.py script so I could see where it was breaking:

html2text.py around line 289
1
2
3
4
5
6
7
8
def feed(self, data):
  data = data.replace("</' + 'script>", "</ignore>")
  #HTMLParser.HTMLParser.feed(self, data)
  try:
          HTMLParser.HTMLParser.feed(self, data)
  except:
          print 'malformed data: %r' % data
          raise

With the above in place, the parser will at least show you where it stopped.

What I was finding was that it was stopping on a couple of posts, ones containing HTML in the content. Some posts, the HTML was broken, just as a result of WYSIWYG generation I assume. Second, some posts only had a break tag or anchor in them that were perfectly fine. Upon removing them, and newlines, it would pass the post fine. However I didn’t want to just remove all markup.

So the next big decision I made was to just import the best posts from January 2009 onward, and do the cleanup from there. Starting at that point, the parse errors were far, far less. I assume this is due to the Wordpress WYSIWYG getting better over time (from 1.x to 3.x). Ah well.

Comments

Octopress comes with Disqus support out of the box, the defacto go-to platform for comments. We’ve been using Disqus since about 2009, and they’ve really done a lot of good stuff. Takes the burden of commenting off your hands, plus they have an excellent import/export platform and support for most major blogging/CMS systems.

I used their custom Wordpress plugin to export the comments from my Wordpress site, and imported them into Disqus. This process took roughly 24 hours to complete- but as I understand it there was a large backlog of import jobs to be processed. Normally this does not take very long at all.

After that, I had to create a CSV of URLs from the old paths to the new paths. With it, Disqus automatically updates existing comments to point to the new URLs.

Redirects

Since Octopress uses different URLs than the ones I had in Wordpress, I needed to setup 301 redirects for search engines. Nothing out of the ordinary here. I don’t mind the ranking impact here, after all I am just a small blog.

Hosting

With my Wordpress blog hosted up on our dedicated server, I already had a spot to host. Octopress has built-in support for rsync. Setting the configuration in config.yml makes this a breeze.

End Result

All in all, a little bit of work and a decent learning experience and here we are. There were a couple of huge benefits for me to switch:

No database.

Since Octopress bakes the blog, the result is all static files, resulting in a huge reduction in footprint on the server and much faster loading times. No database means a lot more, like no chance of SQL injection, no single point of failure, no maintenance.

No security patches.

I know I tend to exaggerate but seriously, Wordpress seems to have security patches or upgrades at least 3 times a month. While the process of updating the codebase has gotten easier since 1.x, its still a pain in the ass to keep up with. There have been a couple of times that letting Wordpress updates slack bit me in the ass, despite only using a couple of plugins.

Speed.

Static files = lightyears faster than waiting for database response.

Out of the box support.

All I have to do is alter the config.yml file and I have immediate support for Google Analytics, Twitter, Facebook, Disqus, and Google+. No plugins needed.

Opportunity to learn.

Doing all of this gave me a good opportunity to learn some new things since its all right in front of me now.

  1. Python
  2. Ruby
  3. Markdown format
  4. Sass

A good change of pace from the norm. I really like Octopress.