I am Shane Becker

  1. We need a Twitter API clone Ruby Gem

    About a year ago, WordPress.com did something really cool. They rolled out a clone of the Twitter API for their service. This allowed existing Twitter client apps, like Tweetie 2 (now Twitter for iPhone) and Twitterific, to be used as WordPress.com client apps too. A few days later, Tumblr did the same thing. Super fucking cool.

    Now I could use Tweetie to post to Tumblr blog, my WordPress.com blog or any number of my Twitter accounts all from the same app. How fucking awesome is that?

    Nearly everyone uses Twitter. (If they don't use Twitter, they use Facebook.) One of the knock-on effects of Twitter's pervasiveness is that there are heaps of Twitter client apps for iOS (iPhone, iPad, iPod Touch), BlackBerry, Android, Windows, Mac and Linux. Hell, Amiga probably has a Twitter client app. Seriously, what platform doesn't a have Twitter client app? What that means is WordPress.com and Tumblr have native client apps are nearly every platform.

    Imagine if you built a web service of some sort and did the same thing. If you built a clone of the Twitter API then instantly you have a slew of native client apps already installed on everyone's phones and computers. Fucking insane!

    So. I think Ruby community needs to get on this. Imagine if we had a gem that was a clone of the Twitter API that anyone could drop into their app. Bang pow, anyone can easily and quickly harness all those Twitter client apps out in the wild.

    Anyone with me?

    PS. I've been told about Twetter. That might be a good starting point, but it seems like Twetter is more of a stand alone app and is about offline tooting. I want a drop-in library.

  2. No More Sharecropping!

    There was a time when "having a website" meant you owned a website that you could do anything you wanted with. Any kind of content. Any kind of structure. Any kind of software. You were truly the Master of Your Domain. But in all fairness, it was sometimes hard to be that (web)master.

    If you just wanted to put pictures of your cat on the internet, but didn't know anything about HTML and FTP, let alone chmod and unix, you were in for a world of hurt.

    And then came Blogger (amongst other things).

    It was like Twitter without the 140 character ceiling. Just type stuff into the box and press the button. That was it! You just published stuff on the Internet. There weren't even post titles in the beginning. After that we would see a flood of hosted web services that enabled people to publish stuff on the Internet very easily.

    Before we knew it, all of our content was being hosted by these web services. Flickr, Picasa and Photobucket had our photos. Typepad, Wordpress, Blogspot (and a slew of others) had our long form writing... called "blog posts". Delicious and Magnolia had our bookmarks and read later lists. YouTube, Vimeo and heaps of video sites had our movies. Slideshare had our presentations.

    It all seemed like a good idea. Let someone else worry about uptime, backups, redundancy, bandwidth bills, etc. And for a time, things were good.

    Then as we published all of our content on other services, we became dependent on them. We became digital sharecroppers. Which maybe wasn't so bad. But then... Magnolia lost all of its data. Six Apart bought Pownce and closed down the site providing no export option — or even much warning. URL shorteners cropped up, got popular and went away in the shortest of time, taking all of their short to long URL mappings with them.

    And of course, there's Geocities. With all of its neon colors, tiled background, sparkly text and animated gifs, Geocities was a ghetto. But it was a huge ghetto. And now that Yahoo turned it off, it's gone. Imagine if every ghetto, barrio, favela and shanty town was literally taken away in one moment. That's a lot of very homeless people (even more homeless than before).

    Enough already!

    It's time for something better. It's time for a web where any person can easily create a website and publish all kinds of content there. It's time for us to own all of our data, beholden to no one. It's time that our personal diy rolled websites play nice and integrate closely into external services. It's time for a real sense of privacy, where not only is our data "protected" from other seeing it, it's also encrypted at the source so that even if seized by criminal or government alike it'd do them no good. It's time for easy granular sharing controls allowing to grant access to some content to some people, not all content to all people or to no one.

    There will come a time in the not too distant future where having a website will be considered a birthright. It's time that we start building the tools that will make that a possibility.

    Instead of sharecroppers, we must become homesteaders.

    Some Additional Thoughts

    As a person I want

    • to have a website
    • to own all of my data
    • to participate in online communities

    As a user I want

    • to publish everything to my website
    • my website to redistribute my content to other sites
    • my redistributed content to link back to my site
    • to choose which sites to redistribute to

    As a developer I want

    • to add outbound sites easily with a plugin
    • to add inbound formats for publish with

    Notes

    • Installation should be easy, at least as easy as Wordpress
    • Setup should short and simple
    • Existing tools should publish to my website

    New Blog Post Workflow

    • I open MarsEdit
    • I write a post
    • I publish it (via MetaweBlog API / AtomPub)
    • My website receives my post
    • My post is available on my website ( http://iamshane.com/notes/2010/9/12/1/the-setup )
    • My website generates a short url for the post ( http://sbb.me/n47j1 )
    • My website updates its Atom feed
    • My website alerts its subscribers that a new update is available (via PubSubHubbub)
    • My website redistributes a copy of my post with the short url at the end to Wordpress, Tumblr, gist.github.com, etc
    • My website posts the short url and title to Twitter, Facebook, status.net, etc

    New Status Update Workflow

    • I open Tweetie
    • I write my tweet
    • I publish it (via JSON to Twitter api clone)
    • My website receives my update
    • My status is available on my website ( http://iamshane.com/statuses/2010/10/5/2 )
    • My website generates a short url for the status ( http://sbb.me/s4872 )
    • My website updates its Atom feed
    • My website alerts its subscribers that a new update is available (via PubSubHubbub)
    • My website posts the short url and content to Twitter, Facebook, status.net, etc

    There's surely stuff that I've thought about but am not thinking of right now. I'll write more as it comes to me. It's also worth noting that while I had a lot of these thoughts independent of talking with others, it turns out that more people are thinking roughly the same stuff. Discussions with Tantek really helped my thoughts coalesce, especially the personal url shortener work that he's done. He's using ttk.me with a one letter namespace, 3 character base60 number of days since epoch and one digit nth item of that type on that day. I am too. I jacked that all from him and ported his JavaScript / PHP version to Ruby. Thanks, Tantek. I've also talked a fair bit with Brian Ford and Rich Kilmer about all this stuff. Both had the idea of bundling the software package up into a VM instance that one could just throw at some server and hit the ground running. I hadn't thought of that before. Thanks for that, you two.

    Let's get together and make this thing. Ruby folks, there will be a birds-of-feather to discuss ideas. Get into it.

  3. Extra! Extra!

    Time to move the dolly

    Today I was a background extra for a short video about a website. I don't know if I'm supposed to keep quiet about who its for, so I won't say. The theme of it was kind of like when Morpheus is explaining The Matrix to Neo using The Construct. Well, if Morpheus was 5'5", Jewish and wearing nerdy black rim glasses. Otherwise, the same thing. Sort of.

    This was my first time acting (sure, you could call it that). I had fun. I didn't fuck anything up too bad. I got a little screen time. I even got paid a few U.S. dollars for it. I guess that makes me a professional actor. Or something. But really, the work itself was the reward.1

    It was a lot fun. I'm really happy that I could be a part of it. There was lots of standing around, lots of waiting, lots of fake talking, lots of standing under the hot, hot heat of one million light bulbs. The movie making world has a different name for everything. It's like a secret language to keep the muggles out. I learned that apple boxes have different names for their orientations depending on which coast you're on. East coast calls them 1, 2, 3 while west coast calls them New York, Chicago (or maybe Texas) and LA. I like that. We wore booties over our shoes for a good part of the day.

    The making of a @lonelysandwich jam

    I met some new people that seemed nice after one day's worth of hangout. I met Adam Lisagor (@lonelysandwich) IRL finally. He's a real good dude. Loads of fun to work with/for. I hope that I can do more with him.

    Adam Lisagor (lonelysandwich), Amy Kernan-Bennett and Trevor Jones at the video shoot for a website in Sun Valley, CA

    Finally, a Pro Tip: read the call sheet closely with regards to wardrobe. If it says "Wardrobe: Business Casual. Please bring an extra change of non-business casual clothes. No logos, small patterned, stripes, solid white or solid black clothing", don't show up wearing black pants, white shirt, black sweater, black tie and a baseball hat with a local sports team logo on it. Or do, and be happy that the director is such an awesome dude that he's not only ok with your outfit, but tells you to keep your hat on for the day.

    What I wore (wrongly) to the video shoot for a website in Sun Valley, CA after I got home

    1 - Extra bonus reward was getting to see one of these things made. Srsly. I love seeing how things are made. ^

    At the video shoot for a website in Sun Valley, CA

  4. The Setup

    The Setup is a bunch of nerdy interviews about What do people use to get the job done?. They're all fairly high profile nerd folks. I've read this blog since the beginning and love it. There's next to no chance that @waferbaby would interview me, because honestly, who am I? So, I'm doing my own Setup interview.

    The Setup

    Some of my favorites are Michael Lopp, Richard Stallman, Amy Hoy, Khoi Vinh, Violet Blue, _why The Lucky Stiff and John Gruber. But really, they're all great. You should subscribe.

    Here goes.

    Me (doing something... who know?) at Runyon Canyon Park in Los Angeles, CA

    Who are you, and what do you do?

    My name is Shane Becker. I make websites. I first saw the web in Mosaic on an SGI running some flavor of Unix when I was a freshman in high school late one night at the Eli Lilly headquarters in Indianapolis, IN. There was no looking back.

    I currently work for The Man at a Fortune 10 company. It has its perks. I have lotsa (too many, really) side personal projects and I'm currently trying to cut down the list. I made Zine Distro (with help from Eli Duke, Bookis, Emily and Brooke), ListYourList (with Eli), The Resistance Army (with Bookis), the Rubinius site, the Seattle.rb site and co-founded LA.rb (with Evan Phoenix).

    And one time I got a bit of attention for taking a photo of an ATM.

    What hardware are you using?

    I have a 13" Unibody MacBook Pro, probably the best laptop ever made. I expect I'll swap out the spinny hard drive with the non-spinny kind and bump the RAM to 8gb. I type on the Apple Wireless Keyboard (which just eats through AA batteries) and scroll with the Magic Mouse. My desktop background says Debt is slavery. Get free. to keep me focused on my student loans (currently only $13,000 left).

    The iPad is thing a beauty. My iPads name is Jet Pack. I read a lot more than I ever did before. Books, feeds, twitter and comics. Lotsa comics. (In the picture, I was reading The Eternals by Neil Gaiman) I use the keyboard dock with it for longer globs of text. My home screen is the last image from Fighting in a New Terrain: What's Changed Since the 20th Century.

    I have an iPhone 3GS as my pocket computer that makes phone calls. Its name is 2001. It's also my only camera. I used to have a Ricoh GRD which took the best pictures I've seen, but decided on the camera that was with me over the better camera.

    Sound plays out of Harman Kardon Sound Sticks and iSub. Pages and old negatives are scanned with a Canoscan LiDE 700f.

    My desk is pink and too low. It also is an inbox for physical tasks (currently: get drivers license renewed, develop super 8 film). My chair is black, grey and adequate. My dry erase board is ceramic, within arm's reach and still leaves hints of erased notes.

    And what software?

    OS X

    TextMate, lots and lots of TextMate. Sure do wish version 2 would ship. PeepOpen. Safari. Mail.app (backed by gmail). Adium. VLC. Tweetie, but I wish it'd get updated to work with natives retweets, geo stuff and annotations. Terminal. Acorn. Name Mangler. Xtorrent. Adobe Illustrator. iTunes. Things. QuickSilver Quick Search Box. Dropbox. Skitch. Cinch. Fuzzy Clock. QuickCursor. iCal. Ruby. Ruby on Rails. git.

    Web

    GMail. Ta-da List. Wikipedia. Google. Github. Google Reader. Twitter. Heroku. Last.fm.

    iPhone

    Maps. Messages. Camera. Phone. Mail. Safari. iPod. Things. Tweetie Twitter for iPhone. Foursquare. Gowalla. Both via Check.in. Nezumi. Elements. Reeder.

    iPad

    Comixology. Marvel Comics. Graphic.ly. I wish there was a standard e-comic format and purchases could be read in any app. CloudReaders. Reeder. Kindle. Wikipanion. Instapaper. Twitter for iPad. Things. Elements. Draft.

    What would be your dream setup?

    Somewhere between Ewok Village and the Sherwood Forest from Prince of Thieves . Sincerely.
  5. Tender Lovemaking Internship

    Aaron Patterson is a super rad dude.

    He loves mushroom hunting. His pointy stick of choice is vim. He speaks Japanese. He hangs out with Eric Hodel, Ryan Davis and John Barnette at Seattle.rb all the time. He eats weird food. He lives in sunny Seattle, Washington in these United States of America.

    He writes awesomely awesome Ruby software, like Nokogiri, Mechanize and Johnson. He's a core contributor to Ruby, Rails and the SQLite gem. And he's made some software that's, uh... more differently awesome? He even has a double mustache which might be turning into a triple mustache.

    Aaron does lots of good for the Ruby community. One time at RubyConf he got everyone of the attendees a Poken. How cool is that? Recently, Chad and Kelly Jeanne Fowler gave him the gift of a box of Twinkies, just for being so great. Really, who doesn't love Aaron Patterson? If you don't know the guy, you should make an effort to meet him. He's aces.

    But Aaron has a problem. There's only one of him. He has lots of ideas for useful, totally bodacious libraries that he'd like to write, but doesn't have time to do them all. He needs an intern. Finding an intern takes time and effort though. So, I'm helping him by sussing out a great intern.

    Intern Requirements

    You want to do this. Trust me. It'll be the best thing for your career, clothing style and love life. You'd get mentorship from Aaron, design and code reviews, and many, many Knowledge Bombs™. You don't have to be in Seattle, but it'd be an extra bonus. Remote totally works, too. You need to be a Ruby programmer. You need to not be a total newb. You must having a willingness to learn, take direction and be receptive to feedback. It wouldn't hurt if you think funny hats are funny.

    If you're interested and you've got what it takes to be @tenderlove's trusty sidekick, email me (veganstraightedge@gmail.com) or toot at me (@veganstraightedge). Include your blog, Twitter and GitHub URLs.