Eryn Brown’s Revenge of the Dotcom Poster Boy, which is featured in wired.com, talks about Jason McCabe Calacanis. Calacanis’ story is very exciting. He pushed for content long before its recent surge in demand, which is driven by businesses looking to rank highly on popular search engine result pages. Calacanis’ publications allowed him to deal with the big time players of the technology industry during the dotcom era. His inspiring persistence allowed him to continue looking for opportunities at the dotcom era’s end.
Although Calacanis was not the first to develop a content network, he has been very successful in monetizing the network that he helped develop. Eryn Brown compares Calacanis with Gawker Media’s Nick Denton, noting that “Denton kept Gawker relatively small and focused, but Calacanis and Alvey went unabashedly for scale.” Taking on those kinds of risks requires some degree of confidence that may very well be confused with arrogance. He expresses his confidence by stating:
There’s no limit to how far I could go in AOL – it’s just the limits they put on me. I’m not in line to be CEO of AOL, but it’s obvious that’s where I’ll end up, if I stay focused. Somebody’s got to be the next CEO of AOL.
I would have loved the opportunity to hear Calacanis talk “about scaling up startups with in earnestness that would make a boom-era dotcommer blush.” Like Calacanis, I actively seek the opportunity to bring startups to the next level with some equity for my team.
Wired.com has an Associated Press article that discusses the NSA’s Lamest Spy Tool: Cookies. The first sentence in the article claims “the National Security Agency’s internet site has been placing files on visitors’ computers that can track their web-surfing activity,” without bringing up any of these files’ limitations. Articles like the one featured on Wired.com feed unreasonable paranoia by conveniently omitting the extent that cookies can track browsing habits.
Andrew Glover’s Ruby off the Rails compares Java with the Ruby programming language. It discusses the conciseness of Ruby code and several language features. The article also encourages Java programmers to explore the possibilities that Ruby provides:
If you’ve ever envied the ability of multilingual friends to bridge language gaps wherever they travel or gained new appreciation for your native language by learning a new one, then you can probably see the advantage of being a programming language polyglot. Developer polyglots travel the IT world more freely than do monolinguists (sure they can apply their skills in any environment), and they also tend to better appreciate the programming language called home, because among other things they know the roots from which that home is sprung. Isn’t it time you became a polyglot?
It looks like I am a programming language polyglot. Being able to exercise skills in any environment is very satisfying. Coding with Ruby is a real joy, and its terse nature is less intimidating and distracting than that of Perl. Even if one does not plan to implement great systems in Ruby, experience with the language will expose one to new ways of thought, which should be very exciting to all enthusiastic developers.
According to this article, Microsoft and Google have reached a confidential settlement on the matter of Dr. Kai-Fu Lee. It is great to see that both sides of the dispute resolve this before involving the courts. I have been following the story of Kai-Fu Lee here and here, perhaps too closely.
PHP offers several array sorting functions. These array sorting functions sort array values only ( “sort
” ), rearrange array values by sorting the array key ( “ksort
” ), or rearranging array keys by sorting the array values ( “asort
” ). Reverse sort functions rsort
, krsort
, and arsort
are also available. In addition to these simple sort functions, PHP provides corresponding versions of these sorting functions that use user-defined comparators. This is useful when an array is populated with user-defined types. An example of using uasort, a version of asort that uses a user-defined comparator, is given below.
<?php
function nameComparator( $a, $b )
{
$field = "Name";
if( $a[$field] == $b[$field] )
return 0;
else
return $a[$field] > $b[$field] ? 1 : -1;
}
function classComparator( $a, $b )
{
$field = "Class";
if( $a[$field] == $b[$field] )
return 0;
else
return $a[$field] > $b[$field] ? 1 : -1;
}
$a[] = array( "Name" => "Steve", "Class" => "A" );
$a[] = array( "Name" => "Jennifer", "Class" => "B" );
uasort( $a, "nameComparator" );
print_r( $a );
uasort( $a, "classComparator" );
print_r( $a );
?>
The sort functions that use user-defined comparators are more flexible than the simple sort functions. The sorts that use user-defined comparators may be stable, where the original ordering is preserved in cases of ties. This behavior can be altered by handling ties explicitly in the comparator. The PHP array sorting functions that use user-defined comparators are great examples of function callbacks and the Strategy pattern.