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.
Jun 21
This week was one of the toughest I’ve had to go through at work. Here’s a completely random set of things that have made me smile in the last 24 hours.
Fruity Cheerios. - It’s like eating Froot Loops, but they’re called Cheerios. All of the pleasure with none of the guilt.
Yo Gabba Gabba! - It’s a slightly ridiculous, but amusing kids show. Today, I curled up with my kids on the couch and ate fruity cheerios with them while watching the “Party In My Tummy” episdoe.
Punk Rock HR - Laurie Ruettimann used to work for Big HR, but after becoming unemployed a year ago, she started writing a blog about opting out of the corporate rat race. It contains such gems as “The Punk Rock Employee Handbook” and some refreshing quips like:
- Team building is for suckers.
- Office Speak is for Suckers.
- “You’re not cool and ironic. Trust me. You’re not.”
I think she likes to call people “suckers”. But in any case: read her stuff. Very amusing.
Jun 16
Fred WIlson makes a great point today about howblog comments can be as important as blog posts themselves. In this post, he says:
I want to be able to easily reblog onto my front page any and all great comments in a format that shows that they are comments and a link to the post the comment is from. I want to be able to easily reblog the comments I make on other blogs to my blog. I want services like techmeme and friendfeed to understand that comments are as important as blog posts (friendfeed is on its way with disqus and intensedebate integration). And I want commenters to have their own blogs that are simply aggregations of the comments they leave on the web. That’s happening too, here’s my disqus page.
Great stuff. I agree. I often paraphrase my comment back onto my blog as a new post. And, my disqus page is almost a blog on its own. However, I’d really like to have the option in either my blog software or on my disqus page to “Reblog this comment as a new post” on my main blog page.
The Disqus API should make this kinda trivial to support in most blog software. But how do we get the maintainers of Blogger, WordPress, Typo, and the dozen other blog providers to support it? I can tell you from experience that getting it into Typo as a patch will take more time than writing the code itself.
So how about a javascript badge that will do it? That shouldn’t be too hard. Who’s working on it?
Jun 09
I’ve released the typo theme you see right now via GitHub. I’m probably going to migrate to Mephisto in the next week or so, so this theme will go out of support, but I’ll maintain the repository and honor any pull-requests if you want to patch it.
Jun 08
The new Rails routing has nice support for nested reources. And, I think it handles just enough nesting. Any more support, and it’s possible to go overboard and write ugly code.
For example, here is what Rails now supports for nested routing syntax:
1
2
3
4
5
| # Simple parent child association
map.resources :user, :has_many => :posts
# A parent with many types of children
map.resources :posts, :has_many => [:comments, :trackbacks, :pingbacks ] |
Nice. That is prefectly terse and descriptive, without being too clever.
There has been some debate and consternation over why a complicated multi-nested resource can’t be set up this way. For example, if I am building a project management tool, why can’t I do this?
1
2
| map.resources :projects,
:has_many => [ :releases, :milestones => [:tasks, {:features => :tasks}] } ] |
That is, a project has many releases AND milestones, and in turn milestones have many tasks and features. And, features can also have tasks.
That’s complicated, and too much cleveness to jam into one statement. I think Rails 2.0.2 / 2.1 has it right in making you write that routing rule like this:
1
2
3
4
5
6
7
8
9
| map.resources :projects do |project|
project.resources :releases
project.resources :milestones do |milestone|
milestone.resources :tasks
milestone.resources :features do |feature|
feature.resources :tasks
end
end
end |
I hear a crowd of people clamoring for the uber-terse syntax outlined in the second listing. I think that’s a bad idea. It encourages hard-to-follow, obfuscated code.
When you have to do something complicated, it’s worth taking a few extra lines to make it clear to the next programmer.
Jun 06
Sorry for the outage on this blog yesterday. My hosting provider upgraded to Rails 2.1, and I had cleverly forgotten to:
bash# rake freeze:rails:gems
If this happens to you, and you make the unfortunate mistake of trying to instead update Typo to Rails 2.1 using:
You’ll be in even worse trouble, unless you’re prepared to do a lot of fixing:
bash# Pete$ script/server
./script/../config/boot.rb:45:in `require': no such file to load -- ./script/../config/../vendor/rails/railties/lib/initializer (LoadError)
from ./script/../config/boot.rb:45:in `load_initializer'
from ./script/../config/boot.rb:38:in `run'
from ./script/../config/boot.rb:11:in `boot!'
from ./script/../config/boot.rb:109
from script/server:2:in `require'
from script/server:2
Your best bet? Revert from source control and freeze Typo in your dev environment. If you’re stuck without source control or a dev environment, let me know and I’ll talk walk you through the alternate fix.