Facebook Cookbook: Build Your Facebook Empire

Now you can build Facebook applications that truly stand out among the thousands already available on the platform. This book’s easy-to-follow recipes not only give you useful ways to design and build scalable applications using Facebook’s development platform, they also provide you with strategies for successfully marketing your application in this highly competitive environment. With plenty of examples and practical solutions, Facebook Cookbook answers some of the hardest questions Facebook application developers contend with — including how and where to get started.

  • Learn to build an application architecture that scales to accommodate a sudden influx of users
  • Get tips for designing applications with hosting and deployment costs in mind
  • Find out how to use Facebook’s various integration points
  • Discover which widgets and controls to use for building the most attractive user interface design
  • Understand the differences between standard HTML, JavaScript, and SQL, and the versions used on the Facebook Platform
  • Learn how to target large defined groups on Facebook, including those who want to find jobs, hire employees, market a business, advertise, and more

If you have experience building simple web applications with HTML, Facebook Cookbook will guide you though Facebook’s toolkit, so you can build applications with the potential to reach millions of users around the globe. Learn what it takes to design applications that stand above the rest.

Inside Facebook: Life, Work and Visions of Greatness

As an early engineer, I was on the inside during Facebook’s explosive growth. In Inside Facebook, I’ll give you the scoop on the company as it became the premiere online environment for U.S. college students, including how and by whom the products were made, how you can use them best, views on what makes social networks so valuable, and where the industry is headed. You, too, can achieve startup success and attain your greatest dream; I hope to inspire you toward fulfilling your potential.

“Love the book. It captures the ethos of the place and a substantial degree of the vision and drive which is a secret to success.”
-David Kopp, Sr. Director, Community at Yahoo!

“Inside Facebook is a compelling look inside at a fascinating moment. It’s a riveting read. Karel may be an Engineer, but after reading Inside Facebook you’ll see he’s a great storyteller. I couldn’t get myself to stop reading and wanting more.”
-Ariel McNichol, CEO of mEgo.

“I love the style. It’s made for college students, like Facebook. Karel takes you into the personalities and minds behind Facebook. A must read for young entrepreneurs, and anyone into online social networking.”
-Mohammad Naqvi, UCR, creator of Facebook Notifier at fbQuick.com

Facebook Marketing: 25 Most Effective, Unknown, Black-Op Marketing Techniques for Bands and Businesses

The much anticipated Facebook Marketing Book by Nick Jag ( NickJag.com ).

Everyone has been talking about Facebook – it’s the next MySpace! The problem is, how to do you, as a band or business, take advantage of this opportunity?

Whether you’re just getting started on Facebook or have been on the site for years, this book is going to show you how to promote your band or business effectively and efficiently!

There are so many marketing channels in Facebook, many of the ineffective. Some will even get your profile deleted very easily. Don’t worry about any of it, because with this book you will learn…

– Which promotion channels to avoid, hitting limits, and being reported as spam.

– Which main promotion channels are most effective for your brand and how to get the most out of them.

– Hidden marketing techniques that will sky rocket your brand expansion, having the Facebook site do all the work for you!

– Top secret mass messaging and marketing techniques that will leave you in awe ( NickJag.com )

Facebook Page For Deadprogrammer.com

In a desperate bid to shore up deadprogrammer.com readership I’ve created a Facebook page. Please go and become a “fan” of it on Facebook. The idea is that once you become a fan, a message about that will appear in your friend’s news feeds. They’ll become curious and check out Deadprogrammer’s Cafe. That will result in an ego boost for me and a few fresh posts (one about the nature of time, and a series about my trip to my hometown of Odessa).

Facebook fan page is a neat and low effort passive-aggressive way of promotion. They take just a few minutes to create. On the other hand, they look pretty lonely when you only have two fans yourself, and your mother. And my mom doesn’t even have a Facebook account.

P.S. If you are friending me on Facebook, just mention that you are reading my blog or something.

7 Things You Can (Mostly) Do Without in Your Web Business

I’ve spent a lot of time in meetings about websites. Not as much as I’ve spent building websites, but a sizable chunk of my career. I mostly spent that time listening and not being listened to. But now that I’m older, have “Sr” in my title (it stands for Senor), a beard, those cool designer glasses, and have a lot more weight in meetings. Mostly due to the fact that I got pretty fat.

Previously I wrote about the evils of redesigns in The Russian Tea Room Syndrome, and about how web developers are like cooks and prison inmates. Restaurants are a notoriously difficult businesses to run, mostly because there are a lot of amateurs who do not understand what is not important. It’s not what’s important. Everything is important. It’s knowing what can be cut, especially in the beginning, that makes some restaurants succeed when others fail.

Here’s my list of 7 things that seem like they are important in websites, but really aren’t. These are not deal breakers. These are the things to think about last.

1) Looks. It’s nice to have a clean and beautiful design. But making a site pretty is not going to make you more money. Just look at plentyoffish.com – probably the ugliest dating website in existence. It does not stop its maker from raking in 10 mil a year without any hard work whatsoever.

2) SEO. SEO is the alchemy of the web business. I’ve seen more sites get sandboxed by Google than gain pagerank from SEO efforts. Most big url rewriting efforts create broken links, which are bad no matter how you look at it. Don’t break urls, if you can – make them descriptive, and try to make your site linkable (i.e. GET instead of POST search forms), but that’s about all that might help you. Spending a lot of money on SEO is just plain stupid.

3) Performance. Everybody hates slow and crashing websites. But unless this lasts for years, it’s not a deal breaker. Twitter suffers from worst imaginable performance trouble. Livejournal went through a long stretch of bad performance. Even the big dogs like eBay and Amazon have a slow spell or outage or two. MS Windows became the most popular OS in the world not because of its stability. Of course it’s currently losing market share to Apple, but this precess took decades. If anything, it looks like Twitter outages make its users miss the service so much, that when they get back in the twitter their brains out after bitching about the outage for a bit.

4) Good branding. A good name, url, and logo are not going to make you more money. They are just not that important. As long as it’s not too embarrassing, like therapist.com it’s going to be ok. If you look on Alexa, icanhascheezburger.com has almost as much traffic as tvguide.com.

5) Pure CSS markup and web standards compliance. I’m sick and tired of being told that “tableless” design is somehow important. It’s not, it’s not, it’s not. Go to google.com, amazon.com, ebay.com, nytimes.com and view the source. You will see tables galore. Wasting time eliminating tables is just plain stupid. And all-div completely web standards-compliant XHTML markup is not going to make you any more money. I refuse to feel bad about using tables. And perfectly validating XHTML is only going to help page scrapers.

6) Keeping the site ad-free. Site users are ok with ads. They really, really are. If you have what they want they will suffer through the biggest ads you can throw at them. “Half Page Godzillas”, “Skyscrapers”, “Page Killas”, “Shrieking Flash Sound Diddlers” – whatever you call your most annoying ad – despite heated assurances from the users, it’s not going to make most of them leave. Some will and more will follow, but it’s not as drastic as you might think. If you have something unique. I’m not advocating horrible Flash ads. “Flash Sound Diddlers” are not more effective in selling stuff than tasteful Adsense ads which will not have anybody at all leave. You can use ad money to buy more servers, more content, ads of your own. This will bring in more users.

7) Widgets. If your entire web strategy is based on building widgets, well, you are in trouble. You are entering an frenzied and very crowded market. Widgets are the bastard child of old school web “badges” and “push technology.” Widgets sometimes work great for increasing pagerank, just like the “web awards” that were given out by some sites in Web 1.0 times. They might get people to link to you, especially if these people are Myspacers that are constantly looking for shiny things to line their pages with. But in the big scheme of things widgets are not a great way to spend ttime and money.

CRUD Ain’t Hard

And now for a little exercise in armchair software architecture — the most despicable coder’s pastime. Dear non-coding readers: despite its name, this blog is still mostly not about programming. Just skip this post or something. Dear coders, many of you will probably disagree with me. I am not a very good or accomplished coder myself, and you probably should not be taking your advice from me. But then again, I could be right, so keep your mind open.

You might have been aware of the very popular, but uptime-challenged social networking tool called Twitter. They have one of the best problems to have: too many very active users. The site is so popular that it constantly goes down and displays and “over capacity” screen that the users have nicknamed The Fail Whale.

Rapidly writing and displaying short chunks of text with high concurrency on the web is not one of them unsolvable problems in programming. It’s not easy, but with right people and tools Twitter could be rewritten inside a month. Twitter founders should do some soul searching. Meanwhile the critical mass has already been reached, the niche for bloggers who want to SMS instead of blogging is big, and even horrible uptime can’t this service. I use it myself.

There is a lot of speculation in the blogocube about whether the reason behind the Fail Whale is the wrong choice of technology — the highly hyped and sexy Ruby on Rails and if it can “scale”. Or is it just simple incompetence?

To me Ruby on Rails falls into a class of technologies that are affected by what I call “the VRML syndrome.” Basically, if I wait long enough the hype will go away, the recruiters will stop posting job listings requiring 4 years of experience in a 4 month old technology, books as fat as my two fists will stop being published, and I will not have to learn it.

What’s the problem with Ruby on Rails? Well, it’s the same problem that slightly affects the content management system that I am currently working with (Drupal), and is the reason why I completely gave up using Microsoft web technologies which are saturated with this shit. See, software craptitechts all of a sudden decided that writing CRUD applications is too difficult for regular developers, and complicated GUI tools and frameworks need to be created to help the poor things. CRUD stands for “Create, Read, Update, Delete” and is just a funny way to say “a browser-based application chock-full’o forms”.

The default way to build these is to rather simple. You hand-code the html forms, then you write functions or classes to deal with the form input — validators and SQL queries for creating, updating and deleting. Then you write some code that will query the database and display the saved data in various ways: as pages, xml feeds, etc. None of this is difficult or non-trivial. Bad coders don’t do a good job of validation and input sanitizing resulting in the Little Bobby Tables-type situation, but these things are not very hard to learn and there are great libraries for this.

Ruby on Rails makes it very easy to create CRUD apps without hand-coding forms or writing SQL. RoR goes to great lengths to abstract out SQL, not trusting the developers to do it right. SQL is more functional than procedural, and thus a difficult thing for many programmers to grasp, but it’s not that hard. Really. SQL is located far enough levels from the machine that abstracting it out becomes a horrible thing due to the Law of Leaky Abstractions. Even when you have full control of SQL queries optimizing them is sometimes hard. When they are hidden by another layer it becomes next to impossible.

In short, RoR makes something that is easy (building CRUD apps) trivial, and something that’s hard – optimizing the database layer next to impossible.

In Drupal there are two modules, CCK and Views that allow you to create CRUD entirely through web interfaces. This is a feature that exist in just about every major CMS, it’s just that in Drupal it’s a little buggier and overcomplicated than necessary. These are fine for small websites and are really useful to amateurs. The problem arises when these are used for high traffic websites.

I think that a lot of people will agree with me that writing HTML and SQL queries using GUI tools is amateur hour. You just can’t make a good website with Microsoft Front Page. You can’t, you can’t, you can’t. But in Drupalland it’s all of a sudden fine to use Views to build queries for high traffic sites. Well, it’s not. Dealing with Views and Views Fast Search has been an ongoing nightmare for me. Hell is not even other people’s code in this case. It’s other people’s Views.

RoR, Views, CCK are one level of abstraction higher than you want to be when building a high performance application. The only way the can be an “Enterprise” tool if your enterprise is a) run by a morons that require 100 changes a day AND b) has very few users. In short, if it’s an app for the HR department of a company with 12 employees – knock yourself out. If you are building a public website for millions of people – forget about it.

Your, Deadprogrammer.

P.S. Yes, I know, you can abstract just about everything and reduce your software application to a single button labled “GENERATE MONEY”. You have to be a very smart LISP developer for that.

Note From the Past

For years now I’ve been writing down ideas on post-it notes, index cards, napkins and other various pieces of dead trees and storing them in a special folder. Over the last couple of weeks I’ve been organizing my notes into an absolutely gorgeous Circa 3×5 note taking system that I splurged on at Levenger. This little note seems to be from 2002-2003 judging by my handwriting style. It was definitely before Digg and Stumbleupon:

What Do I Know About What People Like?

As you might have noticed, for all my ranting about redesigns, I went ahead and redesigned my own site. It took me all of 3 hours. I changed the template a bit, fixed a nasty WordPress search bug that inserted unsightly escape characters into search strings, changed all the urls for more search engine friendly ones (while preserving all the original ones) and made navigation arrows a bit more consistent. Fascinating stuff, isn’t it? This is all a part of my effort to finally get over the thousand reader mark on the Feedburner counter. It stands at 915 today (and I used that counter graphic as one of my Optimus Mini’s applets).

I get a lot of Google and Google images traffic, as my humble blog is the second search result for “starbucks logo”. After reading my article about the Starbucks Melusine, most visitors just scamper away. I realized that I need some kind of a hook at the end of the page. I added the easy subscribe buttons, links to del.icio.us , Digg, Reddit and Netscape and a sampling of what I think are some of my better posts.

What I think are my better posts are, probably is not what you, the readers, think. So, if I may be so bold, please tell me what posts do you think should make “Best of Deadprogrammer” list, as well, as which particular post made you subscribe to my rss feed (or to bookmark my site). Also, in an effort to overcome the 1K reader barrier, I will even stoop so low, as to ask all of you for a link, if you can spare one. The thousand reader barrier must be broken.

Speaking of statistics, here’s a comparison of Feedburner’s breakdown. Since 2005 I went from 47 readers to 915. I am surprised to see a decrease in Livejournal readers since I quit it. Well, what can you do. I think I should give up my blog and move to Myspace. That’s where all the cool kids are and where most of my image traffic is coming from, even after I played a bit of a trick on them.