I Love Heroku

Heroku LogoHeroku makes dreams come true for developers. Whether you are a seasoned tech entrepreneur or a student at university your site isn’t ready until it’s deployed. Heroku takes the pain out of creating a deployment process. Letting developers see their products online and ready for use faster than any other PAAS I have used.

We’ve all had our “Holy, **** that’s all?!” moment when we first deployed using Heroku. Mine was at the Boost incubator where I had just finished the first iteration of “Clear Chances”, which would later become “Gumball”. After two weeks of tough product decisions and heads down development work, the time had come to deploy. Having come from an enterprise background I was accustomed to deployment being a marathon process of building, checking dependencies, sign offs, and finally lots of manual work from a release engineer. After spending about 5 minutes reading the deploy documentation I saw a process that could take up to half a day turn into one that only takes less than three minutes. Since then I have tried other hosting options; such as Linode, EC2, deployments with rubber and chef, and some bizarre elastic beanstalk deployments. But I always end up wishing they were Heroku and host as many projects there as possible.

JWPlayer Firefox MP4 FLV WebM Fallback Issues

I’ve been working on a video site project and decided to use jwplayer as the video player. It’s free and easy to setup for the basic playback that I need.

But I ran into an issue with playback on Firefox on Windows. The player was not properly falling back to flv or webm formats after it would fail to play the mp4 version. After a while I discovered the issue was with the mime type being sent by AWS S3. By default my videos had a Content-Type of “video/mp4″, but the player specifically needs to see a type of “video/mp4″ or else it just bricks immediately in Firefox. In my opinion it should fail more gracefully back to the formats instead of just throwing an error. Anyways I noticed this issue is not well documented, so I am publishing this.

Here is what the code looks like to setup fallbacks for JWPlayer V6(Note this is coffeescript):
$("div.video-player").each (index) ->
self = $(this)
video_uri = self.data("uri")
video_uri_webm = self.data("uri-webm")
video_uri_flv = self.data("uri-flv")
jwplayer(self.attr("id")).setup({
width: "95%",
height: "200px",
aspectratio: "7:5",
playlist: [{
sources: [
{ file: video_uri },
{ file: video_uri_webm },
{ file: video_uri_flv }
]
}]
})

Here’s how to set the Content-Type for S3 with the ruby FOG gem.
file = directory.files.create(
:key => name,
:body => File.open(file),
:public => true,
:content_type => mime_type
)

Amazon EBS Deployment Issue – Could not find rake-10.1.0

After my previous frustrations trying to get a simple rails application on EC2 with rubber. I decided to use the new Amazon Enterprise Beanstalk PAAS solution. I’ve had multiple issues with the platform. But I’ve been able to work through the issues with limited delays. I still strongly prefer Heroku when it’s an option.

However there was one issue that took me quite a while to resolve and it seemed like a few other people had the same problem so I’m posting it here. When deploying my last app on EBS the push would go fine and as far as I could tell the site was pushed successfully. But none of the database migrations were running and the assets were not precompiling. Checking the logs revealed the error… Could not find rake-10.1.0 in any of the sources (Bundler::GemNotFound). This makes sense since migrations and asset compilations are rake tasks and rake is screwed up. I tried manually setting the rake version in the gemfile, dumping my gemlock file and starting from scratch, uninstalling bundler and rake. Nothing I tried on my side would resolve the issue.

So I moved on to the actually EC2 instance. I added the like rake: ’10.10′ to the application’s /.ebextensions/APPNAME.config file. This tells the box(es) to install that gem after the code is pushed. This resolved the issue for me.

SAMPLE /.ebextensions/APPNAME.config file (This is a yaml file, but wordpress stripped out the spaces)
===================================

option_settings:
– option_name: BUNDLE_DISABLE_SHARED_GEMS
value: "1"
– option_name: BUNDLE_PATH
value: "vendor/bundle"

packages:
yum:
git: []
rubygems:
rake: ’10.1.0′

Rails Rubber AWS EC2 Deployment Issues with Groups and Rules

If you are having trouble getting started with Rubber then this is for you.
This post resolves errors:
SecurityGroupLimitExceeded => You have exceeded the number of VPC security groups allowed per instance
MissingParameter => Source group ID missing.

The issue is that by default Rubber is creating different security groups for each role. You will notice the console printing numerous “Creating Security Group #{x}” lines. The max allowed without petitioning is 5 (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html) without petitioning.

First run cap rubber:destroy_all.. *Unless you already have production instances. I am assuming this is a fresh first time setup failing.

To force Rubber to use only one security group go into rubber.yml and set…
auto_security_groups: false
isolate_security_groups: false

After that it may work, or you may get error saying security groups exists… Go here to read how to access security groups. Once in the panel delete all security groups but “default”. http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html#DeleteSecurityGroup

If you are getting errors about rules, then select the “default” user group in the AWS panel . This will bring up the rules. Delete all custom TCP rules. After this everything should work. You may need to repeat deleting groups and rules, since Rubber seems to do a terrible job of managing those.

2013 Silicon Beach Fest Hackathon is Tomorrow!

silicon_beach_fest

Tomorrow I am going to be a Sensai at the 2013 Silicon Beach Fest hackathon. I’m not 100% sure what that means… But I’m at least going to be providing advice, tips, and generally helping people at the hackathon. I’m particularly excited about this hackathon because the theme is about building product that has a shot at being fundable and not just an app that does something cool, but useless. In addition to cash and service prizes, the winners also get to pitch their idea in front of investors during the Silicon Beach Fest pitch contest! My general advice for attendees is as follows:

1. Don’t go overboard. You only have 48 long and tiring hours to implement your project.

2. Focus on the main feature of your app. This is the secret sauce that makes your product a success. For example Klout’s main feature is calculating the social influence score of a user. That’s really all it does that is special, everything else is auxiliary.

3. Fake it till you make it. That being said you do need at least some more polish on your app to make it stand out. These additional secondary features can just be faked. For example login, registration, and basic CRUD things. That’s all trivial stuff that can be done later, no one is going to hold it against you if that stuff isn’t actually implemented.

4. Since we are talking about polish… At the end of the hackathon you need to present the project. This is a very visual thing. I’ve seen people win hackathons based solely on design. Design is a feature in modern software applications, especially for the pitch.

5. The pitch for this hackathon is going to be particularly important beacuse they expect winners to pitch at Silicon Beach Fest. Since it’s a hackathon you should definitely demo what you have built. Though, this is EXTREMELY rare in most startup pitches. You may also want to make a small pitch deck. Some things people typically talk about in a startup pitch are: Pointing out the pain point you are solving, the market size, and your team’s credentials. Keep in mind the time limit for the pitch. You should designate one person to do the pitch. This person should stop working and practice the pitch a few hours before. Techstars is a 3 month program and they start practicing pitching on week 2!.

This hackathon has the potential to be the largest hackathon hosted in Los Angeles this year. It also marks the beginning of Silicon Beach Fest a kind of week long event celebrating technology and entrepreneurship in Los Angeles. This is going to be a busy week.

Also take a look at the new blogging project I’ve started to document community related LA Tech and Startup things. It’s called LATechBeat.

Boyle Heights Civic Hackathon

National Day of Civic Hacking

This weekend was the Boyle Heights Civic Hackathon. The event attempts to get the Los Angeles tech community to come up with ideas for applications that help the Los Angeles community.

This is a HUGE problem for such a small event to solve. NYC has a similar program called NYC Big Apps. Which gives developers access to a large number of community datasets. This program is pushed heavily by the Bloomberg administration, it has run over 3 years in a row. Los Angeles is late to the game on trying to evangelize technology activism. The recently elected mayor Eric Garcetti has been advocating technology as a key topic during his administration. I recommend he come up with a similar program to NYC Big Apps which tries to create fully implemented and large scale solutions over the course of 3 months, rather than 32 hours.

As for the hackathon itself, I would consider it a success. The hackathon managed to get a lot of sponsors, including big names like Chase, Google, and Amazon. All together 410 attended, 40 apps were created, and over $25,000 in prizes were won. Teams presented some practical solutions to real problems. Common themes included job discovery, disaster response, and helping kids. There were some decent technology implementations, but nothing mind blowing.

I originally intended on going to the hackathon just to spectate, but I ended up joining a team and working on LA Street. LA Street is an app that lets users share pictures of street art. The area that the hackathon was located in was surrounded by dozens of pieces of street art. We had 3 designers on the team so it looked slick, we also had 3 developers so we were able to get a prototype up quickly. In the end we #won the Art category of the hackathon.

LA Street Team

LA Street Team

 

How to win AngelHack

Angelhack LOGO

In 3 months AngelHack will be making its rounds across the globe for the Summer 2013 season of coding and staying up all night. Angelhack is the largest hackathon in the world and offers big cash prizes for its winners. I’ve been to three Angelhacks now, and I’m going to share some common themes that winners exhibit.

Implement the Sponsor APIs and Services

Angelhack gets paid by the sponsors to promote their APIs. That means they want the sponsors to be happy. Sponsors are happy when you implement their API. This can be the most important factor that judges use when selecting a winner. In fact API sponsors may even be judges during your demo.

Go Big, or Go Home

Judges want to see products with a huge market. Most products than win are targeted at the consumer market. Think of ideas that take activities or problems that people experience every day, then build something cool.

Prepare

You can design your product as much as you want before the event. Only code needs to be fresh. You can have the design work, architecture, and team already to go in hour zero.

Make it look nice

The reality is, the app doesn’t need to function 100% as intended. But it does need to look nice and appear to be working well. I’ve yet to see someone win who didn’t have a polished design for their demo. Recruiting a designer, or getting design work done before the event is recommended. Yes, you can actually design the product before the event, only the code needs to be fresh.

Pitch Perfect

The pitch isn’t as important as it should be, considering they are trying to vet entrepreneurs for their accelerator. But you should have a pitch ready, don’t worry too much about a deck, focus on a live and interactive demo. The demo is the most important part, since people want to see what you built.

Have Fun

There is no 100% guarantee you are going to win. So you might as well have fun. Talk to people at the event, there is rarely such a large amount of hackers in one place (they don’t go outside much). Also, get to know the API sponsors, you never know how they might help you during and after Angelhack.


This year all first place winners receive access to the AngelHack accelerator program. While certainly not YC, Tech Stars, or Boost, it’s a pretty cool and unique offer.

Good Luck!

Women in Tech – An eye opening experience

Gumball Gives Away Amazing Womens Fashion

For the past 2 months I have been working on Gumball (read more about Gumball here), a women’s fashion giveaways site. As the technical co-founder of Gumball, tackling technical problems is only the most basic of my job functions. I need to be able to help define the long term strategy of the company, create customer hypothesis, and love and use the product frequently. That’s why it’s embarrassing for me to say, I have difficulty doing all of these things.


You see, Gumball is a site focused on women’s fashion and I am your average 20-something male. Before starting Gumball, I didn’t think there was a problem with not having any women in technology. But now I realize there are some hard and interesting problems out there that could greatly benefit from having more female minds. I know our company could for sure.

At the end of the day. I can only guess what kind of content women want to see on my site. Taking part in brown bag meetings with sets of women is fine, but I can’t really ask homerun questions or completely understand when I’m hearing. Every entrepreneur needs to be able to make a gut call on occasion and I know that I’m going doubt myself when that time comes.

This is me working on gumball
Fortunately, we identified this problem immediately and have already assembled an amazing team of female employees, advisors, and interns. We’ve even created an ambassador program to let top fashion bloggers vote on the products we will be giving away. Together we have managed to pull together and launch Gumball. We’ve just launched and I’m super excited to work on creating this new and disruptive marketing platform for women’s fashion.

See Gumball’s Current Giveaway Here

Gumball

Gumall Logo

For the past 2 months I have been working on the successor to Loyalty Dice, a women’s fashion giveaway site called Gumball. Gumball lets fashion brands show off their latest and greatest products to women who enter our giveaways to try and win those amazing products.

Gumball is a 100% legitimate giveaway site, which is something truly unique. We are NOT selling our users information to companies. We are NOT going to spem users with shitty ads on our site. We’re NOT going to engage in shady business practices to get users.

We ARE trying to solve some key problems associated with giveaways. Issues regarding trust, reliablility, and revenue. But we are already off to a good start. We have some interesting and tested strategies for dealing with these issues.

Gumball is set to launch next week and hope to have a few hundred users after our first giveway!

AngelHack 2012

I’ve always been interested in doing a hackathon but never wanted to invest the time into building something that will probably end up nowhere. But since I have been working non stop on a particular project for over a month, taking a break to work non-stop on another project seemed like a good idea. It also seemed like a decent networking opportunity. So together with some of my friends at the Boost incubator, we set off for Angelhack in San Jose one friday morning, with nothing but our laptops and zero idea what we would be building.

Overall Angelhack was a cool experience. There were lots of people, but not very much interaction between people. Most teams seemed to have been pre-formed… and based on the demos, most teams had also done some work on their projects beforehand. The ticket price for $40 was a steal because all meals for the 2 day event were catered and there was ALL YOU CAN DRINK BEER.

I worked on, Love Bump, an iPhone app that lets two phones bump together and then receive a love compatibility test based on the user’s FB profile. I got it about 1/2 of the way but was severely hindered by the fact that FB banned my dev account from creating new AppIDs. The issue was with setting up my test account with the same phone number as my main account. I wasn’t able to finish it in time because of these issues. But it was still fun to try.

Next time I try out a hackathon, I’m for sure going to plan ahead. If not, then I’m going to join another team. I feel like there was a lot of chances for communication and collaboration that were not realize. So next time I’m going to be sure and talk to more people.