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.

JavaScript Design Patterns by Addy Osmani

“Design patterns can be traced back to the early work of a civil engineer named Christopher Alexander. He would often write publications about his experience in solving design issues and how they related to buildings and towns. One day, it occurred to Alexander that when used time and time again, certain design constructs lead to a desired optimal effect.” –via Essential JavaScript Design Patterns For Beginners.

| Trackback

seyDoggy.com Gets a New Look

new seydoggy siteIt’s finally done… I think. After spending more then a year at it, I think I have finally consolidated all of the web properties and blogs that I’ve wanted to for quite some time.

Probably the most notable changes are to seyDoggy.com. It’s no longer a portfolio site for past work since we don’t actually do client work anymore. It’s now just a calling card, if you will, or a hub I guess.

Also, the seyDoggy blog has been moved over to this blog. All of the original posts have been maintained so all the posts on RapidWeaver tips, AppleScripting, browser hacking, etc, are still available.

And last but not least, I’ve brought the Merrifield Photography blog over here as well. There are some pretty old stuff in there that I didn’t want to let die.

So there we are… my web-life is a little tidier, a little cleaner, a lot simpler. Now I just need to give the layout here a little tender loving care.

[tags]seydoggy,web,design,blog[/tags]

| Trackback

3 Quick AppleScripts to Save You Time

AppleScript is an automation solution that allows you to handle tasks quickly and efficiently without a lot of thought or effort on your part. This can be repetitive things you may want to take care of in short order or this might simply be stuff you want to do from anywhere regardless of what app you are in. Whatever the case, AppleScript can usually be employed for such tasks.

I enjoy solving process streamlining needs on my own with AppleScript and I am not one to keep good things to myself so here are just 3 little scripts I would like to share. You might have a use for them and they might just make your day easier.

Toggle apps on or off

If you’re like me you might have one or two apps that do all that you need them to just by turning them on or off. So why leave them running in the background all the time? Two apps that I can think of in my list are Nocturne and Isolator. I use them from time to time but not often enough to keep them in the menu bar permanently. Activating their features requires me to select their icon from the menu bar and selecting the option that toggles their behavior on or off. Or if you just leave their behavior toggled on then quit and restart the app, it has the exact same effect. Quitting the app turns the feature off (obviously) and starting the app turns the feature on…

Sounds like a job for AppleScript:

-- replace "YourAppName" with your app
set yourApp to "YourAppName"

-- leave the rest to us
if appIsRunning(yourApp) then
    tell application yourApp to quit
else
    tell application yourApp to activate
end if

on appIsRunning(appName)
    tell application "System Events" to ¬
        (name of processes) contains appName
end appIsRunning

By changing the name of “YourAppName” to the app you want to toggle on or off and then setting yourself a keyboard shortcut for the script, you can then activate the app and it’s only desired feature with a stroke of the keys.

Download

Get your fresh copy of “On-Off_AppToggle” from CodeCollector.net

Simple Web Search

Google Web Search AppleScriptDo you remember when a query to a search engine was a simple string that looked like http://www.google.com/search?q=this%20or%20that? Now-a-days search strings tend to include all sorts of information like the source of the search, encoding, language, client, OS… and ends up like and unreadable bunch of garbage like this http://www.google.com/search?source=qsb-mac&oe=UTF-8&hl=en&q=this%20or%20that&client=qsb-mac&ie=UTF-8. I for one don’t need every one of my queries to be counted so I wrote a simple script to pose that basic string once again. For your own purposes you can change the search engine and browser to suit your needs.

set userQuery to text returned of ¬
    (display dialog "Google search:" ¬
        default answer "" buttons {"Cancel", "OK"} ¬
        default button 2)

set httpArray to ¬
    {"http://", "www.", ".com", ".ca", ".net", ".org", ".info", ".us"}

set httpBool to false
repeat with httpAny in httpArray
    if userQuery contains httpAny then
        set httpBool to true
        exit repeat
    end if
end repeat

if httpBool then
    tell application "Safari" to open location userQuery
else
    tell application "Safari" to open location ¬
        "http://www.google.com/search?q=" & userQuery
end if
tell application "Safari" to activate

When you launch this script you just enter your search query and press return.

Edits

r4 10-29-09 09:43 – It would be handy if you could use this script to open known urls to, so I’ve edited the script to do so in a basic manner. It’s not perfect yet as I need to write some regular expressions to really detect proper TLDs and such. But it will do for now. So, perform a query and Safari will open that query in as a Google search. Or, enter a URL and Safari will directly open that website.

Download

Get your fresh copy of “Google_Search” from CodeCollector.net

Launch apps by task

Launch Task AppsMy days, weeks and even months can often be broken into many different tasks. I wear a lot of hats as a small business owner. One day I might be providing support for the RapidWeaver themes I make and the next day I will be knee deep in code making the latest greatest product. One minute I am social networking and the next I am designing something shiny.

Each of these tasks involves a unique set of apps to be open which can make changing gears a time consuming — if not confusing — process.

To address this I wrote a script that launches (or quits) a particular set of apps based on the task I need to do. For example:

  • If I am busy with support, I want to launch:
    • Mailplane
    • Safari
    • TextMate
  • If I am networking I will use:
    • Safari
    • Adium
    • LimeChat
    • Mailplane
    • TweetDeck
  • If I am designing I want:
    • DigitalColor Meter
    • LittleSnapper
    • Photoshop
  • Or if I am developing a new theme:
    • RapidWeaver
    • Safari
    • TextMate
    • MAMP

And so on… As mentioned, I can use the script to either launch these sets of apps or quit them and I can do so with a single keyboard-shortcut. This saves a lot of time and helps keep the clutter to a minimum. You can fill in your own task sets and your own apps to suit.

-- define the sorts of tasks you wish to activate multiple apps for
set taskArray to {"Surfing", "Media", "Designing"}

set taskName to ¬
    {choose from list taskArray with prompt ¬
        "Pick your process:"} ¬
            as string
set toDoArray to {"Launch apps", "Quit apps"}
set toDoResult to ¬
    {choose from list toDoArray with prompt ¬
        "Would you like to launch or quit these applications?"} ¬
            as string


if taskName is equal to "Surfing" then

    -- define the apps you would like to open/close
    set appArray to ¬
        {"Safari", "LittleSnapper", "Mail"}

    runTrue(appArray,toDoResult)
else if taskName is "Media" then

    -- define the apps you would like to open/close
    set appArray to ¬
        {"iTunes", "Last.fm", "DVD Player"}

    runTrue(appArray,toDoResult)
else if taskName is "Designing" then

    -- define the apps you would like to open/close
    set appArray to ¬
        {"Adobe Photoshop CS3", "DigitalColor Meter", "LittleSnapper"}

    runTrue(appArray,toDoResult)
else
    display dialog ¬
        "Something is wrong! Please check your array values."
end if

-- runTrue function
on runTrue(appArray,toDoResult)
    repeat with appName in appArray
        if toDoResult is "Launch apps" then
            tell application appName to activate
        else if toDoResult is "Quit apps" then
            tell application appName to quit
        else
            display dialog "Houston, we have a problem!"
        end if
    end repeat
end runTrue

Download

Get your fresh copy of “LaunchTaskApps” from CodeCollector.net

Go play

I hope you can make use of these scripts in your own daily workflow. I know I would be lost without them. Do have any scripts of your own you want to share? Feel free to comment and let me know.

[tags]applescript,app toggle,launch task apps, google search[/tags]

| Trackback

Scripting LittleSnapper… Slight Return

Less then a week after writing this AppleScript — which launches LittleSnapper and snaps the website currently in view in Safari — the boys at Realmac Software come out with this bookmarklet that does exactly the same thing, only with a mouse-click instead of a hot-key combination… unless you’re me.

I loath the mouse and if I can avoid ever using it I will go to great lengths to make sure my hands stay firmly atop my keyboard. Perhaps you’re the same way, so for kicks I turned Realmac Software’s bookmarklet into an executable AppleScript that I can assign a hot-key to.

What’s a bookmarklet?

First you have to understand what a bookmarklet does. A bookmarklet is nothing more then a bit of javascript (in many cases) that when clicked performs a basic task. It’s like a mini application… like an applet… in fact, it is an applet, hence the name “bookmark”-”let”. In the case of the LittleSnapper bookmarklet, clicking the bookmark (or URL) tells your browser (in javascript) to change the URL in the address bar from http://example.com to littlesnapper://snap/http://example.com. You’re just adding littlesnapper://snap/ to the front of any URL! You can actually do this yourself, provided you have LittleSnapper. Try going your favorite website, click the address field, type littlesnapper://snap/ in front of the URL and hit return… ta-da!

Make one-click easier?

So let’s go back to actually using the bookmarklet… you have to click on it and that’s no fun. It’s time to turn it into AppleScript!

The bookmarklet, if you look at it in your bookmarks folder, looks like this:

javascript:location.href='littlesnapper://snap/'+location.href;

The quick and dirty way to turn this into an executable AppleScript would be to use Safari’s built in do JavaScript method, like this:

tell application "Safari"
    do JavaScript "location.href='littlesnapper://snap/'\n
    +location.href;" in document 1
end tell

But that would leave you pretty much locked into using the script with Safari when using hot-keys, while clicking the bookmarklet will work in any browser. So do JavaScript is too limiting.

Since we only need to pass in the string littlesnapper://snap/ before the URL, why not just write a method that does that:

tell application "Safari"
    set currentURL to URL of front document
    open location "littlesnapper://snap/" & currentURL
end tell

This works, but if you want to apply it to all other browsers — Opera, Camino, Firefox, etc — you have a lot of work ahead of you as you discover the various degrees of scriptability each app has. To grab the URL in some of these apps you have to jump through hoops:

  • in safari it’s URL of front document
  • for Firefox «class curl» of window 1 will sometimes work
  • Camino is URL of browser window 1 and so on…

Some apps need to use System Events to access them, others don’t. And then try and tell each one that you want to open location, again with or without System Events… it turns into argument soup very quickly.

A good rule of thumb when trying to script anything is to simplify the number of tasks you assign to any given process. In this case, for each browser I am trying to do two things; get the current URL and then open a new, modified URL.

LittleSnapper is a browser too!

Then it got me thinking — LittleSnapper uses webkit as it’s rendering engine and therefor it should share a lot of the same scripting dictionary that Safari uses. So I thought I would test something out; I attempted to open location "littlesnapper://snap... with LittleSnapper itself:

set currentURL to "http://www.google.ca"
tell application "LittleSnapper"
    open location "littlesnapper://snap/" & currentURL
end tell

Viola! Without opening a “browser”, I just snapped a web shot of Google.ca, right in LittleSnapper. This now cuts the workload of running unique scripts for each browser in half since I can now tell LittleSnapper to open the URL… once I have it.

Scripting a common thread

So now to get the URL from the browser — any browser — without making a code spaghetti like this mess:

if application "Firefox"is running then
    tell application "Firefox"
        set currentURL to «class curl» of window 1
    end tell
else if application "Safari"is running then
    tell application "Safari"
        set currentURL to URL of front document
    end tell
else if application "Opera"is running then
    tell application "Opera"
        set props to GetWindowInfo of window 1
        set currentURL to item 1 of props
    end tell
else if application "Camino"is running then
    tell application "Camino"
        set currentURL to URL of window 1
    end tell
end if

There has to be a better way… and there is. Here comes System Events to the rescue with a couple of keystroke executions like so:

tell application "System Events"
    -- highlight address field with ⌘L
    keystroke "l" using {command down}

    -- copy to clipboard with ⌘C
    keystroke "c" using {command down}
end tell

This will allow us to access any browser the same way, with global hot-keys as executed by AppleScript.

Now we just need to talk to those browsers to find out which one is in use. We can do this with an if statement, like this:

if application "Safari" is running then
    tell application "System Events"
        keystroke "l" using {command down}
        keystroke "c" using {command down}
    end tell
end if

But with four or more browsers this would be a bit much.

The full deal

So let’s make an array out of our favorite browsers, run that array through a loop, mash in our System Event keystrokes, and finish it all off with a variable passed into LittleSnapper and this is what we get:

-- let's define our array
set appArray to {"Safari", "Firefox", "Opera", "Camino"}

-- then run that array through a loop
repeat with appName in appArray
    if application appName is running then
        tell application appName to activate
        tell application "System Events"
            keystroke "l" using {command down}
            keystroke "c" using {command down}
        end tell
        delay 0.5

        -- make a variable from the clipboard
        set currentURL to the clipboard
    end if
end repeat

-- pass that variable in to LittleSnapper
tell application "LittleSnapper"
    activate
    open location "littlesnapper://snap/" & currentURL
end tell

Is this overkill to get a hot-key combo that does what a bookmarklet does in one click? Depends on who you ask I guess. I think it’s a pretty good solution in fact. Now instead of copying a bookmarklet to the toolbar of every browser I use, I have a script that I can assign a global hot-key to (via FastScripts or some such tool) and use it across any browser I set in my array.

Yes, I am that much of a geek.

Download

Get it fresh from CodeCollector.net

[tags]applescript,littlesnapper,realmac,software,safari,firefox,opera,camino,browser,bookmarklet,hot-key[/tags]

| 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

MacFusion – Snow Leopard Fix

I’ve been playing around with ssh while I configure my Ubuntu Server (more details about that soon) and figured I would get my head out of the terminal for a bit. So I downloaded ExpanDrive again (used it a while back) only to discover that it’s since been upgraded… a paid upgrade… and my old serial no longer applies. I wasn’t enamoured with “mounting” remote servers as hfs volumes enough to pay for this app a second time so I decide to move on to the free alternative; MacFUSE + MacFusion.

The only hiccup I encountered was that MacFusion didn’t seem all that happy about launching an ssh connection under Mac OS X 10.6 Snow Leopard. I could connect with no issues in terminal but not in MacFusion. A quick visit to the MacFusion Google Group revealed this temporary solution, which is basically:

  1. quite MacFusion
  2. set up MacFUSE to get betas (under System Preferences)
  3. and remove this file in Terminal:
rm /Applications/Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshnodelay.so

To get the nitty-gritty, please read the full post at Racker Hacker.

[tags]snow leopard,mac osx,terminal,ssh,server,macfuse,macfusion[/tags]

| Trackback

What is success?

At the last Waterloo Region Web Design & Technology Group I attended I had the opportunity to talk to a lot of people who were waiting patiently to ask me the same thing, “How did you start your own company?”

I don’t know whether I started seyDoggy in any traditional sense or not, but it seems my answers didn’t completely satisfy most people who asked. The process seemed too safe perhaps, or too long. I’m not really sure. But the common thread I could see each time I was asked, which seemed to be what they were really getting at was, “How long did it take you to become successful?”

So for weeks now I have been thinking about both questions and how, or if they are even related. I’ve decided the two do not belong on the same line of sight. Since I am no authority on the right or wrong way to start a business (I’ve really only started one and it seems I did it right), then I will address the other question here, “How long did it take you to become successful?”

First, let’s define success as the accomplishment of an aim or purpose. I think that’s where many young people are getting it wrong today. They think success is getting rich. If that is your aim then I suppose getting rich would accomplish that but that’s not what success is to me.

For me, my professional successes as they pertain to this company, have come in stages. For starters, I wanted to start a serious company that would some day be my sole source of income. I wanted to be able to make as much, if not more then I was at the day job. I called it my 5 year plan.

That was in the summer of 2005. By September of 2005, seyDoggy was a registered company and by November of 2006 I was no longer on anyones payroll. The 5 year plan was truncated to a little over 1 year… that was a success to me.

But I had more aims that evolved as the company grew. I wanted to make a living doing what I wanted to do, not what clients wanted me to do. I wanted to have a product based company, not a service based company. This was my next 5 year plan. Within the next two years, however, I was able to realize that goal as well. I was able to limit or eliminate all client based contracts, consulting contracts and service contracts and focus solely on the RapidWeaver theme distribution devision of seyDoggy. Again, for me, that was another success.

And how about the bigger picture? That all encompassing notion of success? That question, “Are you successful?”

That depends on what you consider successful I suppose. I am able to fulfill the needs of the family, pay the mortgage and the bills, pay my taxes, pay my contractors/employees, entertain and buy the little extras. We, as a family, don’t want for anything. But those are just the financial gains, a measure of which I have little use for. What’s more important to me, and perhaps what you could aim for as a measure of your own success, are the financial freedoms that I have earned with my company.

Here are my top 10 measures of my own success:

  1. I attend my daughters school assemblies in the middle of the afternoon.
  2. I take my children to their doctors appointments.
  3. I take the Fridays off that my wife doesn’t work.
  4. I take a few weeks worth of holidays and still make money.
  5. I go for an hour walk every morning and I am never late for work.
  6. I can take lunch at 10 am, 12 pm or 2 pm (or take lunch at 10 am and 12 pm and 2 pm).
  7. I can take a sick day and not call in.
  8. I stay home with the kids when they get sick.
  9. I can take 20 minutes out of the day to play a video game and call it professional development.
  10. I haven’t worked a weekend in over 3 years.

But do I stop here? Absolutely not. I want to be able to travel more, work less and hire more people. I keep making new goals, new levels of success to achieve and I have no intention of ever stopping. And maybe that is how I should have answered the first question, “How did you start your own company?”

I kept redefining my own measure of success. I kept setting higher goals and greater aims. I kept myself honest and my company genuine. I had a focal point for the company and at the end of the day, if I was happy with what I was doing then I was successful.

How about you? What do you consider to be success?

[tags]business, company, success, start-up[/tags]

Comments (3) | Trackback

Flickr Quietly Backpedals out of Their PR Blunder

When is an apology not an apology? When it comes in the form of a sheepish form letter and omits any explanation as to what went wrong. Late last week flickr/Yahoo! and Rogers seemingly dissolved a long standing relationship that gave Rogers Internet subscribers a free flickr Pro account for as long as they remained Rogers subscribers. Why this agreement is no more is a little unclear as the only source of the news came from flickr.com when I logged into my account and was presented with an AJAXIAN notification bubble informing me that my free Pro account would cease to be free and/or Pro by July 1, 2009. This information was additionally corroborated by my account FAQ page to which this notification directed me.

I have to admit I am fond of flickr and enjoy the service so I opted to renew then and there for another 2 years of service. Upon verbalizing my dismay to these recent events on Twitter I quickly learned that no all Rogers subscribers were reporting the same experience. Some were being told their accounts would expire on November 1st 2011, nearly a full 2 years and 4 months after the date which was originally given to me.

So I went back to check my account, and there is was, the same notification bubble now displaying November 2011, not July 2009! Oh the FAQ still said 2009, but the notice now said 2011. So armed with these discrepancies (and the screen shots to prove them) I sent flickr/Yahoo! a scathing support query:

This morning I get a notice from you (not Rogers) that my Flickr pro account that I enjoy as a Rogers customer will [no] longer be pro after July 1, 2009. This was confirmed but not elaborated on in the FAQ. After feeling I had no other choice I paid for the renewal. Shortly thereafter, and after hearing contradictory reports on the internet, I noticed the new warning that now says November 1, 2011. However the FAQ still says July 1, 2009.

This is a fairly sizable blunder on your part and I think it was handled very unprofessionally. As a company who is one of the corner stones on the internet I would expect that you of all companies would know not to publish anything to the net before making sure you’ve got it all right down to the letter.

I want my money back (or my in progress transaction canceled) if indeed my pro account is still valid until November 1, 2011. I expect a response of confirmation of action.

Thank you.

Adam Merrifield

To which I got the ineffectual and less then sympathetic response (pay close attention to the fourth paragraph about FAQ and discrepancies):

Hello,

Thank you for contacting Yahoo! Billing.

I understand that you are contacting us to request a refund for your Flickr Pro account that you recently purchased.

Any changes to your Flickr account pertaining to your Yahoo! Hi-Speed service package with Rogers are set to take place due to changes made by Rogers. Please contact Rogers regarding further details of this change.

As per the FAQ found on Flickr.com, the Flickr Pro account included with your Rogers Yahoo! Hi-Speed service will change to a free Flickr account on July 1, 2009. There is not other information from Yahoo! that would support a November 1, [2011] date. I understand that this situation may be frustrating and apologize for the inconvenience.

Unfortunately, as stated on the order page there are no refunds on pro accounts. If an account has been closed before the pro term is up it cannot be transferred to another account and the unused portion is non-refundable.

Thank you again for contacting Yahoo! Billing. If we can provide you with any further information, please reply to this email.

Regards,

Unnamed Female Support Personnel

Yahoo! Billing

This just infuriated me! I proceeded to make a spectacle of them and myself by posting about there response in as many places as I could. I sent them a short and to the point letter and supporting screen shot:

Uhhh… you work there right? And you can’t see what EVERYONE ELSE ON THE INTERNET SEES? See attached and don’t insult the intelligence of your users. Thanks.

Adam Merrifield

Get it staight Flickr

I guess this sent the message in the tone required to get some action on the matter for today I got what I assume to be the last and finalizing letter in response to this whole fiasco:

Hello Adam,

Thank you for contacting Yahoo! Billing.

I understand you have contacted us regarding your Flickr Pro service on your Yahoo! ID: xxxxxx@xxxx.com.

After reviewing your account we have issued you a full refund for your Flickr order from 05/15/2009 for $47.99. Please allow 7 – 10 business days for the credit to post to your credit card.

To view your billing history, please visit:

https://billing.yahoo.com/

and sign in to your account. Once you’ve signed in, you will be able to view all billing details regarding this Yahoo! account.

We apologize for any inconvenience this issue has caused you.

Thank you again for contacting Yahoo! Billing. If we can provide you with any further information, please reply to this email.

Regards,

Unnamed Male Support Personnel

Yahoo! Customer Care

What is the moral of the story? Don’t take it lying down! $50 is still $50 and I shouldn’t have to pay it because of a Yahoo! PR blunder and neither should you. Did you get burned by this? Does anyone know what the hell is going on yet? The notification still says November 2011 while the FAQ insists it’s July 2009. Will my account go dead in July? Who knows? We’ll fight that battle when the time comes.

[tags]flickr, Yahoo!, Rogers, internet[/tags]

Comments (2) | Trackback

The Little Know Clipboard App That Can

Jumpcut makes copy and pasting easyOne thing the Mac OS has repeatedly failed at is a native clip board, one where more then the most recent item is available to you. This has been an ongoing concern of mine for quite some time and I have always been on the lookout for a solution… a good solution.

Back in the spring of 2007 I wrote about iClip as one possible solution and in fact my dependency on it around that time became so great that I was using it to store passwords, code snippets, oft used text, etc… All was great until one day, the database became corrupted. Yes, iClip was complex enough that is was storing all my clipboard data, snippets and what not, in a database. Eeeeek!

My next notable shift in clipboard management was QuickSilver, for which I have written numerous articles. For everything that I used iClip for I was able to use QuickSilvers “Shelf” and “Clipboard History”. It was a brilliant setup and had them show/hide off the edge of the screen with a couple hot-keys. Then came the inevitable fall of QuickSilver. I can’t afford to keep monkeying around with sub-alpha builds of various branches so after my nearly three year dependency on QuickSilver I had to finally give it up.

The hole that was left was quickly filled with apps that I already use on a daily basis, like Code Collector Pro which bore the brunt of my oft used text snippets and auto complete tasks. But I was still left without a good solution for clip board history. So off on a mad search I went, review countless apps that varied in complexity and price range, until I came upon a small, simple, unobtrusive app that does one thing; buffers your clipboard history. Jumpcut is a simple, open source (and free) clip board history manager that allows you easy access to your clipboard history with a few simple key strokes.

Jumpcut allows you to set up the size of your buffer size (up to 99 clips), hot keys, bezel behaviour, app behaviour and that’s about it. It doesn’t get any simpler to use or set up. I have been using this little app heavily on a daily basis since February and never once has it failed me. No hang ups, it’s never lost my history, it’s never crashed or caused anything else to crash. It’s lightweight, responsive and just an overall pleasure to use.

This is the app that ought to be a part of Mac OS X.

[tags]mac,osx,clip board,history,paste,copy,app[/tags]

Comments (2) | Trackback

A better way to CMS with RapidWeaver

CuchyCMS Stack is a brilliant ideaThere are some tools that come along and everyone just sighs, “How did we ever get along without this?”

Stacks from YourHead Software is one of those tools that made RapidWeaver more complete then we ever knew it needed to be. What makes Stacks so amazing is that it is what ever it needs to be to whoever needs it. So far it’s been a power layout tool of endless shapes and sizes, an ExtraContent device, and RSS scraper, a Twitter badge, a media player… and now, thanks to Joe Workman, a CMS.

A Content Management System (CMS) allows clients to edit their content after their web design/development staff has published the site. So far there have been only a handful of attempts to bring CMS to the RapidWeaver platform; WebYep and PlusKit’s @gdoc(()) implementation. The former requires site licensing and the latter rely’s on Google ever changing Google Docs API.

Now there is a CushyCMS(free) implementation built into a Stacks Library item (or Stacks plugin) available from Joe Workman. By simple dragging a CushyCMS stack onto your stacks page, anything you drop into that CushyCMS stack will be editable on the client side.

Brilliant!

[tags]CushyCMS, Stacks, YourHead Software, RapidWeaver[/tags]

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