On Strategic Life Goals

Strategic life goals are those fuzzy goals that are hard to quantify, like “better humanity” and “create a legacy.” They’re your purpose in life. Everyone’s goals are different, and they may change overtime. Some folks even choose not to have broad overarching goals, and that’s fine. Me however, I need them. I need autonomy and I need to occupy myself on things I believe somehow matter. Goals create a road map for your life.

Strategic goals should not be confused with tactical goals. Tactical goals are things like “climb a mountain” whereas a strategic goal might be “experience nature to the fullest.” The tactic and act of climbing a mountain helps you achieve your broader strategic goal of experiencing nature to the fullest.

Everyones life goals will be different because we all have different world views, but here are some examples of broad strategic goals to get you thinking.

  • Feed the world’s hungry
  • Become exceedingly wealthy
  • Affect peoples lives with art
  • Entertain people
  • Help people
  • Rule the world
  • Be happy

You can probably think of much better examples than me, but you get the point.

Take the time to write down your life’s strategic goals, and reflect often on how you are achieving them. It’s easy to get caught up in the day-to-day grind and to-do lists and forget what you’re really trying to achieve.

In my attempt to measure my progress towards my strategic life goals, I’ve created a dashboard that attempts to mimic the behavior of unlocking achievements and leveling up in a video game. It’s certainly a work in progress, but you’re welcome to check it out on my Strategic Life Goals page.

What are your goals? How do you measure your success in achieving them?

Posted in Random Thoughts & Going Ons | 6 Comments

The Programming Women’s Dress Code

Inspired by The Programmer Dress Code, and a lady friend of mine in the field of computing, I present the programming women’s dress code.

Here is a list of seven famous women programmers and their pictures to illustrate their style of fashion.

Ada Lovelace

Ada Lovelace

Ada Lovelace

The only child of Lord Byron, Ada Lovelace was born in London in 1815. She wrote an algorithm to compute Bernoulli numbers using Charles Babbage‘s mechanical computer, the analytical engine. This makes her the world’s first computer programmer. The programming language Ada is named after her.


Adele Goldberg

Adele Goldberg

Adele Goldberg

Adele Goldberg wrote several books on Smalltalk-80. In the 70′s Adele worked on the Xerox Alto, the first computers to have a GUI and use a desktop metaphor.

Steve Jobs requested to see a demo of the Xerox Alto and Adele refused to show him. Her superiors at Xerox ordered her to show Jobs a demo, and naturally Apple copied all of their best ideas.


Erna Schneider Hoover

Erna Hoover

Erna Hoover

Erna invented the computerized telephone traffic switching system at Bell Labs in the 70s. It was one of the first software patents ever.


Mary Lou Jepsen

Mary Lou Jepsen

Mary Lou Jepsen

Mary was the founding CTO of the One Laptop Per Child (OLPC) project. She invented the laptop’s sunlight-readable display technology and co-invented its ultra-low power management system.

She left OLPC in 2008 to found her for profit company Pixel Qi which focuses on display technologies.

Mary is in the 2008 “TIME 100.”


Shafi Goldwasser

Shafi Goldwasser

Shafi Goldwasser

Shafi is a professor at MIT and the Weizmann Institute of Science where she researches computational complexity theorycryptography and computational number theory. She’s won two prestigeous Gödel Prize awards on her work in theoretical computer science. I can’t even begin to understand what this means in English, but it sounds impressive doesn’t it? :p


Jeri Ellsworth

Jeri Ellsworth

Jeri Ellsworth

Jeri is a self taught chip designer and hacker extraordinaire. Remember Christmas 2004 when all the shopping malls had those joysticks that plugged directly into your TV loaded with tons of Commodore 64 games? You can thank Jeri for that. The C64 Direct-to-TV is her creation.


“Amazing Grace” Hopper

Grace Hopper

Grace Hopper

I saved my favorite for last. :)

Rear Admiral Grace Hopper (nicknamed “Amazing Grace”) served in the United States Navy for over 40 years and was awarded the highest non-combat award possible when she retired. With a masters in mathematics and physics from Yale university, Grace developed the first compiler, and conceptualized machine-independent programming languages, ala COBOL. Grace is sometimes called “the mother of COBOL.”

You’ve probably heard the old story of how a moth got caught in one of those old massive computers, causing it to crash. Grace remembers that story, she was there! She’s the one that popularized the phrase “debugging.”

Grace Hopper

Grace Hopper

Grace Hooper is also responsible for one of my most frequently used quotes, “It’s easier to ask forgiveness than it is to get permission.”

And if you’re still not impressed, the US Navy named the destroyer ship USS Hopper (DDG-70) after her.

The majority of Grace’s retirement was spent speaking and lecturing about technology at computer events, where she always wore her full military dress.

Grace is kind of my hero.


So, what have we learned about the woman programmer’s dress code? Unlike the men’s dress code, beards are not in fashion, and long hair is optional. Fine Victorian era gowns are in, as are military uniforms. But, with the exception of a rare few, it seems that neither male nor female programmers give a rat’s ass about fashion.

Posted in Computer History, Random Thoughts & Going Ons | 8 Comments

Why I’ll never set foot in a Star Trek transporter

Transporter software snippet:

$dusty = new Person($attributes, $experiences, $startLocation);

$dusty = transport($dusty, $newLocation)

function transport($person, $newLocation)
{
   return new Person($person->attributes, $person->experiences, $newLocation);
}
Posted in Random Thoughts & Going Ons | Tagged | 1 Comment

Downgrade PHP 5.3 to 5.2

Like many others, I recently upgraded my Production server to PHP 5.3. I’m not quite sure of the reason anymore. I think I was trying to integrate a PHP profiler that required something in 5.3. Whatever my original reason, after I got 5.3 installed on my server, it started slowly hemorrhaging memory and occasionally freezing up, always during the middle of the night while I slept of course. So, today I set about downgrading PHP 5.3.2 to PHP 5.2.13. Here is what worked for me.

The Setup

First off, I’m running Ubuntu-Hardy, and both my PHP 5.3 and 5.2 distributions came from dotdeb.org. I have a Production server and a Test server that I try to keep as similar as possible. The first thing I did was make a backup of my Test server with PHP 5.3 installed and my app functional. Then I began hacking away on my Test server trying to successfully downgrade to PHP 5.2. When I screwed the Test server up beyond repair, I restored from backup. Likewise, when I made progress I documented my steps, restored from backup, and tried to repeat my success. I did this several times and eventually made a script that successfully downgraded PHP. I rehearsed this script 3 times on my Test server, backed-up my Production server, then repeated the script on my Production server. IT WORKED!

NOTICE: I probably have a couple of unnecessary steps in here that I didn’t bother to investigate their necessity. You may also need to uninstall and reinstall different PHP modules than I did, depending on the requirements of your applications.

My Final Steps

  1. Remove PHP
    1. sudo apt-get remove php5-common
    2. sudo apt-get remove php5-cli
    3. sudo apt-get remove php5
    4. sudo apt-get autoremove memcached
  2. Update your sources list to point to PHP 5.2
    1. sudo nano /etc/apt/sources.list
    2. Remove the references to PHP 5.3 packages. For me that was:
      deb http://php53.dotdeb.org stable all
      deb-src http://php53.dotdeb.org stable all
    3. Add the following 5.2 packages:
      deb http://http.us.debian.org/debian stable all
      deb http://security.debian.org/ stable/updates main contrib
      deb http://packages.dotdeb.org/ stable all
  3. Install PHP 5.2
    1. sudo apt-get update
    2. sudo apt-get install php5-cli
    3. sudo apt-get install php5
  4. Reinstall any PHP modules your application requires. For me that was:
    1. sudo apt-get install memcached
    2. sudo apt-get install php5-memcache
    3. sudo apt-get install php5-curl
    4. sudo apt-get install php5-mysql
  5. sudo reboot

After my production server rebooted, I had to fidget with Apache to get it started again. You may have to:

  • sudo /etc/init.d/apache2 restart
  • sudo /etc/init.d/apache2 stop
  • sudo /etc/init.d/apache2 start

Hope this helps!

Posted in IT & Administration, Web & Software Development | 1 Comment

Twitter MySQL User Object Table Schema

A common practice for Twitter application developers is creating a MySQL table to store user objects returned from Twitter’s API. I’m trying to optimize my user table for Friend Or Follow, and it occurred to me how many developers must be reinventing this MySQL table schema, so let’s get it right once and for all.

Here’s where I’m starting. If you see anything that I’m missing, or notice a data type that could be optimized let me know in the comments and I’ll update the post to reflect your suggestions.

Posted in Web & Software Development | Tagged , , , , | 3 Comments