Friday, November 6, 2009

google secret exposed!!!

The Proof is Here. Nobody dared to do it! Python is using 4 spaces for taband Ruby is using 2 spaces. Old timers are using 8 characters for tab, and they feel strongly about it!

But nobody, and i mean nobody ever dared to use 1 space... before Google's closure. The end of the world is near!

Update: a google person answered me humorously "we're budget constrained on spaces" :)

closure, a javascript compiler! at last!

Google just released Closure, a set of open-source tools on javascript. And this include a compiler! You can even play with it!!

Man, i was waiting for this compiler for a long time... I am old-school coming from c/c++ so i was missing a compiler! A langage without compiler is heresy to me
  • no compiler mean human are the ones doing the optimisation.
  • compiler are checking code, so you find out bugs earlier
  • you got a preprocessor too. to make your code more configurable and deployable.
Closure is giving a lot of maturity to web developement. all that opensource. Google congrats and thanks

google closure and clojure... branding collision

Google just released Closure, a javascript tool. But there is a programming language which is named Clojure which is well-known in some circles. And there is Closure which is a concept in programming.

I am thinking about the people behind Clojure, the programming language...
Ok there is one letter difference, but the pronunciation is similar and this Closure programming language is in the same semantic field, this is not helping the confusion. Those Clojure people are likely working hard to promote their language and suddently... overnight... their project just became a LOT harder to find! I fell their pain. They did nothing special, this is just bad luck for their project promotion.

In short, this word is way too overloaded for a good branding :)

Sunday, November 1, 2009

ubuntu 9.10 karmic on long-term USB key

I wanted to test the just-released ubuntu 9.10 karmic. Using it inside a VM (e.g Virtual box) is nice but there is a performance hit and it doesnt say much about hardware support. Installing on actual disk is nice but modify local install, which is not practical for plain testing. I choosed to install it on a live usb key, using persistent space to store configuration change across boot.

Step 1: install usb-creator
Install required software by typing the following in a terminal
sudo apt-get install usb-creator

Step 2: run usb-creator
Get a 4mbyte usb stick or larger, and type the following in a terminal
sudo usb-creator

Use the persistent storage slider below "stored in reserved extra space". Be careful, in my case usb-storage is using as much ram as reserved extra space. So be sure to have enough ram. Thanks to this space, you will be able to install and configure packages on your live usb stick, much helpful to personalize your installation.

Saturday, October 24, 2009

AIR and default browser on linux

By default, on ubuntu, Adobe AIR applications use firefox to show you URL, even if your default browser is chrome.

Here is a workaround for this (from @romilmittal). On newer Linux distributions, value of GNOME_DESKTOP_SESSION_ID is not set to "Default" and that causes all the problems. Just use the following command and it should fix the problem (and you will not need to touch the .so file):
export GNOME_DESKTOP_SESSION_ID=Default
After this, all launched AIR applications will use the proper default browser.

TweetDeck Example:

Step 1: create a file called TweetDeck and put it in your $PATH (say ~/bin)
#!/bin/sh
export GNOME_DESKTOP_SESSION_ID=Default
exec '/opt'/'TweetDeck'/bin/'TweetDeck' $*

Step 2: Make it executable
chmod +x ~/bin/TweetDeck

Step 3: Edit the Desktop icon to launch ~/bin/TweetDeck
  1. right click on the icon, then 'properties', then 'basic'
  2. in the 'command' field, set /home/replacebyyourusername/bin/TweetDeck
  3. you are done!

Friday, October 23, 2009

install deb package with unmet dependancies

Suppose you got foobar.deb, a ubuntu package which has some unmet dependancies. How can you install it ?
A naive "sudo dpkg -i foobar.deb" will fail due to the unmet dependancies... But here is the solution
sudo dpkg --force-depends -i foobar.deb && sudo apt-get -f install
It will install foobar.deb ignoring the errors, and just after it will automatically fit the unmet dependancies. magic no ?

Lowest Barrier of Entry for the Win

I am experimenting tweetdeck and have been impressed by their user registration process. It is often trouble when designing website: it may be required by some features BUT users dislike it as it make the usage overhead much higher. So many users just stop there and don't ever try those features.

Some sites provide easiest way to register users (twitter OAuth, facebook connect or Google friendconnect)... A few click, no additionnal password... all good for the users. But the website doesnt have the users email and so only ends up with a very weak link to its userbase.

Tweetdeck solution: propose all systems of registrations (direct email or third party one). Thus the features needing identification can be easily tried. Later, it offer the user to register directly on the website to access some other more advanced features, or based on a timer. Thus the user has time to get hooked to the product before ever having to register on the website.

Summary: lowest barrier of entry for the win!

PS: for a much more complete explaination, read 'designing for social traction'

Share/Save/Bookmark