Archives
Admin / Logout

Adam Merrifield

a picture of me
I am a web designer, theme designer, professional photographer and internet personality. I make many pretty things and I write a lot of content for the internet.

I am one of those guys that, because of the industry I am in, need to be connected at all times. At any given moment you'll find me posting on a forum, updating with twitter, Digging things worthy of attention, uploading pictures, or tagging cool sites.

here i am

seyDoggy Systems:
This is home base, the corporate headquarters, the hub, if you will, seyDoggy.com.

seyDesign news:
these are the RapidWeaver related posts that originally appear in the seyDesign.com blog

Uploads from seyDoggy:
these are the pictures that I upload to flickr

Merrifield Photography:
as a professional photographer I my camera ready at Merrifield-Photography.com.

delicious.com/seydoggy:
these are the websites I want to share or revisit later on. I just tag them on delicious.com.

what i am

I am the owner and operator of seyDoggy Systems, a small theme, code and design outfit based in Kitchener, Ontario, Canada. We primarily develop web based technologies but have begun to dabble in the desktop realm.

what i do

I code like a fool. I design like a fool. I am happiest when I can split my time between the two (though I tire of Photoshop faster then I do TextMate or Terminal), and somehow I have managed to etch out a living doing so.

RW Updates Gets a Dust-Off

Here is a site that’s been in need of attention for a little while now, and being as we are between themes right now I thought what better time to give RW Updates some love. RW Updates (now called RapidWeaver Updates) was started a few years ago to offer those wishing to track all the latest RapidWeaver developer goodness in one main point. It’s served that purpose well.

The most notable change is the width. I’ve all but given up on narrow sites — I’m over the skinny… and the scroll. The second most notable change is the boxes. Each new article shows up in a box — small, compact, easy to get through in a hurry.

Ok, I lied… the MOST notable change is that the site is just plain sexy now! Don’t you think?

[tags]rapidweaver,updates,rwupdates,developer,news[/tags]

| Trackback

RapidWeaver Add-ons Version Identifier

RapidWeaver Add-ons Version IdentifierOne thing RapidWeaver does poorly — at this current moment — is help the end user determine the product version they are using on any given 3rd party add-on. Knowing your add-ons (theme or plugin) version number is critical when asking for support and is often one of the first things the developer will ask you for.

If you know where the add-ons are kept (~/Library/Application Support/RapidWeaver/) then you might be able to determine a plugin or themes version number with the Finder, or if you have RapidWeaver open you can find out a plugin’s version by opening the plugin browser, or if you show a themes package contents and…

Well, I like to have these sorts of things at my fingertips and do as little thinking as possible, so I wrote an AppleScript to gather this information for me no matter where I am or what I am doing*:

-- file types to choose from
set rwTypeArray to {"Theme", "Plugin"}

-- choose from those file types
set rwTypeLong to {choose from list rwTypeArray ¬
    with prompt "Which RapidWeaver product type ¬
        you like to find the version of?" ¬
    with title "Theme or Plugin"} as string

-- logic from result
if rwTypeLong is "Theme" then
    set rwType to "rwtheme"
else
    set rwType to "rwplugin"
end if

-- get name of hard drive
tell application "System Events"
    set diskName to (get name of startup disk) as string
end tell

-- get name of user
set userName to (do shell script "whoami") as string

-- select file from RW directory
tell application "Finder"
    set rwFile to (choose file with prompt ¬
        "Please select your RapidWeaver " & rwTypeLong & ":" ¬
        default location (diskName & ":Users:" & userName & ¬
            ":Library:Application Support:RapidWeaver" as alias) ¬
        of type rwType without invisibles)

    -- read version number
    tell application "System Events"
        set rwInfo to (get version of the file (rwFile as string))
    end tell

    -- and display it
    if rwInfo = "" then
        display dialog ¬
            "It seems that your " & rwTypeLong & ¬
                " doesn't have a version number that I can read. ¬
                Sorry.\n\n¬
                Would you like me to reveal it's ¬
                package contents for you?" ¬
            buttons {"Cancel", "Yes"} default button (2)
        set rwPath to rwFile & "Contents" as text
        open rwPath
    else
        display dialog "The version information:\n\n" & rwInfo & ¬
            "\n\n ...has been copied to your clipboard." ¬
        buttons {"OK"} default button (1)
        -- copy to clipboard
        set the clipboard to rwInfo

    end if
end tell

Notes

* If a theme is to have it’s version number read, it must have an Info.plist in it’s package contents. Some theme developers do not include this file. For those that don’t, the script will reveal the theme’s package contents so that you can inspect the version number at the bottom of the Theme.plist file

Download

Get your fresh copy of RapidWeaver_Addons_version.scpt from CodeCollector.net

Comments (1) | Trackback

iMac G3 Web Server – Part 1

Creating an iServer from an iMac G3Recently an old iMac G3 of mine made it back home after a lengthy stint at the in-laws (introducing them to computers a few years back). My initial thoughts were to take her to the great recycling depot in the sky, but then I got to thinking. “What could a web designer/developer use a seriously underpowered G3 chip be useful for?”

And you all chant in unison… a web server!

So this is just a document of the stuff I went through to get from point a to point b. It’s not so much instructional, but if you wish to follow along, by all means, have at it.

Serve with Mac OS X… maybe not.

So I got to fiddling around with this old bubble of a machine and thought initially that I would just try to use the services provided in the Mac OS (the iMac was running 10.4 at the time). This proved to be so painfully slow that I decided to dig up an old copy of OS X 10.2 (it was called Jaguar back then, in case you forgot) and install it. While this was a tad faster, those services that were installed were sorely out of date.

Since it was clear that I was going to have to get into the command line to install MySQL and update and configure the PHP that was there, and since the the whole desktop environment was going to be redundant by the time this thing goes into service… why use the Mac OS at all?

When in Freeville, do as Linus does

That’s when I decided that Ubuntu Server was the way to go. There are a ton of worthy Linux distro’s out there but I decided to go with Ubuntu because their PowerPC ports are pretty much up to date with with the core development. I could have used Debian but trying to track down the latest stable PowerPC build was like trying to finding a hot date at a Star Trek convention.

I just so happened to have an Ubuntu Server 8.1 iso laying around, so just as a proof of concept, before tying up anymore of Ubuntu’s precious bandwidth, I tried the install out to be sure that all would work on the old PPC box. And it did.

Fast forward to the Jaunty Jackalope

So I got my hands on the latest stable build of Ubuntu Server for PowerPC, Ubuntu 9.04 (which can be downloaded here) and got to work.

The install was pretty straight forward, I just followed the steps as each prompt appeared. All in all it took about an hour on the old beast. One helpful hint: it seems the install will fail repeatedly if you don’t have the machine connected to the internet. I just ended up plugging in to the spare ethernet port of my Mac Pro, but I am assuming any connection would do.

I have a package for you

I wasn’t really sure what packages I was going to need in the end, so I installed most, if not all of them. But at the very least I knew I was going to need a LAMP stack *, ssh and possibly DNS (though unlikely that I would bother to set it up). If you plan to make your own server you might as well take the time to research the options since installing and configuring them at install will save you the hassle later.

Bong!

Once the install was done I was prompted to reboot. So I did. If your a total nerd like me you’ll get excited to hear that familiar Mac “Bong!” yet moments later get nothing but a black screen, white text and a login prompt… I can almost hear echos of Joshua (WOPR) in his computerized voice asking me, “Would you like to play a game?”

With everything done right in the install I was prompted with**:

`ubuntu login: `

I entered my username, in my case “adam”, and hit return:

`ubuntu login: adam`

Entered my password, •••••••••••, and hit return:

`password: `

Up pops a bunch of info like last login, software details, load and memory usage etc… and the all important command prompt:

`adam@ubuntu:~$ `

The root of the solution

Here is where I am about to do a no-no… if I ever planned to run this machine in the DMZ (beyond the safety of my internal network and out side my router) I would NEVER do this. However, I want to have pure, unadulterated, God-like power over this machine and I do not want to sudo (“superuser do”) it every step of the way.

Those of you familiar with Ubuntu know that they disable root login by default. But this cripples what various apps can do in various directories over ssh — namely ExpanDrive, MacFusion, various FTP clients and from what I can tell some TextMate bundles (though I probably have them configured wrong) — and I don’t want to always have my head stuck in the terminal.

So, to enable root login I had to set a root password (since the install never prompted me for a root password). This is done with:

`adam@ubuntu:~$ sudo passwd root`

I then entered my own password for adam@ubuntu, •••••••••••:

`[sudo] password for adam: `

And the the new root password twice:

`Enter new UNIX password: `
`Retype new UNIX password: `

And success:

`passwd: password updated successfully`

Now I am able to switch to root:

`adam@ubuntu:~$ sudo su root`

And after entering the password I just created I am now presented with:

`root@ubuntu:~# `

Now with that out of the way I can proceed with causing some real damage…

More to come

In following posts I will talk about my ssh setup, configuring apache and working with my in my new server environment.

Notes:

  1. * LAMP stands for Linux-Apache-MySQL-PHP/Perl/Python and is a generic acronym for a stack of applications that provide the kind of web services need to run web applications and dynamic web content.
  2. ** I set my server name up to the default “ubuntu”. Yours may read different.

[tags]server,linux,ubuntu,imac,g3,terminal,root[/tags]

Comments (1) | Trackback

One of My Old Favorites All Fresh and New

The postman just delivered my fresh copy of Build Your Own Database Driven Web Site Using PHP & MYSQL, 4th Edition. It’s not that there was anything wrong with my previous copy, but it was getting a little dated. Plus I am a little nostalgic for this particular publication.

With a quick glance I can already see that the book has been restructured quite a bit moving chapters around. I am really looking forward to reading this book again with renewed purpose and updated perspectives.

[tags]php, sitepoint, mysql,book[/tags]

| Trackback

You in there Mr. Camera Guy?

"You in there Mr. Camera Guy?"
"You in there Mr. Camera Guy?", originally uploaded by seyDoggy.

Back in May, a neighborhood squirrel I were having a bit of a territorial battle. He wanted to sleep on my fence and I figured that made him fair game for photography. He thought otherwise and on a number of occasions made it clear that he was not in this for the fame and glory. He had a strict no-paparazzi policy and he wasn’t about to let me be the exception.

He came back a few times to bark and squawk at me just to drill the point into my little human brain.

[tags]flickr, squirrel, nature[/tags]

| Trackback

the collective is now more collected

cleaning houseYou know how sometimes you look at your web real estate and you wonder, “How the farg did I get so many sites and so many blogs?”

I’ve been going through a zen stage, cleaning out the crap, consolidating, streamlining… I did this back a month or so ago with seyDoggy.com (nutMac meets seyDoggy) where I consolidated the nutMac.com (Mac/productivity) blog with my seyDoggy (web design/theme developemnt) blog. I also sucked up the RWUpdates.com blog for those that were watching.

Well that’s what I have done with some of the less technical, less business related web properties I have, like my tumblr account, a kids poetry site I had up and this blog, which was originally on the singular page. This is partly to simplify my web existence, but also because there are still a host of things I want to write about (like recipes) and needed a generic enough place to put them down.

I am sort of babbling on as though someone is reading this so I’ll just cut her short here. Peace!

| Trackback

Life As a Theme Developer

Have you ever wondered what a day in the life of a professional RapidWeaver theme developer is like? Wonder no more because I am about to tell you.

02-18-09 07:22 – started writing this which will end up being a blog post on seyDoggy.com 02-18-09 07:23 – opening up Mailplane.app to have a gander at what support has crawled in overnight. 02-18-09 07:28 – popping in the the Realmac Software forum to respond to a thread I was notified about… nothing for me to add. 02-18-09 07:40 – helped potting training daughter go to the potty. 02-18-09 07:52 – responded to an email from the seyDesign Member Group. 02-18-09 07:53 – reacted to a Twitter follow request… followed. 02-18-09 07:56 – Twittering. 02-18-09 08:02 – responding to another Realmac Software forum thread. 02-18-09 08:04 – sifting through a bunch of press releases that I subscribe to. 02-18-09 08:18 – responded to a comment on seyDoggy.com blog. 02-18-09 08:19 – moving over to the support email account now. Checking the spam box since Google seems to deem all of my real support requests as Spam. 02-18-09 08:21 – yup, 7 messages caught in the spam box. 02-18-09 08:22 – opening up Parallels to confirm one users report of an IE bug with one of my themes. 02-18-09 08:24 – realizing that their complaint has more to do with screen size than anything else. It’s not a bug, me thinks. Keep testing. 02-18-09 08:28 – just got a wrong number on the support line. “seyDoggy who? I’m trying to call my sister.” 02-18-09 08:38 – yup, IE6 issue was just the end users window size. I like that kind of support. 02-18-09 08:50 – support taking longer then I hoped. Need some tunes. 02-18-09 08:59 – support is done. 02-18-09 09:00 – opening my calendar (a Fluid.app SSB of Google Calendar) to see what’s on the plate. My calendar is my mental mapping tool. 02-18-09 09:19 – more forum posting. 02-18-09 09:20 – back to calendar, deciding how long it’s been since I invoiced this one client before deciding to do more work for them. Have to be extra cautious in todays economy, not to get into too deep with any one client. 02-18-09 09:21 – going to do some site updates (in TextMate) for said client. 02-18-09 10:27 – just answered someones questions about M Cubed Softwares Code Collector Pro. 02-18-09 10:48 – syncing client changes via Panics Transmit. 02-18-09 10:57 – hmm… forgot to update the sitemap… and all the french <title> tags… ugh 02-18-09 11:06 – sitemap updated, french <title> tags updated, re-syncing. 02-18-09 11:26 – fresh coffee, looking at my calendar… what next… 02-18-09 11:28 – checking my @bugs tags in TaskPaper to see if there are any pressing bugs I should tackle… one in seyDoggy bloop! but it’s going to have to wait until I have the time for some extensive rewriting. It’s only an issue with one plugin so it’s not really a bug as much as it’s a compatibility issue. Moving on… 02-18-09 11:33 – continuing with Med Designs Bubblegum.rwtheme update. Adding some really cool new features to it. Checking my todo list within the theme to pick up where I left off on Monday. 02-18-09 11:54 – force quitting RapidWeaver after I jammed it up with a tricky Theme.plist move. 02-18-09 12:22 – commit current set of changes to the rwtheme package go make lunch. 02-18-09 12:54 – exercise… it’s important to get away from the office chair for a bit so you don’t develop deep vein thrombosis, but getting and walking about is boring. So I exercise; 50 pushups, 25 crunches, 20 lying-on-my-back-leg-lift-thingies, 20 of the same, but lying on my side, and then again, but on my tummy. Not only is it good for preventing DVT, but it helps my core compensate for slouching at my desk for hours at a time. 02-18-09 13:17 – back to Bubblegum.rwtheme update. 02-18-09 16:04 – committed a whole whack of changes to the Bubblegum.rwtheme. Time to wonder about the house for a stretch and maybe splash some cold water on my face. 02-18-09 16:08 – scheduled in two custom jobs, one for Friday and one for Monday… sigh. 02-18-09 16:23 – feeling refreshed. Time to get back at it. But it’s time for 10 minutes of fun; time to read a chapter of jQuery in Action. 02-18-09 16:45 – Well it’s time to call it a day and go embrace the inner chef in me. I hope you’ve enjoyed peering into a day in the life of a professional RapidWeaver theme developer.

Comments (1) | Trackback

Keeping unused hard disks unmounted

The question

How do you prevent Mac OS X Leopard from auto mounting disks, drives and volumes when the computer boots up or a user logs in? (skip to the solution)

The preamble

I have spent days (literally) searching for the answer to this one; I have a Mac Pro running Leopard with (count them) 4 internal hard drives. One is my system disk and the other 3 are backup disks. Two are weekly mirrors of my system while the third is a daily snap shot of my user account. We won’t even get into the external disks I have. Yes I am THAT anal about my data.

So what is the trouble here? When you have this many disks containing duplicate data, Spotlight, QuickSilver, Launchbar, Google QSB, etc… they all want to serve up information found on each disk. That would include duplicate information that you most likely don’t want to inadvertently open and/or edit. But further to this, why spin up a disk, potential shortening it’s life span and wasting precious energy, when it only gets used on occasion?

One way around this is to diligently eject each volume every time you boot up your system. But that is both a pain in the butt and no where near as geeky as it should be. So do a quick search on Google for a solution to “unmount disk on login” or “prevent volumes from mounting at the boot up in Mac OS X Leopard” and you get a great deal of outdated info, inefficient Apple Scripts, overly complex bash commands, apps that wrap bash in an executable app that you launch at login when the moon is at… you get the idea.

So I set forth to put together the best of the best and simplest of the simple and post it here, for my own reference, exactly what I did to prevent my back up volumes from mounting on boot up.

My Solution (proceed at your own risk)

First off, what you are going to find with most solutions out there is the need for a file called fstab in the systems hidden “/etc” folder. The trouble is that later versions of OS X (10.4.x and later) don’t have this file. However, there IS a redundant file called fstab.hd. WE ARE NOT USING THIS FILE. Instead we will create our own fstab file. So with that out of the way, let’s get started:

The short of it

  1. Start by making a backup of your system. If you bugger up your system you’ll have something to recover from.
  2. Open terminal (/Applications/Utilities/Terminal.app)
  3. Do one on the following:
    • In Terminal, type the following (with your volume name) and return *: diskutil info /volumes/DiskName diskutil info volumes DiskName
    • Or, you can use Apples Disk Utility app (/Applications/Utilities/Disk Utility.app), select the disk in question and choose “info” from the toolbar. Disk Utility information
  4. Find the Volume UUID (Universal Unique Identifier). Copy the UUID to your clipboard **.
  5. In Terminal enter and return ***: sudo pico /etc/fstab
  6. Enter your password and return.
  7. You’ll enter a window that looks like this: sudo pico etc fstab
  8. Enter the following (with your UUID) and return ****: UUID=87635CC4-B2EF-3114-B854-F64347A39630 none hfs rw,noauto 0 0
  9. Repeat step for each device you with to hide, each on a new line. device id, mount point, filesystem, mount options, dump and fsck options
  10. Exit pico (&#x2303;X) and save (Y).
  11. Press return when prompted with: File Name to Write: /etc/fstab File Name to Write: /etc/fstab
  12. All that’s left to do is is cross your fingers and reboot your Mac.

The long of it

  • * substitute “DiskName” for the name of the volume you wish to hide. If your volume name contains a space, like “Macintosh HD” you need to escape the space with a backslash so it looks like “Macintosh\ HD”
  • ** We use the “Volume UUID” as the disk identifier since it is not prone to change like “Device Identifier” (i.e. “disk0s2″) which can change with each and every start up.
  • *** This will create/edit your “/etc/fstab” file with pico, a simple text editor.
  • **** The string you are entering is the device id followed by the mount point, the filesystem, the mount options, the dump and fsck booleans. In this case:

    • the device is my UUID (UUID=87635CC4-B2EF-3114-B854-F64347A39630)
    • the mount point is “none” (because we won’t be mounting it)
    • the file system is “hfs” (since it’s formatted for Mac)
    • the mount options are “rw” (read-write) and “noauto” (volume will not auto mount)
    • the dump option (backup utility) and fsck option (filesystem check utility) booleans are both set to 0 (false, off, nil, nada) since we don’t plan to mount the volume and therefor don’t need to backup or check them

    For more on fstab column structures, visit tuxfiles fstab help.

The wrap-up

For whatever reason, Apple decided to nix fstab from it’s own Unix core. Perhaps for security or perhaps they just deemed it unnecessary. If you look in the other file I mentioned, “/etc/fstab.hd” (in terminal, enter and return: sudo pico /etc/fstab.hd), you’ll see the message:

IGNORE THIS FILE. This file does nothing, contains no useful data, and might go away in future releases. Do not depend on this file or its contents.

However, I see no harm in extending the life expectancy of my disks and saving energy at the same time. All while doing away with the annoyance of long indexing times and being inundated with duplicate search results. If you have anything to add, please feel free to leave a comment.

Other references

  1. Mac OS X Hints from 2006
  2. Mac OS X Hints from 2005
  3. Mac OS X Hints from 2004
  4. Mac OS X Hints from 2003
  5. MacSeven from 2007
  6. Garbage In Garbage Out from 2007
  7. UUID on Wikipedia
  8. Pico on Wikipedia
  9. How to edit and understand fstab files
Comments (7) | Trackback

SaaS… Free… Cloud computing… Dead

It probably sounds a bit funny to lament the death of web apps on a Mac productivity blog when web apps neither scream Mac or productive. The truth of the matter is though, I was am a heavy user of many web apps, more so than most of the native apps on my machine.

Let’s see, I use a remote time tracker, Google mail/calendar/reader, todo, flickr, Twitter… See where I am going with this? Most of these apps replaced local versions of the same service, and somewhat poorly, I might add. But the all have one really big advantage in that they can be accessed from anywhere and shared with anyone so easily that a monkey could do it.

But their biggest drawback to date is causing me to rethink the value of mobile access… since they only exist in the etherweb, if a developer decides to pull the plug on a service, you’re screwed! This already happened in a pretty big way this week with the loss of iWantSandy, Stickit, and pownce.

While I was only really effected by the loss of Stickit, I was still left scrambling for a desktop alternative that could do everyhing that I required of Stickit, and it such a way that felt familar. That’s how I came to use TaskPaper from HogBay Software. Now that working remotely is not as critical to me it was in my commuting and contracting days, this desktop solution seems to be the way I ought to move with all my other cloud solutions.

To be honest, Mail.app has come a long way since I dropped in the OS X 10.2 days, I already have BusySync syncing my Google calendar to iCal.app, rss feeds are a dime a dozen and would take me long to move back to NewsFire, and there are time tracking apps that actually keep acutate record of what a am really doing and not what a SAY I am doing.

Is your computing in the cloud? Do you feel secure with your choices in software as a service providers? Do you have a backup plan if/when they pull the plug? What do you think is the perfect balance?

Comments (1) | Trackback

seyDoggy is back in the office.

rapidweaver4.2We are back from or little vacay, and back on the horse, if you will, working through a pile of emails and such. On our agenda this week is to address a few bug issues in some of our RapidWeaver themes, namely a footer issue in wideNas, and a couple of mystery bugs that occasionally rear their head in cataLog and Acumen. We should have all of these addressed this week with their respective update installers ready for download.

And as always we are ever moving forward and onward with the theme developments and ideas. We have quite a list of them to get through over the next year or so so you can be sure to see one or two new themes from us every month. Yes that is an ambitious plan, but this is what we do after all, we might very well be the only full time RapidWeaver theme developers now who do nothing else.

And speaking of RapidWeaver, did you notice that RapidWeaver 4.2 has been released? Yes indeed. I have not yet tried it myself, but I have downloaded it and will be getting into it shortly. Learn more about it’s release here.

| Trackback
Powered by RapidWeaver, WP-Blog and WordPress 3.3.1