Can Microsoft Be Cool?

Microsoft has recently awarded a $300M account to a star ad-agency Crispin Porter + Bogusky. Bogusky is like a new icon of the Ad industry, having under the belt such successful projects as Mini Cooper campaign, the revival of Burger King brand image and many others.

Of course, the hypocrisy of the story is that Crispin became successful using all-Mac technologies... And now they are trying to help Microsoft battle Apple. But let's not go into that. Let's just think for a second - can even the most edgy, "cool" ad agency help Microsoft's image of the out-of-touch, obnoxious, nerds-run company?

No. And here is one clear example of why. Watch this commercial from 2007 (which was not made by Crispin):


What's wrong with it? Nothing! It's actually really good - moderately self-promoting, supposedly facts-based and re-ensuring... Except it's a lie. A complete lie at that. Yes, the image in the commercial is how Microsoft sees itself, or wants to see itself - long-time innovator and industry enabler, but there are solid facts, experiences of people that prove: the truth is different. When your software sucks, hangs every five seconds and gets on anybody's nerves that has ever used it - well, commercials can't help it.

Microsoft execs, write it down: outright lies do not sell!

Advertising is powerful, but it is not almighty. Microsoft's problems are far serious and deeper than a question of what Ad agency to choose. When are they going to realize it? Ever?

CCK Import During Install

We've blogged about hardcore Drupal Form Manipulations using CCK Node Types and hooks. If it is part of your module (as it should) you need to install CCK type during module setup. In the .install file of that module you can import CCK definition with a code like:

function ourmodule_CCK_install() {

	$modulepath = drupal_get_path ('module', 'ourmodule');	
	$cck_definition_file = $modulepath."/custom.cck";

  $values['type_name'] = '';
  $values['macro'] = file_get_contents($cck_definition_file);
  
  include_once( drupal_get_path('module', 'node') .'/content_types.inc');
  include_once( drupal_get_path('module', 'content') .'/content_admin.inc');
  
  drupal_execute("content_copy_import_form", $values); 
}

where custom.cck under your module folder is the file that you can export from CCK if you have cck_content_copy module installed.

Agile Hosting Packages: Ruby On Rails, Django, You Name It

Some extremely exciting news in the world of Agile and Dynamic languages:

The way I am cut-out, I get in physical pain if I don't have a root access to a server. Considering this, I would much rather get a VPS or (for massive, scalable solution) a combination of Amazon EC2 and RightScale management console, but for industry at large, the availability of mainstream RoR and Django hosting solutions is a big deal... huge deal. And we welcome it wholeheartedly.

These are very exciting times to be in the software business, indeed.

Extreme Form Handling in Drupal

Via: AgileApproach Blog

Drupal Form-Handling support goes far beyond just the documented part of so-called Forms API. You can do pretty much anything with forms in Drupal and you can use/display the forms anywhere.

Here is an example. Let's assume we want to construct a custom node type with custom fields, using CCK. Then we want to display this form into some non-standard page. To further complicate things, let's assume we also want custom verification and processing routines.

And last but not least - we want to use full power of Drupal and write a minimal amount of code. Following is a snippet demonstrating key points to achieving this task (thorough understanding of Drupal is required):

Python, Django and LAMPP

Disclaimer: the problem and the solution are not unique to LAMPP. If you have a MYSQL installation with uncommon paths, you will get a similar problem and you can solve it in a similar way. Just make sure you insert correct paths in the newly created .conf file for the LD (see below).

If, for whatever reason, you are running MySQL from your LAMPP installation and try to use Python's MySQLdb API to connect to MySQL server you will get the following nasty error into your face:

ImportError: libmysqlclient_r.so.15: cannot open shared object file

The problem is that lampp, in its attemt to not disturb the rest of the OS space, does not expose some crucial shared libraries (like: mysql client, ssl etc.) to Linux at large and Python is unable to find them even though they are installed under LAMPP.

The solution is quite easy

Twitter Spitting on Ruby On Rails Performance

Very interesting: Twitter is abandoning Ruby on Rails due to claimed scalability problems:
http://www.techcrunch.com/2008/05/01/twitter-said-to-be-abandoning-ruby-...

MacBook Air SSD - Don't Waste Your Money

MacBook Air MacBook Air is undoubtedly one of the most revolutionary gadgets released lately. Could even be the most revolutionary one, if not iPhone. Hold! Before you attack my statement about "undoubtedly", keep in mind - I don't mean it's something you should jump on buying. All we mean is that it's a revolutionary design (with outstanding implementation) that makes a breakthrough in a consumer product class and forces the entire industry segment to make a big leap forward. Now you do have to agree MacBook Air is a revolutionary product.

Anyhoo... That is not what I wanted to write today about. The subjects of the today's post are the two versions of MacBook Air: the affordable $1,799 one and the insanely expensive $3,098 one. Aside from some other minor differences, the biggest difference between the two, affecting the price is the Solid-State Drive featured in the expensive version. Basically, the cheap one has good, old hard disk, expensive enjoys a disk produced with the technology similar to the one used in Flash drives (found in USB dongles and iPod nanos).

Big question - is it worth it? Honest answer - HELL NO!

The Seven Habits of Highly Effective Internet Users

Nice and funny "analysis" of the Internet community on CreateDebate

Must Read for Drupal

Some of the blogs I often find to have useful Drupal information (in alphabetical order):

Calais Module for Drupal Released

One of the hottest subjects in Web technologies, these days, is finding effective ways to exploit Collective Intelligence of masses. Most everybody has heard of the so-called Web 2.0 and hundreds of different definitions of what it is or is not. In simple terms, Web 2.0 is a phenomena characterized by vastly increased direct participation of the user community in content authoring, mostly through blogs and discussions around blogs. Web 2.0 has brought us to a state where more and better content is freely available online than ever before.

There is a major problem with collective intelligence, though: information pieces are often disbursed. The more we move from the early days of the Internet as static data publishing platform towards the Internet, an aggregator of Intelligence, more do modern search engines fall short of providing adequate results. Current technologies are often unable to put information in context and help us connect the dots. It is for that reason that there is an increased demand for tools that can extract context off of content and can aggregate different data sources in a meaningful way.

One of such tools that has caught some spotlight lately, has been Calais Web Service, released by the news giant: Reuters.

"The Calais web service allows you to automatically annotate your content with rich semantic metadata, including Entities like People and Companies and Events & Facts like Acquisitions and Management Changes." -- opencalais.com

What is exceptional and interesting about the Calais web-service, putting it beyond and above other free terms-extractor services (like the one from Yahoo!) is that Calais provides context to extracted terms. For instance, when Calais web service analyzes a piece of content and finds "George Bush", not only will it extract and return it as a term (keyword) relevant to the text, but it will also tell you that George Bush is a Person. Likewise, it will tell you that United States is a country. This may seem trivial and simple, but if you put the added information (entity type) to a good use, you can build systems much more intelligent than you could with other, flat terms extraction tools.

Calais is a free Web Service. You can plug it into your applications and/or content management systems and use it, without any charge . Frank and I, spent a lot of our time last month integrating it into Drupal CMS and are glad to announce that it is now available for both Drupal 5 and Drupal 6. It is also the first integration of Calais API with a major content-management system.

You can download Calais integration module from:
http://drupal.org/project/opencalais
You can also watch a short screencast Frank recorded to demo main features of the module: http://calais.phase2technology.com/content/calais-demo-screencast

The screencast was recorded before the code was finalized, so the module can actually do more than you see in the screencast. You are encouraged to download and test-drive it.

And last, but not least, we would like to express our gratitude to our friends at the Calais team, for their invaluable help and support.

Syndicate content