Lately I’ve been leaning toward using AWS Beanstalk instead of Heroku. I had some issues installing the cli, here’s how I got it working.

After downloading beanstalk, I exported the path of the directory containing the eb shell script.

I’m running Python 2.7 so this meant exporting this path:

export PATH=$PATH:/Users/Dru/Downloads/AWS-ElasticBeanstalk-CLI-2.3.1/eb/macosx/python2.7/

Your user will be different. The path depends where your downloads go. You must also consider the version of Python on your machine (run python).

Run the export command as a one-off or add it to your .zshrc or .bashrc file for automatic loading. You will need to open a new window to use the eb command.

I was reminded of this command while pairing last week. You can ‘pipe’ output to pbcopy which is then placed on your clipboard.

I use this to provide other developers with my public key. For example:

cat ~/.ssh/id_rsa.pub | pbcopy

Uncaught Error: Sprockets::FileNotFound: couldn't find file 'angular'

I ran into this issue after deploying to Heroku.

The problem was that angularjs-rails did not exist outside of the assets group in my Gemfile.

Writing has allowed me to practice the art of getting to the essence of a message. I’ve shared both personal & technical things.

Here are my favorite 4 posts from the past month:

1. Keep it Real

I came out.

2. Making stuff

Spoke about the benefits of building things.

3. Build a Twitter Game

My first 100% client-side app, marked the beginning of me taking javascript seriously.

4. 3 Ways to Become a Better Developer

Received over 5,000 visits in the first 5 hours.

I had a problem deploying an AngularJS + Rails app to Heroku and eventually realized that the issue was caused by UglifyJS minification.

Error: Unknown provider: eProvider <- e is the error that I received.

I solved it by going from this pattern:

1
2
@ExampleController = ($scope, $resource) ->
  alert "Hey!"

to…

1
2
@ExampleController = ["$scope", "$resource", ($scope, $resource) ->
  alert "Hey!"]

If you’re using javascript, convert the code.

Source

I developed a RSS Reader using responsive design but the site did not snap to my iPhone screen.

I solved this problem in a Hackathon a few months ago so I revisited my old code to grab this:

<meta name="viewport" content="width=device-width,initial-scale=1">

Add this to your header for mobile device detection.

Rails developers, add this to app/views/layouts/application.html.erb.

A few people have suggested that you should write 1000 words a day.

I think this is a bad idea for the same reason that a developer should not aim for 1000 lines of code a day.

It means nothing. It may actually encourage bad habits. A developer may never recognize opportunities to refactor code and/or use more functional languages. A writer may never understand the value of brevity.

Writing is a game. I read and re-read with the goal of communicating using the fewest words possible. If I can save you time and get a message through then I’m all for it.

Tim O’Reilly recently gave a talk called ‘Create More Value Than You Capture’

He mentions that software is becoming a commodity and competitive advantage is moving to areas such as data, network effects, and the marrying of hardware and software.

There are many examples of companies leveraging data for competitive advantage:

  • Facebook (User behavior)

  • Amazon (Customer reviews and buying habits)

  • Gnip & Datasift (Exclusive access to Twitter’s firehose)

Network Effects

  • Facebook

  • Google (Search habits of the masses)

Software and Hardware

  • Square (Mobile payment processing)

  • Fitbit (Health)

I’m a firm believer that if you talk about what you want to do, you never actually do it. So unless you’re talking to someone you hope will be a mentor, close your mouth, put your head down, and keep building.

Zack Shapiro Want to Learn to Code? Start Here.

I rarely discuss new projects or goals because it feels like I’m releasing precious energy.

Zack was the first person I heard express the same sentiment.

Weekly newsletter for technical founders.

Focus.

Simple is hard.

From Harvard to the Facebook

Make stuff.

Studying entrepreneurship without doing it


The myth of doing “that one thing”

Secret to Successful Negotiations

Be aware of alternatives.

Subscribe or follow me for Technical Founder updates.

Joel Peterson speaks on the importance of knowing your BATNA (Best Alternative to a Negotiated Agreement).

I’ve applied this to dating, picking job offers, and buying cars. But sometimes I forget it.

Negotiations go much smoother when you are aware of your BATNA. You simply realize that there are other attractive options. The other party will recognize this by observing how calm you are.

You know when to walk away. Knowing your BATNA ensures that you do not overvalue a deal or overextend yourself to make it happen.

I measure the value of content by what I remember long after I read, hear, or see it.

The Stanford Entrepreneurial Thought Leaders series serves me well in this area.

Mark Zuckerberg attended in 05’ and was asked…

“What skills did you develop in college that prepared you for the entrepreneurial process and the business world?”


I think that it’s more about how you spend your time doing stuff than something specific that you learn from college. I made a ton of random things when I was at Harvard. Most of them no one ever saw, a couple of them just weren’t meant for other people to see. There were things that I made for myself because I thought that they would be cool.

Mark Zuckerberg From Harvard to the Facebook

Zuckerberg gives examples of things that he built before continuing…

I just spend a lot of time making random stuff. And I think that definitely made it so that by the time that it came to making this random project (Facebook) I was pretty well tuned towards making that.

Mark Zuckerberg From Harvard to the Facebook

You become a better entrepreneur, thinker, leader, and project manager by making stuff. Dave Williams once said “Entrepreneurship is like anything else. You have to practice.”

Most developers are guided by ‘product’ at work and stop making their own stuff. If your imagination isn’t exercised you lose it.

Make stuff that you are interested in and solve your own problems.

gem install rails --version 4.0.0.beta1
rails new app_name
cd app_name
rails -v
# => Rails 4.0.0.beta1

Notes

  • ruby 1.9.3 or higher is required
  • rvm users, consider creating a new gemset before installing

Start With Customers, Not Ideas

If your product comes from an idea and not a problem, realize that you are taking a shot in the dark. Sometimes this works, most of the time it does not.

Shommi solves the problem of finding leads. I just thought it would be a cool way to get into machine learning. I cared about the idea, not the problem.

Scratch Your Itch

Scratching your itch ensures that there is actually a problem, more importantly, one that you care about.

Have Access to Your Market

You can’t get meaningful feedback if you don’t have access to your customers.

Scratching your itch ensures that you have one person who can offer meaningful feedback. You are also more likely to know others.

Startups are hard so play to your strengths every chance you get.

Octopress’s syntax highlighting hides code that uses double curly brackets.

Wrap your code in [% codeblock %] [% raw %] [% endraw %] [% endcodeblock %] to solve this problem BUT use curly brackets instead of square brackets.

Example

We will build a Twitter game that allows players to guess which user posted a tweet.

pic

Demo | Github Page

1. Install Node

2. Get Structure

git clone git@github.com:DruRly/build_a_twitter_game.git
cd build_a_twitter_game
git checkout bootstrap

The bootstrap tag includes directories, empty files, libraries and some CSS.

3. Add HTML

app/index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Who said that?</title>
  </head>
  <body>
    <div id="app-container" class="container-fluid auto-margin">
      <div id="app-title">
        <p class="header auto-margin">
          Who said that?
        </p>
      </div>

      <p class="selected-tweet auto-margin">
      </p>

      <div id="user-images" class="auto-margin">
        <div class="image auto-margin">
        </div>
      </div>
    </div>
  </body>
</html>