Categories
Uncategorized

Ruby Search Bookmarklet For Ru8y.com

Marc Chung put up a quick Ruby documentation search site recently: http://ru8y.org. Here a quick little bookmarklet for your Ruby searching needs. (Drag it to your toolbar.)

Ru8y Search

Categories
computer personal

Handling Self Doubt

I’m an engineer. Always have been. I cronically worry about small flaws which could spiral into unsalvagable disaster,  and spend a great deal of time focusing on risk mitigation. I can thus completely identify with Riyad’s “cronic almost-achievement” issue because I felt like a raging victim of self-imposed mediocrity up until several years ago. I realize I can be harsh in self-judgement, but nevertheless came to several conclusions..

  1. I have tons of great ideas that aren’t going anywhere. (..or worse, are getting somewhere but at a pace slower than the end goal is moving.)
  2. I really don’t like being told I suck.

Any leader that says they can completely shrug off even the most meaningless criticism is full of crap. Putting yourself on the line by saying, “I did something. Check it out.”, dangles your ego over a boiling pot of water. You know the potential for greatest is there–you wouldn’t have done it in the first place if you thought it was a bad idea–but your heart still sinks when you’re about to demonstrate your competence level to the public at large and have absolutely no guarantees on the outcome. Ego roulette is clearly not an engineers game.

…but then, I decided to change.

  1. If I have a great idea and the time/resources to pull it off well, I’m going to look fear straight in the eyes and tell him to STFU.
  2. I’m done with looking back and saying “I should have done more.” Whether it’s writing about a controversial opinion or pulling people out of a car wreck, no more inaction. Maybe I’ll collect an inbox full of hate mail or painfully burn to death in a firey explosion. So be it. At least I tried to change the world and did my part to the best of my ability. “You must be the change you want to see in the world.” –Mahatma Gandhi.

Now, I still have the same self doubt and self confidence issues at the next guy, but I finally feel like I’m doing something about it. And doing something is an engineers mantra. I’ve you’ve really got a great idea, it’s infinitely more important than your fragile ego. Here’s a couple of thoughts that may help entrepreneurial pessimists like myself..

  • If you screw up on project XYZ, no one is going to care in 5 years. Take the small wins and build on them. It’ll feel good.
  • What’s the worst that can happen? ..people will laugh at you? …you’ll loose your investment? …you’ll have to go back to your day job?  Are those the best reasons you can come up with? Really!?  *Please* … If you’re reading this you’ve got food, water, shelter, internet access and probably some good folks to lean on should things get tough. That’s more than most of the worlds population, so quit whining on the $10K it’ll take to do that new project and take a calculated risk. Even failure can feel good when you know you did all you could. You’re going to regret it if you don’t.
  • Criticism is the easiest form of feedback, so there will always be haters and sometimes more negative commentary than positive. Learn to extract the meaning from the negative feedback, remember that those with the loudest voices don’t necessarily represent the population, and make it an opportunity to hone your game rather than pity yourself.
Categories
Uncategorized

Identifying Senior Software Engineers: Six Critical Differences

For HR and legal purposes, most development companies classify Software Engineers into ranks from I to IV (or V). The higher the rank, the higher the responsibilities, expectations, independence and pay grade. To cut it as an interviewer and manager, you’ll need to classify people accurately with a minimum amount of direct personal exposure: a non-ideal but practical requirement of most hiring processes.

While we don’t regularly use titles at OpenRain, we nevertheless have to distinguish senior talent. The core issue is, “How do you objectively identify ‘senior’ engineering qualities?” Today we’ll focus on several key factors always present in quality engineers, independant of language and platform.

Instinct

He/She has developed extraordinary technical relevance filtering to the point of being able to scroll through a never-before-seen 500 line file in a language they don’t know, and tell you..

  • how complicated the code is.
  • where potential bugs are.

Even with no formal knowledge of code smells or design patterns, a senior developer can sense ugly code and architecture from a mile away even if they don’t yet know exactly why.

Foresight

Long-term implications are always on the mind of the Senior Software Engineer. They’ve been through the end-to-end development process (from requirements gathering to product maintenance and end-of-life) numerous times, know what issues are going to arise and will point out a suitable solution long before the symptoms start to appear. (This quality thus becomes most apparent after delivery when work is bombarded with never-before-seen use cases.) The truly elite developer is often hard to identify because they’re solving the important issues before anyone else notices the problem. (Ben is a primary example of this extraordinary perceptiveness.)

Results Focus

Knowledge without application leads to arrogance without insight. Senior developers are always focused on results which stand the test of time and can easily see through posers who fluff their way through status meetings.

Communication

New developers seldom understand the required differences of communication between different types of stakeholders. Newbies tend to treat all stakeholders as authoritative figures, and are quick to lose direction when exposed to people with differing incentives.  The criticality of non-verbal developer communication is also apparent to the senior engineer.  For example, a green engineer may see issue tracking as micro-management, automated testing as an ideological obsession, and project planning as administrative overhead, but these are all monumentally important aspects required to keep all developers and stakeholders in a real-time communications loop, since many do not directly interact. A senior engineer will see these concepts as empowering and often get grouchy when not present, because not having clear priorities and documentation introduces roadblocks to results.

Time & Priority Management

A senior engineer can more-or-less tell you what their schedule looks like a week out, even if it’s not written down, and won’t be hesitant to express any issues with workload ahead of time.

Estimation

New software engineers seem to invariably produce time estimates magnitudes off from reasonable numbers. The issue largely appears to be one of Foresight since accurate estimates are oft best produced by benchmarking current requirements against past similar project experiences: a task more easily accomplished with experience. This issue is an arguing point against the “Customer is Always Available” aspect of eXtreme Programming since a green developer is generally more likely to over-commit to a workload than a senior.

Categories
computer photography

Need Monitor Color Profiles (.ICC Files)

OpenRain will be launching a simple, online .ICC monitor color profile database shortly, and is looking for .ICC file contributions generated with hardware colorimeters. We’re also looking for administrators/moderators to add display models, remove bogus content, seek out .ICCs for missing models and suggest new features. If you work in the computers or graphic design space and would like to get involved for the sake of design professionals everywhere, hit me up!

Categories
computer

Installing The MySQL Ruby Gem When Using The Official MySQL .dmg

If you installed MySQL using the official .dmg package provided by MySQL AB/Sun and are trying to install the native MySQL gem, you’ll need to pass a bunch of flags to the gem install process to get the thing to compile. Try this..

sudo gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config

..if you still have issues (check your /opt/local/lib/ruby/gems/<ruby_ver>/gems/mysql-<gem_ver>/mkmf.log file), try this instead..

sudo gem install mysql — –with-mysql-dir=/usr/local/mysql –with-mysql-include=/usr/local/mysql/include/ –with-mysql-lib=/usr/local/mysql/lib/ –with-mysql-config=/usr/local/mysql/bin/mysql_config

Run `sudo gem install mysql` and definitely recheck the log file again as the gem install process sometimes reports false positives even if native components fail to install.

Categories
computer

OpenRain 1.0 Officially Launched w/New Logo & Blog!

Pretty much all of OpenRain’s Q2 internal efforts boil down to tomorrow’s open house: a massive milestone date where all our startupy HR, legal and infrastructure tasks are done, and we consider ourselves a properly running software development company under a new brand. OpenRain 1.0 is neither a product nor service, but a state-of-being which represents our transition from a-bunch-of-dudes-hacking-on-web-projects to a-bunch-of-dudes-hacking-on-web-projects-really-freaking-well. We’re kicking off this exciting new period with a catered open house tomorrow.

We’re also launching several new sites today. First is our main landing page, www.openrain.com, updated with our new logo and color scheme. Second is blog.openrain.com, which we’ll be using for upcoming public event announcements, non-NDA’d project links and technical resource for our officially supported software.

Subscribe to the OpenRain feed using the ridiculously large RSS button on the right.

Categories
computer

Apple Says Sorry For MobileMe Boo-Boos

If you’re an existing .Mac user, you may have noticed the new MobileMe services sucking a lot since the iPhone 3G launch. Apple will be “..giving all current subscribers an automatic 30-day extension to their MobileMe subscription free of charge.” Full email text..

MobileMe Services Now Available.

We have recently completed the transition from .Mac to MobileMe. Unfortunately, it was a lot rockier than we had hoped.

Although core services such as Mail, iDisk, Sync, Back to My Mac, and Gallery went relatively smoothly, the new MobileMe web applications had lots of problems initially. Fortunately we have worked through those problems and the web apps are now up and running.

Another snag we have run into is our use of the word “push” in describing everything under the MobileMe umbrella. While all email, contact or calendar changes on the iPhone and the web apps are immediately synced to and from the MobileMe “cloud,” changes made on a PC or Mac take up to 15 minutes to sync with the cloud and your other devices. So even though things are indeed instantly pushed to and from your iPhone and the web apps today, we are going to stop using the word “push” until it is near-instant on PCs and Macs, too.

We want to apologize to our loyal customers and express our appreciation for their patience by giving all current subscribers an automatic 30-day extension to their MobileMe subscription free of charge. Your extension will be reflected in your account settings within the next few weeks.

We hope you enjoy your new suite of web applications at me.com, in addition to keeping your iPhone and iPod touch wirelessly in sync with these new web applications and your Mac or PC.

Thank you,

The MobileMe Team

Categories
computer

My iPhone 2.0 Upgrade Not Reactivating

It seems like there’s some sort of service outages with the iTunes store related to users upgrading to the iPhone 2.0 firmware. The firmware download and upgrade process seems to have upgrade fine, but mine is stuck on the please-connect-to-itunes screen. All I can do right now is view the IMEI and ICCID, and make emergency calls.

Update: After 4 continuous hours of having it plugged in, it finally reactivated and synced. PITA, but the new apps are hot!!!

Categories
computer

Virtual OS X Server Screenshots

Apple now allow you to virtualize OS X Server instances. While your virtualization options are limited, it’s very easy to set up on your existing OS X Server.

This is an virtualized OS X Leopard Server guest running in Parallels Server on a host OS X Leopard Server. You can see that the guest system is treated similarly to other Windows and Linux VMs in the Parallels Management Console.

Note that a distinct serial number/license seems to be required. The serial number for the host machine will not validate (I thought Apple was going to allow one VM instance???), so to use the sweet service configuration tools available in Server Admin, it appears you’ll need a separate license for now.

 

Categories
computer personal

Hacker Shopping Cart

My shopping cart..

  1. Energy drinks.
  2. Energy bars.
  3. Energy backups.

Guess what I do for a living. 🙂