a blog by pud

RSS

Why Google’s “Search, plus your World” Is Doing It Wrong

Google search recently integrated Google+ such that that your Google+ profile always shows up as the #1 result when someone Google’s your name.  

In theory it makes sense.  Users now have a way to control their search results.  And Google+ wins because those people are encouraged to actually use G+ now. 

In practice, it’s awkward.  

As Google hoped, the new G+ integration made me want to update my G+ profile today.  My most recent G+ status update, “Hello,” was posted 2 months ago.

Today I Tweeted and Facebooked something about my recent mountain biking trip, and the resulting poison oak.  Lots of nice replies from people on T & F.  Figured I’d post the same thing on G+.

Wait!

Do I really want a story about mountain biking injuries being the #1 result when people Google me?  

“Hey, I’m gonna look up this guy Philip Kaplan and learn more about him.  Let’s see… oh interesting he has poison oak.” 

No.

I don’t mind if any of my profile pages from Twitter, Facebook, LinkedIn, or even G+ show up first.  But I’d rather not have any single status update from these services appear as my #1 most crowning achievement when people Google me. 

Instead, I’m encouraged to make a single G+ status update like, “Hi.  I’m Philip.  I’m 36 and and entrepreneur.  I live in San Francisco, CA.  I went to Syracuse University, and majored in…… [rest of bio]”  

And then leave it that way forever. 

Product Placement In Music Videos

Back in the days of MTV, all logos and brand names were blurred out of music videos. MTV did this to stop advertisers from being able to get on the air without directly paying MTV.

Today, music videos are mostly shown on YouTube, and not MTV.  And YouTube has no such restrictions.   

So if you’re an artist like Avril Lavigne (I’m a fan… guilty pleasure), with a good track record of getting lots of views, you’ll do well.  

Sony must have paid a lot to be in her latest video, “What The Hell,” (embedded at the end of this blog post) with 3 product placements.  I especially love the random hand at 3:18 that pops up holding some sort of Sony camera (or phone) type thing.  

There are also several shots of Avril promoting her own brand of perfume and clothing.

I don’t think this is bad. Just thought it was fun/funny.

Video embedded below (direct link):

Copy (as in, words)

Lots of people take good copy for granted.  Just like everyone thinks they can sing and do photography, everyone also thinks they can write.  But there’s a difference between the way that you sing, and the way someone like Celine Dion sings.  Same too, with copy.

Here’s a great slideshow where a professional copy writer critiques someone else’s website and gives great suggestions. I found it inspirational.

The author of that slideshow just launched CopyHackers (which I just read about on Hacker News).  I think they write books about copy? (ironically, it’s not immediately obvious what they do from looking at their website.) 

Did You Get The Last Email I Sent You?

People often ask, “did you get my last email?” 

What a fun, paradoxical question.  

I don’t know if I saw the last email you sent me. And I have no way of knowing.  

I may have received email from you in the past.  But I have no way of knowing if the last email I saw from you, is the last email you sent me. 

Right? 

IIS 7 SSL Certificates In Amazon ELB

Trying to load your SSL certificates into Amazon Elastic Load Balancer and getting this error?  ”Error: Invalid Public Key Certificate”

Here’s how to get them working, if you use Microsoft Windows IIS.  

First, go to the AWS Console and create a new load balancer.  

Then add “SSL” to the list of protocols.  You can come up with a cool name for your load balancer, or just keep the default, “MyLoadBalancer.”  

Now Amazon asks for your private and public keys.  This is the stuff that was driving me batty.  Hopefully this tutorial saves you some time.

Okay, keep this AWS Console window open in the background — we’ll come back to it later, after we export the public and private keys from WIndows.

First, go to your Windows Certificate console.  If you don’t know how to do that, instructions are here.  

Then find your SSL certificate.  

Right click on your certificate -> All Tasks -> Export…

You’re going to need both the PRIVATE key as well as the PUBLIC key.  So you’re going to have to go through this wizard twice.  Just select one of these radio buttons, then go with the defaults (next… -> next… -> next…) until you end up with 2 files (1 file for public, 1 file for private)

Now you need to convert those files (your public and private keys) into a format that Amazon likes (“Standard PEM”).  To do that, visit the SSL Converter at https://www.sslshopper.com/ssl-converter.html

Now you have two converted files.  Just open them up in a text editor (rename them with a .txt extension if that’s easier for you), and copy and paste the contents into the form back in the AWS Console.

Then just go with Amazon’s defaults.  

Hopefully, Amazon accepted your certificates.  

Tip: If you got your SSL certificate from GoDaddy (and maybe this affects other certificate authorities too), they’ll give you a file called “gd_bundle.crt”.  Paste the contents of that file into ELB’s “Certificate Chain” box or Safari on the iPhone will give you an error along the lines of “Cannot Verify Identity.”  

Fucking Sue Me

So,

It was 1998 and the dot-com boom was in full effect. I was making websites as a 22 year old freelance programmer in NYC. I charged my first client $1,400. My second client paid $5,400. The next paid $24,000. I remember the exact amounts — they were the largest checks I’d seen up til that point.

Then I wrote a proposal for $340,000 to help an online grocery store with their website. I had 5 full time engineers at that point (all working from my apartment) but it was still a ton of dough. The client approved, but wanted me to sign a contract — everything had been handshakes up til then.

No prob. Sent the contract to my lawyer. She marked it up, sent it to the client. Then the client marked it up and sent it back to my lawyer. And so on, back and forth for almost a month. I was inexperienced and believed that this is just how business was done.

Annoyed by my lawyering, the client eventually gave up and hired someone else. 

Dang.

But lucky enough, another big company came knocking. A fortune 500 company needed an e-commerce site. I wrote a $400,000 proposal (ahh, the boom days…). The client okay’d it and gave me a contract to sign.

This time, instead of sending it to my lawyer, I sent it to my Dad — a lifelong entrepreneur. 

“Just sign it,” he said, calmly. 

“But it has all kinds of crazy stuff in it!” I replied. “It says I’m personally liable if anything goes wrong! It says I owe them money if it’s late!” and so on. 

“Just sign it,” he said.

“But what if something happens?? What if the site crashes? What if I’m late? What if..??”

“Do you think any of that stuff is going to happen?” he asked.

“Probably not. But what if it does?”

“Then you know what you do?” he said. “Tell them, ‘fucking sue me.’”

He was right.  I got the job, they paid, things went well, nobody got sued.

Then there was the time I wanted to hire my first full time employee. I was apprehensive to do it because I only had enough money to pay him for 2 months, unless I got another client fast.

“Worry about that in 2 months,” Dad said.  

He worked for me for several years.  

This lesson in total disregard for risk served me well. They say entrepreneurs are risk takers. I think of myself as too lazy and irresponsible to fully understand the risk. 

It works for me. 

I’m not sure what the lesson is here.

Why Must You Laugh At My Back End

Disclaimer

I’m not a trained engineer or sys admin. Never even finished a book on it. But I’ve launched (and sold) a few things that have become popular (ref: here and here), so sometimes people ask me about my back end.  Which ends up in blank stares, or worse.

OS:

Windows Server 2008.  As for why not linux, I prefer working in a GUI and I’m pretty fast with it. I also read recently that Windows is now oddly more secure than its competitors.  But I’ve personally never tried to hack either one (through the OS, at least) so I wouldn’t know.  As for price, EC2 charges only slightly more for Windows than Linux - it’s roughly $20/month vs $15/month for a micro instance.  Or 16-cents a day extra to use Windows.  

Web Server

IIS 7.  It does a lotta stuff. SSL not a problem. Htaccess not a problem (via “URL Rewrite”) free extension.  Virtual websites not a problem. Extensibility not a problem (there are ISAPI plugins for everything).  It even has a thing that thwarts DoS (though not DDoS) by denying floody IP addresses.  

Language

CFML.  I really like programming in CFML (a programming language, “ColdFusion Markup Language,” as opposed to ColdFusion, a commercial CFML interpreter made by Adobe).  I know it’s not “cool” like Node.js or Clojure or even RoR. It’s got an old vibe.  Not just because it was the first made-for-web programming language (tho it’s modern & updated frequently), but because whenever I meet other CFML coders, they’re always old dudes.

You can write CFML in tags like <cfquery> or you can write it in script with semicolons like Javascript.  You can even write Java.  ColdFusion runs in any JVM, and all Java code & extensions work great.  But 99% of my stuff is CFML.  CFML can spit out JSON if you want, and even contains Javascript libraries for doing AJAX, form validation, and other neat tricks — but I use Jquery for that nowadays. Some people cite Adobe’s high price tag (it’s insanely expensive, like over $1k/server), but there are free, open-source alternatives such as Railo or BlueDragon.  I’ll probably use Railo for my next project. 

Community

The CFML community seems particularly close-knit.  Just Google any problem you’re having and you’ll find an answer quickly, or a nerdy (old) guy who can answer it for you in like 5 seconds.

Framework

There are a million (okay, literally over 10) popular frameworks for CFML.  I don’t use em (they slow me down, and I think my code is relatively clean and encapsulated) but if you like frameworks, here ya go.

Database

Xeround.com.  Cheap and “infinitely” scalable. Truly elastic — there’s no concept of “instances” — it just grows and grow with you. As long as Xeround sticks around and does what they say they can do, I’ll never have to worry about scaling my database (unless I get huge, like Twitter size, at which I will need to figure something else out).  

Web Hosting and load balancing

Amazon EC2.  Micro instances.  First, I setup a perfectly-configured application server. Then I generate an AMI for it.  Then I usually launch 5 cloned servers and connect them all with Elastic Load Balancing.  Huge day?  Just launch 50 new servers, easy as clicking a button, then shut em down after the spike.  And remember, each server is only $20/mo. And one of these days I’ll figure out Amazon Auto-Scaling, which does this all automatically.  

I used to use large and xlarge instances, but recently decided that, with micros, I can get the same performance for the same (or less) money, but with about 5x the redundancy.  So if one server fails, it’s less of a big deal because there are others.

And eventually this’ll all go “elastic,” so that a single “instance” can scale infinitely.  I’m looking forward to that.  Is that sorta what Heroku and Google App Engine do? Or do you still need instances? 

Syncing

My cloned servers all sync with Dropbox. I couldn’t find any examples of anyone else doing it this way. But Dropbox is great. If I change a file on any server, it gets sync’d to all the other servers within seconds. Advantage over Rsync: Dropbox keeps an offsite backup of the previous versions of each file. So if you’re like “oh fuck,” no worries — Dropbox has the old version.

Backups (other than aforementioned Dropbox)

JungleDisk.  It runs automatically every night and sends me an email with details so I know it worked. Sends backups to either an S3 bucket, or a Rackspace cloud bucket (or whatever they call them).  

That’s it.  My apps run themselves and are scalable.  

Windows, CFML, Dropbox, Xeround, JungleDisk, Elastic Load Balancing… it’s like the weirdest kids in school decided to dance.  

If you’re reading this, chances are you were a weird kid too.  And you know what it’s like to feel a little left out.  And even though you want to be cool, you kinda like that you’re not.

Thanks for reading.

Pud (@pud)

May 6

Getting Users For Your New Startup

The most frequently asked question I get from new entrepreneurs is, “How do I get users?

Here’s most of what I know.  

Read More