Kerri and I found this little man while walking through Boston on Saturday:

SmugMug
Posted by Jason Terk on Friday, December 25
Up until now to post photos from SmugMug I've crafted the link and image markup by hand, which is pretty tedious and prone to error. Today I ginned up an extension to Markdown (RDiscount, really) that allows automatic generation of the markup from the image title and URL. Here's how it works:
The first step is to create a new Hobix entry class (located in
BLOG_ROOT/lib/local.rb):
module Hobix
# Entries that use Markdown for formatting and automatically handle SmugMug
# photos.
class SmugMugEntry < Entry
# Use SmugMug
def self.text_processor
SmugMug
end
# The YAML type for this entry class.
def to_yaml_type
"!goterkyourself.com,2009/SmugMugEntry"
end
# Register with the YAML engine.
YAML::add_domain_type('goterkyourself.com,2009', 'SmugMugEntry') do |type, val|
self.maker(val)
end
end
end
Now, any Hobix entry created with the type
goterkyourself.com,2009/SmugMugEntry will use the SmugMug photo processor.
All that remains now is to define the SmugMug class, which does the heavy
lifting. This class is nested inside Hobix::SmugMugEntry:
# A SmugMug text processor that wraps Markdown with SmugMug specific
# capabilities.
#
# The syntax is:
#
# $[Image Caption](Image URL)
#
# i.e.: $[Bob Swimming](http://account.smugmug.com/Some/Category/1234567_abc12#123456789_AaBbC)
#
# Note that, for simplicity's sake, a SmugMug image blob must be on its
# own line
#
class SmugMug < RDiscount
def to_html
# Create a temporary string for the replacement so @text doesn't get
# mangled.
text = @text
# Replace
if text and not text.empty?
text.gsub!(/^\s*\$\[(.*)\]\((.*)\)\s*$/) do |match|
begin
caption = $1
image_url = $2
image_id = image_url.split("#")[1]
image_uri = URI.parse(image_url)
raise "Missing image ID" if image_id.nil? or image_id.empty?
"<a href=\"#{image_url}\">" +
"<img src=\"http://#{image_uri.host}/photos/#{image_id}-640x640.jpg\" "+
"alt=\"#{caption}\" " +
"title=\"#{caption}\" " +
"class=\"photo\"/>" +
"</a>"
rescue
# Just return the match on poorly formatted image blobs.
$stderr.puts "Bad SmugMug blob: #{match}"
match
end
end
end
m = RDiscount.new(text)
m.to_html
end
end
Once this is in place $[Amelie in her sheep
hat!](http://gty.smugmug.com/Children/Amelie/7135981_oYtj9#705169136_SeMGC)
becomes:

SmugMug
Posted by Jason Terk on Tuesday, January 06
To expand on my "switching to SmugMug" comment from a few days ago:
- If you're a big nerd like me and you subscribe to people's photo RSS feeds the firehose for my photos is now at this URL. There are a bunch of other feeds available too...
- The most interesting photos, if I do what I want instead of being a lazy slob, will be in the Email gallery. This is where all the stuff I take with my iPhone will go. Hooray for having the internet in my pocket.
- Switching to SmugMug was super easy. There's a Firefox extension called Smugglr that does the job easily.
- If you sign up for SmugMug I encourage you to use a coupon code to get a discount on the first year. If you're coming from Flickr use the code
flickrto save 50% or, if you feel like helping me pay for my subscription, usehwrh3klDBOGlI- this will save you $5 and send $10 to me - it's win/win!
Addendum
Cool SmugMug feature: resizing images via URL. Take the photo above. The default size is accessed via the URL http://gty.smugmug.com/photos/442170176_d5a4f-L.jpg. Everything after the "-" tells SmugMug what size photo you want to see. You can use some predefined sizes, like "-L" (large), "-O" (original), etc. But you can also tell it to resize the photo on the fly by giving it the desired dimensions, i.e. "-250x250". So the URL for embedding the above image is http://gty.smugmug.com/photos/442170176_d5a4f-250x250.jpg.
Pan-Asian Gallivanting
Posted by Jason Terk on Wednesday, August 20
My brother Adam graduated from Syracuse this year and he's been wandering aimlessly around Vermont, New York and the rest of the northeast since then. In September he leaves for what he hopes will be a year long sojourn through Asia. If you're interested in this sort of thing Adam will be updating his blog, Pan-Asian Gallivanting, with stories and photos from the trip.




