<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Hi, I’m Bertrand Fan. I’m the co-founder of Recollect.  I’ve previously worked on Flickr, MyBO and TED.

I also make things like Metafilter comments vs. Youtube comments, HTML5 Zombocom, and smittn.

You may contact me here: bertrand@fan.net</description><title>That's a Spicy Meatball!</title><generator>Tumblr (3.0; @bertrandom)</generator><link>http://thatsaspicymeatball.com/</link><item><title>Introducing Hipster</title><description>&lt;p&gt;Ever since I moved to Santiago, Chile in July, I’ve asked myself “What time is it in San Francisco?” multiple times a day. Sometimes it’s for something practical (knowing whether or not I should be on a conference call) and sometimes it’s for something stupid (figuring out whether or not it would be a good time to tweet because the majority of my followers won’t even see it). Either way, I need to know.&lt;/p&gt;

&lt;p&gt;I tried to find an application that runs in the OS X Menubar and displays the time for a different time zone and I did find a few programs that sort of did that:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.mabasoft.net/products/worldClockDeluxeX.html"&gt;World Clock Deluxe ($19)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bjango.com/mac/istatmenus/"&gt;iStat Menus 3 ($16)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, they didn’t do &lt;strong&gt;just&lt;/strong&gt; that. I couldn’t figure out how to prevent World Clock Deluxe from opening up a floating clock in addition to the menubar and iStat Menus wanted me to click the clock every time I wanted to see the alternate time.&lt;/p&gt;

&lt;p&gt;Today I decided to just write it myself. Armed with a vague recollection of iOS development experience and the power of Google, I took the &lt;a href="http://cocoatutorial.grapewave.com/2010/01/creating-a-status-bar-application/"&gt;shell of a menubar demo&lt;/a&gt; and extracted some code from &lt;a href="http://capablehands.net/menubarcountdown"&gt;Menubar Countdown&lt;/a&gt; and tweaked it until it worked. Then I slapped an icon from &lt;a href="http://glyphish.com/"&gt;Glypish&lt;/a&gt; onto it and called it a day.&lt;/p&gt;

&lt;p&gt;Hipster looks like this in your menubar:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lwsnh2Mfi71qfs87u.png" alt="screenshot"/&gt;&lt;/p&gt;

&lt;h2&gt;Get it&lt;/h2&gt;

&lt;p&gt;You can download it &lt;a href="https://github.com/downloads/bertrandom/hipster/Hipster.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Installation&lt;/h2&gt;

&lt;p&gt;Unzip the file and drag &lt;strong&gt;Hipster&lt;/strong&gt; into your Applications folder. Run it.&lt;/p&gt;

&lt;p&gt;If you want it to run on startup, go to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;System Preferences&lt;/strong&gt; -&gt; &lt;strong&gt;Users and Groups&lt;/strong&gt; -&gt; &lt;strong&gt;Login Items&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and hit the [&lt;strong&gt;+&lt;/strong&gt;] and select &lt;strong&gt;Hipster&lt;/strong&gt; from your Applications.&lt;/p&gt;

&lt;h2&gt;Customization&lt;/h2&gt;

&lt;p&gt;You may notice that there is no Preferences option. In fact, the only option is &lt;strong&gt;Quit Hipster&lt;/strong&gt;. I realize the ridiculousness in a menubar application that only displays the time for San Francisco and my only defense is that this is my first Cocoa Mac Application and I have no idea how to create a Preferences pane.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/bertrandom/hipster"&gt;Source code&lt;/a&gt; is available on github - if you are able to create a basic Preferences pane that lets you specify a time zone, I will happily accept a pull request.&lt;/p&gt;

&lt;p&gt;You can change the time zone by opening up &lt;code&gt;StatusBarAppAppDelegate.m&lt;/code&gt; and looking at &lt;a href="https://github.com/bertrandom/hipster/commit/a9c0696ba69346231dd82301c30bd4290624b9b4#L12R41"&gt;line 41&lt;/a&gt;. Change &lt;code&gt;America/Los_Angeles&lt;/code&gt; to whatever you need it to be and hit Build in Xcode.&lt;/p&gt;</description><link>http://thatsaspicymeatball.com/post/14817471920</link><guid>http://thatsaspicymeatball.com/post/14817471920</guid><pubDate>Mon, 26 Dec 2011 10:01:52 -0800</pubDate><category>menubar</category><category>osx</category><category>timezone</category></item><item><title>sushi-motd</title><description>&lt;p&gt;The other night I logged into our dev server to check something and got tired of seeing our standard banner, so I wrote a small bash script called &lt;strong&gt;sushi-motd&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/bertrandom/sushi-motd"&gt;sushi-motd&lt;/a&gt; displays a random piece of sushi ASCII-art whenever you SSH into your server.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvztux2Y2J1qfs87u.png" alt="screenshot"/&gt;&lt;/p&gt;

&lt;p&gt;You can download it &lt;a href="https://github.com/bertrandom/sushi-motd"&gt;here&lt;/a&gt;.&lt;/p&gt;</description><link>http://thatsaspicymeatball.com/post/14024612653</link><guid>http://thatsaspicymeatball.com/post/14024612653</guid><pubDate>Sat, 10 Dec 2011 11:00:06 -0800</pubDate><category>sushi ascii</category></item><item><title>Reboot</title><description>&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;I had to set-up a new MacBook Pro last week, a replacement for my laptop that was stolen a few weeks ago. If you count the interim laptop that I was using while waiting for my &lt;a href="http://www.flickr.com/photos/cjmartin/6239360675/"&gt;electronics mule&lt;/a&gt; to get back to Chile, that will make four Macs this year that I’ve had to get into a state where I can use them. I’ve decided to document this process, mostly as a personal reference but hopefully beneficial to you as well.&lt;/p&gt;

&lt;h2&gt;Install&lt;/h2&gt;

&lt;h3&gt;The Basics&lt;/h3&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/iterm2/downloads/list"&gt;iTerm2&lt;/a&gt; – I spend a lot of time at the command line. iTerm2 makes that time more pleasant and productive. Two features I particularly like are &lt;a href="http://www.iterm2.com/#/section/features/split_panes"&gt;split panes&lt;/a&gt; and &lt;a href="http://www.iterm2.com/#/section/features/full_screen"&gt;full screen mode&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://pilotmoon.com/scrollreverser/"&gt;Scroll Reverser&lt;/a&gt; – I hate change and so should you. I’ve mostly gotten used to the trackpad scrolling in Lion but I can’t handle the mouse wheel going the opposite direction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.blazingtools.com/downloads.html#RightZoom"&gt;Right Zoom&lt;/a&gt; – This makes the green button in the top left of every window actually do something.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://lightheadsw.com/caffeine/"&gt;Caffeine&lt;/a&gt; – Sometimes you don’t want your Mac to go to sleep&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.google.com/chrome/"&gt;Google Chrome&lt;/a&gt; – For better or worse, my browser of choice. I’ve given up on the dev builds, however, that way lies faster Javascript engines but madness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.mozilla.org/en-US/firefox/new/"&gt;Firefox&lt;/a&gt; – Because, well, &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt;. When I put on my frontend hat, I usually switch to Firefox. When the Net tab in Firebug doesn’t do what I need it to do, I use &lt;a href="http://www.charlesproxy.com/"&gt;Charles&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.dropbox.com/install"&gt;Dropbox&lt;/a&gt; – Your files in the CLOUD.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://agilebits.com/downloads"&gt;1Password&lt;/a&gt; – I don’t know how I managed my passwords before this. ⌘-\ is extremely satisfying.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Development&lt;/h3&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://macromates.com/"&gt;Textmate&lt;/a&gt; – Theoretically we’re going to get v2.0 this year, I’m not holding my breath.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/git-osx-installer/downloads/list?can=3"&gt;Git&lt;/a&gt; – Obvious VCS is obvious.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://mac.github.com/"&gt;Github for Mac&lt;/a&gt; – Streamlines the checkin process of selecting files for checkin, viewing diffs, and writing commit messages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.macports.org/install.php"&gt;Macports&lt;/a&gt; – Homebrew doesn’t set my CPU on fire but sometimes your legs need to be heated up. Install &lt;a href="http://itunes.apple.com/us/app/xcode/id448457090?mt=12"&gt;XCode&lt;/a&gt; first.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/351"&gt;EC2 Tools&lt;/a&gt; – All those instances aren’t going to manage themselves. Unzip and copy &lt;code&gt;bin&lt;/code&gt; and &lt;code&gt;lib&lt;/code&gt; directories to &lt;code&gt;~/.ec2/&lt;/code&gt;. Symlink in the master key from the Dropbox folder.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Productivity&lt;/h3&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.evernote.com/about/download/"&gt;Evernote&lt;/a&gt; – Notes in the CLOUD, syncs to my iPhone. Good for doing research.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://itunes.apple.com/us/app/skitch/id425955336?mt=12"&gt;Skitch&lt;/a&gt; – Take screen captures, annotate and show them to people.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.hogbaysoftware.com/products/taskpaper"&gt;Taskpaper&lt;/a&gt; – Simple TODO lists&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://mouapp.com/"&gt;Mou&lt;/a&gt; – Markdown editor for wikis and blog. I wrote this entire post in Mou.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/mac"&gt;Microsoft Word and Excel 2011&lt;/a&gt; – At the end of the day, I need to edit &lt;code&gt;doc&lt;/code&gt; and &lt;code&gt;xls&lt;/code&gt; files with their native apps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.adobe.com/products/creativesuite.html"&gt;Adobe Photoshop and Illustrator CS5&lt;/a&gt; – There’s no substitute for the real thing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.omnigroup.com/products/omnigraffle/"&gt;Omnigraffle&lt;/a&gt; – Lightweight wireframing. I like these &lt;a href="http://konigi.com/tools/omnigraffle-wireframe-stencils"&gt;stencils&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.parallels.com/products/desktop/"&gt;Parallels Desktop&lt;/a&gt; – Run a Ubuntu VM for testing package installation (although lately I’ve just been creating AMI’s of existing EC2 instances and spinning up clones), run a Windows VM for testing IE and playing old games&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Non-productivity&lt;/h3&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://itunes.apple.com/us/app/twitter/id409789998?mt=12#"&gt;Twitter&lt;/a&gt; – Tweetie is still the sexiest Twitter client around.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://adium.im/"&gt;Adium&lt;/a&gt; – Necessary evil. By default only connects to company Jabber account and then I manually connect the other services when I want the possibility of being distracted. Disable all sounds and disable Growl. Nothing you need to know has ever appeared in a Growl notification.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://calibre-ebook.com/download_osx"&gt;Calibre&lt;/a&gt; – For managing my Kindle. Install &lt;a href="http://apprenticealf.wordpress.com/2011/01/13/ebooks-formats-drm-and-you-%E2%80%94-a-guide-for-the-perplexed/"&gt;DRM removal plugin&lt;/a&gt; to make backups of the books I’ve purchased and put them in Dropbox.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.videolan.org/vlc/"&gt;VLC&lt;/a&gt; – For all the non-standard video files that do not exist from USENET, which does not exist.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://sabnzbd.org/"&gt;sabnzbd&lt;/a&gt; – USENET client with Newzbin integration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.transmissionbt.com/download/"&gt;Transmission&lt;/a&gt; – Torrent client with a clean UI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://kismac-ng.org/"&gt;KisMAC&lt;/a&gt; – Sometimes you need an open wireless network and by open I mean WEP. Combine with aircrack-ng in Macports.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Photography&lt;/h3&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="https://www.adobe.com/cfusion/tdrc/index.cfm?product=photoshop_lightroom"&gt;Adobe Photoshop Lightroom 3&lt;/a&gt; – For post-processing photos off my SLR and putting them on Flickr. &lt;a href="http://regex.info/blog/lightroom-goodies/gps"&gt;Geocoding plugin&lt;/a&gt; for importing GPX traces and geotagging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.kolor.com/image-stitching-software-autopano-giga.html"&gt;kolor autopano giga&lt;/a&gt; – Stitch series of images together for &lt;a href="http://www.flickr.com/photos/bertrandom/sets/72157626776345952/"&gt;panoramas&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.alienskin.com/exposure/"&gt;Exposure 3&lt;/a&gt; – Instagram for your SLR, makes SLR shots look like various film cameras&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.sno.phy.queensu.ca/~phil/exiftool/index.html"&gt;exiftool&lt;/a&gt; – CLI tool for reading and writing EXIF from images, useful for copying camera information to merged &lt;a href="http://www.flickr.com/photos/hartsell/5254880145/"&gt;3D camera&lt;/a&gt; shots&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Configure&lt;/h2&gt;

&lt;h3&gt;System Preferences&lt;/h3&gt;

&lt;h5&gt;Desktop and Screen Saver&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://dizzyup.co.uk/wallpapers/"&gt;Minimal wood wallpaper&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;Keyboard – Keyboard shortcuts&lt;/h5&gt;

&lt;p&gt;Most of this is to ensure that ⌥⌘→ and ⌥⌘← are the universal keyboard shortcuts for Next Tab and Previous Tab.&lt;/p&gt;

&lt;h6&gt;Mission Control&lt;/h6&gt;

&lt;pre&gt;&lt;code&gt;Disable Move left a space
Disable Move right a space
&lt;/code&gt;&lt;/pre&gt;

&lt;h6&gt;Application Shortcuts&lt;/h6&gt;

&lt;pre&gt;&lt;code&gt;iTerm2 - Select Next Tab - ⌥⌘→
iTerm2 - Select Previous Tab - ⌥⌘←
Google Chrome - Bookmark This Page… - ˆ⌥⇧⌘D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The reason Google Chrome’s Bookmark This Page keyboard is so weird is so that we don’t conflict with the Pinboard extension’s keyboard shortcut.&lt;/p&gt;

&lt;h5&gt;Trackpad&lt;/h5&gt;

&lt;p&gt;Secondary click – Click in bottom right corner&lt;/p&gt;

&lt;h3&gt;.bash_profile&lt;/h3&gt;

&lt;p&gt;Usually I just symlink this to a file in my Dropbox folder, but for reference:&lt;/p&gt;

&lt;p&gt;Colored LS output in iTerm2:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Environment variables for EC2:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Setup Amazon EC2 Command-Line Tools
export EC2_HOME=~/.ec2
export PATH=$PATH:$EC2_HOME/bin:/opt/local/bin:/opt/local/sbin
export EC2_PRIVATE_KEY=`ls $EC2_HOME/pk-*.pem`
export EC2_CERT=`ls $EC2_HOME/cert-*.pem`
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;~/.ssh/config&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://blogs.perl.org/users/smylers/2011/08/ssh-productivity-tips.html"&gt;Connection sharing&lt;/a&gt; will ultimately make your uploads to dev server faster as long as you keep an SSH window open to it&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Host aliases are your friend. For example, alias dev.yourcompany.com to dev and then bash alias the command dev to ssh dev.&lt;/p&gt;

&lt;h3&gt;iTerm2&lt;/h3&gt;

&lt;p&gt;I use the Pastel (Dark Background) color scheme.&lt;/p&gt;

&lt;p&gt;Scrollback buffer – check Unlimited scrollback.&lt;/p&gt;

&lt;p&gt;Allow word movement in iTerm2, add &lt;code&gt;~/.inputrc&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;"\e[1;5D": backward-word
"\e[1;5C": forward-word
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Dropbox&lt;/h3&gt;

&lt;p&gt;Dropbox will take a while to sync, log-in to their website and download a zip file of 1Password.agilekeychain and unzip it in the Dropbox folder so we can at least login to websites while it’s syncing.&lt;/p&gt;

&lt;h3&gt;Github&lt;/h3&gt;

&lt;p&gt;Generate SSH keys:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkdir .ssh
cd .ssh
ssh-keygen -t rsa -C "bertrand@fan.net"
cat id_rsa.pub | pbcopy
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="https://github.com/account/ssh"&gt;Github SSH public keys&lt;/a&gt; – Add another public key – ⌘V.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git config --global user.name "Bertrand Fan"
git config --global user.email "bertrand@fan.net"
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Textmate&lt;/h3&gt;

&lt;p&gt;Pastels on Dark is the only way to go. &lt;a href="https://github.com/protocool/ackmate"&gt;Ackmate&lt;/a&gt; for faster global searches. If you don’t have an &lt;code&gt;upload to dev server&lt;/code&gt; script, &lt;a href="http://david.olrik.dk/projects/textmate-remote-sync-bundle/"&gt;this one&lt;/a&gt; is a quick substitute.&lt;/p&gt;

&lt;h3&gt;Macports&lt;/h3&gt;

&lt;p&gt;After installation:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo port -v selfupdate
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Packages I usually install:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;imagemagick – CLI tool for manipulating images&lt;/li&gt;
&lt;li&gt;watch – run the same command over and over again while monitoring changes in output&lt;/li&gt;
&lt;li&gt;iftop – Monitor traffic&lt;/li&gt;
&lt;li&gt;aircrack-ng – Crack WEP IVs&lt;/li&gt;
&lt;li&gt;wget – because typing curl -O is hard&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Google Chrome&lt;/h3&gt;

&lt;h5&gt;Bookmarklets&lt;/h5&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="https://gist.github.com/665795"&gt;One off Flickr trickle&lt;/a&gt; – Click it and then make the image public&lt;/li&gt;
&lt;/ul&gt;&lt;h5&gt;Preferences&lt;/h5&gt;

&lt;ul&gt;&lt;li&gt;Personal Stuff – Passwords – Never save passwords (All passwords are handled by 1Password)&lt;/li&gt;
&lt;/ul&gt;&lt;h5&gt;Extensions&lt;/h5&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/nfccdohlgojifgadgnbjoejdfaalaehn"&gt;Pinboard&lt;/a&gt; – The only real functionality I want out of a pinboard extension is to be able to hit ⌘D and have it open a bookmark dialog. In the options, check Enable Keyboard Shortcuts, set Bookmark Page to meta-d and Browse Bookmarks and Read Later to shortcuts you’ll never hit, e.g. alt + ctrl + meta + shift + b. This is to compensate a &lt;a href="http://code.google.com/p/pinboard-chrome/issues/detail?id=10"&gt;conflict with the 1Password extension&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://agilebits.com/extensions/mac/index.html"&gt;1Password&lt;/a&gt; – Install from 1Password itself by selecting Install Browser Extensions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/cpngackimfmofbokmjmljamhdncknpmg"&gt;Screen Capture&lt;/a&gt; – Useful for taking whole page screenshots of webpages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/kkelicaakdanhinjdeammmilcgefonfh"&gt;Window Resizer&lt;/a&gt; – Use in conjunction with Screen Capture for taking demo snapshots of webpages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/okphadhbbjadcifjplhifajfacbkkbod"&gt;SABConnect++&lt;/a&gt; – Newzbin integration with sabnzbd&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/fldildgghjoohccppflaohodcnmlacpb"&gt;InstaChrome&lt;/a&gt; – Instapaper integration&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Feedback&lt;/h2&gt;

&lt;p&gt;And that’s pretty much my working environment. There’s a lot of room for improvement and I’m open to suggestions.&lt;/p&gt;</description><link>http://thatsaspicymeatball.com/post/11943116873</link><guid>http://thatsaspicymeatball.com/post/11943116873</guid><pubDate>Wed, 26 Oct 2011 00:47:17 -0700</pubDate></item><item><title>Video</title><description>&lt;iframe width="400" height="300" src="http://www.youtube.com/embed/7iEDyTqubiM?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://thatsaspicymeatball.com/post/6478973678</link><guid>http://thatsaspicymeatball.com/post/6478973678</guid><pubDate>Sun, 12 Jun 2011 21:37:09 -0700</pubDate></item><item><title>Photo</title><description>&lt;img src="http://30.media.tumblr.com/tumblr_lmaqlg09Eg1qgnuwwo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://thatsaspicymeatball.com/post/6198538191</link><guid>http://thatsaspicymeatball.com/post/6198538191</guid><pubDate>Sat, 04 Jun 2011 19:51:17 -0700</pubDate></item><item><title>This is pretty much what I stare at all day long. It’s...</title><description>&lt;img src="http://29.media.tumblr.com/tumblr_li7s7heS6q1qi5kkho1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This is pretty much what I stare at all day long. It’s hard getting the photos exactly straight and we’re running out of scotch tape.&lt;/p&gt;</description><link>http://thatsaspicymeatball.com/post/4738725350</link><guid>http://thatsaspicymeatball.com/post/4738725350</guid><pubDate>Mon, 18 Apr 2011 20:59:36 -0700</pubDate></item><item><title>Almost certainly the best lighthouse log entry on Flickr.</title><description>&lt;img src="http://26.media.tumblr.com/tumblr_ljhxqnOHkl1qgnuwwo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/bertrandom/5608415531/" title="Almost certainly the best lighthouse log entry"&gt;Almost certainly the best lighthouse log entry&lt;/a&gt; on Flickr.&lt;/p&gt;</description><link>http://thatsaspicymeatball.com/post/4528302008</link><guid>http://thatsaspicymeatball.com/post/4528302008</guid><pubDate>Mon, 11 Apr 2011 09:27:58 -0700</pubDate></item><item><title>RFID Record Player</title><description>&lt;a href="http://www.flickr.com/photos/bertrandom/5484433768/"&gt;&lt;img src="http://farm6.static.flickr.com/5015/5484433768_3a2c80d135.jpg"/&gt;&lt;/a&gt;

&lt;p&gt;This is a side-project that I’ve been working on for a while.&lt;/p&gt;
&lt;p&gt;Like most people, I have a large collection of digital music, which is awesome, but sometimes I miss the process of physically choosing an album. Also, when you have friends over, it’s a little weird to hand them a laptop and say “Pick an album!”. When you have thousands of artists to choose from, the &lt;a href="http://video.google.com/videoplay?docid=6127548813950043200"&gt;paradox of choice&lt;/a&gt; kicks in and it’s a bit like asking them to pick a 401k plan.&lt;/p&gt;

&lt;p&gt;This is an early prototype of it working in action:&lt;/p&gt;

&lt;br/&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" data="http://www.flickr.com/apps/video/stewart.swf?v=71377" height="270" width="480" type="application/x-shockwave-flash"&gt;&lt;param value="intl_lang=en-us&amp;photo_secret=b7ded13c6a&amp;photo_id=5326032127" name="flashvars"&gt;&lt;param value="http://www.flickr.com/apps/video/stewart.swf?v=71377" name="movie"&gt;&lt;param value="#000000" name="bgcolor"&gt;&lt;param value="true" name="allowFullScreen"&gt;&lt;embed width="480" height="270" flashvars="intl_lang=en-us&amp;photo_secret=b7ded13c6a&amp;photo_id=5326032127" allowfullscreen="true" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;p&gt;The small vinyl records are Christmas ornaments that I embedded RFID tags into and then pasted their album art that I downloaded from discogs and had printed on quality photo paper at a print shop. The record player is simply a photo of a record player I found on Flickr with an RFID reader underneath.&lt;/p&gt;

&lt;h3&gt;Assembling a record&lt;/h3&gt;

&lt;p&gt;I start with a Christmas ornament of a vinyl record.&lt;/p&gt;
&lt;br/&gt;&lt;img src="http://media.tumblr.com/tumblr_lhb3eboBNq1qfs87u.jpg"/&gt;&lt;p&gt;Then I peel off it’s label and clip the string and plastic loop.&lt;/p&gt;
&lt;br/&gt;&lt;img src="http://media.tumblr.com/tumblr_lhb3esUB9g1qfs87u.jpg"/&gt;&lt;p&gt;This is a &lt;a href="http://www.trossenrobotics.com/store/p/3625-Clear-thin-Lamination-disks-30mm-Sticker-backing-.aspx"&gt;disc RFID tag&lt;/a&gt;.&lt;/p&gt;
&lt;br/&gt;&lt;img src="http://media.tumblr.com/tumblr_lhb3f8GiKV1qfs87u.jpg"/&gt;&lt;p&gt;I stick the disc RFID onto the album.&lt;/p&gt;
&lt;br/&gt;&lt;img src="http://media.tumblr.com/tumblr_lhb3fuYw7v1qfs87u.jpg"/&gt;&lt;p&gt;Then I place the album art on top of the RFID.&lt;/p&gt;
&lt;br/&gt;&lt;img src="http://media.tumblr.com/tumblr_lhb3gdvZko1qfs87u.jpg"/&gt;&lt;h3&gt;Hardware&lt;/h3&gt;

&lt;p&gt;The components are a &lt;a href="http://www.trossenrobotics.com/p/REDBEE-Wireless-rfid-reader.aspx"&gt;RedBee RFID reader with XBee wireless modules&lt;/a&gt;, a wireless router running DD-WRT, and a &lt;a href="http://www.networkedmediatank.com/wiki/index.php/Popcorn_Hour_A-100"&gt;Popcorn Hour A-100&lt;/a&gt;.&lt;/p&gt;

&lt;br/&gt;&lt;a href="http://www.flickr.com/photos/bertrandom/5432215647/"&gt;&lt;img src="http://farm6.static.flickr.com/5060/5432215647_de8ddb6e77.jpg"/&gt;&lt;/a&gt;

&lt;p&gt;The RedBee RFID reader reads the RFID tag and wirelessly transmits it to the XBee module attached via USB to my wireless router, which then replays the RFID tag to my Popcorn Hour, which finally selects the corresponding album and plays it.&lt;/p&gt;

&lt;h3&gt;Software&lt;/h3&gt;

&lt;h4&gt;Asus RT-N16&lt;/h4&gt;

&lt;p&gt;The XBee wireless module is attached to the router via USB. I’ve flashed the router with &lt;a href="http://www.dd-wrt.com/site/index"&gt;DD-WRT&lt;/a&gt;, which includes an implementation of the &lt;a href="http://www.ftdichip.com/Drivers/VCP.htm"&gt;FTDI Virtual COM Port drivers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thus, we just need to read from the virtual COM Port and send the RFID tag to the Popcorn Hour via netcat:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cat /dev/usb/tts/0 | nc 192.168.1.135 3333&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Popcorn Hour A-100&lt;/h4&gt;

&lt;p&gt;Starting from a stock Popcorn Hour, I modified it to allow telnet access and then used the NMT Community Software Installer to install mpd.&lt;sup id="fnref:p1680780219-1"&gt;&lt;a href="#fn:p1680780219-1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I found &lt;a href="http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki"&gt;mpd&lt;/a&gt; when researching mp3 player daemons that could be accessed via the command line. It’s an amazing project that’s worth checking out if you’re interested in running a music server. They have free clients available for almost every platform, including &lt;a href="http://www.katoemba.net/makesnosenseatall/mpod/"&gt;iPhone&lt;/a&gt; and &lt;a href="http://theremin.sigterm.eu/"&gt;Mac OS X&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Popcorn Hour reads data from the router via netcat and then passes the RFID tag to our play.php script.&lt;sup id="fnref:p1680780219-2"&gt;&lt;a href="#fn:p1680780219-2" rel="footnote"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;pre&gt;
&lt;code&gt;nc -l -p 3333 | while read x ; do /mnt/syb8634/server/php /opt/sybhttpd/localhost.drives/HARD_DISK/RFID/play.php "$x" ; done&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;And play.php simply does an array lookup against the RFID -&gt; Artist/Album hash and launches mpc, the command-line client for mpd. It also checks if the RFID tag it just read is the same as the one currently playing.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;?php

    $albums = array(
        '128 208 4 44 154'      =&gt;  array('A Tribe Called Quest', 'The Anthology'),
        '128 208 248 94 105'    =&gt;  array('Broken Bells', 'Broken Bells'),
        // etc...
    );

    $line = $argv[1];
    $line = preg_replace("/&gt;?T:NACK /", "", $line);
    $line = trim($line);

    // Sometimes the RFID reader likes to send junk data
    if (!preg_match('/[0-9 ]*/is', $line)) {
        exit();
    }

    $currently_playing = '';
    
    if (file_exists('/tmp/currently_playing.txt')) {
        $fp = fopen('/tmp/currently_playing.txt', 'r');
        $currently_playing = fread($fp, filesize('/tmp/currently_playing.txt'));
        fclose($fp);
    }

    if ($line != '' &amp;&amp; $line != $currently_playing) {

        if (array_key_exists($line, $albums)) {

            exec('mpc stop');
            exec('mpc clear');
            exec('mpc search artist "' . $albums[$line][0] . '" album "' . $albums[$line][1] . '" | mpc add -');
            exec('mpc play');
            
        }

        $fp = fopen('/tmp/currently_playing.txt', 'w');
        fwrite($fp, $line);
        fclose($fp);
        
    }

?&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That’s pretty much it! When I make new albums, I just transfer them to the Popcorn Hour via SMB, add the corresponding RFID tag to the array, and update the music database.&lt;/p&gt;

&lt;h3&gt;Cool, how do I make one?&lt;/h3&gt;

&lt;p&gt;The hardware choices I’ve made here were mostly based on stuff I already had. The Popcorn Hour could easily be replaced by any computer with a sound card that can run mpd and the ftdi drivers, but if you don’t have a spare netbook or PC lying around, the Popcorn Hour seems to be the right price point (especially the &lt;a href="http://www.popcornhour.com/onlinestore/index.php?pluginoption=buynow"&gt;refurbished A-110 at $105&lt;/a&gt;) for a dedicated RFID mp3 player.&lt;/p&gt;

&lt;p&gt;The RedBee RFID reader is slightly more expensive that most RFID readers, but that is because it can use XBee wireless modules. If you don’t need wireless, you can get away with cheaper USB RFID readers.&lt;/p&gt;

&lt;p&gt;The only tricky thing to find is probably the Christmas ornaments that look like records. I bought these from Restoration Hardware’s online store a few years ago during an after Christmas sale, but I haven’t been able to find a cheap source for them. If you do, let me know. One alternative that I was thinking of would be to &lt;a href="http://www.unplggd.com/unplggd/diy-project/35-floppy-disk-into-record-player-greeting-card-project-080088"&gt;remove the disc inside of 3.5” floppy disks&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you decide to try making one, please let me know (bertrand@fan.net) how it turns out!&lt;/p&gt;

&lt;div class="footnotes"&gt; 
&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:p1680780219-1"&gt; 
&lt;p&gt;It’s worth noting that the ftdi_usb drivers are also available for the Popcorn Hour, thus you could theoretically bypass the wireless router altogether by attaching the XBee wireless module directly to the Popcorn Hour, but I found the drivers to be too unstable - perhaps due to the memory limitations of the unit.&lt;/p&gt; 
&lt;/li&gt;
&lt;li id="fn:p1680780219-2"&gt;Why do we have a daemon running in a loop that calls php? PHP daemonizes poorly and leaks memory like a sieve. Why not use a language other than PHP? Well, for one, I work at Flickr and write PHP all day long, so it’s the language I’m most familiar with. When all you have is a hammer, everything looks like a nail. Also, it’s already on the Popcorn Hour, albeit an old CGI version of PHP 4.
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</description><link>http://thatsaspicymeatball.com/post/3567097734</link><guid>http://thatsaspicymeatball.com/post/3567097734</guid><pubDate>Mon, 28 Feb 2011 11:15:06 -0800</pubDate></item><item><title>Yelp Success Story</title><description>&lt;p&gt;A few years ago, I found myself living in Cambridge, MA. I went to a laundromat and put my clothes in and decided to look for restaurants in the area, when I stumbled across this review:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lgu9t2pQpP1qfs87u.png"/&gt;&lt;/p&gt;

&lt;p&gt;After reading it, I &lt;b&gt;had&lt;/b&gt; to see what he was talking about, so I walked over there, had a terrible meal, and then took a photo and uploaded it to Yelp.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lgu9ef6NOV1qfs87u.jpg"/&gt;&lt;/p&gt;

&lt;p&gt;Today, I got this!&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lgu9yzigrk1qfs87u.png"/&gt;&lt;/p&gt;

&lt;p&gt;This, my friends, is social media at work.&lt;/p&gt;</description><link>http://thatsaspicymeatball.com/post/3371614194</link><guid>http://thatsaspicymeatball.com/post/3371614194</guid><pubDate>Fri, 18 Feb 2011 16:44:18 -0800</pubDate></item></channel></rss>

