Saturday, July 09, 2011

Social Network Optimization

I have no idea if there's a term for what I'm about to describe, so I'll just call it SNO.

Until fairly recently creating a website meant you had to test it on all supported browsers. So, a bit more work. Now even that's not enough. When people share a link to one of your web pages in Facebook, LinkedIn, Google+, etc. you suddenly realize that your content also has to be legible in another format, which, for lack of a better term, I shall call status format.

This is what happens when you post a link to this blog on Facebook:


  1. Facebook chooses a title
  2. They sometimes add description that's an excerpt from that page
  3. They fish around for images and select a few for you to choose from.
Which means I now have to optimize my content, and test it, for Facebook sharing. And, of course, the way LinkedIn does it is totally different and you'll get some other image or a different description. And now Google+ as well...

This is fast becoming a pain for content publishers. The way each social network site parses your website to create its "status" version is not standardized. It's not really predictable, either. They can change it on a whim. The industry has to come up with some solution. Perhaps some HTML tags for each page, like share_photo, share_title, share_summary?

Wednesday, June 01, 2011

You know your SEO is good when

You know your SEO is good when Google suggest your name based on the first letter alone.




As you can see, Amazon wins "a".


Here are the results for the rest of the alphabet:


Bank of America
Craigslist
Dictionary
eBay
Facebook
Google
Hulu
IRS
Jet Blue
Kohls
Lowes
Mapquest
Netflix
Orbitz
Pandora
Quotes
Redbox
Southwest
Target
USPS
Verizon
Weather
XBox
YouTube
Zillow


Gigantt's not there yet. Tough to compete with "Google" for first search result on their own engine..

Friday, April 08, 2011

הבעיה עם כיפת ברזל

ישראל מעולם לא הגיבה להתקפות הטילים עליה באופן שתואם את הכוונה מאחוריהן. אנחנו מגיבים לפי הנזק שנגרם ולא לפי הנזק שיכול היה להיגרם. אם יורים עלינו 100 טילים ורק אחד פוגע אנחנו מגיבים כאילו ירו רק אחד.
זו הסיבה שכיפת ברזל לא תביא לשיפור בטחוני אמיתי. כמות הטילים רק תעלה כדי לפצות על אלו שיורטו. במקום לירות 100 טילים כדי לפגוע בגן ילדים הם יצטרכו לירות 200. אנחנו נגיב בכל אופן באותה המידה. כלומר, נחכה שגן ילדים יפגע ואז "ניכנס בהם".

יש נטיה אנושית ידועה לשמור על רמה מסוימת של סיכון איתה מרגישים בנוח. מחקרים הראו שמי שרוכב על אופנוע בלי קסדה מקפיד לשמור על רמת סיכון מסוימת ע"י נסיעה איטית ובטוחה יותר. אבל ברגע ששמים קסדה אוטומטית מגבירים את המהירות כדי בעצם לחזור לרמת הסיכון הקודמת. כאלה אנחנו. סתומים.

אז בואו נקרא לזה קסדת ברזל. סתם דרך לספוג יותר טילים מבלי להוריד את הסיכון האמיתי לפגיעה.

Saturday, March 12, 2011

A standard for defining binary protocols

In 2003 I had an idea - use XML to describe binary protocols. You see, whereas XML-derived language are described by schemas (e.g. XSD), there's not such tool for binary protocols. So every binary protocol has to be documented in its own proprietary way. This lack of a common way to describe binary formats/protocols makes it hard to implement tools that know how to speak these protocols, not to mention tools that automatically convert data between them. My idea was supposed to solve that.

Anyway, today I see that the w3c have come up with a new standard: EXI. At first I was like "great, yet another standard for passing information - just what we need". But actually it's really similar to the idea I had. It's basically an XML language that describes efficient binary protocols. From I gather (skimming through the standard for 3 minutes) they do something that reminds me of Huffman encoding of the data types and end up with a very efficient binary representation, but one that is has an XML spec. I hope this becomes popular.

I have no illusions that my idea had anything to do with this standard. But I'm happy to see it wasn't such a stupid idea after all. :)

Monday, August 30, 2010

The Start Menu

Don't you hate it when you download some application on your computer and it installs itself under some obscure company name in the Windows start menu?

You visit a website and decided to download something - Video Editor 8.1. But since the default behavior of most installer creators is to put the shortcut under a folder with the company's name you find yourself scouring the start menu from top to bottom until you find Video Editor 8.1 hiding under Blue Fish Studios... jeez, I can't count how many time that happened to me.

People, if you're writing an installer for your application, unless you're either Microsoft, Google, Oracle or Adobe I don't remember your company's name, and I'll hate your program before I even start using because you've hidden it from me!



Tuesday, August 03, 2010

Estimates vs. Commitments

The best way to make sure you never again get an honest effort estimate from the people in your team is to hold them to whatever estimate they gave you last time.

Estimates are deceptively similar to prices, in that they represent the cost of getting something done. But there's an essential difference between prices and estimates - you can't haggle over an estimate. And you shouldn't want to. That's like haggling with your cake on how long it should stay in the oven. It's just not helpful.

There is always (by definition) an amount of uncertainty built into every estimate. That is, after all, what makes it an estimate. You can chip away at this uncertainty by planning ahead in greater detail, or by confronting risks as early as possible, but you can't eliminate it altogether. There's always that essential gap between estimation and knowledge that's unbridgeable. What's left is intuition based on the experiences of past performance. Any reasonable estimate always incorporates that remaining gap as some inexplicable buffer that does not lend itself to further analysis. Accept it. You want this buffer there, and you want it to reflect as honestly as possible the amount of remaining uncertainty in the project.

When you hold people to their estimates you're giving them all the incentive in the world to artificially inflate them (and they will do so, even subconsciously). Past estimates need to be treated as what they are - historical answers to questions about uncertain matters. All you can do is learn from them and move on by trying to predict better in the future.

Getting estimates right relies on the interests of both sides - the receiver and the estimator - being completely aligned. Haggling destroys that alignment. Some people believe that haggling - purposefully lowering an estimate and holding people to it - can get people to work extra hard. That's like thinking you can get your plumber to finish his job quicker by paying him less. That's not how you conjure up motivation.

If there is inefficiency or procrastination in your team - those are problems to be handled on their own and you shouldn't sacrifice your ability to estimate in an attempt to combat them. People procrastinate when they dislike doing what they need to do - solve that problem by designing a work environment in which people actually like their work. People hesitate to begin working on a challenging task when they don't quite know how to tackle it; the uncertainty makes it very easy to rationalize doing it later. Solve that problem by cultivating an atmosphere that allows people to start with the hardest part of the job; that tolerates experimentation; that makes it painless for people to admit when they don't yet know how to do something and gives them enough time to learn. These are all tough, real problems that cannot be dealt with by just demanding they go away. You can't fight inefficiency simply by not allocating time for it. All you'll get is the same degree of inefficiency over a shorter time span with less actual work.

An estimate isn't a contract. Its relation to the world is "read-only". As such it has no influence on the price of work. People who are interested in good, honest estimates should start by divorcing them from any form of commitment.

Friday, July 16, 2010

Muslim "Facebook" Fail (Madina.com)

So I'm signing up to this new Facebook-for-Muslims. You know, for shits and giggles.

Anyway, I know there are some cultural differences when it comes to polygamy and such, but come on, people:


You can be both single, married and engaged if you're Muslim??

That's some advanced logic right there. Guess I'm out of my league.

If you're wondering, the form was submitted successfully...

But wait, it gets better. I tried to change my password and got this:


I guess the lord is to be thanked that successful form submission, given how funky and inconsistent their DB has to be by now.

Next I'm going to try to married and divorced at the same time. Who wants to be one of my wives? Come friend me on madina.com!