Jul 13
VoteFu is a voting mixin that allows you to extend your models to vote on one another. Largely based on Cosmin Radoi’s acts_as_voteable plugin, VoteFu adds named_scope support, a set of generators to make using the plugin easier, a :polymorphic association to the voting class (so you can have more than one model type perform votes), and some enhancements for Rails 2.1.
I have simplified the code it requires to cast a vote down from three to one. After setting up your models with the proper mixin functionality, you can cast votes like this:
1
2
3
4
5
| voter.vote_for(voteable)
# OR
voter.vote_against(voteable)
# OR
voter.vote(voteable, [true | false] ) |
You can also use the old acts_as_voteable sytnax (which will continue to be supported):
1
2
3
4
| vote = Vote.new(:vote => true)
m = Model.find(params[:id])
m.votes << vote
user.votes << vote |
I hope you find the plugin useful. Comments and feedback welcome. If there is enough demand, I’ll open up a lighthouse project to track issues.
Grab the code from GitHub or visit the VoteFu Page.
Jul 11
In technology, knowledge is the important asset. Sharing knowledge is the important work. Conversations are therefore the most critical element of the business.
There are particular conversations that are important to facilitate, encourage, and enable. As managers and architects of our businesses, it is important for us to make sure that productive, meaningful information flow is taking place within our organizations.
In an article that I cannot find an online reference to, John Fini suggests that innovators be removed from operation of the business. In Howard Anderson’s TR article detailing the organizational barriers to success, he suggests that the most creative set of people in the organization should have the least red tape to cut.
In my opinion, the only way to make this work in a large organization is to go Agile. If you’re in a position to choose, I think this is evidence that you should choose a startup over corporate IT if you care about inventing.
Jul 10
I made myself this promise my first day as Director of Software Engineering for a technology startup. Many people spend a lot of time trying to figure out the political landscape, the business environment, and the legacy on their first day of a new job.
It’s a better idea to rely on your own brain. That’s why you got hired.
It’s worth speaking your mind early, frequently, and candidly.
Forget about reputation and fallout. It’s much better to tell the truth as you see it, analyze it, and use it to bridge any divides between viewpoints. Sometimes, people that seem to really know what they are talking about…are bluffing. The only way to tell is to dig into what you don’t understand.
Call Bullshit. All the time. My boss has come to expect that of me. It’s part of my personal brand.
Jul 09
I’ve had it. I am moving from Typo to Wordpress. Why?
- Typo is still buggy. I want to spend my blog time blogging, not reading logs/production.log to figure out WTF happened to my site.
- After submitting many patches to Typo 5.0.3 and receiving not even a “Hey, got the patch, thanks…” I have deduced that Typo is not well maintained by anyone.
- All the hosted blog solutions that I want (disqus, etc) have out-of-box integration with WordPress.
I still host at RailsPlayground. But now I don’t run my blog on Rails.
Sorry Typo.
Jul 06
I went to B-School when I was stuck in a corporate job, looking for a way to climb to the next level of misery. By my last year of MBA classes, I had made a radical 180 in my thinking. Smart people don’t need to stick with lousy jobs. That is follower behavior. Lead and make a great job for yourself and others.
Jul 06
Innovation is not efficient. It is inherently wasteful. There is churn and rework. However, it is the only strategy to sustain a competitive advantage. So to the extent that you can organize your teams and processes to embrace this fact, you will be successful.
Jul 06
Self-organization and empowerment of teams has a really powerful influence on success. I had a garden one year that I micromanaged. I pruned it, weeded it, watered it, fertilized it, and generally over-managed. It died. The next year, I did a whole lot less micromanaging, and it grew to produce a lot of fruits. People are similar.
Jul 06
My friend and colleague Theo Nguyen-Cao posted on his blog about considering graduate school. He inspired me to dig up some reflections on my B-School experience and my startup lifestyle.
I’ve learned a few things working on startups while going to B-School. Here’s just one:
Creation of value means more than selling more
Delivering value to shareholders is often cited as a business objective. Certainly that is a component of what value creation entails, but there’s more to it. There are elements of value creation that include building better products for customers, aligning organizational and social objectives, and reducing impacts to other parties.
Jul 01
Dr Nic is a seriously productive badass. I can’t manage to keep up with all of his github projects. I read his blog: frankly, he doesn’t post all that often. But it seems like he’s got a new github project every couple of days.
Seriously, I’m not sure how the guy cranks it all out. These are **not** piddly little projects. One day, he’ll publish a new framework. Then he’ll fork something trivial like….oh…I dunno…Merb. And fix a ton of bugs. Then he’ll publish a handful of TextMate bundles that he developed while working on the framework. Then he’ll decide he wants to publish a few snippets and out comes PastiePacker.
Check out a few of his projects. Most of them are small, focused, and very useful. They’re good stuff. My current fave is the iPhone Ruby project.
It’s teh chown.
Jun 27
I like to keep up with developer blogs, so I definitely read/watch Railscasts, The Intridea Blog, Hacker News, Paul Graham, Joel Spolsky and the like.
However, I get a lot of utility out of following the blogs of lesser known people I know or have worked with. If you haven’t checked them out already, please visit my peeps on their blogs:
- Fred Wilson: Ok. Not really one of my peeps, per se, but a smart guy who I respect and read daily.
- Sean Cook: If you know or have worked with me, it’s likely that you know or have worked with Sean. He’s starting to ramp up the content on his site with technical stuff, but the music stuff if worth a visit.
- Brendan Lim: A smart guy that used to work on my team. One of the two brains behind Yappd.com.
- Theo Nguyen-Cao: Theo is a versatile, quiet hacker who says more in print than in person, but is worth listening to in either situation.
- Brent Collier: The other of the two brains behind Yappd.com.
- Laurie Ruettimann: I haven’t met her in person, but her HR blog makes so much sense that nobody in the startup world can afford to not read it.
Enjoy.