Feed items

A Growing Tension

If you haven’t listened to Lullabot Podcast No. 75 yet, go check it out. It’s an excellent discussion around the problem of how to distribute the cool and interesting things you’ve built with Drupal in a reusable way, or in such a way that those features can be bolted on to an existing web site.

I am not really involved at all with the day to day development of Drupal or debates over its future, but from some of the issues discussed on the podcast and some of the debates over UI I heard at Drupalcon DC, it seems like there’s a fundamential tension growing over whether Drupal is the web application itself, or just a set of APIs upon which you can build great web applications (and which happens to have a built-in CMS that you can’t turn off.)

In terms of reusable features, the current response you get when asking “Hey, is there a module to do X in Drupal?” is usually along the lines of, “Sure. You just have to install the Frobnosticator module, then create a Foo Profile with the Potrezebie module and configure a workflow so that the Fonebone action gets triggered by foo_nodeapi blah blah blah. It’s easy!”

The problem is that it’s not really easy if you’re not familiar with any of the modules involved in the recipe. Often times it seems like you spend so much time on the configuration and interaction of modules to achieve something only partially resembling the functionality you had in mind that you might have been better off writing a module from scratch that does exactly what you want, without the clunky overhead of half a dozen modules all sort of working together.

I’ll be following Features/Install Profiles/Distributions discussions with interest.

Migrating content from MovableType or TypePad to Drupal with Python

Migrating content out of one blogging or content management system into another is one of those tasks that doesn’t usually merit writing a feature-complete, polished migration tool; no two systems are alike, and no two migration scenarios are alike either. Since it’s an infrequent process, there’s not really incentive for anyone to write or maintain a dedicated Drupal module for doing such migrations (unless perhaps they find themselves doing a whole lot of migrations for clients.)

read more

Recapture the Cassette Experience (Sort of) with iTunes and AppleScript

I've been using iTunes for over six years now, and I rely pretty heavily on ratings and playcounts to create any number of Smart Playlists, most of which revolve around finding music in a particular genre that is highly rated OR frequently played AND has not been played in a while.

The result is not unlike the mix tapes of favorite music that I used to make for myself, back when I had few enough albums that picking a mere 90 minutes' worth of faves was not a laughable notion.

But having one giant, never-ending Smart Playlist is depressing in some ways; I could start my "unrecent favorites" playlist and never reach the end, thanks to the "Live Updating" feature. The major thing missing from having a massive digital music library is that sense of deliberateness that used to accompany listing to music on physical media. In particular, cassettes and vinyl LP's, which required the listener to get up, flip sides, and resume playing.

For a while now I've been paying homage in the nerdliest possible way to the act of flipping over a humble 45-minute per side mix tape. I started with a smart playlist titled "Unrecent alt/rock Faves", limited it to 45 minutes, and then unchecked the 'Live Updating Box'; after all of the songs play, I edit the playlist, re-check 'Live Updating', click 'OK', then re-edit the playlist and un-check 'Live Updating' again. Kind of a pain, but it does break the music up into nice listenable chunks.

Just now I decided to bite the bullet and hack together an AppleScript that consolidated this silliness into one step, and managed to pull it off. You need two playlists: The aforementioned "Unrecent Alt/Rock Faves" smart playlist (limited to 45 minutes, with the 'Live Updating' option checked) and a new regular playlist called "Unrecent Faves Cassette". As far as I can tell, there's no way to alter the 'Live Updating' attribute of a Smart Playlist via AppleScript, so this method just copies from a Smart Playlist to a static one.

Here's the script:

tell application "iTunes"
	set theSmartPL to playlist "Unrecent Alt/Rock Faves"
	set theDumbPL to playlist "Unrecent Faves Cassette"
	
	delete every track of theDumbPL
	
	set selectedTracks to every track of theSmartPL
	
	repeat with aTrack in selectedTracks
		duplicate aTrack to theDumbPL
	end repeat
	
	reveal theDumbPL
	play theDumbPL
	
end tell

When saved in ~/Library/iTunes/Scripts it shows up in the iTunes Scripts Menu, and when run it wipes out the current contents of 'Unrecent Faves Cassette' playlist, replacing it with the newly updated contents of the 'Unrecent Alt/Rock Faves' playlist. It then selects and plays the Cassette playlist. I can even run the script from Quicksilver! The only thing that would make it better is have the script play a .wav file of a cassette being flipped over before re-starting, but I can't seem find a free one online.

You can download the .scpt file as an attachment, but if you want to name your playlists something else you'll need to open it in Script Editor.app and tweak it yourself.

Welcome Home, Tubby!

The Devel Module Observation Effect

The Devel module is such an indispensable part of any Drupal developer’s toolkit that it’s easy to forget that it does sometimes tinker with Drupal at a fairly low level. I was getting a perplexing error from an XML-RPC service I was developing as part of a Drupal module.

read more

Last Chance - Clawhammer Banjo Tablature

Tablature for 'Last Chance' by Hobart Smith

This is a pretty simple arrangement, but this tune lends itself to lots of hammer-on/pull-off/double-thumb variations and really, it's all about the slightly dissonant tuning and rhythm.

House of the Temple

Sphinx

(For more information, see http://www.scottishrite.org/where/hq.html)

DrupalCon DC: FileMaker/Drupal BoF Session Thursday at 11:30, Room 156

Greetings from DrupalCon DC 2009! It’s been a great first day - lots of informative sessions, and a lot of fun to reconnect with so many people with whom I’ve crossed paths since getting into Drupal.

read more

Syndicate content

Twitter

  • Score! http://t.co/KVDyULXM 5 years 1 hour ago
  • @ComcastBill Thanks. 5 years 4 days ago
  • @wstites Thanks. @comcast is making it awfully hard for me to give them more money. 5 years 4 days ago
  • @comcastbill(have called 4 or 5 numbers so far. Am told I don't qualify as existing customer, no way to track who it was who called me.) 5 years 4 days ago
  • @ComcastBill I received a call with a bundle offer yesterday, but I lost the rep's contact info. I get the runaround calling the main #. 5 years 4 days ago

Older

Contact

Andy Chase
(978) 297-6402
andychase [at] gmail.com
GPG/PGP Public Key