I’m living my dreams – How can I help you live yours?

It has been more than a year since my last Zen of Technology, and I feel like it is time for a return – but with a twist.  I ended ZoT because I wasn’t sure I had more to say, but with all this time to think, I feel I finally have something again to contribute.

I didn’t realize it at first – but I do now – I’m living the dream.  I have a family that loves me, and that I love.  I have a job I enjoy, a garden, friends, and hobbies.  But, for a time, I felt like I needed something more.  I wrote an interesting piece on Medium – From Guru to Just Some Guy – detailing that journey.  What finally gelled with me was that all the crazy ideas and dreams I had all pointed towards one thing – I wanted to help other people.

So, I’ve decided to cut a bunch of steps out of my game plan and live the dream – I want to help people.  And who better to start with than people who have subscribed to learn more and better themselves.

I’ll be reviving this email list, with weekly tidbits of information on how to live your dreams and be happy.  But I’m not stopping there.  I want you to share with me your dreams, and I want to personally help you live those dreams.  The only thing I ask in return is that you live your life with the principles of being good to others (sorry, I won’t help you conquer the world 🙂 ).  So please, share your dreams and lets get there together.


Be The River

These last few weeks have been quite a roller coaster for me.  I’ve had some very fun moments, but also some very stressful moments, long drives, battling extreme cold, being sick, snowstorms, and coming home from a short vacation to my basement flooded because of a burst pipe (caused by my boiler not working, so add to the cleanup efforts that my house has a lack of heat).  Looking back, I wouldn’t give my performance anything better than a B-minus, but I realize the one thing that kept me from utterly failing was my ability to be the river.

I work in technology, so the “stream” metaphor can start to grate on me and get old quickly, but I’m not talking about social streams, streaming media, or buffer streams, I’m talking about an actual river.  Flowing water which has a source, a path, and a destination.  What is amazing about water – and rivers in particular – is that they unmistakable despite being extremely dangerous in some areas and completely still in others.

If a river runs into something that stops it’s progress, it simply slows down and becomes calm.  It enjoys the break, while slowly working away at the tiniest of cracks until it can break through the obstacle.  It never gets frustrated, angry, it just remains calm and looks for the path of least resistance around the obstacle.  When the land is steep, the river rages quickly to get to the bottom, splashing, zigging, and zagging around rocks and other little obstacles letting almost nothing get in it’s way.

When times got crazy – like coming home and finding a burst pipe – the only thing that mattered was getting the cause found, the water shut off, then begin the emergency cleanup.  Like the raging river, I kept moving and getting things done.

As the week went on, and things calmed down, I started to look back and think back to this river metaphor.  I realize that it fits my philosophy on learning, education, programming, life, etc.  “Go with the flow,” some may say.  It also has become a great way for me to shrug off stress.  Not to say specific moments aren’t stressful, but, I can recognize that stress as a signal that this is time where the river will be fierce and full of rapids, and I need to change my priorities and work through this part as quickly and safely as possible until things calm down.  By doing this, when things do calm down, I don’t need to hold any of that stress.

I pushed myself to see if this metaphor held through with programming and it seemed to also hold true.  There are times where I can write 100+ lines of code in a day, and knock out tons of features.  Much of it has to do with the difficulty.  Not all programming problems are the same, just as math problems have different levels of difficulty.  But, sometimes I get stuck on a single line of code (or small bit of functionality) that will take me hours, sometimes days to complete.

So, next time things get crazy, remember that it is OK.  Speed your way through, be the river, and know that calm is ahead.  When things are calm, enjoy the peace.


The Leadership Falacy

Zen Digest

  • Not everyone is a leader.
  • You don’t have to be a leader – that is OK.
  • Leadership is a skill, but not one that necessarily makes you better.

The Whole Picture

Years ago I applied for a job that I figured I was a shoe-in for.  I was friendly with the founder of the company and had many friends who worked there as well.  Additionally, it was a role I was well qualified for.  I went through a few rounds of interviews with different people in the company when the founder finally told me that I didn’t have the job.  His words were “We already have too many chiefs, and need more Indians.”  It was another way of saying “too many cooks spoil the broth.”  You can’t simply have a company of leaders, it ends up being counter productive.

A few years ago, as part of my job, I had to convert (and ultimately read) over 50 motivational books from an amazing publisher.  A bulk of the books were self-help and business oriented.  Nearly all of them told you to be a leader.  Which is great advice if you want to be a leader, and for those driven to be a leader, can make you extremely successful, but being a leader isn’t for everyone, and that is completely OK!

American culture and education teaches us to idolize the individual.  Look up to Michael Jordan, Steve Jobs, Bill Gates, Thomas Edison, etc.  Not to say that these people didn’t have a big impact on the world, and that certain aspects of their accomplishments shouldn’t be admired, but what’s missing is the respect and attention that should be drawn to the people around those leaders that made greatness possible.  Michael Jordan had a team of players to help run plays, pass the ball, and score points.  Steve Jobs and Bill Gates had slews a great designers, programmers, and other employees to help them build wonderful and amazing products.  None of the above leaders would have been successful if it weren’t for those other individuals.

Imagine a large sailing vessel.  You can only have one person steering the ship.  For that person to be effective the rest of the crew workers need to do their jobs well.  The lookout needs to spot obstacles, the sail crew needs to adjust the sails, etc.  Just because the captain has control of the wheel doesn’t make them any better or more important than the other jobs, it simply gives them the power.  Additionally, some people’s skills are in being a lookout – spotting small details – and not in setting the course or direction of a ship.  Yet leadership books suggest you should always strive to drive the ship…

What’s most important is to figure out what you love to do, and how you can do it productively.  If you love managing people, or leading, great, but if not, you need not work on that skill to be successful.  Success is being a good, productive, and happy member of society.


Finding Your Way (Pathing)

Zen Digest

  • There is only one optimal path.
  • It may actually not be optimal to find the optimal path.
  • Having a methodology will keep you from going in circles.

The Whole Picture

There are no lack of quotes about how the journey is more important than the destination.  Life is the journey between the two fixed points of birth and death.  The true challenge lies in how to best get from point A to point B.  Whether it is an existential crisis, or a data-traversal problem, surprisingly the solutions and methodologies are extremely similar.

I was recently trying to solve a database issue where I had an extremely large volume of data that I needed to be able to sort through intelligently and quickly.  Thankfully for me, this is not a unique problem, and some of the best minds have been working on it since the dawn of computing.  A large portion of the issue was solved by creating a binary-tree index.  While those words may seem unrelated to you if you’re not familiar with databases, the concept is actually quite simple.  Data gets stored in a “tree” (it actually looks more like a triangle).  Whenever a new item is added, it compares itself to the top of the tree.  If it’s greater, it goes to the right, if less, it goes left until it finds and empty spot.  For a visual you can see below:

As you can see above, this allows you to store 25 items that are no more than 4 items away from the top.  So, if you wanted to find item 25, you only need to do 4 checks, instead of 25.  This snowballs quickly.  You can store over 1 million items while being only 20 away from the top, and over 1 billion items while only being 30 away from the top.

Without this tree (or index) you’d have to do 1 billion checks to find the item, but with it, only 30.  That’s efficiency.

When it comes to data comparison, this is pretty much the de-facto standard and what enables websites and software to run as quickly as they can.

But what about complex problems

A binary tree is great when you can easily compare two items – is one greater or not – but when you get more complex, you need more complex methodologies.  Take for example driving directions.  You have to factor in things like traffic, distance, speed limit, traffic lights, etc.  At this point you also need to ask yourself – what is considered “best.”  For example, is it better to take the long-flat drive around a mountain (which is longer but safer) or to drive up and down the mountain, which is shorter but more dangerous and demanding on a car.  If it’s raining, you’ll probably want to drive around the mountain!

Some problems and ultimately get too complex to optimize.  In math, the shortest distance between two points is a straight line, but if an insurmountable object stands in our way, we must be quick to find a new route.  It is very possible to spend too much time at your starting point waiting to find the optimal route.  In these cases, it’s best to look for a good direction to start and begin your journey.  Once on your journey, give yourself checkpoints to recalculate the route and ensure you’re on the best path.

The Corn Maze Solution

There is a well known algorithm for solving basic mazes (an corn mazes).  You pick a side – left or right, and follow the wall.  It isn’t the most efficient but it is guaranteed to get you to the end.  It was favored by early computer scientists because its logic was simple and computationally inexpensive.



Zen Digest

  • What is not there is often more important than what is
  • Ask yourself what is most important

The Whole Picture

Years ago, I believed that to convince people I was smart, I had to add something into every conversation.  Opinions, facts, it didn’t matter, as long as I got in some words, I felt I was doing the right thing.  I’m sure tons of people heard me, but I’m not sure they listened.  In fact, I’m sure the more I talked, the less they listened.

Humans are wired very interestingly.  We are very aware of things that break the normal – a loud crash on an otherwise quiet day, a bright light in the dark – contrast is easy to spot.  We are also extremely good at drowning out “white noise.”  When something becomes common our brain simply filters it out.  Because of this, the information we share is actually less important than the things we choose not to share.

The principal is simple but has huge implications in all manners of business and life.  According to Statista 21% of people abandon an online shopping cart because the process is too long.  Often times your name, or address will be asked twice, or information that is simply not necessary (such as a shipping address when buying a digital product) are collected.  All of this additional information leads to noise that makes for difficult solutions.

Or think about a basic marketing flyer.  Imagine the two following possible flyers for a PTA bake sale:

Flyer 1: “PTA Bake Sale – 10/30 3pm – 4pm in the Auditorium”

Flyer 2: “The PTA is having a Bake Sale on October 30th at 3pm to 4pm in the Auditorium.  Cupcakes, brownies, muffins, and more!  Everything $1 – $5.  All proceeds go towards the PTA’s fundraising campaign to help the senior trip.”

Both are informational, but flyer 1 can be in a large font type, easily visible and the most important details can be remembers – 10/30, 3-4pm, Auditorium.  In Flyer 2, the reader has to figure out what are the key details.  When presented with further information, they need to assess – is it important for me to remember that this is for the senior trip?  Do the prices matter?  The critical goal is to get people to show up.

The silence rule also applies to personal matters.  If we are constantly talking, we risk not actually being heard.  I believe I’ve mentioned to the listen that I’ve often written an email then upon re-reading it realized that I wasn’t really saying something new, or adding value, and simply deleted the email instead of sending.  While it felt weird at first, I honestly think more good has come from me hitting delete than send.  I’ve saved myself time – as in some cases I no longer have to defend an unpopular opinion (especially in a debate which can never be won) and by limiting the times I hit send, I actually increase the value of the content that does get sent.  Think of it like a treat.  If you had to eat your favorite desert for every meal, you’d get tired of it quickly, but by having it occasionally, it remains something you are happy to see put in front of you for consumption.

It is that exact reason that I did not send Zens the past two weeks.  I simply did not feel like I had something of value I could send.  I also hope this provided you value, happiness, and satisfaction.  Have a wonderful day.


Good Time to Update

Zen Digest

  • Now is a good time to update your software
  • Periodic updates can be good
  • Remember to keep devices plugged in while updating

The Whole Picture

Over the last few months there have been two very huge security scares – or better put, security people have learned how to market major issues.  Security flaws are found quite frequently, but they are usually named things like CVE-2014-6287.  Hard to be scared or excited about that.  Either way, the latest two major security issues – Heartbleed and Shell Shock (much catchier names, no) – actually have very large potential implications.  I wrote a post about Heartbleed a few weeks ago.  For the average person, not much needed to be done – it was something for a system administrator to fix.  Shell Shock is completely different.

Shell Shock affects a standard user’s computer.  Anyone running Mac OS, Linux, or Unix.  Normal Windows users are fairly safe – but not completely.  Believe it or not, some devices such as printers, external hard drives, and even internet routers run versions of Linux.

What Does Shell Shock Do?

The vulnerability lets – in certain circumstances – any command be run on your computer.  This could ultimately someone write a virus to do nearly anything on your computer and without your permission (wouldn’t even ask you to install anything).

The good news is that the issue was fixed and updating your software should solve the issue on most devices.  So, while most people see “An update is available” and click “ignore” I highly recommend that you take the time to update, especially if you’re on a Mac.

It’s good to update on a regular basis.

Updates can be a pain, they always pop up in the middle of your work, and require you to restart your computer, etc.  Mark on your calendar once a month to make sure you update your phone and computer.  Big and small security issues are discovered all the time, and updates keep your device safe.  Often hackers/virus writers don’t know about a flaw until it is discovered and fixed but will still write malicious code to take advantage of people who don’t update.


Delete, Discard, and Trash

Zen Digest

  • Reduce your digital waste
  • Ask yourself “Am I adding value?”

The Whole Picture

I’ve written quite a bit in the past year.  But for every email I sent, or post I hit publish on, it’s likely there was one that got trashed.  In fact, before writing this, I started writing two other posts, only to discard the draft.  I used to write because I wanted people to be impressed by me.  I wanted to take advantage of every opportunity to come up with a smart solution to someone’s problem or talk about something I did hoping people would think better of me.  Ironically, my desire to talk got in the way of my ability to listen – the only real key to finding the best solution.

My new years resolution was to say less – but with higher quality.  Not everything we create is wonderful, and sometimes the only lessons to be learned from a piece of writing are for you alone, and it’s better left unpublished.

It’s also hard to put your foot in your mouth if you don’t open your mouth.  Not every problem needs a solution, and nearly all people would rather keep talking to full explain what’s on their mind than have you interrupt them with a solution.  Additionally, just because you have an opinion doesn’t mean it is informed or that it will further a discussion – it is completely okay to be an active listener while others discuss a topic.

At first it was hard.  I would spend 10 minutes writing an e-mail and I felt like I had wasted my time if I hit “discard.”  I would question “What if some value would be added by what I said?”  Then I realized this – how many people’s time will be wasted by stating something that doesn’t truly add value.  If I were a baker, would I ever want to sell a cookie that was a little burnt?  Even if the last 10 batches were perfect, would I rather sell a burnt cookie, or simply not sell a cookie.  Sometimes you have to toss the cookies.

Every interaction we have is like a cookie.  They come in different varieties, and different people have different preferences.  Also, if all you did was give away your cookies, you’d go hungry, and if you just ate, you’d be overweight.  The right amount of sweet, sour, and savory leaves people wanting more.  Too much bitter, or even sweet leaves a bad taste in people’s mouth.  There is no shame in tossing a batch of cookies.  No one is perfect, but what separates the true professionals from the amateurs is that the professionals know when to press delete.



The Value of an Idea

Zen Digest

  • Ideas alone are essential useless
  • The value lies in execution

The Whole Picture

When I was in college, I had an idea for the next big video game.  At the time, games like Everquest were huge and the game World of Warcraft (the highest grossing video game of all time) was in development and slated to be released.  The gaming world was ready to open their wallets and pay huge amounts to play games that would provide them with endless hours of game-play.  I had an idea for a game that could have been huge.  But this isn’t about that game, so I’ll spare you the details of how the game would have worked.

At the time I had this idea, I was running College Boredom and as a sub-site, I created a game called Boredom Ville.  Boredom Ville had massed a few thousand users, many of which were paying for additional perks within the game.  So, armed with my minor success with Boredom Ville and my great idea, I enlisted the help of a professor of mine to get a meeting with a major game developer to sell my idea.

I was lucky and was given the audience of a senior project manager.  I was allowed 1 hour to sell my idea to this person.  I spent days perfecting my presentation, and walked into the meeting with a great Powerpoint presentation as well as a batch of freshly baked cookies.  While I wasn’t quite as experienced as I am today, I can honestly say that I nailed the presentation.  All the cookies I brought got devoured, everyone watched with awe (one of my teachers, as well as my dean was also in attendance).  I even heard a few “wow” and “awesome” here and there.  45 minutes went by and I got to my final slide.  It had the words “Thank you for listening.  Questions?”

I got a question I was expecting, “Where’s the demo?”  My response was something eloquent, but in short I said that I only have the idea, but I was pitching the idea so that I could be hired on to produce or project manage this game and see it to completion.  I even showed a very reasonable budget for how much it would cost to build.  I’m not sure what I expected as a response.  I guess I hoped for a job offer, or maybe even an investment proposal.  What I got was shocking at the time.  The response was, “Build it, then we will produce it.”

I then learned that “produce” meant they would put the final product in a box, and put the box in stores and get it distributed and take 15-20%.  I would have to front the cost of development, and build all of it.  I was in awe.  At the time I was angry, and even challenged the person to say “If I have to fund and build this, why wouldn’t I just distribute it myself?”  Needless to say, I was never given the opportunity to build this video game, but, thanks to an NDA, this company is also unable to ever build my idea for themselves.

For years, I was always frustrated by this experience.  How could an idea be so worthless?  How could a company be so audacious to believe that they can take my finished product, slap their name on it, put it in a box, then take 20% (which is apparently a fairly reasonable, if not low, distribution/production fee).  Business school didn’t prepare me for that one – maybe an MBA would have, but not undergrad.

Since then, I’ve had lots of ideas.  Many of them crazy, unrealistic, or simply not commercially viable.  But a few of them were genuinely good ideas (in fact, others have also had these ideas, and successfully executed on them, many of which are thriving businesses).  I remember one time thinking to myself “They stole my idea.”  In fact, I’ve heard many people say that.  But, it took me a long time to realize that ideas are rarely unique.  In fact, good chance is that someone else has had your idea.  For every idea acted on, there are hundreds passed up.

Where value lies is in the ability to turn an idea into reality.  A great idea, executed poorly, will have poor results.  A good idea, executed excellently, will have excellent results.  It is actually better to execute very well on mediocre ideas than it is to execute poorly on amazing ideas.  Take Starbucks.  There is nothing terribly genius about a coffee house.  It was not a unique idea, it was far from the first coffee house, but Jerry Baldwin, Gordon Bowker, and Zev Siegl executed their idea in an amazing way.

Working in the world of start ups, I’ve seen many failures.  Many of the companies that were fellow start ups a few years ago, are no longer in existence.  Some of them had amazing ideas, some of them had terrible ideas.  What is always shocking is when an idea that you think is terrible or crazy becomes a success, but more confusing is when an idea that you think will be huge simply flops.  Looking at the big picture, I realized that I was looking at things the wrong way.  I judged a business based off it’s founding idea, and not it’s implementation plan.  When I looked at things from that perspective, things made much more sense.  Those crazy ideas suddenly seemed more viable because their management team played to the PR strengths of the craziness, and capitalized well.  The companies with great ideas that flopped failed to listen to their market, or failed to create a strong team and product.

The same principles apply anywhere.  When writing a book, the ability to weave a good story that is consistent, and the ability to resolve the story in a reasonable fashion is actually more important than the idea itself.  As always, a bad premise or story will lead to a flop, but the ability to consistently weave an interesting story is what is key.  The best writers can do that book after book.

No matter what you’re doing – planting a garden, taking a road trip, cooking a meal, writing software, or even just being a good friend – the key is knowing what your goal is, and being able to get there.  The idea (or destination) is simply a point on the map, your ability to get to that destination creatively, and with as much excitement as possible is the key.


Memory Management

Zen Digest

  • Outsource the task of remembering lots of short-term tasks
  • Be mindful of how you’re using memory (both technical and human)
  • 7 is the magic number of things we can remember

The Whole Picture

According to Miller’s Law, the human brain can store between 5 and 9 (most commonly 7) objects in short-term active memory.  I’ve always tried my best to be a man of my word, and in doing so, I needed to ensure that I remembered to do everything I agreed to do.  In business meetings, I did this by always taking notes.  I even have a system for marking items that are follow-up questions, tasks, etc.  But, in my personal life, it’s not very convenient to carry around a notebook and take notes during conversations – so I use my phone.

In a previous post, I noted about how I use an app called Any.do, which is a very simple task-management (really it’s just a list maker app) and it has been great for me to offload short-term memory management.  For tasks that are time-sensitive – “switch over the laundry” for example – I create a calendar item with a reminder.  An hour or so later, I get a notification that I need to move the laundry.  I free my mind from having to remember about the laundry.

This sort of outsourcing is wonderful as it not only frees up processing and storage in your brain, it also reduces stress – as you never have to worry about remembering little things (or worse, forgetting things).

Now we get technical.  Computers are similar to your brain in that they have two different types of memory – RAM (similar to short term) and a hard drive, similar to your long-term memory.  RAM is extremely fast, but much more expensive than a hard drive (as of writing this, you can get a 1,000 GB hard drive for $50 or 4GB of RAM for $45.  While 4GB is quite a bit of storage, it can get used up very quickly, especially when writing inefficient or sloppy code.  While web programming doesn’t give you much control over how to do memory management, the rules by which the browser does manage memory is well defined.

Whether you are programming or simply trying to remember a grocery list, it’s important to determine the best way to store that information to keep yourself and your code efficient.


Who Moved my Button?

Zen Digest

  • When a user looks for something, they have an expectation on where it should be.
  • Put your buttons and actions where the user expects them.
  • In nearly all other cases, people love to be surprised and delighted.

The Whole Picture

Continuing in my thought on identity, I was trying to justify the concept that “variety is the spice of life” and the “who moved my cheese” principle that people dislike change at first, even if it is for the better.  Often times, especially in the hard sciences, when you have two conflicting theories or concepts, only one (or neither) is correct.  But, in the social sciences, it is possible that both could be true – or at least that both could apply at the same time without conflict.

I set out to try to identify situations where we love consistency yet variety.  I came up with tons of examples.  When in a long-term relationship, we love seeing the same person, but appreciate when they wear a variety of clothing.  We like driving the same car every day, but would go crazy listening to the same song on repeat during our commute.  Everywhere I looked, I found specific attributes that are more desirable static, and others that are more desirable as variable.

When designing or creating anything, it is important to determine what attributes should remain similar to a user’s desire, and what can be different.  If you’re designing a car, you want to make sure the gas pedal, brake pedal, and steering wheel are in the same relative position as every other car – that’s something people want static.  But, when designing cup holders, the radio controls, etc, you have much more freedom.  When it comes to products of all varieties, I imagine there are much more variable attributes than the current designers imagine.  But, inversely, when it comes to the internet, it feels to me like designers see too many items as variable when indeed they should be viewed at static.

There are certain design concepts that are pretty standard for nearly every website.  Take sign in and sign up.  While there are some well-defined design principles around this, I’ve seen all manners of sign in and sign up forms that have buttons in all different locations of the site.  With the advent and the rise of mobile phone use (and small device use) designers rushed to optimize.  Now, different paradigms exist for a user.  You have the same website/app on your phone and your computer, but what are you expectations for functionality or button placement?  If something is a static element, then as a user, I expect it in the same place in all experiences.  If it is not, it causes me confusion and unhappiness. But, if the button is exactly where I was looking for it, that makes me a happy user.