Just over two years ago, I tweeted, “I just launched the biggest and boldest thing I’ve ever done.” I wasn’t lying. I’d been using Fancy Hands for months before the launch, but I still wasn’t sure if anybody else would want to use it… much less pay for it.
It started slow. The site got some…
High five!
A few new links from me over at Quality -
Also some neat stuff from Nate and Andy.
This is where I’ve started curating links to things of note.
(I’ll probably still cross-post to Tumblr, though.)
Into The Forrst: Big news: Forrst has been acquired by COLOURlovers -
I’m thrilled to announce that Forrst has been acquired by the folks behind COLOURlovers and Creative Market, and that Keith, Mike, and I will be joining their team.
It’s crazy to think that Forrst started two years ago as nothing more than a side project used by just a handful of…
:)
Das Cabinet des Dr. Caligari, 1920 (dir. Robert Wiene)
By CrazyS
Truly a great film.
3 years ago, according to GitHub, I began my first substantial project written in the Ruby programming language: Weary. Weary is the thing driving tumblr-rb, and what allowed me to write it so quickly. Weary was the solution to a desire of mine to be able to quickly bootstrap and describe client libraries to RESTful web service API’s.
In the Spring of 2010, I announced my intention to rewrite it. Better late than never?
Today, Weary’s master branch reflects a complete rewrite from the ground up. As I prepare for the first release candidate of Weary 1.0, I want to take this time to document some intentions and invite your contributions and suggestions.
Consider the following Ruby code:
class GitHubClient < Weary::Client domain "https://api.github.com" get :list, "/user/repos" do |r| r.basic_auth! end post :create "/user/repos" do |r| r.basic_auth! end get :user, "/users/{user}/repos" get :repo, "/repos/{user}/{repo}" patch :edit, "/repos/{user}/{repo}" do |r| r.basic_auth! end endThis is a pretty good sample of the Weary framework and DSL. This builds a client to a subset of the GitHub v3 api. Moving further with the class:
client = GitHubClient.new client.list :username => "mwunsch", :password => "my-secret-password" # -> returns a Weary::Request objectEvery request has a
#performmethod that is asynchronous, and only blocks when accessed (it returns a future). You can pass a callback:client.list(:username => "mwunsch", :password => "my-secret-password").perform do |response| puts response.body if response.success? endA new feature is the ability to have dynamic URL’s (using Addressable::Template):
client.user :user => "mwunsch"But one of the things that makes this new version of Weary very powerful is that Rack is integrated deeply throughout the library. Every class that inherits from
Weary::Clientis a valid Rack application1. Which means you can do something like this:# in a file called config.ru run GitHubClient rackup curl "http://localhost:9292/repos/mwunsch/weary"This means it’s really trivial to build specialized proxies to web service API’s and mount them anywhere you’d like (say, inside your Rails application).
Weary allows you to quickly build clients that take advantage of the full spectrum of the Rack ecosystem.
There’s a few more tasks to work on before getting a release candidate out, but as soon as that happens I’ll begin the work of migrating the Tumblr gem to use it.
There’s a lot more to this new version of Weary than I outlined here, so I invite you to dig into the code, fork it, and build some great things.
For those newer to Ruby, Rack provides a standard interface for a web server to communicate with a Ruby application. ↩
You so fancy.
Someone should buy this and do awesome things with it!
And, here’s the post that began it all: From concept to launch in 24 hours
It’s official: Tinyproj is now part of GroupTalent. I couldn’t be more pleased with how things have played out, and I’d like to give some brief thoughts on how and why this all took place.
About a month ago, I wrote an email update to Tinyproj members outlining what’s been going on with the service, the struggle with consistently getting high quality projects, as well as my thoughts on improving the product and bringing in projects more regularly. Around the same time, I started chatting with the guys at GroupTalent; the more we talked, the more I realized that all of the things I’d wanted to do with Tinyproj, they were already doing — and doing extremely well.
Ultimately, my goal in starting Tinyproj was to create a service that connects you with well-paid, quality projects. GroupTalent exists for this very same reason, and that’s why I believe it’s a perfect match for Tinyproj. They’ve got the talent, momentum, and most importantly, the same ideals about respectful, quality work that I do.
One important point to note is that members’ data is not being automatically transferred over or otherwise accessed by GroupTalent, unless the member opts in to the transition; instead, the email contained a signup link that allows Tinyproj users to skip the line over at GroupTalent. It was important to me to do this deal in a way that remained respectful to our users, and it speaks volumes about the GroupTalent team that they are on board with this.
I’m very much looking forward to following their progress, and I encourage you to give GroupTalent a shot if you’re a developer or designer looking for high quality projects to dive in to.
(Source: ianbroyles)
It has begun (Taken with instagram)
That dog is ridiculously cute.
Reblogging for B.