Brett Allred

be a student, not a follower

Leave a Legacy

Today was my last day at MoneyDesktop. Brandon Dewitt asked if I would like to say some parting words during the vision meeting. I decided to share a story and some key principles from my personal philosophy.

When I started looking into the possibility of going to work for MoneyDesktop, I was really scared. It took me six months to make the decision to join the team.

The repeating question in my mind was “where can I add value”. The MoneyDesktop team was full of extremely talented people who’s technical ability was light years ahead of mine. How could I ever bring value to this team?

I determined that if I wanted to improve myself and become better I need to go where the expectations where high.
I needed to be around people that were smarter than me and hopefully they would lift me up.

So I got my offer, and the week before I started I read some books on ruby and hoped for the best.

During my interview with CEO Ryan Caldwell, I told him very plainly that I was not a technical powerhouse like the other team members and all I ask of myself and of anyone is to make measureable progress in reasonable time. I asked if we would treat me the same.

Early in my life I learned that success is a result of a few disciplines practiced everyday and failure in life is the result of a few errors in judgement repeated everyday.

By disciplining yourself in a few things, you can become a steward over many things.

Coming into this new job I new that if I setup a few disciplines and worked on them on the everyday, I could make measurable progress is a reasonable time and hopefully add value to the organization.

I believe this philosphy and approach worked. It allowed me to be successful at MoneyDesktop.

I owe the greatest amount of appreciation to Brandon Dewitt, Adam Hutchison, Brian Stein, and BJ Neilsen for really teaching me, trusting in me, and elevating me to be a better engineer and person than I was a year ago.

I also hope in turn I was able to pay it forward with everyone on the team. Hopefully in some small way I was able to influence lives, jobs, and careers for the better.

I love the team at MoneyDesktop and will miss them.

The Seasons

Life and business are like the changing seasons and as we a dive into a new year we can pretty much count on a few things.

  1. Springtime Opportunity – Spring is the season for entering the fields with seed, knowledge, and commitment. There is a hope present in the spring that if you sow you will reap. But one of the greatest principles in existance is that you don’t reap what you sow, you reap much more than you sow. If you sow and handful of corn seed, do you reap a handful in return? No, you reap much more. So it is with life and business.

  2. Hot Summer – The summer is a time for constant daily effort to guard against the bugs and the noxious weeds. While the spring is a time for creation, the summer is a time for growing and gaining strength. If we neglect our duties in the summer our precious garden begins to wilt and decay. The bugs and the weeds are their to test our will to succeed and our worthiness to reap the rewards of the fall.

  3. Fall Harvest – “Maturity is the ability to reap without apology and not complain when things don’t go well”. The fall is a time for triumph and reflection. The fall tells us if we have really done what was required, or if we have fooled ourselves through the temporary anesthetic of conversation and pretense… of telling ourselves we’ve worked when we haven’t. Nothing is more exciting than a substantial crop, or more discouraging than barren field. The promise is there. If we plant in the spring and see it through the summer we will have a massive harvest in the fall.

  4. Winter – The first great lesson is life is that the winter will always come and it can come in many forms. We all experience personal winters and every business will experience the winter as well. The arrival of winter finds either prepared or unprepared. To those who are prepared, who have planted abundantly in the spring, guarded their crops in the summer, and harvested massively in the fall, winter can be another season of opportunity.

There are great lessons that can be gleaned from the seasons. Let’s make the best of the opportunities before us and create our own harvest. Here’s to 2014!

Delivering Happiness

I spent the last few days listening to the audiobook Delivering Happiness by Tony Hsieh. The book is a few years old now but many of the principles it teaches are timeless. Here are few of my favorites.

Envision, create, and believe in your own universe and the universe will form around you

Tony doesn’t expound too much on this concept but I couldn’t help of think of all the lessons taught in the book The Alchemist by Paulo Coelho. The Alchemist is a fantastic book that I learned about by watching an interview with Will Smith. Basically the entire book (‘The Alchemist’) is about this concept.

Avoiding the Death Spiral

This is an email written by Jason Calcanis that is referenced by Tony. There are tons of little nuggets of wisdom in the email and I definitely recommend reading it.

Things are never as bad as they seem or as good as they seem

“If you have more than 3 priorities then you don’t have any” – Jim Collins

How to Learn

In my recent studies I came across a a study that evaluated 10 techniques for improving learning. While the information in the post was interesting, I found more practical advice in the related topics The Cornell Note Taking System and The Feyman Technique.

I have been using Cornell Notes for about a month now. Last night I sat down to try The Feyman Technique and something clicked.

By combining the 10 techniques for improving learning, along with Cornell Notes and The Feyman technique, I finally completed my system for studying.

First, I print out the Cornell Notes NotePaper. I prefer the graph paper with 4 lines per inch, no holes, no date. I use a 3 hole punch and put a dozen pieces of the notepaper in a 3 ring binder. I write the my study topic on the top with the date and a generic subject.

While reading, if there is an important fact to remember, I apply the elaborative interrogation technique. I write a questions in the left hand column of my note paper asking why a certain fact is true. I provide my answer in the right column.

I use the Self Explanation Technique along with Concept Mapping to learn what is explained in the text. This involves mapping out relationships between concepts and explaining to myself the relationship between the concepts being learned.

I try to use personal judgement to incorporate other learning techniques while taking notes. While the other techniques are helpful, they aren’t core to the learning process like the techniques mentioned above.

When I have filled up a page of notes, I write a short summary in the bottom section provided by the Cornell Notes. While summarization isn’t highly effective, it is still a technique enhances learning and solidifies concepts.

At this point I generally end my study session. A few days later, I revisit my notes and apply the Feyman Technique. On the back of my note paper I pretend to teach the subject matter to someone else. This helps identify holes in my knowledge and gives me a good starting point for my next page of notes.

Life rewards the serious student. Adios!

Blog Upgrade : Octopress

I really hate wordpress. It is so slow and I just don’t have any interest in php. Recently I started playing with Middleman and had an epiphany. Do I really need a complex content management system that I constantly fight against? No. Flexing my html, css, and javascript muscles, along with a static site generator, I can have a wickedly fast and easy to manage site.

So tonight, on this long memorial weekend, I played around with Octopress. Getting it setup has been and deployed to heroku has been a breeze. Their docs are great. I was able to migrate my wordpress blog over really easy with the help of the wordpress to jekyll plugin

All said and done it took me about an hour to get Octopress setup, migrate over my wordpress blog, change domain settings, and have a new blog up. Best of all? I get to write this blog post using Vim. Woot! Woot!

Oh yea. One small hiccup I ran into. If you are using zsh and trying to run rake tasks, you have to escape your parameters.

bundle exec rake install[theme]

should actually be

bundle exec rake install\[theme\]

Web Server Basics

The job of a web server is to accept http requests and serve up http responses  (see http request response basics).  There are number of different web servers out in the world but the basic concepts are the same among them all.

When a request comes in to the web server, the Host header is examined and the request gets routed to the correct internal server.  Host based routing is what allows a single web server to host multiple websites.

When the internal server responsible for the website receives a request it has to make a choice.  First, it needs to see if the request is for a static file that exists on the web servers hard drive.  This could be an html file, javascript file, image, movie, etc.  If the static file exists it will return file to the client.

If no file exists, the web server can be configured to forward the request to another application for request processing.  If you are building a web application then the request gets forwarded to your application.  Your application can then examine the request and decide how to handle it.  This could involve saving items to a database, communicating with 3rd party web services, or rendering dynamic html views.

Web application frameworks have been built to make the process of handling request easier and creating custom web applications easier.

 

HTTP Request Response Basics

Passing NotesAt the most basic level, the internet works like two kids (a boy and a girl) in a class room passing notes between each other.

First, the boy writes down his question on a small piece of paper, folds, it up, labels it to the girl, and passes it down the isle. The note hops from person to person until it reaches the girl for whom it was intended.  The girl then takes out a small piece of paper and replies to the boys question and delivers it back to him in a similar manner.

Similarly, when you want to get information from the internet, you create a small message,  label it to a server, and send it out.  It hops from computer to computer until it reaches the server.  The server opens the message, reads it, and then responds in a similar manner.

Because computers aren’t as intelligent as people, we have to define the exact format of the message to be sent.  This ensures the computer will know how to properly read the information contained in the message. The HTTP protocol defines this message format.

In HTTP communication there is always a request and a response.  Like our example above, the boy requests something of the girl and she responds.  Likewise, a web browser will make a request and a server will respond.

Here is a sample http request for https://www.google.com

GET / HTTP/1.1[CRLF]
Host: www.google.com[CRLF]
Connection: close[CRLF]
User-Agent: Web-sniffer/1.0.44 ( http://web-sniffer.net/)[CRLF]
Accept: text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8[CRLF]
Accept-Language: en-US,en;q=0.8[CRLF]
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF]
Cache-Control: no-cache[CRLF]
Referer: http://web-sniffer.net/[CRLF]

There are three sections to an http request:

1) Request Line – This is the first line of the request.  It specifies the request method (GET, POST, PUT, DELETE, etc), the resource, and the protocol used.  It ends with CRLF (that is, a carriage return character followed by a line feed character)

2) Headers – Next are the headers.  This is a way to pass information to the server about the request.  There is one header per line.  Each line ends with a CRLF.

3) Body (optional) – Information can also be  sent the the server in body. The body is distinguished from the headers by an empty line. In the sample request above there is not body.

The HTTP protocol also specifies the format of the response from the server to the client. The response format is very similar to the request format.

1) Status Line – This is the first line of the response.  It specifies the the protocol used and the http response code.  It ends with CRLF

2) Headers – Next are the headers.  This is a way to pass information to the client about the response.  There is one header per line.  Each line ends with a CRLF.

3) Body (optional) – Information can also be  sent the the client in body. The body is distinguished from the headers by an empty line.

When doing web development, it helps to understand this concept.  When trouble shooting problems with your web site you can use various tools to examine the client request and server response.  My particular favorite are the web developer tools in the Google Chrome web browser.  By opening the developer tools you can view the network tab to examine requests and responses.

Startup Weekend Ogden – Pitches

This week was another stellar startup weekend.  Lots of energy, lots of great ideas.  Here is a summary of all of the great ideas that came out of this weekend.

Mustache Monitorwww.mustachemonitor.com

“Mustache Monitor is an iOS app to document daily stache production and create an animation of your incredible journey through Movember. What’s better then having a robust stache? Sharing it with the world.”

Comments: Coolest

Geo Fetch Apphttp://geofetch.com/

“GeoFetch is a GPS outdoor adventure app motivating people to complete challenges and compete with friends for rewards; creating a fun social interactive platform.”

Comment:  Geekiest

Free Birthday Food - http://freebirthdayfood.com/

“Everybody has a birthday. Everybody loves food. Let’s bring them together in joyous harmony all month long.”

Comment: Best Validation

Get Epic Music - http://getepicmusic.com

A place to find “epic” music to use in your home videos.

Comment: Best Pivot

Sunrise Sunset - http://sunrisesunsetcalendar.com

An app to know the sunrise sunset time without an internet connection

Comment: Best Utility

Wedding Address Book

An easy way to collect addresses from your wedding using your facebook friends.

Comment: This was my team

Speak Now –

Collect positive feedback from your customers

Comment: Funniest Intro

GoFFitihttp://www.goffiti.com 

Leave Your Mark! You can upload your mark at any geo-location point on the planet. Simply create or upload your personal “tag” through your user profile settings. When you access a geo-location point, you can quickly post your “tag” for other GoFFiti users to see at that point.

Comment: Best Cross Platform App

Bazookaguys

Indy Game.

Comment: Awesome!  Plain and simple.

Vinny

Get Values on used cars

Comment: Tons of cool data aggregation

Print Badger - 

Easy way to print badges for events

Comment: Most likely to succeed

Bucketlisthttp://bucket.onfirst.com

Find cool places to travel

Comment: Most awkward opening

Clip MD

Way to share medical related material

Comment: Technical Fail but looked interesting

Kitchen.ly

airbnb for food.

Comment: Could be huge

Funding My Team

Help kids raise money for their sports team

 

Attendee Best of Show BAZOOKA GUYS!

 

Judges Vote

#1 – Kitchen.ly

2 – Print Badger

#3 – Sunrise Sunset

Visual Studio 2003 – Can’t Open Project File

This morning I was working on an old solution in VS2003.  When I opened it up I got an error that said project failed to load.  The fix was pretty simple.  I opened up the .vcprog file in a text editor (Sublime Text 2) and went down to the Assembly References section. and  deleted all of the assembly references. Then I  re-loaded my project, added the assemblies again and all was good. Build Works !

Two Cows to Tell It All…

SOCIALISM

You have 2 cows.
You give one to your neighbour.

COMMUNISM
You have 2 cows
The State takes both and gives you some milk.

FASCISM
You have 2 cows.
The State takes both and sells you some milk

BUREAUCRATISM
You have 2 cows.
The State takes both, shoots one, milks the other and then throws the milk away.

TRADITIONAL CAPITALISM
You have two cows
You sell one and buy a bull.
Your herd multiplies, and the economy grows.
You sell them and retire on the income.

VENTURE CAPITALISM
You have two cows.
You sell three of them to your publicly listed company, using letters
of credit opened by your brother-in-law at the bank, then execute a
debt/equity swap with an associated general offer so that you get all
four cows back, with a tax exemption for five cows.
The milk rights of the six cows are transferred via an intermediary to
a Cayman Island Company secretly owned by the majority shareholder who
sells the rights to all seven cows back to your listed company.
The annual report says the company owns eight cows, with an option on one more.

AN AMERICAN CORPORATION
You have two cows.
You sell one, and force the other to produce the milk of four cows.
Later, you hire a consultant to analyse why the cow has died.

A FRENCH CORPORATION
You have two cows.
You go on strike, organize a riot, and block the roads, because you
want three cows.

AN ITALIAN CORPORATION
You have two cows, but you don’t know where they are.
You decide to have lunch.

A SWISS CORPORATION
You have 5,000 cows. None of them belong to you.
You charge the owners for storing them.

A CHINESE CORPORATION
You have two cows.
You have 300 people milking them.
You claim that you have full employment and high bovine productivity.
You arrest the newsman who reported the real situation.

AN INDIAN CORPORATION
You have two cows.
You worship them.

A BRITISH CORPORATION
You have two cows.
Both are mad.

AN IRAQI CORPORATION
Everyone thinks you have lots of cows.
You tell them that you have none.
Nobody believes you, so they bomb the crap out of you and invade your country.
You still have no cows but at least you are now a Democracy.

AN AUSTRALIAN CORPORATION
You have two cows.
Business seems pretty good.
You close the office and go for a few beers to celebrate.

A NEW ZEALAND CORPORATION
You have two cows.
The one on the left looks very attractive.

A GREEK CORPORATION
You have two cows borrowed from French and German banks.
You eat both of them.
The banks call to collect their milk, but you cannot deliver so you
call the IMF.
The IMF loans you two cows.
You eat both of them.
The banks and the IMF call to collect their cows/milk.
You are out getting a haircut.