LeftRight

Category : Thoughts


I spend a lot of time in terminal, and on my mac, so I am constantly looking for ways to make it a little better. And color is one of the best ways…

So to enable colors in terminal on a mac, the first thing you need to do is to create a .bash_profile

  1. Open up your terminal
  2. Type ‘ cd ~’ to go to your home folder.
  3. Type ‘touch .bash_profile’ which will create your new bash file.
  4. Edit the ‘.bash_profile’ file you just created with your favorite text editor.
  5. Add in these two line to the file:
  6. Go back to your terminal and type ‘. .bash_profile’ (note the space between the periods).
  7. Try it now with an ‘ls’ command. If it still isn’t in color, try restarting your terminal.

I love Panic’s Coda, and I am anxiously awaiting their new version, since I think it’s just a few features away from being the perfect editor. That being said, while researching if there was a way to sort the Code Navigator alphabetically (there isn’t) I came across the bookmarks feature, which I never knew about. So if you use the Code Navigator (and you should) you can add inline comments in your page, which will then appear in the code navigator–which makes it so much nicer when you organize your code well, and and you’re editing a long file.

The syntax to add a bookmark is as follows:


This is a great article by Seth Call on the many problems that plague the Facebook API. As someone who spends a lot of time working with the platform, I concur that it’s a bit of a mess. It’s definitely gotten better, but it is still a moving target of things breaking, not working, documentation being wrong, and just general confusion. I still maintain that I would gladly pay for a developer support option provided by Facebook.

Seth wrote:

Using the Facebook API is the one of the worst experiences as a developer I have ever had.  This past week has been a real trial, and a true challenge to keep my energy and spirits up so that I remain efficient.

But perhaps one of the interesting points is a comment left by Carl Sjogreen:

This is Carl Sjogreen, I lead the PM team for the platform at Facebook. Just for some background, I recently joined Facebook after spending 2 years building on the Facebook platform, and suffering through many of the same frustrations as you. Its clear that we have some problems (many of which you’ve clearly laid out here), but its certainly not the case that we don’t care — in fact, revamping our documentation, cleaning up a confusing set of technologies that have been layered over time, and generally improving the quality, stability, and performance of the platform is a big focus for us over the coming months.

We’ve got a lot of work to do, but we’re listening, and will have some very concrete progress to show soon. If anyone has other specific feedback, you can email me at carlsjogreen@facebook.com

The whole thing is worth a read, and I can’t concur enough with what Seth wrote.


I’m always shocked by home contractors who miss appointments, don’t return phone calls, and do crappy work, and try to overcharge you. Good contractors are trying to create relationships and  build a business. Bad contractors try to squeeze you for as much as they can, while doing the bare minimum they can to satisfy you and your expectations.

I once had a low volt contractor try to charge me $200 for moving a phone jack 3 feet. It was a job i was entirely capable of doing myself, and one that I fully understood the cost of. The materials probably ran about $5.00 and it would probably take  ten minutes to actually complete the installation. Even though $50-$75 seems like too much to pay, that is what was acceptable to me (cost of job + cost of my time to do it). My hope with this low-volt contractor was to establish a relationship, and had he given me a fair and reasonable price, I would have. He saw the short tail view–the ability to make a couple of hundred bucks for doing very little work. But the downside was that he missed out on the opportunity to grow his business. When a year later we decided to re-wire our entire house (which cost almost 7G), he didn’t get the call. He put an extra $200 dollars in his pocket, but it ended up costing him far more down the road. And that’s a point that a lot of online business miss: charging a fair price for a service has the added  long-term benefit of earning you more money. Zappos is one of those online companies that gets it. Their decision-making process isn’t about trying to squeeze more profit from every transaction, it’s about trying to do what is right by the customer. By putting the customer first, they ensure that the next transaction will be theirs–they’re building a long-term business relationship.


A Facebook application used to be a must-have, just like an iPhone or an iPad app is now perceived to be. But lately, a growing sentiment among developers is a serious dislike of working with Facebook’s API. While every API presents itself with a set of quirks and annoyances, the Facebook API seems to be growing more dysfunctional the more it matures. The hallmarks of most good APIs are:

  1. HTTP based.
  2. Be a RESTful resource, support (at a minimum) XML, JSON, RSS.
  3. Support Basic Auth or OAuth.
  4. Be simple.

While Facebook qualifies under some of these it fails short in a few major ways:

Lack of support for basic Auth or OAuth is heartbreaking. Having to authenticate using Facebook Connect is full of cross domain problems. It’s also a very difficult authentication method for any large site that supports multiple domains, as Facebook connect is limited to 1 domain. I don’t want to have to use JavaScript to authenticate a user. It adds a whole level of complexity and possibility for error that I don’t need. I want to use Curl, and I want to be able to interact with the Entire API using http requests running quietly in the background.

Facebook needs to lose their multi-level permission structure. If I have a user’s credentials I should be able to do everything the API exposes. Having to get permission and deal with pop-ups for everything is a UI nightmare. Want to post offline? Deal with a pop-up and grant me permission. Want to upload a photo? Deal with a pop-up and grant me permission. The list is endless. KISS: Keep It Simple Stupid.

While Facebook’s API exposes everything under the sun, I bet a very small percentage of apps take advantage of this. All I want to do it to post to your stream or page, get your activity, and interact with your friends. Just like twitter. Maybe upload a photo or video. I don’t need 800 API methods that are constantly changing, being canceled, changing permission settings, etc..

Facebook is about sharing with friends, and yet, they have made it close to impossible for 3rd party apps to actually engage in any sort of social behavior. They discontinued the notify API call, which wasn’t great, but it was something. If you’ve installed my app, and you want to do something with one of your friends, your sorry out of luck unless they too have installed my app.

It’s 2010, how can you not offer RSS feeds of every facet of your site? At a bare minimum I should be able to get my activity, and my friends activity as an RSS feed. I deserve more, but this would be a good starting point.

But perhaps the most frustrating part of the API is that there are no clear examples on how to tackle common development problems. For a more clear example of this, do a search in the forums for ‘Post to users’s page’, and you will be greeted by a sea of discontent from the developers. Everyone looking for the same answer, and everyone comparing notes, but no one able to provide a clear and concise way to get it to work. Confusion amongst API developers is a bad sign, and ends up creating bad apps. Facebook should take the top 10 most commonly used API calls, and provide examples on how to use each across their various libraries. It would be a win for developers, and a win for Facebook, as the apps that live in their ecosystem would suck less.


I’m a big fan of Unfuddle. They really nailed the combination of repository hosting and project management/issue tracking. They’re also hosted on Amazon and allow you to back up everything there to your own S3 account.

Here is a quote from Joshua Frappier, one of the two Unfuddle founders:

Like many in our industry, we turned to Basecamp as a holy grail for solving our team’s communication needs — and like most developers, we quickly learned that it was simply not designed with the needs of a software development team in mind.

I wish I could say that starting Unfuddle was the result of a revolutionary idea. But as with most products that make an impact, Unfuddle was the direct result of solving one’s own problems.

With a firm foundation in managing our small team’s needs, my partner David Croswell and I immediately began work on what would be the core of Unfuddle. We were not trying to invent something revolutionary. We were not trying to introduce some new paradigm to the software industry. We just wanted something that was simple and met our most basic needs – needs that no one else seemed to want to meet. Rock solid repository hosting, bug and issue tracking at a price that was sensitive to small development shops.

David and I have been committed from the very beginning to growing Unfuddle into a company that was sustainable. In this way, we have made many decisions that seem strange to some people. We have said no to every opportunity to accept investment. We have said no to adding features that would grow us beyond our ability to provide outstanding support to our customers. We have said no to growing our team beyond essentially a developer and a designer. We have strived to only spend our time on those features our customers have overwhelmingly requested.

As a result, after almost three years, David and I now have a company and product that we and our customers love. Every day we have the opportunity to serve and interact with tens of thousands of our peers as customers — all the while providing well for ourselves and our families.

Source: http://blog.adsdevshop.com/2009/02/06/unfuddle-their-story/


This is an interesting excerpt from an interview with Jonathan Ive, the Apple designer responsible for most of Apple’s big products over the last decade, including the iPhone.

“For a large mulit-billion dollar company we don’t actually make many different products,” he explained. “We’re so focused, we’re very clear about our goals.”

He said that Steve Jobs had always made it very clear that this focus on products was the only reason for Apple to exist – and contrasted the culture with that of other companies who talk about having similar aims: “If you have to spend time institutionalising that, talking about it, you end up chasing your tail.”

So how did the company decide what customers wanted – surely by using focus groups? “We don’t do focus groups,” he said firmly, explaining that they resulted in bland products designed not to offend anyone.

Christopher Frayling reminded us at that point of Henry Ford’s line about what his customers would have demanded if asked – “a faster horse” – and it’s surely true that the point of innovative companies is to come up with products that customers don’t yet know they need.

Source: http://www.bbc.co.uk/blogs/technology/2009/07/listening_to_mr_iphone.html


I have been getting around 20+ emails  a day telling me that various apps aren’t working, or that things aren’t displaying correctly on profiles. I have tried to answer each email individually, and have tried to help those that I can. It seems that the re-design that launched last week also changed the way much of the underlying API works, and as a result many many apps are broken.  Now unfortunately, these aren’t apps that I own, even though I wrote some, fixed some, and am listed as the developer on some. I’ve contacted the various owners of the applications, and for the most part have heard nothing but crickets. I’ve even offered to fix some of them for free, and still no response. So for the mean time, until I get the green light to go in and muck about with the code, we both are somewhat stuck. For those of you that are having problems getting stuff to embed on your profile you need to check the app permissions. You can do so by following these steps:

1) Click on the Applications button (on the bottom left) and then click on ‘Edit’

2) This will take you to the edit page.

3) Click ‘Edit’ to the right of the application.

4) This will open up a new little window, Click ‘Profile’, and make sure it has permissions (by clicking ‘Add’) .

I will continue to answer what emails I can and if I get the chance to post updated versions I will let everyone know.

Thanks for your patience.


Mixergy Funding Forum: The Smart Way to Get Your Startup Funded

I attended the Mixergy Funding Forum last night to hear a bunch of discussions about getting your startup funded. The presenters included:

  • William Quigley – Managing Director, Clearstone Venture Partners
  • Daniel Gould – Co-Founder Newroo. Currently VP, Technology at Fox Interactive.
  • Mark Suster – Parter, GRP Partners

All in all, I thought it was a very strong event. All the presenters were quite good. I appreciated Mark Suster, who came across as quite bright and funny. He made the point that if he invests 5 million in your company, and you turn around and sell it for 20 million dollars–your company is a failure. VCs want BIG gains, not a small multiple of their original investment.


Back in the 90s I used to write some articles for WebReference.com  focusing on building web based applications. Strangely enough they all seem to have disappeared except for the first article I ever wrote for them, Perl 101. Not sure how the article holds up, but I remember being very excited about it back when I wrote it. I think I was still in College and commuting to NY to work, and this was the first thing I ever wrote and sold.  I think I got paid $400 for it, but I could be remembering wrong. Hopefully I can find the rest of them–I actually had some decent articles on web strategies that I think would hold up fairly well.