We've been having some Oracle deadlock issues that have been hard to reproduce locally. After a lot of investigation and solving of important problems that happened not to be THE problem we figured out that while we've been pretty good creating integrity constraints in the database we have not been very good about making sure that every foreign key has a corresponding index. And that can lead to problems.



Holy crap am I tired. It's been a long awesome day. It started out with some excitement:







Using Git Inside a Git Hook can cause problems. In my previous post: "Signal 13 Problems with Git Hooks" I describe how we are trying to automatically merge certain types of branches into a branch that is designed to hold them all. Anyway, that means we want to run some git commands inside of the git hook. We change dirs into another directory where we have a clone of the repo and start telling git to merge some stuff and we get a bunch of
But if we run the exact same commands as the git user everything works fine. Huh. Eventually we got our linux guru over and he noticed that the environment under which the git user runs is totally different when inside a hook. Gitolite does a bunch of things to the env, but the one that was screwing us up was the setting of the GIT_DIR. After we figured that out, the solution was as easy as:
remote: fatal: Not a git repository: '.'
ENV.delete 'GIT_DIR'
in our ruby script that is triggered by the 'post-receive' hook. And now I must get back to the fun.
Ran into a gotcha in Git today when trying to write a post push hook. We want our designer to have a fast turn around time with clients so we're writing some hooks to merge all of the 'theme' branches he works with to get merged into a special preview branch which is then deployed to the preview site. And all this should happen after he does a 'git push.' Seems like a 'post-receive' hook is just what we want.
error: git-shell died of signal 13
fatal: The remote end hung up unexpectedly
error: error in sideband demultiplexer
#!/usr/bin/env ruby
STDIN.readlines.each do |line|
rev_old, rev_new, ref = line.split(" ")
# You will get in here as many times as branches were pushed
end
So day 2 begins. I got to bed early-ish as I am old so I'm fresh as a daisy and ready for more Ruby. As per my established practice, Tweets are in italics.
Why is that, exactly? It's a technical conference. And a single track one at that. So I say tech it up, baby.
Yeah, I had a few of those. I had no idea how to do public static final in Ruby. When I figured it out it lead to one of my early blog posts: Public Static Final for Ruby
Oh yeah -- the Ruby Midwest Twitter account liked my post. Go me.
Good advice. Hard to work up the nerve to follow it but good none-the-less.
Yeah. I'm the advocate for Bundler on my Rails 2.3x project and I've heard a lot of "Stupid Bundler!" and it was almost never Bundler's fault.
Good man. It really helps.
Yep, I kept having to explain to my team that we lock because we're in production.
Nice!
Oh no he di'ent! Let the flame war begin.
Really honest of him to admit that. Also, while I'm at it I should point out that it's really cool of him and Chris Wanstrath to show up to a small first year regional Ruby conference. Stand up guys, they are.
It should be noted that @j_root used the hashtag #misrepresent AND a smiley emoticon so he's just trying to stir up trouble. Bring it.
I'm not sure what "bam pwnt" means but I like the cut of this @j_root's jib.
Good point.
Remember the scene in "Pulp Fiction" where the Wolf showed up and effortlessly dealt with Vince Vega's guff? It was like that but better. Do NOT throw down with the wycats - he will destroy you.
You can't sneak those renames by me -- I'm wise to your tricks. Of course, I've had some of my talks renamed behind my back by organizers. I'm looking at you, Ray Hightower. But I kid the Hightower -- He's alright with me.
But seriously, I'll cut you if you even think of renaming one of talks again. I'm kidding! Sorta.
Funny stuff. If you're a Ruby nerd. And you probably are.
What? Windy City Rails picked me to talk? Thanks guys. Especially Ray, who didn't take those previous jokes personally.
What the what!?! 124 versions? For real real and not for play play? Damn. I am humbled.
124 versions and T-Shirts? This is the best open source project ever. I may even use it someday.
Seriously -- design a shirt for MetricFu and I'll name a major release after you.
Funny.
Pretty sure I saw a talk on Mongo a year ago that was promising Auto-sharding. Either they announced that feature way too early or it's proving harder than they thought. Money on the later.
Hmm, could make like interesting.
Here here! If any organizers come to Windy City Rails I'm buying the drinks.
Good quote and a good point.
Intro to Git is not really my thing (been using it for a few years) but he did a good job.
Slides!
I say that at the next conference we all sit in stony silence while the lucky one slowly makes his or her way up to the front. Who's with me?
Great "Super Friends" Theme to this talk. Remember the classic 70's-80's cartoon? Well I do because I'm old. Get off my lawn.
The leg warmers on the unicorn is what really made the slide for me. Why would a Unicorn need leg warmers!?! That's just silly.
God Damn does this stuff sound sexy. Everyone needs to support all of this right now. Without me doing any work.
Good and needed improvements.
An exciting talk. Assuming any of it gets adopted. If not we'll look back and weep tears of regret into the pillow of despair.
I don't think I did, really. I'm out of control. I'm on an airplane right now so I'll have to quit the over tweeting cold turkey. By working on my blog post. Kinda like methadone.
Boo.
Sounds good.
The God project has lead to a lot of unintentional humor. And for that, we thank you God.
See what he did there? They bring the wit here in the heartland.
True dat. Optimize, always optimize.
Well, it was a quiet crowd. Afternoon on the second day and all. The Twitter seemed to like me and a bunch of people sought me out after the talk for more info or just to thank me. So I guess it went well. There was a moment, at the end of the talk, when I looked up from my computer to see tumble weeds rolling across the floor. I shouldn't worry about it I suppose.
I used Prezi.com for my presentation. It's a canvas based presentation system and it's pretty cool. You put all your ideas on a big canvas., sort and arrange them, paste in some pics or whatever, and define a path through said canvas. Lots of fun to work with.
That guy turned out to be Kyle Ginavan. I'm totally going to try out factory_data_preloader when I get back to work on Monday.
My favorite quote from my talk and I completely made it up on the fly. Felt good saying it.
Someone though one of my images or diagrams was pornographic. I've looked through the presentation 20 times and I can't see it. If you find something, let me know.
To be honest, I was a bit burnt at this point and coming down from the post talk high so I didn't cover this one as much as I should. Sorry Adam - say hi to Joe for me.
Check out the GrepFu - it looks well worth investigating. Luke Pillow, a Ruby Midwest organizer, said he uses it ever day.
And I'm on that plane right now. It's like a conversation with my past self. Hey, past self, don't eat that airport BBQ - they're gonna put mayonnaise on brisket.
Too late.
I did get to sit in the airport sports bar and listen to two young ladies in interesting outfits argue about whether it was lying to omit the fact that you didn't sleep in your hotel room last night. It took a very long time to decide.
About Me
Obtiva (old job)
ThoughtWorks (old job)
Object Mentor (apprentice)
Apprenticeship at Object Mentor Blog






