You are here: Blogsphere Longtail
Keep up to date with your favourite Rails bloggers in context.
Resentment is like drinking...
“ Resentment is like drinking poison and waiting for the other person to die. ”
Carrie Fisher
Your 2010 Internet Strategy – Ways to Use Outposts
JF: This seems as if your emphasis with this project is on finding beauty where most others would pass by oblivious.
CK: That’s definitely there, but it’s more about the finding of beauty within beauty, or finding missed opportunities. I would relate it to myself: I have Obsessive Compulsive Disorder. It’s rather helpful sometimes with my art, actually; but it would lead me to stare at things. I’ve always had this habit, this compulsive habit of finding patterns in things, even just a generic table with junk on it; and I’d just find patterns in it. I’d compose shots of these patterns. It’s been a bit of an obsession to find patterns and composition in everyday objects. Now I’m trying to apply that to my art. Looking at something that we would normally see as bland and turning that into beauty is one of my purposes with this new project.
JF: I see. Could one consider this to be your view of life manifesting itself through your art?
CK: I take a lot of headshots, working with actors, models, and musicians, and my job is to make someone look their best, inside and out, to find what’s beautiful about them. But, at the same time, I have to notice their flaws and try and shoot around them. So, I’ve kind of taken that habit into my life: A habit of nitpicking people, and it’s something I don’t like about myself. What this new project does is allow me to do the opposite thing. I’m looking for beauty, but I’m also looking for faults at the same time. Equal and opposite things are happening here. In my life I spend so much time searching for points of perfection, which enables me to, unfortunately, look for points of imperfection. That’s why, in my life, I try to find something beautiful to obsess over instead of something negative.
JF: It’s an intriguing paradox. Imperfections can be considered the things that make something or someone perfect. It’s the character they give something or someone—uniqueness. How did this come to follow your previous work?
CK: That is something I get deeply, but still find difficult to reconcile. To hold both ideas at the same time, to blend them into one whole, to see as “perfectly imperfect.”
As for my previous work, while abroad, I put myself, sometimes, in positions that might get me in trouble, completely unbeknownst to me. One of my images from Amsterdam is from the red-light district. I was told, very adamantly, “Do not take pictures of the women in the glass boxes!” So, I figured everything else was fair game. I came upon a group of men, and I snapped this moment of a man blowing out his marijuana smoke. Well, I was immediate surrounded by this gang who seemed to me to be drug dealers. I just got the vibe. There were many of them, and I was in the middle. A very, let’s say, determined man put his hand out, and I shook it. He immediately pulled it away—he didn’t want to shake my hand. I wanted to appear friendly, and hope to get the same back. He had a Styrofoam cup with rice in it; he’s eating and he has grease all over his face. His hands are greasy and he puts his hand out again, and I shake it, feeling the grease transfer to my hand. He pulls his hand back again and says, in a thick accent, “Camera.” I shook my head, pretending to be confused, and said in some fake accent I made up, “Student’e.” Well, he said again, “Camera!” I shook my head, gave him a shrug, and said, “Student’e! Student’e!” So now the gang moves in closer, and he says a third time, “Camera!” I knew they wanted my camera, or maybe just take out the film, but I wasn’t about to let them. I had a bunch of images on that role of film that I did not want to loose; so, I just slammed through them and started running my ass off. I ran and ran and ran, and took a left at some small street right out of the red-light district and jumped into a coffee shop and ducked behind the counter. I had a jacket in my bag and a hat. I took my shirt off, put on the jacket and hat, and tried to change my appearance as best I could. Here I am behind this counter, the employees are looking at me like, “Who the fuck is this guy?!” and I’m thinking to myself, “I’m a dead man! I am a dead man!” I stayed there for quite a while, and, thankfully, they didn’t find me. This is one of my favorite images because of that.
Another time, when I was in Prague, I passed a woman in an alley. She was staggering around, and I noticed that she just looked beat--totally beat. She was tall, long legs, short pants, and she was staggering around looking for, I guess, cigarette butts or something. She was a really attractive woman, just beat. Black and blue marks all over her legs. I moved behind a wall, and prefocused my lens, trying to anticipate where she’d be, feeling I might only have a moment to catch this woman. So I quick came back, lifted up my camera, snapped one image, and that very moment a door opened in the alley way. Two huge men came through the door, leather vests, tall as buildings; well, in Prague everyone is tall. I mean, you have to pee up at the urinals, it’s ridiculous. They came right up to me, and I’m thinking, “Son of a bitch, I’m a dead man again!” They both came upon me, staring over me; meanwhile the woman is still staggering around, bending down looking for something. They’re standing over me, and I’m shaking, I mean violently shaking. I don’t think I’m going to get out of this one. They paused, and the one guy says, “Cigarette?” Still shaking and my head itching from the sweat, I gave them both a cigarette, turned, and walked away. I felt very lucky to walk away from this one.
I went back to Europe three years later to try and take more images but just lost myself. I wasn’t able to pick up my camera. It was as if my art, and my creativity, and my desire to get into situations like that, to capture beauty in a nest of drug dealers… It was as if I lost my will to shoot, and I stared leaving my camera behind, locking it up at the hostile. I just started walking around, smoking way too much marijuana, and dying inside.
I was on a beach in Southern Italy and I met my friend Robbie. She came to visit me for a few days, and we camped together. While on the beach she goes and buys an ice cream sandwich. I’ve never seen this before, but in Italy they have these ice cream sandwiches with images printed on them. Well, I had told her that I’m dead inside—that I have no desire to make art at all. I was afraid to get in peoples’ faces. I felt ashamed, I felt like a failure. People go through little deaths in their lives and I was going through one, I just didn’t know what it was. Any way, she unwraps this ice cream sandwich and there’s an image on it. It’s a rhinoceros charging a photographer who’s shaking like a leaf. Robbie laughs. The image title is in Italian, and Robbie tells me that it’s called, “The Frightened Photographer.” And, in her thick Italian accent, she’s pointing at me laughing, saying, “This is you! This is you!” It was so strange; it was like I found some divine message in an ice cream sandwich. Like God was watching. Then I immediately started taking images again, and I didn’t stop after that. I found Divine inspiration in an ice cream sandwich. It’s pretty funny.
JF: What would say are your fears or struggles now as a photographer?
CK: Cartier Bresson speaks of “The decisive moment,” where you almost know what’s going to happen before it’s going to happen. I’ve had that feeling in my life where it was almost as if I was getting a message; like something is going to happen in a moment just ahead. Well, I’ve ignored that message at times, that feeing, and it’s like you’re denying yourself of something. I think if you deny yourself of those moments enough they stop coming. God gives us these talents, and I think it’s our responsibility to use these talents. I’ve gotten sick—literally, I felt sick—I’ve beat myself up, and felt shame at times when I’ve denied what was given to me as talent. I feel like if we don’t get it out, if we don’t use these talents, then we might actually take time off our lives. There is a spiritual release that we feel when using our talents and if we deny ourselves of that and it begets sadness, even depression.
JF: That testimony is a true depiction of the integrity behind your work. Now that you’ve gone through these little deaths and come reborn in certain ways, where do you see yourself now? Rather, what projects has this understanding inspired you to pursue?
CK: One of the ideas I have in expanding my business is photographing normal people: housewives, bartenders, secretaries… Whomever. It’s aimed at anybody who wants to feel special for the day, or anybody who wants to feel like a model for the day. The goal to focus on the beauty and the essence of the normal person—someone who isn’t in the arts, or someone who wants to just stand in front of a wind machine and just let it fly. It’s not to imply that there is no beauty in the everyday person, but focusing on that beauty, that unappreciated aspect of the everyday person that we, our society, so often looks through. People desire deeply to feel beautiful, and I want to help them.
Photography by Christopher Kadish
Christopher Kadish Photography
DIY Chessboard
My brother (@meark) and I grew up playing chess against each other. It was, at times, a bitter rivalry.
I decided to commemorate our cold-war days with a unique chessboard.
This was done with a pre-faced board, a triangle, the power of the Internet, 10 sets of salt-and-pepper shakers, some graphite paper, and a magic-paint marker, and two beers.
I wanted to make the black-and-white squares on this chessboard less-defined by using graphite, which would smudge over time, giving indistinct lighter-and-darker areas that roughly correspond to squares. My brother prevailed upon reason and practicality, and convinced me otherwise. Instead, a spray-ink was applied.
Appologies to the graphic designer to whom I owe credit for the mushroom cloud.
The only way it could be better would be some blinky lights.
I mean it. All of you people are writing fantastic, useful articles about code, methods, and technologies, but you’re putting them in blog posts — a date-based format that encourages us to leave things as they were, historically.
Dial-A-Song: sinatra + twilio to reproduce TMBG cult project
Twilio is a fun and lightweight API for doing things with phones and robots.
I have a couple of "big important serious" ideas for twilio, but right now I'm just playing with it.
Towards this 'non-goal' I remade the classic phone application of the answering-machine era: The Dial-A-Song.
Dial-A-Song was THE classic phone application of the answering machine era. The creative band They Might Be Giants used their a Brooklyn local phone number during the eighties and nineties to play some of their songs 'on demand.' While this original service was "always busy, often broken," with Twilio's API, we can create a service serving TMBG songs that surpasses the original Dial-a-Song in functionality and robustifiability, hopefully without losing its charm.
Ruby-script (uses sinatra) Rails version(uses rails-template)
Oniguruma on OS X Snow Leopard
@RodBegbie srlsy? Oh man, I feel so used...
|
@RodBegbie srlsy? Oh man, I feel so used...
|
Prices are really fair.
In which I discuss my lack of talent and intelligence.
The IFSR sensor revolutionizes the field of multi-touch human-computer interaction by out-performing existing solutions in both price and capabilities. Unlike traditional capacitive sensors, our patent pending system can detect any object - not just a finger - and can determine how much pressure is being applied to every point on a sensor simultaneously. IFSR sensors are natively multi-touch, use less power than capacitive sensors, and are much less expensive to produce, making them a highly disruptive technology with widespread market applications.
The db:seed rake task in Rails is a nice addition and we use it a lot. The trouble is, you end up writing a lot of redundant code to check if records exist and stuff like that. Not very DRY, not very Rails.
Seed-Fu is a nice plugin that works very well, but it replaces the new db:seed rake task, and this solution is far more light-weight. You add another file to your db folder, seeds-helper.rb, and just require it at the top of seeds.rb.
Here's the contents of seeds-helper.rb:
<notextile>class SeedsHelper
def self.seed(model_class, *keys, &block)
s = SeedsHelper.new(model_class)
s.parse_keys(*keys)
yield s
s.plant
end
def initialize(model_class)
@model_class = model_class
@keys = []
@data = {}
end
def parse_keys(*keys)
keys = [:id] if keys.empty?
keys.each do |key|
raise "'#{key}' is not defined in #{@model_class}" unless @model_class.column_names.include?(key.to_s)
@keys << key.to_sym
end
end
def plant
r = find_record
@data.each do |key, value|
r.send("#{key}=", value)
end
raise "Error Seeding: #{r.inspect}" unless r.save(false)
puts r.inspect
return r
end
def find_record
results = @model_class.find(:all, :conditions => conditions_hash)
if results.any?
return results.first
else
return @model_class.new
end
end
def conditions_hash
@keys.inject({}) {|a, c| a[c] = @data[c]; a }
end
def method_missing(method_name, *args)
if args.size == 1 and (match = method_name.to_s.match(/(.*)=$/))
@data[match[1].to_sym] = args[0]
else
super
end
end
end
class ActiveRecord::Base
def self.seed(*keys, &block)
SeedsHelper.seed(self, *keys, &block)
end
end</notextile>You can now use the seed-fu magic in seeds.rb:
<notextile>require 'db/seeds_helper.rb'
Account.seed(:username) do |t|
t.username = "adrian.oconnor"
t.name = "Adrian O'Connor"
end</notextile>The active record model object is extended with a seed method. This takes a list of symbols that act as the key -- if the values passed in match the keys in an existing record, it'll replace it, otherwise it'll create a new record. Pretty clever stuff.
If you like this, you should definitely check the full seed-fu plugin. You can find it here: http://github.com/mbleigh/seed-fu. I just like having a single additional file that is only used by seeds.rb.
Original article writen by Adrian O'Connor and published on Code Spaces : Professional Subversion Hosting | direct link to this article | If you are reading this article elsewhere than Code Spaces : Professional Subversion Hosting, it has been illegally reproduced and without proper authorization.
Our next Ruby on Rails classes will be:
Early bird discount for the February class ends tonight. Early bird for the April class ends in two months.
Now please enjoy this fine Rocky training montage while we tell you what’s new.
We’re proud to say we’ve trained over 100 developers from organizations such as Harvard University, The New York Times, Boston.com, Raytheon, and Mitre.
Via the generosity of Marshall Huss, we’re able to provide free Heroku iPhone apps to all students of the February and April classes.
The Nezumi app allows you to manage your Heroku apps “on the go”. Here are some screenshots from my account:
<image src="https://thoughtbot-training.s3.amazonaws.com/images/heroku_app.jpg" style="float: right;" width="250"></image><image src="https://thoughtbot-training.s3.amazonaws.com/images/heroku_apps.jpg" style="float: right;" width="250"></image>
<image src="https://thoughtbot-training.s3.amazonaws.com/images/heroku_beer_count.jpg" style="float: right;" width="250"></image><image src="https://thoughtbot-training.s3.amazonaws.com/images/heroku_resources.jpg" style="float: right;" width="250"></image>
As you can see, any app for which you’re an owner or collaborator, you can:
Neat-o.
We have been giving our training presentations using Slidedown via a web browser. We now provide a nice interface at training.thoughtbot.com for our students to review these slides at their leisure:
We’ve also moved away from Eventbrite and towards our own custom registration:
We’ll continue to be building training offerings for technologies we use every day. So please subscribe to the RSS feed.
Design by the sprightly Fred Yates.

NFL- Cardinals Makes History by Beating Packers in Overtime 51-45
Hidden feature of jQuery: Calling a method on a jQuery collection
I was going through the Adding keyboard navigation and noticed that Remi replaced this code
$('.coda-slider-wrapper ul a.current').parent().next().find('a').click();
with this code
var direction = 'next';
$('.coda-slider-wrapper ul a.current').parent()[direction]().find('a').click();
I had never seen anything like that. In the above mentioned article, Remi usedd next and prev methods. However I wanted to know all the options I could pass since this feature is not very documented.
Here is code from jQuery that makes that above method work.
jQuery.each({
parent: function(elem){return elem.parentNode;},
parents: function(elem){return jQuery.dir(elem,"parentNode");},
next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
children: function(elem){return jQuery.sibling(elem.firstChild);},
contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}
}, function(name, fn){
jQuery.fn[ name ] = function( selector ) {
var ret = jQuery.map( this, fn );
if ( selector && typeof selector == "string" )
ret = jQuery.multiFilter( selector, ret );
return this.pushStack( jQuery.unique( ret ), name, selector );
};
});
As you can see, a variety of selectors can be passed to jQueryCollection[].
If you want to give a try, any jQuery enabled site should perform all of the below mentioned code without any problem.
var a = $('a:first');
var log = console.log;
log(a['parent']());
log(a['parents']());
log(a['next']());
log(a['prev']());
log(a['nextAll']());
log(a['prevAll']());
log(a['siblings']());
log(a['children']());
log(a['contents']());
Riak - A Decentralized Database
Fail: Why Hanes Should Fire Their SMO Company
as expected, a huge tree slows things down. now is the fix most_awesome_nested_set_ted or render the tree one branch at a time?
Back With Flair
We have just wrapped up a round of improvements on the Savoir Flair website and are looking forward to seeing what they have in store for the fashion world this year. One of our favorite parts of working with this website has been the ability to work with the beautiful illustrations of Bella Pilar. Bella’s illustrations and hand-lettering are dotted throughout Savoir Flair and give the online magazine a distinctive fun fashion identity. We’ve become big fans of her work (you can even now find her t-shirts at Target).
Visited Countries
Monome makes these beautiful, DIY, fully-customizable, no embedded software, grid interfaces (for use as instrument, step sequencer, etc). I really want one to use with my new Vermona DRM-1 MKIII.
|
Monome makes these beautiful, DIY, fully-customizable, no embedded software, grid interfaces (for use as instrument, step sequencer, etc). I really want one to use with my new Vermona DRM-1 MKIII. - http://tylr.org/post/330695550
|
Excellent overview of the metaprogramming capabilities of Ruby and JavaScript and how each relates to the other. Great for porting deep knowledge from one language to the other. Similar to a rosetta stone for metaprogramming, there should be more of these type of comparisons to ease language transitions.
BostonTweet: Where can @LillyJ go to find delicious burger perfection for lunch today?
|
BostonTweet: Where can @LillyJ go to find delicious burger perfection for lunch today? - http://twitter.com/BostonT...
|
CharlesHotel: RT @_jessmac: What a great idea! @BostonChefsNews Teach a Kid to Cook at Henrietta's Table http://ow.ly/V79M - @RestoWeekBoston
|
CharlesHotel: RT @_jessmac: What a great idea! @BostonChefsNews Teach a Kid to Cook at Henrietta's Table http://ow.ly/V79M - @RestoWeekBoston - http://twitter.com/Charles...
|
Porting Your Phone Number For Cheap
So I have been keeping my US cell phone, because the Intl data is nice and i didn’t want to lose my cell phone number.
But its kinda cost prohibitive. I dropped the Intl data, but the lowest package I can get is 40$ a month. Still expensive for a phone that i’m not going to use.
So I signed up for 3Jam today. So I’ll keep you posted on how it all turns out.
oh wow, myspace is now adding audio ads to your streams.
i should be worried that Asus is expanding into making cool things instead of motherboards.
@sachinag warning: mimicking DRUNKHULK can be habit forming, but believe me--does not work without muscle and purple stretch pants!
|
@sachinag warning: mimicking DRUNKHULK can be habit forming, but believe me--does not work without muscle and purple stretch pants!
|
A simple, light weight, extensible WYSIWYG HTML Editor built on top of jQuery. This component allows you to easily display a WYSIWYG HTML Editor in place of any TextArea DOM Elements on the page. The minified script alone is 9.17kb; CSS and Images it’s a total of 25.9kb.
The following example will list servers across Amazon EC2, Slicehost, and Rackspace Cloud Servers using the same API call. The servers will be represented in a standard Node object
ProGuard – Java class file shrinker, optimizer, obfuscator, and preverifier.
Rackspace Cloud Servers versus Amazon EC2: Performance Analysis
List of Flash Gaming Engines — FlashRealtime.com
Tell us what you think of the new BlogSphere feature. We are continually looking to improve and update the
functionality based on your feedback.

Find your next Ruby on Rails project or job.
Exclusive content,
regularly updated - onsite and tele-working positions listed.
I have a great pleasure to cooperate with bartek on various projects during and i find him very bright individual with invaluable knowledge and great attitude.
-
B.K, Poland