Friday, May 18, 2012

Best quotes from the Valve handbook

Valve is not a traditional software company, here is their handbook that new employees get on the first day.

Here are favorite quotes from the handbook.

Why does your desk have wheels? Think of those wheels as a symbolic reminder that you should always be considering where you could move yourself to be more valuable. But also think of those wheels as literal wheels, because that’s what they are, and you’ll be able to actually move your desk with them. You’ll notice people moving frequently; often whole teams will move their desks to be closer to each other. There is no organizational structure keeping you from being in close proximity to the people who you’d help or be helped by most.

Team leads, often, someone will emerge as the “lead” for a project. This person’s role is not a traditional managerial one. Most often, they’re primarily a clearinghouse of information. They’re keeping the whole project in their head at once so that people can use them as a resource to check decisions against. The leads serve the team, while acting as centers for the teams.

Hours, ... for the most part working overtime for extended periods indicates a fundamental failure in planning or communication. If this happens at Valve, it’s a sign that something needs to be reevaluated and corrected.

Even expensive mistakes, or ones which result in a very public failure, are genuinely looked at as opportunities to learn.

Working a lot of hours is generally not related to productivity and, after a certain point, indicates inefficiency. It is more valuable if you are able to maintain a sensible work/life balance and use your time in the office effi- ciently, rather than working around the clock.

We believe that high-performance people are generally self-improving.

The most successful people at Valve are both
(1) highly skilled at a broad set of things and
(2) world-class experts within a more narrow discipline. Because of the talent diversity here at Valve, it’s often easier to become stronger at things that aren’t your core skill set.


Hiring well is the most important thing in the universe. Nothing else comes close. It’s more important than breath- ing.

We value “T-shaped” people. That is, people who are both generalists (highly skilled at a broad set of valuable things—the top of the T) and also experts (among the best in their field within a narrow disci- pline—the vertical leg of the T).

An expert who is too narrow has difficulty collaborating. A generalist who doesn’t go deep enough in a single area ends up on the margins, not really contributing as an individual.

Sometimes, the philosophy and methods outlined in this book don’t match perfectly with how things are going day to day. But we’re confident that even when problems persist for a while, Valve roots them out.

Methods to find out what's going on at your company

I borrowed it from Valve's handbook.

Amazon S3 and 'Resource interpreted as Stylesheet but transferred with MIME type binary/octet-stream'

If you use Amazon S3 to serve your static CSS you may end up with this error message 'Resource interpreted as Stylesheet but transferred with MIME type binary/octet-stream'
  1. You have to log in into Amazon S3 console
  2. Navigate to the file in question
  3. Open Properties and click to the Metadata
  4. You can see a Content-Type field with the value binary/octet-stream, change it to text/css
Something like this

Thursday, May 3, 2012

Tina Seelig's Innovation Engine

I borrowed this concept from Tina Seelig’s terrific book, inGenius: A Crash Course in Creativity.

Here is the Innovation Engine.
On the inside of your Innovation Engine are knowledge, imagination, and attitude.
  • Your knowledge provides the fuel for your imagination.
  • Your imagination is the catalyst for the transformation of knowledge into new ideas.
  • Your attitude is a spark that sets the Innovation Engine in motion.
On the outside of your Innovation Engine are resources, habitat, and culture.
  • Resources are all the assets in your community.
  • Habitats are your local environments, including your home, school, or office.
  • Culture is the collective beliefs, values, and behaviors in your community.

Wednesday, May 2, 2012

Reload the Active Tab in Chrome with AppleScript

This is a revisited/simplified version of this old post.


You can get more scripts like this from Saekiさん's post

Tuesday, May 1, 2012

Git diff stash

If you need to see what's been changed for a certain stash, you can simply pass in the treeish for the stash.

Sunday, April 29, 2012

What makes a pragmatic programmer

Here are some of my notes of the book

What makes a pragmatic programmer

  • Early adopter/fast adapter
  • Inquisitive, tend to ask questions
  • Critical thinker
  • Realistic, try to understand the underlying nature of each problem you face
  • Jack of all trades, familiar with a broad range of technologies
Care about your craft. Think! About your work. Always trying to place it in its larger context, always trying to be aware of the bigger picture.

The cat ate my source code

Take responsibility for everything they do. We can be proud of our abilities, but we must be honest about our shortcomings. Provide options, don't make lame excuses. Don't be afraid to ask, or to admit that you need help.

Software entropy

Don't leave "broken windows" (bad designs, wrong decisions, or poor code) unrepaired. Take some action to prevent further damage and to show you're on top of the situation.

Stone soup and boiled frogs

Be a catalyst for change

Good enough software

If you give your users something to play with early, their feedback will often lead you to a better eventual solution.

Your knowledge portfolio

Invest regularly in your knowledge portfolio It's important to continue investing. Once you feel comfortable with some new language or bit of technology, move on. Learn another one. The process of learning will expand your thinking, opening you to new possibilities and new ways of doing things. Critically analyze what you read and hear.