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..
Wednesday, June 01, 2011
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. :)
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!
Monday, May 24, 2010
User-Defined Literals, a new feature in C++0x
Going through the latest draft. There's going to be a way to define your own custom literals.
For example:
Could come in handy...
For example:
long double operator "" w(long double);
std::string operator "" w(const char16_t*, size_t);
unsigned operator "" w(const char*);
int main()
{
1.2w; // calls operator "" w(1.2L)
u"one"w; // calls operator "" w(u"one", 3)
12w; // calls operator "" w("12")
"two"w; // error: no applicable literal operator
}
Could come in handy...
Saturday, May 22, 2010
German Sensitivity
My grandmother has been receiving, for the last few decades, a small monthly payment from the German government. Compensation, you know, for trying to exterminate her.
She recently asked me to translate for her this letter they sent. It's in dense official German and printed in small letters she can't really read. The letter informed her she was given a new identification number. It is to be used in all future communications with them.
Get it? They're assigning holocaust survivors identification numbers. How efficient...
She recently asked me to translate for her this letter they sent. It's in dense official German and printed in small letters she can't really read. The letter informed her she was given a new identification number. It is to be used in all future communications with them.
Get it? They're assigning holocaust survivors identification numbers. How efficient...
How to protect all your Google searches
Google started allowing people to search using https.
Every one should configure this as their default search method. It's very easy to do.
Why should you do this? Because:
1. Your searches will be much more secure from any snooping 3rd parties.
2. The more encryption there is in the world, the better. It makes it harder for "bad guys" to filter out the "uninteresting" communication when they eavesdrop. (think of it this way: if all communication was encrypted it would be much harder for hackers to choose what to intercept)
3. Why not? You won't notice the difference (but hackers will) and it doesn't change the way you search.
Here's how to configure Chrome so that every time you search it goes through https.
1. Menu -> Options -> Basics -> Manage (default search engine).
2. Click Add and copy paste the following values into the boxes:
2.1. Name: Google Secure
2.2. Keyword: Google
2.3. URL: https://www.google.com/search?q=%s
3. Click Ok.
4. Now choose "Google Secure" (it's what you just created) and click on "Make Default". That's the important part.
Now Chrome will always use https when you search from the search-bar.
Every one should configure this as their default search method. It's very easy to do.
Why should you do this? Because:
1. Your searches will be much more secure from any snooping 3rd parties.
2. The more encryption there is in the world, the better. It makes it harder for "bad guys" to filter out the "uninteresting" communication when they eavesdrop. (think of it this way: if all communication was encrypted it would be much harder for hackers to choose what to intercept)
3. Why not? You won't notice the difference (but hackers will) and it doesn't change the way you search.
Here's how to configure Chrome so that every time you search it goes through https.
1. Menu -> Options -> Basics -> Manage (default search engine).
2. Click Add and copy paste the following values into the boxes:
2.1. Name: Google Secure
2.2. Keyword: Google
2.3. URL: https://www.google.com/search?q=%s
3. Click Ok.
4. Now choose "Google Secure" (it's what you just created) and click on "Make Default". That's the important part.
Now Chrome will always use https when you search from the search-bar.
Friday, April 30, 2010
Week-day names in YouTube videos
Random statistic of the day: how many YouTube videos have week-day names in their title?
The big winner is Sunday. Wednesday is in last place.
What does all this mean? It means playing around with Google Chart API is fun.
Saturday, June 13, 2009
Goat-drunk
Goat-drunk – (adj.) Made lascivious by alcohol.
According to the redoubtable Thomas Nashe, the author of The anatomie of absurditie, Christ’s teares over Jerusalem, and many other important works of English literature, there are eight types of drunkards, of which the one who is goat-drunk is seventh, although it is unclear what the order signifies. Since the OED has seen fit to include only a few from Nashe’s list I have decided to include it in its entirety, so that you may never be at a loss for words when confronted by a drunk of any sort.
- Ape drunke – “he leapes, and sings, and hollowes, and daunceth for the heavens”.
- Lion drunke – “he flings the pots abut the house, calls his Hostesse whore, breakes the glasse windows with his dagger, and is apt to quarrell with any man that speaks to him”.
- Swine drunke – “heauy lumpish, and sleepie, and cries for a little more drinke”.
- Sheepe drunke – “wise in his owne conceipt, when he cannot bring forth a right word”.
- Mawdlen drunke – “when a fellowe will weepe for kindnes in the midst of his Ale, and kisse you, saying; By God Captaine I loue thee, goe thy waies thou dost not thinke so often of me as I do of thee, I would (if it pleased GOD) I could not loue thee so well as I doo, and then he puts his finger in his eie, and cries”.
- Martin drunke – “when a man is drunke and drinkes himselfe sober ere he stirre”.
- (See above)
- Foxe drunke - “when he is craftie drunke, as many of the Dutch men bee, and neuer bargain but when they are drunke”.
From Reading the OED.
Tuesday, June 09, 2009
Storage vs. Developer Cost
As developers we often find ourselves tempted to optimize storage use. We almost can't help it - if something can be made to take up less storage space with a "little bit" of extra work, you can bet on us developers jumping at the opportunity.
But is it worth it? How do you weigh the time spent on optimizing storage against the cost of simply adding a few more HDs?
The answer: hourly cost of a developer in GBs of storage.
So let us calculate.
The average developer in the US makes more then $70K a year. He/she costs a lot more to the employer, mind you. Divide this by about 2000 work-hours per year and you get $35 an hour as a lower-bound for average developer cost per hour.
Now, what does storage cost? How much does 1TB of storage cost these days? Or more accurately, what's the marginal cost of adding another 1TB of storage to your company's network? Well, unfortunately the answer isn't so simple. It all depends on what types of storage you want, how secure it should be, how robust, and of course speed, latency, the type of network access, etc. For sure, the high-end storage solutions are expensive. Rediculously so. But my intuition tells me most teams can definitely settle with something saner.
So consider a rack-ready NAS solution that can hold 8 SATA drives and give you 1GBit ethernet. These start at about $1000. A single 1TB SATA drive is about $100 (though prices are dropping as I type this, and, no, wait, it's now $90). So if we want 8 of those the whole thing costs less than $2000, and with RAID-5 with 2 spares we would get 6 TB, so that's about $0.33 per GB.
Thus, assuming my napkin-math isn't seriously off, the average developer costs 105 GB per hour.
That's 1.75 GB per minute.
Keep this in mind the next time you decide to spend half a day worrying about keeping those "huge" debug symbol archives of the product's old versions, or about whether or not you should be backing up the entire DB as part of the release procedure.
Explain to your manager that the time it would take you to convince him to approve the purchase of more storage space probably costs more than the storage itself.
Save time, buy storage.
Friday, April 04, 2008
Wednesday, October 03, 2007
Google Reader for wide screens
I updated my userscript to deal with Google's updates.
It works now.
http://userscripts.org/scripts/show/6415
Assaf
It works now.
http://userscripts.org/scripts/show/6415
Assaf
Tuesday, August 14, 2007
Sunday, July 29, 2007
I'm Feeling Lucky
When's the last time you used the I'm Feeling Lucky button on Google's homepage?
I was sure they'd taken it off a while ago. It makes sense for them to do so; I'm sure it costs Google a lot of money to have a button that essentially lets you skip all the ads on the results page.
For the first time in the last few days I decided I'll try using it. I do most of my searches in the FireFox search toolbar, so at first I rolled my own search engine customization using this site . Then I noticed that the Google Toolbar in FireFox already has that feature (you can use IFL as your search engine instead of plain Google).
I have to say, I'm hooked. I now realize that most of my Google searches are basically just "jump to" navigations using keywords I already know would find me the right page. You want to go to Slashdot.org? Just type slashdot in the IFL box and you're there.
Only occasionally do I actually "not feel lucky" and I find myself switching back to plain Google search. But most of the time, even when Google's #1 result isn't exactly the page I was looking for, it's a very decent substitute.
This makes me wish Google could tell me what keywords will get me to certain pages. In other words, I wish I could ask Google "what's the shortest/easiest thing I could type to get to ____?".
Anyway, this guy's dead wrong about the IFL button. It may be the case that the majority of Googlers don't use it, but that's no reason to take it off. I think it would be better if Google figured out how to get people to use it more, if anything. I feel stupid, not having used it for all those years.
I was sure they'd taken it off a while ago. It makes sense for them to do so; I'm sure it costs Google a lot of money to have a button that essentially lets you skip all the ads on the results page.
For the first time in the last few days I decided I'll try using it. I do most of my searches in the FireFox search toolbar, so at first I rolled my own search engine customization using this site . Then I noticed that the Google Toolbar in FireFox already has that feature (you can use IFL as your search engine instead of plain Google).
I have to say, I'm hooked. I now realize that most of my Google searches are basically just "jump to" navigations using keywords I already know would find me the right page. You want to go to Slashdot.org? Just type slashdot in the IFL box and you're there.
Only occasionally do I actually "not feel lucky" and I find myself switching back to plain Google search. But most of the time, even when Google's #1 result isn't exactly the page I was looking for, it's a very decent substitute.
This makes me wish Google could tell me what keywords will get me to certain pages. In other words, I wish I could ask Google "what's the shortest/easiest thing I could type to get to ____?".
Anyway, this guy's dead wrong about the IFL button. It may be the case that the majority of Googlers don't use it, but that's no reason to take it off. I think it would be better if Google figured out how to get people to use it more, if anything. I feel stupid, not having used it for all those years.
Monday, July 23, 2007
Outlook Sux
Cleaning my inbox, I selected about 1000 files and dragged them from my Exchange inbox to a local archive folder. It took forever.
Half way into forever I decided to check what's taking so long, and Process Explorer told the truth:

Outlook is creating a begillion tmp files (probably per email message) and deleting them at a rate of about 7 per second. Ugh!
Half way into forever I decided to check what's taking so long, and Process Explorer told the truth:
Outlook is creating a begillion tmp files (probably per email message) and deleting them at a rate of about 7 per second. Ugh!
Thursday, July 19, 2007
Who needs Cibus?
Lunch at Mobixell:
http://flickr.com/photos/assaf_lavie/archives/date-posted/2007/07/19/
http://flickr.com/photos/assaf_lavie/archives/date-posted/2007/07/19/
Thursday, March 15, 2007
I'm a Genius!
Disposable coffee cups are a pain in the ass, and they're bad for the environment.
Unlike mugs, they don't have a handle and are uncomfortable to hold.
Washing your mug though is a pain in the ass too.. a real time waster.
What can someone like me do, who hates coffee cups AND the environment?
The answer: Disposable coffee cup mug.
Behold!

The mug-cup. I call it the "mup"!
All the advantages of a proper mug, without the hassle of cleaning it. It also says a big "fuck you" to the environment. It says "yes, I have a mug, but I choose to use a disposable cup nevertheless. What did the environment ever do for me??"
Unlike mugs, they don't have a handle and are uncomfortable to hold.
Washing your mug though is a pain in the ass too.. a real time waster.
What can someone like me do, who hates coffee cups AND the environment?
The answer: Disposable coffee cup mug.
Behold!

The mug-cup. I call it the "mup"!
All the advantages of a proper mug, without the hassle of cleaning it. It also says a big "fuck you" to the environment. It says "yes, I have a mug, but I choose to use a disposable cup nevertheless. What did the environment ever do for me??"
Sunday, March 11, 2007
Sean Lennon in Tel Aviv
Sean Lennon did a concert last night in Tel Aviv, in Hangar 11.
Subscribe to:
Posts (Atom)




