Corporate culture isn’t your company’s ping-pong table. It’s not your catered lunch. It’s not the posters you tape onto the office walls. A real culture is the cumulative effect of productive relationships among employees. Those relationships can take years to develop. And they don’t always work out.

I absolutely love this quote from Dave Goldberg. Your perks don’t make up your culture. I’ve seen plenty of companies that boast all the great perks they have, but that doesn’t make it any better a place to work at. I think company culture goes much deeper than that and is more representative of the underlying values of everyone who works there.

You can check out the full article here http://firstround.com/article/How-Dave-Goldberg-of-SurveyMonkey-Built-a-Billion-Dollar-Business-and-Still-Gets-Home-By-5-30

On college

I’ve seen the argument come up too many times to count about whether going to college is necessary or worth the time, effort, and money. So far I’ve come to the conclusion that neither side is right. Both sides have valid advantages and disadvantages but what I have seen each side fail to recognize is that the decision is too dependent on each unique person.

Everyone has their own story and set of skills. When it comes to college, one size definitely does not fit all. The college experience may help you by putting you in a structured learning environment and forcing you to interact with others, network and attempt at creating well rounded individuals. For others it can feel constricting, boring, un-motivating and just in the way.

I fell into the latter category.

School never particularly motivated me. I always felt like it was full of bureaucratic nonsense that was in the way of what I really wanted to do. Even if it was a class that was more inline with my interests, like a programming or math class, I still was never very motivated. Over the years I’ve learned that only I can motivate myself and I do so by pursuing things that interest me. We live in an age of such open and easily accessible information that basically any topic you want to learn about is just a search away. I’ve been able to learn about such things as algorithmic trading, sentiment analysis, facial recognition, and many other things. I don’t think I would have had the time nor freedom to pursue so many various topics if I were in school.

On a personal fulfillment level, the choice not to continue higher education has been a good one, but what about career wise? I think it’s been ok. I haven’t had any real trouble finding work and I currently have the best job I’ve ever had. I’m not sure if a degree would change that though. Employers still would rather see what you have done and what challenges you have faced and how you overcame them. Being a programmer it’s quite easy to create challenges for yourself with side projects. I don’t think a degree would have helped me land any jobs unless I wanted to work for some big name company and even then I probably wouldn’t enjoy working at a place that valued formal education so much.

 

One thing I haven’t gotten used to is the “So, where did you go to school?” question. I still find it pretty awkward and I don’t know what to say other than “I didn’t”.

All in all, I think pursuing a formal degree should be decided on a case by case basis. I don’t think enough kids going to school are thinking about the future like they should be. What do you want to do? How do you plan on getting there? What if you dont like it? Is there anything I can do to speed my progress towards my goals? What are the various routes I can take to achieve my goals?

These are all questions kids should be asking themselves so they can make an informed decision on what is best for their future.

Introducing the Facebook Dev blog

Whenever I post about Facebook’s API I always seem to get decent buzz. Since this blog is just a general all purpose blog, I decided to start putting Facebook related content in a blog I’ve dubbed The Facebook Dev.

You can read the site’s about page on why I made these posts it’s own blog:

I started this blog because the Facebook API can be confusing and at times, down right frustrating.  From cryptic error messages, permissions/application scope hell, and with over38,000 tagged questions on StackOverflow, there is no shortage of people needing help with Facebook’s API. I started this blog in hopes to help.

I’ve already learned a ton with the two posts I have published so far. I hope to keep learning more as I write more and I hope it helps others too along the way.

Check it out.

Using Brunch with Trigger.io

I’ve been putting together a Brunch skeleton to help ease with development on Trigger.io‘s mobile platform. The skeleton provides some libraries useful for HTML5 mobiles apps as well as a helper library for Trigger.

The skeleton includes:

To get started with this skeleton, create a new Brunch project by running

brunch new MyApp --skeleton git@github.com:abronte/brunch-with-trigger.git

And you’re all set to go.

There are a few Trigger.io helper functions to help ease development between mobile and a browser.

Using Brunch with Trigger has made mobile HTML5 app development has made the development process much quicker and more enjoyable. Check out the skeleton on Github.

Brunch with Trigger.io skeleton

Gabe Newell on piracy

Came across this quote again today from Gabe Newell on piracy and it’s true now as every:

In general, we think there is a fundamental misconception about piracy. Piracy is almost always a service problem and not a pricing problem. For example, if a pirate offers a product anywhere in the world, 24 x 7, purchasable from the convenience of your personal computer, and the legal provider says the product is region-locked, will come to your country 3 months after the US release, and can only be purchased at a brick and mortar store, then the pirate’s service is more valuable. Most DRM solutions diminish the value of the product by either directly restricting a customers use or by creating uncertainty.

I think more content producers should be focusing on distribution and providing a great service to customers, they wouldn’t be complaining about piracy which is just a scape goat.

Despite the MPAA whining and complaining and suing about movie piracy, they still record profits. You know why? The movie theatre experience is hard to reproduce and shitty cam rips of new releases are always terrible. They still do force you to go to the theaters  but I don’t think that’s as bad as HBO where you first need a cable subscription, then subscribe to HBO and only after those two hurdles more options open to you such as HBO go. At least with movies you can pick your favorite theatre such as Cinepolis in Del Mar and have drinks served to you.

In any business you should always put your customers first and I think services like Netflix have done that. Some others have caught on like Amazon and Hulu to a lesser extent, but it’s definitely and uphill battle.

How to export Facebook page fans

Due to privacy reasons Facebook doesn’t allow you to see this via their API, but they do let you see who likes a page on the page admin under “New Likes” (seems kind of dumb they care about privacy in one area, but not another). I had to grab who likes a page for a few thousand Facebook fan pages a while ago for a client of mine and I’d thought I share this snippet of code.

Just fill in your Facebook email and password with the ID of the page you want to crawl and it will grab all the Facebook users who like that page.

This code works as of me posting this. If it doesn’t work, the most likely thing is Facebook changed something with the page admin so the dom might of changed.

Something to note is I think the new likes box only shows the last ~500 likes or so. If your page has fewer than 500 likes you shouldn’t have an issue getting them all, otherwise you might want to run more often to capture everything.

Facebook API error: “Unsupported get request.”

I discovered this “unsupported get request” error yesterday and its a fun one, as always with the Facebook API. You get this error when you try to get http://graph.facebook.com/coorslight.

At first glance this makes absolutely no sense. A seemingly arbitrary page gives you some vague error, but other pages like http://graph.facebook.com/cocacola work just fine.

Turns out this same error happens for any beer page. Facebook blocks public access of these pages because they are marked alcohol related.

Facebook Page Age restrictions

If you access this page as an authenticated user such as http://graph.facebook.com/coorslight?access_token=ABC123 then it works as expected. Instead of giving you a useful error, you can some really vague and unhelpful response.

Just another really annoying thing about the Facebook API to add to my list. If you search google for this error, this isn’t the only place that it shows up. According to this bug, it’s “by design”.

 

A Need For Quiet Time

It’s a Friday night and I’m at home, alone on the couch with my 10 week old puppy Clifford. As a TV show I want to watch is downloading incredibly slow, I notice it’s quiet, really quiet.

I start thinking to myself, “when was the last time it was this quiet?”. I don’t know.

With everything that has been going on in my life lately, it feels like I haven’t been able to stop and smell the roses. Feels like my brain has been constantly “on” and I’ve finally been able to turn in off. Turn off all the distractions like tv, internet, people, etc, and just reflect. Just think about everything you have going on and take it all in. Smell the roses.

I think some quiet time to be alone with your thoughts is important. I think this should be a regular thing.

The BigQuery Gem

We’ve been using Google’s Big Query a fair amount in the last month or so at StockTwits. It’s great for analyzing large datasets with very little cost. The main issue I have with it is that like many other Google API’s, they aren’t the easiest things to get up and running. Examples seem to be lacking (particularly for ruby) and it takes a while to figure it all out.

To solve my own problem, I made the BigQuery ruby gem.

The gem is still in a pretty rough state, but the basics of authenticating, uploading, and querying are there. My goal of all this is to make working with BigQuery a lot nicer and hopefully provide a good example of integrating the BigQuery api.

Here’s a quick example to get a list of tables in a dataset. Currently only service account authentication is supported:

See the readme on github for more information.

Open up Google Calendar with Alfred

I felt that typing “calendar.google.com” in Alfred was way more tedious than it should be. I want to be able to open up my calendar just by typing “gcal” so I put together a simple Applescript in Alfred that will do this for me.

Then just create a new Applescript extension in Alfred with the keyword “gcal” (or whatever you want to use) and you’re good to go.

Do note that this does require the Alferd power pack, but the same script should work in Quicksilver too.