Surprise birthday party, wow!
As I stumbled my way into the weekend feeling sick and hacking up a lung from this nasty cold. I thought the weekend would be a no frills, real simple, lay on the couch and get better stretch. Weeks ago Lauren invited a friend from out of town, Brandy, and she told me we would be celebrating her birthday. Naturally, I felt obliged to go along and drag myself off the couch for whatever plans they had lined up for Saturday evening. So as Saturday evening rolled around I thought to myself that I better not go out and just stay home. Lauren insisted that I get it together, get dressed, because we were going to dinner and then bowling. Bowling? I will just go casual, t-shirt and jeans ought to do the trick. As I presented myself as ready, Lauren insisted that I wear a button shirt or something nicer. Huh? That’s where I drew the line. I basically thought we are bowling, I am sick, and this as good as it gets. So we drove north for about 20 minutes to some place called Pinstripes. A quick search revealed that it as an upscale bowling, bocce, and bistro. Bocce? Bistro?
As we pull up to the front, this place looks really nice. When we walk in, I was taken aback. Fancy bar, wine cellar, live jazz & blues band, bowling, bocce, and a really nice restaurant attached. Super upscale. I would of never guessed. Lauren was right, maybe I should of worn a button shirt. As I was just taking the place all in, Lauren insisted that I hurry up and make my way in her direction. Uh, bossy? Very unlike her, but I dismissed it. We walked through a room that connected what looked to be the bocce ball area, and then everyone yelled SURPRISE! Not thinking, but how cool we surprised Brandy. How nice. Milliseconds passed and held on like hours, slow motion set in. Why are some of my family members here? Why are all my friends here? Why is everyone looking at me crazy? It can’t be for me, my birthday is 5 or 6 weeks away. Wait, is it November or December? How much of that NyQuil did I take? Did I go through some time space continuum and miss a month? I mean I’ve been working hard, but I am that out of touch? Panic sets in. Feeling faint. Processing too many crazy questions at once, trying to keep my composure. Holy freaking _explicitive_! It is for me! I can’t believe this is real. Nobody has ever thrown a party solely on my behalf. I am speechless, dumbfounded, and overwhelmed with emotion. My wife has pulled off the biggest secret surprise party ever, and I didn’t have a clue. Not even a little one. Saying that she is awesome would be an understatement. The whole night was surreal, and I figured it would end somehow by me waking up on the couch realizing it was all a dream. There had to be 30 people there, maybe more. Open bar for everyone, great food, and a super delicious birthday cake. I never played or understood bocce, but what a great drinking game! Everyone looked to be having a fantastic time. But wait there’s more. There was a table of birthday presents! Seriously, wow. Lauren and I exchange gifts for our birthdays and my immediate family recognizes it in conjunction with the Christmas holiday but this was too much. What did I do to deserve all of this? I feel so blessed. I have such an amazing and loving wife, such a loving set of family members and friends. I love you Lauren! Thank you all so very much for coming out and celebrating. I am still caught in the moment trying to comprehend it all. My regret is that I was sick and I hope that at any moment there wasn’t a question of how thrilled I was. It will be something I will always remember.
Honesty, Truth, and Professionalism
Being honest is a natural human approach. I firmly believe that in a random sample of people their response to some stimulus is going to be honest. You experience it everyday; facial expressions, gestures, and their of tone of voice give us an inkling of what someone is really thinking.
So why is it when we walk through the hallowed halls of our employer or potential employer does this principle change? It shouldn’t. I believe that transparency and honesty is the key to success. All too often I’ve observed people giving half explanations basically side-stepping the truth or being downright fraudulent. How is this acceptable? I’ve heard some call this being tactful. This isn’t tact. There is a huge difference between being diplomatic and considerate versus being dishonest.
I have heard these tired worn out phrases one too many times…
“Put lipstick on the pig”
“Just ship it, we’ll deal with it later”
“Smoke and mirrors”
Each one of these phrases have dishonesty built into them unless it has been communicated clearly to your audience/stakeholders that this is exactly what is happening. If stakeholders decide to “just ship it” or “put lipstick on the pig” they must fully understand the consequences of their decisions if they plan on trading quality for time. Now don’t misinterpret what I am saying, sometimes we need to be quick to market especially when there is an excellent idea at stake. Sometimes you do literally just have to ship it. What I am promoting is that we need to be open with _everyone_ involved about the weakness and compromises made when this path is chosen. We cannot exclude portions of the truth because it is convenient or it gives you some type of buffer.
So why can’t we just have an open and honest conversation? Accept honesty as a breath of fresh air and accept it as the derivative of what makes us a professional, and more importantly what makes us human. Let’s talk about what we did wrong and what we could have done better. Don’t let the fear of backlash overtake and compromise your values. Don’t let the fear of judgment sway you. Sharing the truth naturally pushes us to challenge and question authority (just do it with tact). Honesty naturally promotes forward thinking and progress. What if Columbus never disregarded the belief that the Earth was flat? What if Galileo never withstood the trials of heresy when he presented proof that the earth revolves around the Sun? What if Tesla never pushed the limits of our understanding of electricity and magnetism? This very moment would not exist as we know it.
Honesty is human, honesty frees us. So the next time someone gives it to you straight don’t take it personally, or let anger get the best of you. Thank them for their honesty, pursue the truth, and return the favor.
magic_meta_methods
Update: I’ve made magic_meta_methods a gem available at http://rubygems.org/gems/magic_meta_methods
A while back I wrote a plugin for Rails that serializes text and data structures into a singular column called magic_meta_methods on an ActiveRecord. The plugin then makes the data readable and writable through meta-programmed methods and allows the user to save the ActiveRecord just as they would if they were modifying regular attributes. I’ve found this particularly useful for when there isn’t a need to store data that has to be queried or when you want to keep a data structure in tact like an array or hash. By reducing the number of columns and clutter on the table, you can keep the migrations to a minimum. As always I like to hear what the community thinks about it, or what types of improvements would make it more useful.
Rails Lectures at Depaul

Last semester at Depaul University I had the opportunity to give 2 lectures on Ruby on Rails. The topics were “Rails Hosting & Deployment” and “Rails Security”. It was an awesome experience and really rewarding to talk about something that I am passionate about. A big thanks to Igor Polevoy who introduced and recommended me to the Depaul staff.
Here is a copy of the PowerPoint I used on the lecture for Rails Hosting & Deployment.
jruby-quartz 1.1 released
Update: jruby-quartz is a gem at http://rubygems.org/gems/jruby-quartz
I just released jruby-quartz 1.1 on github. Notable changes include support for programmatically firing a job from the base job scheduler instead of relying solely on the scheduled job pool. As a side note, I just realized that github has temporarily stopped building gems since they’ve moved to Rackspace. So if you’re looking to use gem install, you are out of luck until they re-write that system.
MySQL fix for activerecord-jdbc-adapter 0.9.2
About 2 months back I was working on getting a db dump on my current project. I noticed a bunch of the primary keys were missing from tables in the dump file. Irked, I observed that many of tables we hook up to have residual Java Hibernate-isms with non-standard primary keys, basically not ‘id’.
After some digging I found a little problem with activerecord-jdbc-adapter, so I submitted a patch. The good news is that my patch has been included in the latest release. Thanks to Nick Sieger and the gang for including it.
== 0.9.2- The main, highly awaited fix for this release is a solution to therake db:create/db:drop issue. The main change is a new 'jdbc' railsgenerator that should be run once to prepare a Rails application touse JDBC. The upside of this generator is that you no longer willneed to alter database.yml for JDBC. See the README.txt for details.- Cleanup and reconnect if errors occur during begin/rollback(Jean-Dominique Morani, Christian Seiler) ...- Fix for mysql tables with non standard primary keys such that the schema dump is correct (Nick Zalabak)


Follow me on Twitter
My github repository
My LinkedIn Profile