Friday, February 3, 2012

Thresholding (Iterative Method)

Thresholding is inevitably one of the mostly used image processing algorithm. It is told as the simplest method of image segmentation.


In this post, I want to introduce one thresholding algorithm that is powerful enough yet simple enough to implement. The method called "Iterative Method." Below is the step by step used in the algorithm:

  1. An initial threshold (T) is chosen, this can be done randomly or according to any other method desired.
  2. The image is segmented into object and background pixels as described above, creating two sets:
    1. G1 = {f(m,n):f(m,n)>T} (object pixels)
    2. G2 = {f(m,n):f(m,n)\leT} (background pixels) (note, f(m,n) is the value of the pixel located in the mth column, nth row)
  3. The average of each set is computed.
    1. m1 = average value of G1
    2. m2 = average value of G2
  4. A new threshold is created that is the average of m1 and m2
    1. T’ = (m1 + m2)/2
  5. Go back to step two, now using the new threshold computed in step four, keep repeating until the new threshold matches the one before it (i.e. until convergence has been reached).

Posted below is the Java source code I use to implement the algorithm.
/*
    Method Name: _calculateThreshold
    Params     : image: BufferedImage -> Image representation in Grayscale colour space
    Return     : double -> The computed threshold value
*/
private double _calculateThreshold ( BufferedImage image )
{
    double totalThreshold = 0;
    double averageThreshold = 0;

    /* Get the image width and height */
    int width = image.getWidth ();
    int height = image.getHeight ();
    /* Get the image data */
    Raster data = image.getData ();
    double[] pixel = new double[ width * height * 3 ];

    data.getPixels ( 0 , 0 , width , height , pixel );

    /*
        Calculate threshold value as initial threshold by computing average threshold value
    */
    for ( int row = 0 ; row < height ; row ++ )
        for ( int col = 0 ; col < width ; col ++ )
        {
            int index = col * 3 + row * width * 3;
            double gray = ( 0.3 * pixel[index] + 0.59 * pixel[index + 1] + 0.11 * pixel[index + 2] );

            totalThreshold += gray;
        }

    averageThreshold = totalThreshold / ( double ) ( width * height );

    /* Begin the iterative method */
    while ( true )
    {
        float g1 = 0;
        float g2 = 0;
        int g1Count = 0;
        int g2Count = 0;

        for ( int row = 0 ; row < height ; row ++ )
        {
            for ( int col = 0 ; col < width ; col ++ )
            {
                int index = col * 3 + row * width * 3;
                double gray = ( 0.3 * pixel[index] + 0.59 * pixel[index + 1] + 0.11 * pixel[index + 2] );

                if ( gray > averageThreshold )
                {
                    g1 += gray;
                    g1Count ++;
                }
                else
                {
                    g2 += gray;
                    g2Count ++;
                }
            }
        }

        double m1 = g1 / ( double ) g1Count;
        double m2 = g2 / ( double ) g2Count;
        double m = ( m1 + m2 ) / 2;

        if ( averageThreshold == m )
            break;
        else
            averageThreshold = m;
    }

    /* Return the computed threshold value */
    return averageThreshold;
}
Method below shows how we use the computed threshold value to convert our grayscale image to B/W (or so called binary image).
/*
    Method Name: _convertToBW
    Params     : image: BufferedImage -> Coloured image representation
    Return     : BufferedImage -> The B/W image
*/
private BufferedImage _convertToBW ( BufferedImage image )
{
    /* Create a buffer to store the result */
    BufferedImage result = new BufferedImage ( image.getWidth () , image.getHeight () , BufferedImage.TYPE_INT_RGB );

    /* Get the image data */
    int width = image.getWidth ();
    int height = image.getHeight ();

    /* Convert the image to grayscale */
    ColorConvertOp op = new ColorConvertOp ( ColorSpace.getInstance ( ColorSpace.CS_GRAY ) , null );
    op.filter ( image , result );

    /* Calculate the average threshold */
    double averageThreshold = this._calculateThreshold ( result );

    /* Convert the image to B/W colour space */
    WritableRaster data = result.getRaster ();
    double[] pixel = new double[ width * height * 3 ];

    data.getPixels ( 0 , 0 , width , height , pixel );

    for ( int row = 0 ; row < height ; row ++ )
    {
        for ( int col = 0 ; col < width ; col ++ )
        {
            int index = col * 3 + row * width * 3;
            double gray = ( 0.3 * pixel[index] + 0.59 * pixel[index + 1] + 0.11 * pixel[index + 2] );

            /* 
                If the intensity is less than the given threshold, then make it black.
                Otherwise, make it white
             */
            if ( gray < averageThreshold )
                data.setPixel ( col , row , new int[]
                    {
                        0 , 0 , 0
                    } );
            else
                data.setPixel ( col , row , new int[]
                    {
                        255 , 255 , 255
                    } );
        }
    }

    /* Return the result */
    return result;
}
Hope you find this post useful.

Android and Security


By Hiroshi Lockheimer, VP of Engineering, Android

The last year has been a phenomenal one for the Android ecosystem. Device activations grew 250% year-on-year, and the total number of app downloads from Android Market topped 11 billion. As the platform continues to grow, we’re focused on bringing you the best new features and innovations - including in security.

Adding a new layer to Android security
Today we’re revealing a service we’ve developed, codenamed Bouncer, which provides automated scanning of Android Market for potentially malicious software without disrupting the user experience of Android Market or requiring developers to go through an application approval process.

The service performs a set of analyses on new applications, applications already in Android Market, and developer accounts. Here’s how it works: once an application is uploaded, the service immediately starts analyzing it for known malware, spyware and trojans. It also looks for behaviors that indicate an application might be misbehaving, and compares it against previously analyzed apps to detect possible red flags. We actually run every application on Google’s cloud infrastructure and simulate how it will run on an Android device to look for hidden, malicious behavior. We also analyze new developer accounts to help prevent malicious and repeat-offending developers from coming back.

Android malware downloads are decreasing
The service has been looking for malicious apps in Market for a while now, and between the first and second halves of 2011, we saw a 40% decrease in the number of potentially-malicious downloads from Android Market. This drop occurred at the same time that companies who market and sell anti-malware and security software have been reporting that malicious applications are on the rise. While it’s not possible to prevent bad people from building malware, the most important measurement is whether those bad applications are being installed from Android Market - and we know the rate is declining significantly.

Android makes malware less potent
In addition to using new services to help prevent malware, we designed Android from the beginning to make mobile malware less disruptive. In the PC model, malware has more potential to misuse your information. We learned from this approach, designing Android for Internet-connected devices. Some of Android’s core security features are:
  • Sandboxing: The Android platform uses a technique called “sandboxing” to put virtual walls between applications and other software on the device. So, if you download a malicious application, it can't access data on other parts of your phone and its potential harm is drastically limited.
  • Permissions: Android provides a permission system to help you understand the capabilities of the apps you install, and manage your own preferences. That way, if you see a game unnecessarily requests permission to send SMS, for example, you don’t need to install it.
  • Malware removal: Android is designed to prevent malware from modifying the platform or hiding from you, so it can be easily removed if your device is affected. Android Market also has the capability of remotely removing malware from your phone or tablet, if required.
No security approach is foolproof, and added scrutiny can often lead to important improvements. Our systems are getting better at detecting and eliminating malware every day, and we continue to invite the community to work with us to keep Android safe.

Thursday, February 2, 2012

Sale Queue

A big shop selling nice principal foods is doing a big sale. Early in the morning, there has already been a long queue of people waiting for the shop to open at 9 o'clock in the morning.

An old man looked so inpatient and cut the queue to the front. The people there were so mad and yelling, "Hei!! On queue please....", and pushing the old man to the back again.

The old man seemed not really care about this. He tried again to cut the queue and walk to the front. The second time, people there yelled at him and pushed him to the back.

For the third time, he walked again to the front. This time, the people there lost their patience. Whilst cursing him, they pushed the old man 'till he felt down....

The old man then stood up and yelled, "If you guys dare to push me again, I won't open the shop!! I'll let you guys queue 'till old!! Haiya!!!"

Kisah Nyata Seorang Anak Bernama Andoy dari Filipina

This post is in Bahasa.

Ada seorang anak kecil kelas 4 SD yang selalu mengucap syukur dalam keadaan apapun. Ia tinggal di suatu desa di Negara Filipina. Setiap hari untuk sampai ke sekolahnya ia harus berjalan kaki melintasi daerah yang tanahnya berbatu dan menyeberangi jalan raya yang berbahaya dimana banyak kendaraan yang melaju kencang. Setiap kali berhasil menyeberangi jalan raya tersebut, Andoy selalu mampir sebentar ke Gereja untuk berdoa. Tindakannya ini diamati oleh Pdt. Agaton. Karena merasa terharu dengan sikap Andoy yang lugu dan beriman tersebut. Suatu hari ketika Andoy hendak masuk ke Gereja Pdt. Agaton menyapanya.

Bpk. Pdt : "Selamat pagi Andoy, apa kabarmu? Apakah kamu akan ke sekolah?"

Andoy : "Ya, Bapa Pendeta!" balas Andoy sambil tersenyum.

Bpk.Pdt : "Mulai sekarang saya akan membantu dan menemani kamu menyeberangi jalan raya tersebut setiap kali kamu akan menyeberang.

Andoy : Terima kasih, Bapa Pendeta."

Bpk. Pdt : "sekarang apa yang akan kamu lakukan?"

Andoy : "Aku hanya ingin menyapa Tuhan Yesus... sahabatku."

Lalu Pendeta itu segera meninggalkan Andoy untuk melewatkan waktunya bersama Tuhan, tapi kemudian Pdt. Agaton bersembunyi dibalik altar untuk mendengarkan apa yang dibicarakan Andoy.

Andoy mulai berbicara kepada Sahabatnya

Andoy : "Engkau tahu Tuhan, ujian matematikaku hari ini sangat buruk, tetapi aku tidak mencontek walaupun teman2ku yang lain melakukannya. Ayahku mengalami musim paceklik dan yang bisa kumakan hanyalah kue ini.Terima kasih buat kue ini Tuhan!. aku tadi melihat anak kucing malang yang kelaparan dan aku memberikan kueku yang terakhir buatnya.. lucunya, aku nggak begitu lapar. Lihat, ini sepatuku yang terakhir..mungkin minggu depan aku harus berjalan tanpa sepatu. Engkau tahu Tuhan sepatu ini akan rusak, tapi tak mengapa..yang terpenting aku tetap dapat pergi ke sekolah.

Tuhan¡K kata orang-orang kami akan mengalami musim panen yang susah bulan ini, karena itu beberapa temanku sudah berhenti sekolah. tolong bantu mereka supaya bisa sekolah lagi.

Oh ya, Engkau tahu Ibu memukulku lagi. Sakit sekali, tetapi aku bersyukur karena masih memiliki seorang ibu. Dan rasa sakit ini pasti akan hilang. Lihatlah lukaku ini Tuhan ??? Aku tahu Engkau mampu menyembuhkannya, disini bekas lukanya (Andoy memegang bekas lukanya) Tolong jangan marahi Ibuku ya..??? memang dia sedang lelah dan kuatir memikirkan kebutuhan makanan juga biaya sekolahku .. Itulah mengapa dia memukulku.

Oh ya..Tuhan. aku rasa aku sedang jatuh cinta saat ini. Ada seorang gadis yang cantik dikelasku, menurutMu apakah dia akan menyukaiku?

Ah..bagaimanapun juga aku tahu bahwa Engkau tetap menyukaiku karena aku tidak perlu menjadi siapapun untuk menyenangkan hatiMu. Engkau adalah sahabatku.

Hei.. Tuhan temanku, ulang tahunMu tinggal dua hari lagi, apakah Engkau gembira? Tunggu saja aku punya hadiah untukMu. tapi ini kejutan dan Aku harap Engkau menyukainya.Ooops aku harus pergi sekarang. Selamat siang"

Kemudian Andoy segera berlari keluar dan memanggil Pendeta Agaton.

Andoy : "Pak Pendeta..pa Pendeta..aku sudah selesai berbicara dengan Sahabatku, Tuhan Yesus, skarang anda bisa menemaniku menyeberang jalan!

Kegiatan tersebut berlangsung setiap hari, Andoy tidak pernah absen sekalipun.

Pendeta Agaton berbagi cerita ini kepada jemaat di Gerejanya setiap hari Minggu karena dia belum pernah melihat iman dan kepercayaan yang murni kepada Allah dan bersyukur saat situasi yang sulit terjadi seperti yang dimiliki Andoy.

Bagaimana dengan kita sendiri? Apakah kita juga memiliki iman seperti Andoy? Apakah kita juga berdoa untuk teman-teman seperti Andoy? Apakah kita juga tetap mengucap syukur disaat sulit seperti Andoy? Andoy sangat mengasihi Tuhan Yesus, dan menyebutnya Sahabat tepat seperti kata Yesus di dalam kitab Injil Yohanes 15;14 ¡§kamu adalah sahabatku jikalau kamu berbuat apa yang kuperintahkan kepadamu¡¨.

Saat hari Natal tiba, Pendeta Agaton jatuh sakit sehingga dia tidak bisa memimpin gereja dan dirawat di rumah sakit. Pengelolaan Gereja diserahkan kepada 4 wanita tua yang tidak pernah tersenyum, mereka selalu menyalahkan segala sesuatu yang diperbuat orang lain.

Hari itu tgl. 25 Desember ketika 4 wanita tua tadi sedang berada di gereja tiba-tiba masuklah Andoy dan hendak menyapa Sahabatnya.

Andoy: "Halo Tuhan..Aku ...'

4 Wanita : "Kurang ajar kamu bocah !!! Apakah matamu tidak melihat kami sedang berdoa ??!!! Keluar.!!!"

Andoy begitu terkejut, karena tidak pernah ia diusir oleh Pdt.Agaton.

Andoy: "Dimana Bapa Pendeta? Dia seharusnya membantuku menyeberangi jalan raya.. dia selalu menyuruhku mampir lewat pintu belakang Gereja. tidak hanya itu, aku juga harus menyapa Sahabatku, hari ini adalah hari ulang tahunNya, aku punya hadiah untukNya ."

Ketika Andoy hendak mengambil hadiah tersebut dari dalam bajunya, seorang dari keempat wanita itu menarik kerah bajunya dan mendorongnya keluar. Andoy sedih, bigung dan setelah berpikir sebentar ia tidak mempunyai pilihan lain kecuali sendirian menyeberangi jalan raya tersebut. Di situ ada sebuah tikungan yang tidak terlihat pandangan, sebuah bus melaju dengan kencang dan Andoy mulai menyeberang sambil melindungi hadiah tadi di dalam bajunya, sehingga dia tidak melihat datangnya bus tadi. Tiba-tiba brakkk ... (terdengar bunyi gaduh dan bus tadi berhenti mendadak) Apa yang terjadi? ternyata karena tidak bisa menghindari bus besar tadi Andoy tertabrak dan tewas seketika. Orang-orang disekitarnya berlarian dan mengelilingi tubuh Andoy yang sudah tak bernyawa.

Sedih...Saat itu entah darimana munculnya tiba-tiba datang seorang pria berjubah putih dengan wajah yang lembut namun penuh dengan air mata, ia memeluk tubuh Andoy dan menangis.

Orang-orangpun heran, mereka penasaran lalu bertanya;

Orang-orang : " Maaf Tuan, apakah anda keluarga bocah malang ini ? Apakah anda mengenalnya ?"

Dengan hati yang berduka ia segera berdiri dan berkata : "Anak ini namanya Andoy, Dia adalah sahabatku."

Lalu diambilnya bungkusan hadiah dari dalam baju Andoy dan menaruh didadanya. Dia lalu berdiri dan membawa pergi tubuh Andoy. Kerumunan orang tersebut semakin penasaran... Malam itu, Pendeta Agaton menerima berita yang sungguh mengejutkan. Dia berkunjung ke rumah Andoy. Ketika Pdt. Agaton bertemu dengan orangtua Andoy ia bertanya; "Bagaimana anda mengetahui putera anda meninggal ?" Ibu Andoy menjawab sambil menghapus airmatanya: "Seorang pria berjubah putih yang membawanya kemari." Pdt. Agaton bertanya lagi: "Apa katanya ?"

"Dia tidak mengucapkan sepatah katapun. Dia sangat berduka. Kami tidak mengenalnya namun dia terlihat sedih, sepertinya Dia mengenal Andoy dengan baik. Tetapi ada suatu kedamaian yang sulit untuk dijelaskan mengenai dirinya. Dia menyerahkan anak kami dan tersenyum lembut. Dia membelai rambut Andoy dan mencium keningnya kemudian Dia membisikkan sesuatu" Jawab ayah Andoy.

Pdt.Agaton ; "Apa yang dikatakannya ?"

Ayah Andoy menjawab; " Dia berkata Terima kasih buat kadonya. Aku akan segera berjumpa denganmu.engkau akan bersamaku." Dan sang Ayah melanjutkan, "Anda tahu kemudian. semuanya itu terasa begitu indah.. aku menangis karena bahagia .. aku tidak dapat menjelaskannya, ketika Dia meninggalkan kami ada suatu kedamaian yang memenuhi hati kami, Aku tahu puteraku sudah berada di Surga sekarang. Tapi Pak Pendeta tolonglah katakan siapakah Pria ini yang selalu bicara dengan puteraku setiap hari di Gerejamu? anda pasti mengenalnya karena anda selalu berada disana setiap hari, kecuali hari ini saat puteraku meninggal¡¨

Tiba-tiba air mata Pendeta Agaton menetes dipipinya, dengan lutut gemetar Pdt. Agaton berbisik, "Dia tidak berbicara dengan siapa-siapa.. kecuali dengan Tuhan Yesus." Tahukah anda dimana Andoy berada sekarang? Ya ia berada di sorga bersama Tuhan Yesus. Inginkah kita sekalian juga ... berada di sorga nanti ? Ya kita semua menginginkannya. Andoy memiliki hati yang selalu bersyukur. Walaupun situasi hidup yang dialaminya sulit tetapi ia selalu bergembira karena ia tahu Tuhan Yesus sahabatnya selalu mengasihi dia. Melalui peristiwa tabrakan tadi Tuhan Yesus datang menjemputnya ke sorga.

Firman Tuhan berkata di dalam Kitab Roma 8 : 28;¡§Kita tahu sekarang, bahwa Allah turut bekerja dalam segala sesuatu untuk mendatangkan kebaikan bagi mereka yang mengasihi Dia, yaitu bagi mereka yang terpanggil sesuai dengan rencana Allah.¡¨

Mari kita sama-sama berdoa;

Tuhan Yesus yang baik...

Seperti engkau mengenal Andoy dalam cerita tadi, Engkau juga mengenal kami. Ampunilah kami jikalau selama ini kami tidak berlaku setia; Kami hanya mengucapkan syukur kepadaMu saat keadaan kami baik, tetapi ketika kami mengalami masalah dan kehidupan kami menjadi sulit kami mengeluh dan tidak mengucap syukur.

Saat ini ya Tuhan Yesus...

Ajarlah kami mengucap syukur

Saat kami bersedih karena Engkaulah penghibur kami.

Saat kami sakit karena Engkaulah dokter yang ajaib.

Saat kami kecewa karena Engkau tidak pernah mengecewakan kami.

Saat kami lemah karena Engkau memberi kekuatan kepada kami.

Saat kami gagal karena Engkau tak pernah gagal.

Saat kami putus asa karena Engkaulah penolong kami

Tuhan Yesus yang baik...

Kini kami tahu bahwa dengan mengucap syukur dalam susah dan senang kami

Menyenangkan hatiMu.

Dalam namaMu Ya Tuhan Yesus kami berdoa. Amin

YESUS KRISTUS memberkati Saudara..

Whatsapp in Indonesia?

Whatsapp was establishing them-self by claiming that they will be a good replacement for SMS service provided by default by network operators (go to http://www.whatsapp.com/ for more information) . However, can whatsapp really do that good job?

Below are eight reasons I found why whatsapp won't do a good job as SMS replacement in Indonesia (yet maybe):
  1. Internet connection here is not stable and reliable enough to make sure that the message will arrive instantly. Even here, we cannot make sure that SMS will arrive instantly.
  2. People tend to ignore whatsapp notification compare to SMS notification.
  3. The server is just not too stable as the number of users is increasing (for now maybe)
  4. People tend to mute the notification for whatsapp or other instant messaging (not including BBM though) but not SMS. It means, they will know if a new SMS (or BBM message) arrived, but not whatsapp.
  5. For some people, turning off internet will cost them less money and of course save more battery power for more important things. Unregistering them-self to unlimited internet data plan is also considered as a good way to save more money. Whatsapp is also not included in just-for-instant-messaging BB internet data plan. This prevents people from doing whatsapp with BB users, since here, most people are still using BB.
  6. Sometimes, people here are just don't want to add more instant messaging application. They argue that they already have YM, GTalk, Skype, BBM, etc. No need to add additional instant messaging that will just cost them less battery life and "headache".
  7. Whatsapp is a paid solution one. Here, people tend to reject the paid ones. Having a good free solution here is better than having to pay for the paid unknown-quality solution. That's how Indonesian people mentality works, right now hopefully.
  8. Why should people registering them-self to Whatsapp while with current internet data plan they can chat easily with others using such services as YM and BBM that are already used by most of their friends, and of course, more reliable?


Regardless of everything I've stated above, Whatsapp may still be able to be a replacement for SMS here. There is always a chance for success. The main issue with whatsapp is that their server always having glitch constantly. It might be fine though for Indonesia people, since here, we have used to rely on the high-cost unstable network operators.

Consecutive Letters

This is an answer for test case 2 given by PT. GDI Indonesia, as can be seen from its website (http://www.ptgdi.com/#Career).... The code is in C++

//
// main.cpp
// Consecutive Letters
//
// Created by Handra on 5/28/11.
// Copyright 2011 Handra. All rights reserved.
//



#include <iostream>

using namespace std ;

int main ( int argc , const char * argv [ ] )
{
char letters [ ] = "AAAAAAAAAA" ;
int number = 0 ;

do
{
if ( number == 1000 )
{
number = 0 ;

for ( int i = ( int ) strlen ( letters ) - 1 ; i >= 0 ; i -- )
{
if ( letters [ i ] != 'Z' )
{
letters [ i ] ++ ;

break ;
}
}
}

cout << letters << ( ( number < 10 ) ? "00" : ( number < 100 ) ? "0" : "" ) << number << endl ;

number ++ ;

if ( strcmp ( letters , "ZZZZZZZZZZ" ) == 0 && number == 1000 )
break ;
} while ( true) ;

return 0 ;
}

1 to 1000

This is an answer from the test case 1 given by PT. GDI Indonesia (http://www.ptgdi.com/#Career)... The code is in C++

//
// main.cpp
// 1 to 1000
//
// Created by Handra on 5/28/11.
// Copyright 2011 Handra. All rights reserved.
//

#include <iostream>

using namespace std ;

int main ( int argc , const char * argv [ ] )
{
unsigned int number = 1 ;
unsigned int lastStep = 3 ;
unsigned int step = 0 ;

for ( number = 1 ; number <= 1000 ; number ++ )
{
cout << number ;

step ++ ;

if ( number < 1000 && ( ( lastStep == 3 && step == 5 ) || ( lastStep == 5 && step == 3 ) ) )
{
lastStep = step ;
step = 0 ;

cout << "*" ;
}
}

return 0 ;
}

Physics Exam

The following concerns a question in a physics degree exam at the University of Copenhagen:

"Describe how to determine the height of a skyscraper with a barometer."

One student replied:

"You tie a long piece of string to the neck of the barometer, then lower the barometer from the roof of the skyscraper to the ground. The length of the string plus the length of the barometer will equal the height of the building."

This highly original answer so incensed the examiner that the student was failed. The student appealed on the grounds that his answer was indisputably correct, and the university appointed an independent arbiter to decide the case. The arbiter judged that the answer was indeed correct, but did not display any noticeable knowledge of physics. To resolve the problem it was decided to call the student in and allow him six minutes in which to provide a verbal answer which showed at least a minimal familiarity with the basic principles of physics.

For five minutes the student sat in silence, forehead creased in thought. The arbiter reminded him that time was running out, to which the student replied that he had several extremely relevant answers, but couldn't make up his mind which to use.

On being advised to hurry up the student replied as follows:

"Firstly, you could take the barometer up to the roof of the skyscraper, drop it over the edge, and measure the time it takes to reach the ground. The height of the building can then be worked out from the formula H = 0.5g x t squared. But bad luck on the barometer."

"Or if the sun is shining you could measure the height of the barometer, then set it on end and measure the length of its shadow. Then you measure the length of the skyscraper's shadow, and thereafter it is a simple matter of proportional arithmetic to work out the height of the skyscraper."

"But if you wanted to be highly scientific about it, you could tie a short piece of string to the barometer and swing it like a pendulum, first at ground level and then on the roof of the skyscraper. The height is worked out by the difference in the gravitational restoring force T = 2 pi sqroot (l / g)."

"Or if the skyscraper has an outside emergency staircase, it would be easier to walk up it and mark off the height of the skyscraper in barometer lengths, then add them up."

"If you merely wanted to be boring and orthodox about it, of course, you could use the barometer to measure the air pressure on the roof of the skyscraper and on the ground, and convert the difference in millibars into feet to give the height of the building."

"But since we are constantly being exhorted to exercise independence of mind and apply scientific methods, undoubtedly the best way would be to knock on the janitor's door and say to him 'If you would like a nice new barometer, I will give you this one if you tell me the height of this skyscraper'."

It is told, that the student was Niels Bohr, who later received the Nobel prize for Physics.

A Short Story of Blind Woman

Once upon a time, there was a blind woman. Everyone hated her, except her lover. The woman always said, "I will marry you when I am able to see." One day, someone donated eyes to the woman. At last, she could see the world. In a hurry, she went to meet her lover. Unfortunately, she was really shocked when she saw her lover, because he was also blind.

Her lover asked, "Will you marry me?" Without any reason, the woman rejected the proposal. Her lover then just smiled and went away whilst saying, "Please take care of my eyes..."

Kelompok 99

This post is in Bahasa.

Apakah Anda termasuk anggota Kelompok 99? Apa yang sedang saya bicarakan? Mari dengar suatu kisah terlebih dahulu dan baru Anda bisa menjawabnya.

Zaman dahulu kala, hiduplah seorang Raja. Raja ini seharusnya puas dengan kehidupannya, dengan segala harta benda dan kemewahan yang ia miliki. Tapi Raja ini tidak seperti itu. Sang Raja selalu bertanya-tanya mengapa ia tidak pernah puas dengan kehidupannya. Tentu saja, ia memiliki perhatian semua orang kemana pun ia pergi, menghadiri jamuan makan malam dan pesta yang mewah, tetapi, ia tetapi merasa ada sesuatu yang kurang dan ia tidak tahu apa sebabnya.

Suatu hari, sang Raja bangun lebih pagi dari biasanya dan memutuskan untuk berjalan-jalan di sekitar istananya. Sang Raja masuk ke dalam ruang tamunya yang luas dan berhenti ketika ia mendengarkan seseorang bernyanyi dengan riang... dan perhatiannya tertuju kepada salah satu pembantunya... yang bersenandung gembira dan wajahnya memancarkan sukacita serta kepuasan. Hal ini menarik perhatian sang Raja dan ia pun memanggil si hamba masuk ke dalam ruangannya.

Pria ini, si hamba, masuk ke dalam ruangan sang Raja seperti yang telah diperintahkan. Lalu sang Raja bertanya mengapa si hamba begitu riang gembira.

Kemudian, si hamba menjawab, "Yang Mulia, diri saya tidaklah lebih dari seorang hamba, namun apa yang saya peroleh cukup untuk menyenangkan istri dan anak-anak saya. Kami tidak memerlukan banyak, sebuah atap di atas kepala kami dan makanan yang hangat untuk mengisi perut kami. Istri dan anak-anak saya adalah sumber inspirasi saya, mereka puas dengan apa yang bisa saya sediakan walaupun sedikit. Saya bersukacita karena mereka bersukacita."

Mendengar hal tersebut, sang Raja menyuruh si hamba keluar dan kemudian memanggil asisten pribadinya masuk ke dalam ruangan.Sang Raja berusaha mengkaji perasaan pribadinya dan mengkaitkan dengan kisah yang baru saja didengarnya, berharap dirinya dapat menemukan suatu alasan mengapa ia seharusnya dapat merasa puas dengan apa yang dapat diperoleh dengan sekejap tetapi tidak, sedangkan hambanya hanya memperoleh sedikit harta tetapi memiliki rasa kepuasan yang besar.

Dengan penuh perhatian, sang asisten pribadi mendengarkan ucapan sang Raja dan kemudian menarik kesimpulan. Ujarnya, "Yang Mulia, saya percaya si hamba itu belum menjadi bagian dari kelompok 99."

"Kelompok 99? Apakah itu?" tanya sang Raja.

Kemudian, sang asisten pribadi menjawab, "Yang Mulia, untuk mengetahui apa itu Kelompok 99, Yang Mulia harus melakukan hal ini... letakkan 99 koin emas dalam sebuah kantung dan tinggalkan kantung tersebut di depan rumah si hamba, setelah itu Yang Mulia akan mengerti apa itu Kelompok 99."

Sore harinya, sang Raja mengatur agar si hamba memperoleh kantung yang berisi 99 koin emas di depan rumahnya. Walaupun ada sedikit keraguan mucul, dan sang Raja ingin memberikan 100 koin emas, namun ia menuruti nasihat si asisten pribadi dan tetapi meletakkan 99 koin emas.

Esok harinya, ketika si hamba baru saja hendak melangkahkan kakinya keluar rumah, matanya melihat sebuah kantung. Bertanya-tanya dalam hatinya, ia membawa kantung itu masuk ke dalam dan membukanya.

Ketika melihat begitu banyak koin emas di dalamnya, ia langsung berteriak girang. Koin emas... begitu banyak!

Hampir ia tidak percaya. Kemudian ia memanggil istri dan anak-anaknya keluar memperlihatkan temuannya. Si hamba meletakkan kantung tersebut di atas meja, mengeluarkan seluruh isinya dan mulai menghitung. Hanya 99 koin emas, dan ia pun merasa aneh. Dihitungnya kembali, terus menerus dan tetap saja, hanya 99 koin emas. Si hamba mulai bertanya-tanya, kemanakah koin yang satu lagi? Tidak mungkin seseorang hanya meninggalkan 99 koin emas. Ia pun mulai menggeledah seluruh rumahnya, mencari koin yang terakhir. Setelah ia merasa letih dan putus asa, ia memutuskan untuk bekerja lebih keras lagi untuk menggantikan 1 koin itu agar jumlahnya genap 100 koin emas.

Keesokan harinya, ia bangun dengan suasana hati yang benar-benar tidak enak, berteriak-teriak kepada istri dan anak-anaknya, tidak menyadari bahwa ia telah menghabiskan malam sebelumnya dengan bekerja keras agar ia mampu membeli 1 koin emas. Si hamba bekerja seperti biasa, tetapi tidak dengan suasana hati yang riang, bersiul-siul seperti biasanya. Dan si hamba pun tidak menyadari bahwa sang Raja memperhatikan dirinya ketika ia melakukan pekerjaan hariannya dengan bersungut-sungut.

Sang Raja bingung melihat sikap si hamba yang berubah begitu drastis, lalu memanggil asisten pribadinya masuk ke dalam ruangan. Diceritakan apa yang telah dilihatnya dan si asisten pribadinya tetap mendengarkan dengan penuh perhatian.

Sang Raja bertanya, “bukankah seharusnya si hamba itu lebih riang karena ia telah memiliki koin emas.”

Jawab si asisten,"Ah.. tetapi, Yang Mulia, sekarang hamba itu secara resmi telah masuk ke dalam Kelompok 99."

Lanjutnya, "Kelompok 99 itu hanyalah sebuah nama yang diberikan kepada orang-orang yang telah memiliki semuanya tetapi tidak pernah merasa puas (serakah ), dan mereka terus bekerja keras mencoba mencari 1 koin emas yang terakhir agar genap 100 koin emas.

Kita harusnya merasa bersyukur dengan apa yang ada, dan kita bisa hidup dengan sedikit yang kita miliki. Tetapi ketika kita diberikan yang lebih baik dan lebih banyak, kita menghendaki lebih! Tidak menjadi orang yang sama lagi, yang puas dengan apa yang ada, tetapi kita terus menghendaki lebih dan lebih dan memiliki keinginan seperti itu kita membayar harga yang tidak kita pun sadari. Kehilangan waktu tidur, kebahagiaan, dan menyakiti orang-orang yang berada di sekitar kita hanya untuk memenuhi kebutuhan dan keinginan kita sendiri. Orang-orang seperti itulah yang tergabung dalam Kelompok 99!"

Mendengar hal itu, sang Raja memutuskan bahwa untuk selanjutnya, ia akan mulai menghargai hal-hal yang kecil dalam hidup. Berusaha untuk memiliki lebih itu bagus, tetapi jangan berusaha terlalu keras sehingga kita kehilangan orang-orang yang dekat dengan kita, jangan pernah menukar kebahagiaan dengan kemewahan!

Semoga bermanfaat.?

Saat makan, makanlah secara perlahan & perhatikan tubuhmu.
Biarkan perut yg mengatakan kapan harus berhenti makan,
bukan mata atau lidah.
(Jack Kornfield)

Five NIE Practices

IT is now indeed an indispensable component of Business. For a business to move faster and bigger, there need to be a great support by IT. This makes the management of IT and how it used accordingly to support business even more important.

In the New Information Economics (NIE) era, there are five common practices that are used in managing IT so that it can give its full potential to support the bottom-line impact of the business.

Below are the five NIE practices to help company manage its business and IT:

Strategic Demand/Supply Planning
Strategic Demand/Supply Planning means that IT acts as a service provider for business necessity. In other words, IT does something to fulfil the need of business. This is the traditional way of managing IT. There is demand, then there is supply.

Innovation
Innovation is fundamentally different from Strategic Demand/Supply Planning. In the innovation process, IT drives new business initiatives.

Prioritisation
Prioritisation is the process where the initiatives of IT is being prioritised against the business necessity. The prioritisation practice is very important to make sure that resources are spent on the right places and the right time to produce right bottom-line impact.

Alignment
The alignment process is the process where company determines the correct activity that support its business activity. The prioritisation and alignment process are two processes that are connected. We align what we do and we do the highest priority first.

Performance Measurement
All too often, company just do some initiatives without doing measurement of success. This can lead to poor performance and waste of resources. In the NIE practices, the performance measurement is an indispensable part of IT initiatives. All initiatives must be measured for success.

The Meaning of Open

Last week I sent an email to Googlers about the meaning of "open" as it relates to the Internet, Google, and our users. In the spirit of openness, I thought it would be appropriate to share these thoughts with those outside of Google as well.

At Google we believe that open systems win. They lead to more innovation, value, and freedom of choice for consumers, and a vibrant, profitable, and competitive ecosystem for businesses. Many companies will claim roughly the same thing since they know that declaring themselves to be open is both good for their brand and completely without risk. After all, in our industry there is no clear definition of what open really means. It is a Rashomon-like term: highly subjective and vitally important.

The topic of open seems to be coming up a lot lately at Google. I've been in meetings where we're discussing a product and someone says something to the effect that we should be more open. Then a debate ensues which reveals that even though most everyone in the room believes in open we don't necessarily agree on what it means in practice.

This is happening often enough for me to conclude that we need to lay out our definition of open in clear terms that we can all understand and support. What follows is that definition based on my experiences at Google and the input of several colleagues. We run the company and make our product decisions based on these principles, so I encourage you to carefully read, review, and debate them. Then own them and try to incorporate them into your work. This is a complex subject and if there is debate (and I'm sure there will be) it should be in the open! Please feel free to comment.

There are two components to our definition of open: open technology and open information. Open technology includes open source, meaning we release and actively support code that helps grow the Internet, and open standards, meaning we adhere to accepted standards and, if none exist, work to create standards that improve the entire Internet (and not just benefit Google). Open information means that when we have information about users we use it to provide something that is valuable to them, we are transparent about what information we have about them, and we give them ultimate control over their information. These are the things we should be doing. In many cases we aren't there, but I hope that with this note we can start working to close the gap between reality and aspiration.

If we can embody a consistent commitment to open — which I believe we can — then we have a big opportunity to lead by example and encourage other companies and industries to adopt the same commitment. If they do, the world will be a better place.

Open systems win
To understand our position in more detail, it helps to start with the assertion that open systems win. This is counter-intuitive to the traditionally trained MBA who is taught to generate a sustainable competitive advantage by creating a closed system, making it popular, then milking it through the product life cycle. The conventional wisdom goes that companies should lock in customers to lock out competitors. There are different tactical approaches — razor companies make the razor cheap and the blades expensive, while the old IBM made the mainframes expensive and the software ... expensive too. Either way, a well-managed closed system can deliver plenty of profits. They can also deliver well-designed products in the short run — the iPod and iPhone being the obvious examples — but eventually innovation in a closed system tends towards being incremental at best (is a four blade razor really that much better than a three blade one?) because the whole point is to preserve the status quo. Complacency is the hallmark of any closed system. If you don't have to work that hard to keep your customers, you won't.

Open systems are just the opposite. They are competitive and far more dynamic. In an open system, a competitive advantage doesn't derive from locking in customers, but rather from understanding the fast-moving system better than anyone else and using that knowledge to generate better, more innovative products. The successful company in an open system is both a fast innovator and a thought leader; the brand value of thought leadership attracts customers and then fast innovation keeps them. This isn't easy — far from it — but fast companies have nothing to fear, and when they are successful they can generate great shareholder value.

Open systems have the potential to spawn industries. They harness the intellect of the general population and spur businesses to compete, innovate, and win based on the merits of their products and not just the brilliance of their business tactics. The race to map the human genome is one example.

In the book Wikinomics, Don Tapscott and Anthony Williams explain how in the mid-1990s private firms were discovering and patenting large amounts of DNA sequence data and then assuming control over who could access that information and at what price. Having so much of the genome under private ownership raised costs and made drug discovery far less efficient. Then, in 1995, Merck Pharmaceuticals and the Gene Sequencing Center at Washington University changed the game by creating a new, open initiative called the Merck Gene Index. Within three years they had published over 800,000 gene sequences into the public domain, and soon other collaborative projects followed suit. This in an industry where early stage R&D was traditionally pursued individually in closed labs, so Merck's open approach not only changed the culture of the entire field but also accelerated the pace of biomedical research and drug development. It gave researchers everywhere unrestricted access to an open resource of genetic information.

Another way to look at the difference between open and closed systems is that open systems allow innovation at all levels — from the operating system to the application layer — not just at the top. This means that one company doesn't have to depend on another's benevolence to ship a product. If the GNU C compiler that I'm using has a bug, I can fix it since the compiler is open source. I don't have to file a bug report and hope for a timely response.

So if you are trying to grow an entire industry as broadly as possible, open systems trump closed. And that is exactly what we are trying to do with the Internet. Our commitment to open systems is not altruistic. Rather it's good business, since an open Internet creates a steady stream of innovations that attracts users and usage and grows the entire industry. Hal Varian has an equation in his book Information Rules that applies here:

Reward = (Total value added to the industry) * (Our share of industry value)

All other things being equal, a 10 percent increase in share or a 10 percent increase in industry value should lead to the same outcome. But in our industry a 10 percent increase in industry value will yield a much bigger reward because it will stimulate economies of scale across the entire industry, increasing productivity and reducing costs for all competitors. As long as we contribute a steady stream of great products we will prosper along with the entire ecosystem. We may get a smaller piece, but it will come from a bigger pie.

In other words, Google's future depends on the Internet staying an open system, and our advocacy of open will grow the web for everyone - including Google.

Open Technology
The definition of open starts with the technologies upon which the Internet was founded: open standards and open source software.

Open Standards
Networks have always depended on standards to flourish. When railroad tracks were first being laid across the U.S. in the early 19th century, there were seven different standards for track width. The network didn't flourish and expand west until the different railway companies agreed upon a standard width of 4' 8.5". (In this case the standards war was an actual war: Southern railroads were forced to convert over 11,000 miles of track to the new standard after the Confederacy lost to the Union in the Civil War.)

So there was some precedent in 1974 when Vint Cerf and his colleagues proposed using an open standard (which became TCP/IP) to connect the several computer networks that had emerged around the U.S. They didn't know exactly how many networks were out there so the "Internet" — a term Vint coined — had to be open. Any network could connect using TCP/IP, and now, as a result of that decision, there are about 681 million hosts on the Internet.

Today, we base our developer products on open standards because interoperability is a critical element of user choice. What does this mean for Google Product Managers and Engineers? Simple: whenever possible, use existing open standards. If you are venturing into an area where open standards don't exist, create them. If existing standards aren't as good as they should be, work to improve them and make those improvements as simple and well documented as you can. Our top priorities should always be users and the industry at large and not just the good of Google, and you should work with standards committees to make our changes part of the accepted specification.

We have a good history of doing this. In the formative years of the Google Data Protocol (our standard API protocol, which is based on XML/Atom), we worked as part of the IETF Atom Protocol Working Group to shape the Atom specification. There's also our recent work with the W3C to create a standard geolocation API that will make it easy for developers to build browser-based, location-sensitive applications. This standard helps everyone, not just us, and will lead to users having access to many more compelling apps from thousands of developers.

Open Source
Most of those apps will be built on open source software, a phenomenon responsible for the web's explosive growth in the past 15 years. There is a historic precedent here: while the term "open source" was coined in the late 1990s, the concept of sharing valuable information to catalyze an industry existed long before the Internet. In the early 1900s, the U.S. automobile industry instituted a cross-licensing agreement whereby patents were shared openly and freely amongst manufacturers. Prior to this agreement, the owners of the patent for the two-cycle gasoline engine had effectively bottled up the industry.

Today's open source goes far beyond the "patent pooling" of the early auto manufacturers, and has led to the development of the sophisticated software components — Linux, Apache, SSH, and others — upon which Google is built. In fact, we use tens of millions of lines of open source code to run our products. We also give back: we are the largest open source contributor in the world, contributing over 800 projects that total over 20 million lines of code to open source, with four projects (Chrome, Android, Chrome OS, and Google Web Toolkit) of over a million lines of code each. We have teams that work to support Mozilla and Apache, and an open source project hosting service (code.google.com/hosting) that hosts over 250,000 projects. These activities not only ensure that others can help us build the best products, they also mean that others can use our software as a base for their own products if we fail to innovate adequately.

When we open source our code we use standard, open Apache 2.0 licensing, which means we don't control the code. Others can take our open source code, modify it, close it up and ship it as their own. Android is a classic example of this, as several OEMs have already taken the code and done great things with it. There are risks to this approach, however, as the software can fragment into different branches which don't work well together (remember how Unix for workstations devolved into various flavors — Apollo, Sun, HP, etc.). This is something we are working hard to avoid with Android.

While we are committed to opening the code for our developer tools, not all Google products are open source. Our goal is to keep the Internet open, which promotes choice and competition and keeps users and developers from getting locked in. In many cases, most notably our search and ads products, opening up the code would not contribute to these goals and would actually hurt users. The search and advertising markets are already highly competitive with very low switching costs, so users and advertisers already have plenty of choice and are not locked in. Not to mention the fact that opening up these systems would allow people to "game" our algorithms to manipulate search and ads quality rankings, reducing our quality for everyone.

So as you are building your product or adding new features, stop and ask yourself: Would open sourcing this code promote the open Internet? Would it spur greater user, advertiser, and partner choice? Would it lead to greater competition and innovation? If so, then you should make it open source. And when you do, do it right; don't just push it over the wall into the public realm and forget about it. Make sure you have the resources to pay attention to the code and foster developer engagement. Google Web Toolkit, where we have developed in the open and used a public bug tracker and source control system, is a good example of this.

Open Information
The foundation of open standards and open source has led to a web where massive amounts of personal information — photos, contacts, updates — are regularly uploaded. The scale of information being shared, and the fact that it can be saved forever, creates a question that was hardly a consideration a few years ago: How do we treat this information?

Historically, new information technologies have often enabled new forms of commerce. For example, when traders in the Mediterranean region circa 3000 BC invented seals (called bullae) to ensure that their shipments reached their destinations tamper-free, they transformed commerce from local to long distance. Similar transformations were spurred by the advent of the written word, and more recently, computers. At every step of the way, the transaction, a consensual agreement where each party gets something of value, was powered by a new type of information that allowed a contract to be enforced.

On the web, the new form of commerce is the exchange of personal information for something of value. This is a transaction that millions of us participate in every day, and it has potentially great benefits. An auto insurer could monitor a customer's driving habits in real-time and give a discount for good driving — or charge a premium for speeding — powered by information (GPS tracking) that wasn't available only a few years ago. This is a fairly simple transaction, but we will encounter far more sensitive scenarios.

Let's say your child has an allergy to certain medicines. Would you allow her medical data to be accessible by a smart wireless syringe which could prevent an EMT or nurse from accidentally giving her that medicine? I would, but you might decide the metal bracelet around her wrist is sufficient. And that's the point — people can and will reach different decisions, and when it comes to their personal information we need to treat all of those decisions with equal respect.

So while having more personal information online can be quite beneficial to everyone, its uses should be guided by principles that are responsible, scalable, and flexible enough to grow and change with our industry. And unlike open technology, where our objective is to grow the Internet ecosystem, our approach to open information is to build trust with the individuals who engage within that ecosystem (users, partners, and customers). Trust is the most important currency online, so to build it we adhere to three principles of open information: value, transparency, and control.

Value

First and foremost, we need to make products that are valuable to users. In many cases, we can make our products even better if we know more information about the user, but privacy concerns can arise if people don't understand what value they are getting in return for their information. Explain that value to them, however, and they will often agree to the transaction. For example, millions of people let credit card companies retain information on the purchases they make with their card in exchange for the convenience of not carrying around cash.

We did this well when we launched Interest-Based Advertising in March. IBA makes ads more relevant and more useful. That is the extra value we create based on the information we gather. It also includes a user preferences manager that clearly explains what users are getting in exchange for their information and lets them opt out or adjust their settings. The vast majority of people who visit the preferences manager choose to adjust their settings rather than opt out because they realize the value of receiving ads customized to their interests.

This should be our default approach: tell people, in obvious, plain language, what we know about them and why it's valuable to them that we know it. Think that your product's value is so obvious that it doesn't need explaining? There's a good chance you're wrong.

Transparency

Next, we need to make it easy for users to find out what information we gather and store about them across all of our products. We recently took a big step in this direction with the launch of the Google Dashboard, which is a single place where users can see what personal data is held by each Google product (covering more than 20 products including Gmail, YouTube, and Search) and control their personal settings. We are, to the best of our knowledge, the first Internet company to offer a service like this and we hope it will become the standard. Another good example is our Privacy Policy, which is written for humans and not just lawyers.

We can go even farther than this though. If you manage a consumer product where you collect information from your users, your product should be part of the Dashboard. If you're already there, you're not done. With every new feature or version, ask yourself if you have any additional information (maybe even information that is publicly available about users on other sites) that you can add to the Dashboard.

Think about how you can increase transparency within your product as well. When you download an Android app, for example, the device tells you what information the app will be able to access about you and your phone, and then you get to decide whether or not to proceed. You don't have to dig deep to figure out what information you are divulging - it tells you up front and lets you decide what to do. Is your product like that? How can you increase users' engagement with your product through increasing transparency?

Control

Finally, we must always give control to the user. If we have information about a user, as with IBA, it should be easy for the user to delete that information and opt-out. If they use our products and store content with us, it's their content, not ours. They should be able to export it or delete it at any time, at no cost, and as easily as possible. Gmail is a great example of this since we offer free forwarding to any address. The ability to switch is critical, so instead of building walls around your product, build bridges. Give users real options.

If there are existing standards for handling user data, then we should adhere to them. If a standard doesn't exist, we should work to create an open one that benefits the entire web, even if a closed standard appears to be better for us (remember — it's not!). In the meantime we need to do whatever we can to make leaving Google as easy as possible. Google is not the Hotel California — you can check out any time you like and you CAN, in fact, leave!

As Eric said in his 2009 strategy memo, "we don't trap users, we make it easy for them to move to our competitors." This policy is sort of like the emergency exits on an airplane — an analogy that our pilot CEO would appreciate. You hope to never use them, but you're glad they're there and would be furious if they weren't.

That's why we have a team — the Data Liberation Front (dataliberation.org) — whose job it is to make "checking out" easy. Recent examples of their work include Blogger (people who choose to leave Blogger for another service can easily take their content with them) and Docs (users can now collect all their documents, presos, and spreadsheets in a zip file and download it). Build your products so that the Data Liberation team can work their magic. One way you can do this is by having a good public API that exposes all your users' data. Don't wait for v2 or v3, discuss this early in your product planning meetings and make it a feature of your product from the start.

When reporters at the Guardian, a leading UK newspaper, reviewed the work of the Data Liberation team, they proclaimed it to be "counter-intuitive" for those "accustomed to the lock-in mentality of previous commercial battles." They are right, it is counterintuitive to people who are stuck in the old MBA way of thinking, but if we do our jobs then soon it won't be. Our goal is to make open the default. People will gravitate towards it, then they will expect and demand it and be furious when they don't get it. When open is intuitive, then we have succeeded.

When bigger is better

Closed systems are well-defined and profitable, but only for those who control them. Open systems are chaotic and profitable, but only for those who understand them well and move faster than everyone else. Closed systems grow quickly while open systems evolve more slowly, so placing your bets on open requires the optimism, will, and means to think long term. Fortunately, at Google we have all three of these.

Because of our reach, technical know-how, and lust for big projects, we can take on big challenges that require large investments and lack an obvious, near-term pay-off. We can photograph the world's streets so that you can explore the neighborhood around an apartment you are considering renting from a thousand miles away. We can scan millions of books and make them widely accessible (while respecting the rights of publishers and authors). We can create an email system that gives away a gigabyte of storage (now over 7 gigs) at a time when all other services allow only a small fraction of that amount. We can instantly translate web pages from any of 51 languages. We can process search data to help public health agencies detect flu outbreaks much earlier. We can build a faster browser (Chrome), a better mobile operating system (Android), and an entirely new communications platform (Wave), and then open them up for the world to build upon, customize, and improve.

We can do these things because they are information problems and we have the computer scientists, technology, and computational power to solve them. When we do, we make numerous platforms - video, maps, mobile, PCs, voice, enterprise - better, more competitive, and more innovative. We are often attacked for being too big, but sometimes being bigger allows us to take on the impossible.

All of this is useless, however, if we fail when it comes to being open. So we need to constantly push ourselves. Are we contributing to open standards that better the industry? What's stopping us from open sourcing our code? Are we giving our users value, transparency, and control? Open up as much as you can as often as you can, and if anyone questions whether this is a good approach, explain to them why it's not just a good approach, but the best approach. It is an approach that will transform business and commerce in this still young century, and when we are successful we will effectively re-write the MBA curriculum for the next several decades!

An open Internet transforms lives globally. It has the potential to deliver the world's information to the palm of every person and to give everyone the power of freedom of expression. These predictions were in an email I sent you earlier this year (later posted as a blog post) that described my vision for the future of the Internet. But now I'm talking about action, not vision. There are forces aligned against the open Internet — governments who control access, companies who fight in their own self-interests to preserve the status quo. They are powerful, and if they succeed we will find ourselves inhabiting an Internet of fragmentation, stagnation, higher prices, and less competition.

Our skills and our culture give us the opportunity and responsibility to prevent this from happening. We believe in the power of technology to deliver information. We believe in the power of information to do good. We believe that open is the only way for this to have the broadest impact for the most people. We are technology optimists who trust that the chaos of open benefits everyone. We will fight to promote it every chance we get.

Open will win. It will win on the Internet and will then cascade across many walks of life: The future of government is transparency. The future of commerce is information symmetry. The future of culture is freedom. The future of science and medicine is collaboration. The future of entertainment is participation. Each of these futures depends on an open Internet.

As Google product managers, you are building something that will outlast all of us, and none of us can imagine all the ways Google will grow and touch people's lives. In that way, we are like our colleague Vint Cerf, who didn't know exactly how many networks would want to be part of this "Internet" so he set the default to open. Vint certainly got it right. I believe we will too.

Why the ‘Linux System’ should be called GNU/Linux

Names convey meanings; our choice of names determines the meaning of what we say. An inappropriate name gives people the wrong idea. A rose by any other name would smell as sweet—but if you call it a pen, people will be rather disappointed when they try to write with it. And if you call pens “roses”, people may not realize what they are good for. If you call our operating system Linux, that conveys a mistaken idea of the system's origin, history, and purpose. If you call it GNU/Linux, that conveys (though not in detail) an accurate idea.

Does this really matter for our community? Is it important whether people know the system's origin, history, and purpose? Yes—because people who forget history are often condemned to repeat it. The Free World that has developed around GNU/Linux is not guaranteed to survive; the problems that led us to develop GNU are not completely eradicated, and they threaten to come back.
When I explain why it's appropriate to call the operating system GNU/Linux rather than Linux, people sometimes respond this way:

Granted that the GNU Project deserves credit for this work, is it really worth a fuss when people don't give credit? Isn't the important thing that the job was done, not who did it? You ought to relax, take pride in the job well done, and not worry about the credit.

This would be wise advice, if only the situation were like that—if the job were done and it were time to relax. If only that were true! But challenges abound, and this is no time to take the future for granted. Our community's strength rests on commitment to freedom and cooperation. Using the name GNU/Linux is a way for people to remind themselves and inform others of these goals.

It is possible to write good free software without thinking of GNU; much good work has been done in the name of Linux also. But the term “Linux” has been associated ever since it was first coined with a philosophy that does not make a commitment to the freedom to cooperate. As the name is increasingly used by business, we will have even more trouble making it connect with community spirit.

A great challenge to the future of free software comes from the tendency of the “Linux” distribution companies to add nonfree software to GNU/Linux in the name of convenience and power. All the major commercial distribution developers do this; none limits itself to free software. Most of them do not clearly identify the nonfree packages in their distributions. Many even develop nonfree software and add it to the system. Some outrageously advertise “Linux” systems that are “licensed per seat”, which give the user as much freedom as Microsoft Windows.

People try to justify adding nonfree software in the name of the “popularity of Linux”—in effect, valuing popularity above freedom. Sometimes this is openly admitted. For instance, Wired Magazine said that Robert McMillan, editor of Linux Magazine, “feels that the move toward open source software should be fueled by technical, rather than political, decisions.” And Caldera's CEO openly urged users to drop the goal of freedom and work instead for the “popularity of Linux”.

Adding nonfree software to the GNU/Linux system may increase the popularity, if by popularity we mean the number of people using some of GNU/Linux in combination with nonfree software. But at the same time, it implicitly encourages the community to accept nonfree software as a good thing, and forget the goal of freedom. It is not good to drive faster if you can't stay on the road.

When the nonfree “add-on” is a library or programming tool, it can become a trap for free software developers. When they write free software that depends on the nonfree package, their software cannot be part of a completely free system. Motif and Qt trapped large amounts of free software in this way in the past, creating problems whose solutions took years. The Motif problem is still not entirely solved, since LessTif needs some polishing (please volunteer!). Later, Sun's nonfree Java implementation had a similar effect: theJava Trap, fortunately no longer active.

If our community keeps moving in this direction, it could redirect the future of GNU/Linux into a mosaic of free and nonfree components. Five years from now, we will surely still have plenty of free software; but if we are not careful, it will hardly be usable without the nonfree software that users expect to find with it. If this happens, our campaign for freedom will have failed.

If releasing free alternatives were simply a matter of programming, solving future problems might become easier as our community's development resources increase. But we face obstacles that threaten to make this harder: laws that prohibit free software. As software patents mount up, and as laws like the DMCA are used to prohibit the development of free software for important jobs such as viewing a DVD or listening to a RealAudio stream, we will find ourselves with no clear way to fight the patented and secret data formats except to <strong>reject the nonfree programs that use them</strong>.

Meeting these challenges will require many different kinds of effort. But what we need above all, to confront any kind of challenge, is to remember the goal of freedom to cooperate. We can't expect a mere desire for powerful, reliable software to motivate people to make great efforts. We need the kind of determination that people have when they fight for their freedom and their community—determination to keep on for years and not give up.

In our community, this goal and this determination emanate mainly from the GNU Project. We're the ones who talk about freedom and community as something to stand firm for; the organizations that speak of “Linux” normally don't say this. The magazines about “Linux” are typically full of ads for non-free software; the companies that package “Linux” add non-free software to the system; other companies “support Linux” by developing nonfree applications to run on GNU/Linux; the user groups for “Linux” typically invite salesman to present those applications. The main place people in our community are likely to come across the idea of freedom and determination is in the GNU Project.
But when people come across it, will they feel it relates to them?

People who know they are using a system that came out of the GNU Project can see a direct relationship between themselves and GNU. They won't automatically agree with our philosophy, but at least they will see a reason to think seriously about it. In contrast, people who consider themselves “Linux users”, and believe that the GNU Project “developed tools which proved to be useful in Linux”, typically perceive only an indirect relationship between GNU and themselves. They may just ignore the GNU philosophy when they come across it.

The GNU Project is idealistic, and anyone encouraging idealism today faces a great obstacle: the prevailing ideology encourages people to dismiss idealism as “impractical”. Our idealism has been extremely practical: it is the reason we have a free GNU/Linuxoperating system. People who love this system ought to know that it is our idealism made real.

If “the job” really were done, if there were nothing at stake except credit, perhaps it would be wiser to let the matter drop. But we are not in that position. To inspire people to do the work that needs to be done, we need to be recognized for what we have already done. Please help us, by calling the operating system GNU/Linux.

PS: For an explanation of the history of the GNU/Linux system as it relates to this issue of naming, see <a href="http://www.gnu.org/gnu/linux-and-gnu.html" target="_blank">http://www.gnu.org/gnu/linux-and-gnu.html</a>. For answers to other questions and arguments about this issue, see the GNU/Linux FAQ.

Source: <a href="http://www.gnu.org/gnu/why-gnu-linux.html" target="_blank">http://www.gnu.org/gnu/why-gnu-linux.html</a>