Tuesday, December 29, 2009

Live Soccer Score Bolton v Hull

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Saudi Arabia v Kuwait

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Tunisia v Côte d'Ivoire

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Aston Villa v Liverpool

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Sunday, December 27, 2009

Live Soccer Score Peterborough United v Cardiff City

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Newcastle United v Derby County

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Barnsley v Middlesbrough

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Wolverhampton Wanderers v Manchester City

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Stoke City v Birmingham City

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Nottingham Forest v Coventry City

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Tottenham Hotspur v West Ham United

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Blackburn Rovers v Sunderland

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Chelsea v Fulham

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Everton v Burnley

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Swansea City v Crystal Palace

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Plymouth Argyle v Reading

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Live Soccer Score Qatar v Iran

Live Soccer Score .We are daily updates All about Live Sports We bring you all the latest news and live scores as well. So stay updated with us Live

Live Soccer Score

Blogger: Bisa Kaya, Bisa Masuk Penjara

Blog merupakan sebuah media untuk menuangkan hasil karya tulisan atau coretan apapun itu yang dihasilkan oleh seseorang.

Bisa berupa opini, hasil penelitian ilmiah, catatan pribadi, cerita kehidupan, hingga banyolan humor sekalipun. Tapi memang tidak bisa dihindari juga bahwa terkadang blog malah dijadikan ajang adu mulut, hinaan, bahkan pemuatan konten ilegal. Perkembangan blog memang bisa bermuara ke arah positif dan negatif.

Namun tidak bisa juga semua blog dianggap tidak bisa dipercaya keabsahan isinya seperti sering diwacanakan selama ini. Toh, tidak sedikit para akademisi, jurnalis, politikus, bahkan berbagai individu lainnya yang teruji secara ilmiah, juga memanfaatkan blog sebagai tempat untuk mem-publish catatan-catatannya. Siapa yang bisa meragukan opini-opini mereka, karena pada dasarnya setiap yang disampaikan mereka tentu saja berdasarkan hasil pertimbangan yang matang.

Blogger Indonesia Bisa Jadi Profesi

Blog yang saat ini sudah menjadi fenomena baru, mulai beranjak menuju tingkat yang lebih profesional. Jika dulu blog hanya merupakan sebuah media personal yang sifatnya catatan pribadi dari seorang individu, saat ini blog sudah mulai beralih ke ranah profesi. Blog yang pada awal perkembangannya hanya untuk berbagi pengalaman dan bertukar informasi dengan sesama blogger dan pengunjung internet, sekarang mulai dilirik untuk menjadi sebuah media yang bisa menghasilkan uang.

Pada perkembangannya dewasa ini, blog sudah menjadi salah satu pilihan profesi bagi banyak blogger. Para blogger bisa menghasilkan pendapatan dari blog-nya masing-masing. Melalui blog-nya, blogger dapat menerima iklan dari pengiklan yang ingin memasarkan produknya kepada para pengunjung internet. Pemasang iklan memanfaatkan blog untuk mengenalkan produk mereka. Sang pemilik blog akan memasang iklan tersebut di blog-nya, dan mendapatkan pembayaran atas ruang yang disediakan untuk iklan yang telah ditampilkan.

Pertumbuhan jejaring blog yang sangat pesat belakangan ini, bisa menjadikan seorang blogger yang sudah dapat nama dilirik pemasang iklan. Para pengiklan menyadari pentingnya untuk mengenalkan dan memasarkan brand name produk mereka di tengah komunitas yang terdidik dalam komunitas para blogger tersebut. Sang pemilik blog pun dapat memetik keuntungan dari si pengiklan atas jasa iklan yang telah diberikan dalam blog-nya.

Banyak perusahaan media online yang menyediakan aktivasi beriklan seperti ini untuk para blogger. Salah satu contoh adalah Google AdSense. Dengan bergabung di perusahaan tersebut, para blogger bisa memanfaatkan blog-nya untuk meraup pundi-pundi dollar dengan mengiklankan produk-produk dari berbagai perusahaan. Google sendiri akan menyodorkan iklan dari beberapa perusahaan yang tertarik untuk beriklan di blog tersebut. Kemudian, setiap pengunjung blog yang melakukan klik pada banner atau logo iklan tersebut, maka pemilik blog akan dibayar sekian dollar sesuai dengan kesepakatan.

Berniaga melalui blog juga dapat dicoba oleh para blogger sebagai salah satu profesi. Amazon, situs e-market yang menyediakan berbagai barang untuk konsumsi masyarakat banyak, membuka kesempatan bagi para blogger untuk menjadi marketing perusahaan online tersebut. Melalui blog-nya, blogger bisa mengiklankan dan menjual barang-barang Amazon. Setiap barang yang terjual, situs tersebut akan memberikan bayaran atas jasa yang diterimanya dari para blogger yang telah terdaftar sebagai anggota.

Tidak hanya itu. banyak juga freelance writer (penulis lepas) yang memanfaatkan blog sebagai media untuk menjual hasil karya-karya tulisannya. Bisanya mereka akan mempromosikan karyanya yang bernilai informasi tinggi tersebut di masing-masing blog mereka. Kemudian media massa, terutama media luar negeri akan menawar untuk mendapatkan hak cipta dari karya tersebut. Jika kesepakatan didapatkan, si pemilik blog yang juga merangkap sebagai penulis lepas akan menerima bayaran atas karyanya tersebut.

Bekerja sebagai penulis lepas di blog pribadi merupakan sesuatu yang menyenangkan. Karya tulisan kita dibaca banyak orang, dan kemudian juga dihargai oleh berbagai media massa yang tertarik membeli hak cipta dari tulisan tersebut. Blogger akan mendapatkan honor dari tulisan yang dirilis di blog pribadinya itu. Bayarannya dalam dollar dan nilai riil yang diperoleh oleh penulis blogger bahkan bisa sangat besar dan melebihi penghasilan profesi lainnya.

Memang sudah trennya saat ini, orang mulai melirik blog sebagai sumber penghasilan. Untuk sampai pada tahap menjadikan blog sebagai sumber penghasilan memang perlu waktu banyak, kemauan yang kuat dan wawasan yang luas. Mencoba memahami segmentasi pembaca dan memproduksi tulisan yang disenangi oleh pembaca, juga harus diperhatikan agar blog banyak dikunjungi. Kedepan, sejalan dengan makin banyaknya komunitas blogger, bisa saja banyak orang yang muncul dan beralih profesi sebagai blogger, blogger sebagai sebuah profesi layaknya profesi lain yang dikenal luas oleh masyarakat.

Hati-hati Seperti Prita

Jadi blogger pun ternyata punya resiko besar, bisa berbahaya bagi diri sendiri. Apa pasal? Kasus Prita Mulyasari adalah salah satu contoh. Prita Mulyasari adalah salah satu konsumen RS Omni International yang menjadi pasien di rumah sakit internasional tersebut. Namun karena tidak merasa puas dengan layanan yang diterimanya, bahkan ia malah merasa telah ditipu oleh pihak rumah sakit, Prita pun melayangkan protes. Namun pihak rumah sakit terkesan bertele-tele dalam menjawab protes dari Prita. Pada akhirnya, ia pun menceritakan pengalaman buruknya berobat di rumah sakit tersebut dalam surat elektronik (e-mail) dan menyebarkannya kepada beberapa orang teman. Namun pada akhirnya, e-mail tersebut beredar luas di kalangan pengguna dunia maya.

Pihak RS Omni International yang menjadi salah satu pemeran dalam surat tersebut, tidak terima karena merasa nama baiknya telah dicemari oleh Prita. Pihak rumah sakit menuduh Prita melakukan pencemaran nama baik di media internet dan menyebarkannya kepada publik. Mereka pun menuntut Prita ke pengadilan, secara pidana dan perdata. Di sinilah masalah besar kemudian muncul, dan sempat membuat geger dunia blogger di tanah air, karena hal ini terkait soal kebebasan berpendapat dalam dunia maya yang selama ini menjadi keutamaan dalam blog.

Prita pun dijerat Pasal 27 Ayat 3 Undang-Undang nomor 11 tahun 2008 tentang Informasi dan Transaksi Elektronik (UU ITE). Dalam aturan tersebut tertulis bahwa, "Setiap orang dengan sengaja dan tanpa hak mendistribusikan dan/atau mentransmisikan dan/atau membuat dapat diaksesnya Informasi Elektronik dan/atau Dokumen Elektronik yang memiliki muatan penghinaan dan/atau pencemaran nama baik." Bagi yang melanggar pasal tersebut akan menerima sanksi denda hingga Rp 1 miliar dan penjara hingga enam tahun. Akhirnya Prita pun terpaksa "menginap" di Lembaga Pemasyarakatan Wanita Tangerang sejak tanggal 13 Mei 2009.

Kasus inilah yang menjadi tanda peringatan bagi para blogger di Indonesia. Ternyata kebebasan berpendapat di blog pun bisa menjadi ancaman dan dikenai hukuman berdasarkan UU ITE jika terbukti bersalah. Penerapan UU ITE akhirnya memakan "korban." Banyak pihak yang kemudian menyayangkan penahanan Prita dan menganggap pasal tidak kuat, karena telah mengancam kebebasan berekspresi. Mereka menilai rumusan pasal tersebut bersifat karet dan multi intrepretasi. Kasus ini juga telah membawa preseden buruk dan membuat masyarakat takut menyampaikan pendapat atau komentarnya di ranah dunia maya.

Meski begitu, bukan berarti para Blogger akan surut dan meninggalkan dunia maya. Tidak ada alasan untuk itu. Namun yang jelas, para blogger harus mulai berhati-hati dalam menyampaikan opininya di dunia maya. Dalam bentuk apapun, yang namanya pencemaran nama baik tetap merupakan suatu pelanggaran.

Penegakan kebebasan berekspresi seharusnya juga tidak boleh disalahartikan hingga kemudian merugikan pihak lain. Oleh karena itu, jangan juga sekali-kali menulis blog hanya untuk sekadar mencari perhatian atau sensasi agar trafik kunjungannya meningkat, apalagi jika tulisan tersebut tanpa didukung data dan fakta.

Apapun yang kita posting di internet, pikirkanlah baik-baik implikasinya di kemudian hari, karena setiap orang dapat mengakses dan menyebarkannya. Bahkan penulis sendiri pun agak gentar dan sempat pikir panjang juga untuk menyampaikan opini ini. Akhir kata, selamat nge-blog! ***

Friday, December 25, 2009

Pakistan v Australia 1st Test Live in Melbourne on Dec 26 2009


Media_http1bpblogspot_ptwke

Live Cricket Score Here

Big Picture

Australia and Pakistan will take place on the 26th of December at the Melbourne Cricket Ground. The Aussies are returning after a close win in the test series against the West Indies.If Pakistan feel they have the better spinners in Danish Kaneria and Saeed Ajmal, Australia will be more than confident that their batting is by far the stronger.
Pakistan have no such injury concerns though a niggle to the fourth finger on Danish Kaneria's spinning hand is being looked at. There is talk in the camp of playing an extra spinner in place of a fast bowler. Pakistan will not readily dismantle the pace trio that served them so well in New Zealand.
the Aussies would be missing the services of Ben Hilfenhaus, who has failed to recover from his knee problem while Nathan Hauritz, who is suffering from a groin injury, is also a doubtful starter. His absence may pave way young leggie Steven Smith.
While Pakistan would be a lot more happier after Umar Gul survived an injury scare and was declared fit by the doctors, their concern would be the availability of Kaneria, as the leggie has injured his finger.

Media_http4bpblogspot_ghrsr



Media_http3bpblogspot_mgjcm



Australia squad
RT Ponting*, MJ Clarke, DE Bollinger, BJ Haddin, NM Hauritz, PJ Hughes, MEK Hussey, MG Johnson, SM Katich, CJ McKay, MJ North, PM Siddle, SPD Smith, SR Watson





Pakistan squad
Mohammad Yousuf*, Abdur Rauf, Danish Kaneria, Faisal Iqbal, Fawad Alam, Imran Farhat, Kamran Akmal, Khurram Manzoor, Misbah-ul-Haq, Mohammad Aamer, Mohammad Asif, Mohammad Sami, Saeed Ajmal, Salman Butt, Shoaib Malik, Umar Akmal, Umar Gul

Live Cricket Score Here

Fulham v Tottenham Live Barclays Premier League

Live Soccer Here

Tottenham have a poor recent record against Fulham, having won just once in the league (a 5-1 win in December 2007) in their last seven Premier League
Fulham will be looking to build on their excellent performance from last weekend and move into the European places when they welcome Tottenham Hotspur to Craven Cottage on Saturday.
Fulham gave a great illustration of this ability with a convincing 3-0 win over champions Manchester United last time out, capping a couple of months of fine results.

Tottenham Provisional squad:


Media_http4bpblogspot_qsfib


Media_http2bpblogspot_gipww


Gomes, Alnwick, Corluka, Naughton, Assou-Ekotto, Bale, King, Dawson, Bassong, Lennon, Bentley, Kranjcar, Modric, Palacios, Jenas, Huddlestone, Keane, Defoe, Pavlyuchenko, Crouch, Rose.

Fulham Provisional squad:
Schwarzer, Zuberbuhler, Konchesky, Pantsil, Hangeland, Baird, Smalling, Kelly, Hughes, Etuhu, Murphy, Dempsey, Gera, Riise, Greening, Duff, E Johnson, Nevland, Zamora, A Johnson.
Live Soccer Here

Chelsea v Birmingham Live Barclays Premier League

Live Soccer Here

Media_http2bpblogspot_iguaj



Chelsea Provisional squad:

Cech, Hilario, Turnbull, Ivanovic, Belletti, Alex, Carvalho, Terry, A Cole, Lampard, Ballack, Obi, Malouda, J Cole, Zhirkov, Drogba, Kalou, Kakuta, Bruma, Borini, Sturridge, Matic.

Birmingham Provisional squad:
Hart, Carr, Roger Johnson, Dann, Ridgewell, Larsson, Ferguson, Bowyer, McFadden, Jerome, Benitez, Maik Taylor, Fahey, Vignal, Carsley, Phillips, McSheffrey, Damien Johnson, Queudrue, Parnaby.


Live Soccer Score

<iframe src="http://www.scorestosms.com/livescores.php?id=471" name="frame1" scrolling="auto" frameborder="no" align="center" height="1600px" width="600px">

</iframe>

Live Cricket Score

http://pjcterg66jg559l8ds751khsua7bbk6v.open.gmodules.com/ig/ifr?url=http://cricket-live-score-gadget.googlecode.com/svn/trunk/cricket.xml&up_cricket_tab=results&up_cricket_results_month=&up_cricket_results_team=&up_cricket_live_month=&up_cricket_live_team=&up_cricket_fixtures_month=&up_cricket_fixtures_team=&synd=open&w=280&h=320&title=Cricket+Live+Scores&border=%23ffffff%7C0px%2C1px+solid+%23595959%7C0px%2C1px+solid+%23797979%7C0px%2C2px+solid+%23898989&source=http%3A%2F%2Fcurrentaction.blogspot.com%2F#idi_hr=http%3A%2F%2Fcurrentaction.blogspot.com%2Frobots.txt

Monday, December 21, 2009

Picture of New Google Phone


Media_http3bpblogspot_kkajn

Sanofi-Aventis to Buy $1.9 billion Chattem Inc.


Media_http2bpblogspot_nhjcj

Sanofi-Aventis agreed to buy Chattem Inc., Bond medicated body powder maker, for $1.9 billion to expand in consumer health-care in the U.S.

Sanofi will pay $93.50 a share in cash, 34 percent above Chattem’s closing price Dec. 18, the Paris-based drugmaker said in an e-mailed statement. After Purchase Sanofi will create the world’s fifth-largest consumer health-care company by revenue, Sanofi said today.

The acquisition is the second-biggest by Sanofi Chief Executive Officer Chris Viehbacher since he joined the drugmaker a year ago. He’s done more than a dozen deals in emerging markets, vaccines and now consumer products to replace revenue that will be lost to generic competition. Products that account for 20 percent of Sanofi’s annual sales will lose patent protection by 2013.

Chattem, based in Chattanooga, Tennessee, was founded 130 years ago. The company’s products include Selsun Blue dandruff shampoo and Icy Hot pain relief products.

The New Google Phone brings the power of the internet in your pocket


Media_http3bpblogspot_clgcc

Google has been saying for some time to expect numerous Android models to hit the U.S. market. The Journal said the search giant is looking forward to seeing around 18 different models this year. Despite these announcements and predictions, so far only the G1 has appeared in the U.S.

Media_http1bpblogspot_yxwgg

The Nexus One could add Google's powerful imprimatur to an already budding movement to free customers from long contracts in exchange for higher upfront prices on mobile hardware.
Unlocked phones of varying quality are widely available online, Keiter points out. But what Google brings to the table is significant advertising power, brand cachet, and a product potentially enticing enough to hammer open mobile providers' "iron clad" control over what gadgets their customers can wield.
The Google Phone brings the power of the internet in your pocket, in a simple and intuitive device. It combines the traditional voice and SMS capabilities of phones with all the exciting Google services from the PC such as Search, Gmail, Maps, Blogger…

Media_http3bpblogspot_afnbj


Google is supposedly in the process of testing its own phone and may be set to release it as early as 2010. The plan, according to the rumor mill, is to release the device without a carrier partner—a strategy that is near unheard of here in the US and could force some carriers to put up or shut up when it comes to welcoming just any device onto their networks

Gaming

Entertainment

World & Business

Sanofi-Aventis to Buy $1.9 billion Chattem Inc.

Mobile

The New Google Phone brings the power of the internet in your pocket

Technology

The New Google Phone brings the power of the internet in your pocket

Friday, December 18, 2009

Hello, Stack Overflow!

Over the past year, an Android presence has been growing on a relatively new technical Q&A web site called Stack Overflow. The site was designed specifically for programmers, with features like syntax highlighting, tagging, user reputation, and community editing. It's attracted a loyal software developer community, and developers continue to express great praise for this new tool. Well, the Android team has been listening...and we agree.

Today, I'm happy to announce that we're working with Stack Overflow to improve developer support, especially for developers new to Android. In essence, the Android tag on Stack Overflow will become an official Android app development Q&A medium. We encourage you to post your beginner-level technical questions there. It's also important to point out that we don't plan to change the android-developers group, so intermediate and expert users should still feel free to post there.

I think that this will be a great new resource for novice Android developers, and our team is really excited to participate in the growth of the Android developer community on Stack Overflow. I hope to see you all there!

Back and other hard keys: three stories

Android 2.0 introduces new behavior and support for handling hard keys such as BACK and MENU, including some special features to support the virtual hard keys that are appearing on recent devices such as Droid.

This article will give you three stories on these changes: from the most simple to the gory details. Pick the one you prefer.

Story 1: Making things easier for developers

If you were to survey the base applications in the Android platform, you would notice a fairly common pattern: add a little bit of magic to intercept the BACK key and do something different. To do this right, the magic needs to look something like this:


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}

return super.onKeyDown(keyCode, event);
}


How to intercept the BACK key in an Activity is also one of the common questions we see developers ask, so as of 2.0 we have a new little API to make this more simple and easier to discover and get right:


@Override
public void onBackPressed() {
// do something on back.
return;
}


If this is all you care about doing, and you're not worried about supporting versions of the platform before 2.0, then you can stop here. Otherwise, read on.

Story 2: Embracing long press

One of the fairly late addition to the Android platform was the use of long press on hard keys to perform alternative actions. In 1.0 this was long press on HOME for the recent apps switcher and long press on CALL for the voice dialer. In 1.1 we introduced long press on SEARCH for voice search, and 1.5 introduced long press on MENU to force the soft keyboard to be displayed as a backwards compatibility feature for applications that were not yet IME-aware.

(As an aside: long press on MENU was only intended for backwards compatibility, and thus has some perhaps surprising behavior in how strongly the soft keyboard stays up when it is used. This is not intended to be a standard way to access the soft keyboards, and all apps written today should have a more standard and visible way to bring up the IME if they need it.)

Unfortunately the evolution of this feature resulted in a less than optimal implementation: all of the long press detection was implemented in the client-side framework's default key handling code, using timed messages. This resulted in a lot of duplication of code and some behavior problems; since the actual event dispatching code had no concept of long presses and all timing for them was done on the main thread of the application, the application could be slow enough to not update within the long press timeout.

In Android 2.0 this all changes, with a real KeyEvent API and callback functions for long presses. These greatly simplify long press handling for applications, and allow them to interact correctly with the framework. For example: you can override Activity.onKeyLongPress() to supply your own action for a long press on one of the hard keys, overriding the default action provided by the framework.

Perhaps most significant for developers is a corresponding change in the semantics of the BACK key. Previously the default key handling executed the action for this key when it was pressed, unlike the other hard keys. In 2.0 the BACK key is now execute on key up. However, for existing apps, the framework will continue to execute the action on key down for compatibility reasons. To enable the new behavior in your app you must set android:targetSdkVersion in your manifest to 5 or greater.

Here is an example of code an Activity subclass can use to implement special actions for a long press and short press of the CALL key:


@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_CALL) {
// a long press of the call key.
// do our work, returning true to consume it. by
// returning true, the framework knows an action has
// been performed on the long press, so will set the
// canceled flag for the following up event.
return true;
}
return super.onKeyLongPress(keyCode, event);
}



@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_CALL && event.isTracking()
&& !event.isCanceled()) {
// if the call key is being released, AND we are tracking
// it from an initial key down, AND it is not canceled,
// then handle it.
return true;
}
return super.onKeyUp(keyCode, event);
}


Note that the above code assumes we are implementing different behavior for a key that is normally processed by the framework. If you want to implement long presses for another key, you will also need to override onKeyDown to have the framework track it:


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_0) {
// this tells the framework to start tracking for
// a long press and eventual key up. it will only
// do so if this is the first down (not a repeat).
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}


Story 3: Making a mess with virtual keys

Now we come to the story of our original motivation for all of these changes: support for virtual hard keys, as seen on the Droid and other upcoming devices. Instead of physical buttons, these devices have a touch sensor that extends outside of the visible screen, creating an area for the "hard" keys to live as touch sensitive areas. The low-level input system looks for touches on the screen in this area, and turns these into "virtual" hard key events as appropriate.

To applications these basically look like real hard keys, though the generated events will have a new FLAG_VIRTUAL_HARD_KEY bit set to identify them. Regardless of that flag, in nearly all cases an application can handle these "hard" key events in the same way it has always done for real hard keys.

However, these keys introduce some wrinkles in user interaction. Most important is that the keys exist on the same surface as the rest of the user interface, and they can be easily pressed with the same kind of touches. This can become an issue, for example, when the virtual keys are along the bottom of the screen: a common gesture is to swipe up the screen for scrolling, and it can be very easy to accidentally touch a virtual key at the bottom when doing this.

The solution for this in 2.0 is to introduce a concept of a "canceled" key event. We've already seen this in the previous story, where handling a long press would cancel the following up event. In a similar way, moving from a virtual key press on to the screen will cause the virtual key to be canceled when it goes up.

In fact the previous code already takes care of this — by checking isCanceled() on the key up, canceled virtual keys and long presses will be ignored. There are also individual flags for these two cases, but they should rarely be used by applications and always with the understanding that in the future there may be more reasons for a key event to be canceled.

For existing application, where BACK key compatibility is turned on to execute the action on down, there is still the problem of accidentally detecting a back press when intending to perform a swipe. Though there is no solution for this except to update an application to specify it targets SDK version 5 or later, fortunately the back key is generally positioned on a far side of the virtual key area, so the user is much less likely to accidentally hit it than some of the other keys.

Writing an application that works well on pre-2.0 as well as 2.0 and later versions of the platform is also fairly easy for most common cases. For example, here is code that allows you to handle the back key in an activity correctly on all versions of the platform:


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
// Take care of calling this method on earlier versions of
// the platform where it doesn't exist.
onBackPressed();
}

return super.onKeyDown(keyCode, event);
}

@Override
public void onBackPressed() {
// This will be called either automatically for you on 2.0
// or later, or by the code above on earlier versions of the
// platform.
return;
}


For the hard core: correctly dispatching events

One final topic that is worth covering is how to correctly handle events in the raw dispatch functions such as onDispatchEvent() or onPreIme(). These require a little more care, since you can't rely on some of the help the framework provides when it calls the higher-level functions such as onKeyDown(). The code below shows how you can intercept the dispatching of the BACK key such that you correctly execute your action when it is release.


@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) {

// Tell the framework to start tracking this event.
getKeyDispatcherState().startTracking(event, this);
return true;

} else if (event.getAction() == KeyEvent.ACTION_UP) {
getKeyDispatcherState().handleUpEvent(event);
if (event.isTracking() && !event.isCanceled()) {

// DO BACK ACTION HERE
return true;

}
}
return super.dispatchKeyEvent(event);
} else {
return super.dispatchKeyEvent(event);
}
}


The call to getKeyDispatcherState() returns an object that is used to track the current key state in your window. It is generally available on the View class, and an Activity can use any of its views to retrieve the object if needed.

Thursday, December 17, 2009

New resources and sample code on developer.android.com

Hey Android developers—if you've visited the online Android SDK documentation recently, you may have noticed a few changes. That's right, there's a new Resources tab, which was designed to take some of the load off the Developer's Guide. We've moved a number of existing resources to the Resources tab, including tutorials, sample code, and FAQs. We've also formalized a few of our most popular developer blog posts into technical articles; watch for more of these to appear in the future.

In addition, we just released a new batch of sample code, available now as a ZIP file download on the samples index page. And we're working on updating the way in which we distribute official sample code; more on that some other time.


Media_http2bpblogspot_afhic

The new sample code includes:



  • Multiple Resolutions: a simple example showing how to use resource directory qualifiers to support multiple screen configurations and Android SDK versions.


  • Wiktionary and WiktionarySimple: sample applications that illustrate how to create an interactive home screen widget.


  • Contact Manager: an example on using the new ContactsContract interface to query and manipulate a user's various accounts and contact providers.


  • Bluetooth Chat: a fun little demo that allows two users to have a 1 on 1 chat over Bluetooth. It demonstrates how to discover devices, initiate a connection, and transfer data.


  • API Demos > App > Activity > QuickContactsDemo: a demo showing how to use the android.widget.QuickContactsBadge class, new in Android 2.0.


  • API Demos > App > Activity > SetWallpaper: a demo showing how to use the new android.app.WallpaperManager class to allow users to change the system wallpaper.


  • API Demos > App > Text-To-Speech: a sample using Text-To-Speech (speech synthesis) to make your application talk.


  • NotePad (now with Live Folders): this sample now includes code for creating Live Folders.

We hope these new samples can be a valuable resource for learning some of the newer features in Android 1.6 and 2.0. Let us know in the android-developers Google Group if you have any questions about these new samples or about the new Resources tab.

Thanks for tuning in, and 'til next time, happy coding!

Knowing is half the battle

As a developer, I often wonder which Android platforms my applications should support,especially as the number of Android-powered devices grows. Should my application only focus on the latest version of the platform or should it support older ones as well?

To help with this kind of decision, I am excited to announce the new
device dashboard. It provides information about deployed Android-powered devices that is helpful to developers as they build and update their apps. The dashboard provides the relative distribution of Android platform versions on devices running Android Market.






Media_httpchartapisgo_meeof



























Android PlatformPercentage of Devices
1.10.3%
1.527.7%
1.654.2%
2.02.9%
2.0.114.8%

The above graph shows the relative number of Android devices that have accessed Android Market during the first 14 days of December 2009.

From a developer's perspective, there are a number of interesting points on this graph:


  • At this point, there's little incentive to make sure a new application is
    backward compatible with Android 1.0 and Android 1.1.

  • Close to 30% of the devices are running Android 1.5. To take advantage of this significant install base, you may consider support for Android 1.5.

  • Starting with Android 1.6, devices can have different screen densities & sizes. There are several devices out there that fall in this category, so make sure to adapt your application to support different screen sizes and take advantage of devices with small, low density (e.g QVGA) and normal, high density (e.g. WVGA) screens. Note that Android Market will not list your application on small screen devices unless its manifest explicitly indicates support for "small" screen sizes. Make sure you properly configure the emulator and test your application on different screen sizes before uploading to Market.

  • A new SDK for Android 2.0.1 was released two weeks ago. All Android 2.0 devices will be updated to 2.0.1 before the end of the year, so if your application uses features specific to Android 2.0, you are encouraged to update it to take advantage of the latest Android 2.0.1 API instead.

In summary, Android 1.5, 1.6, and 2.0.1 are the 3 versions of the platform that are deployed in volume. Our goal is to provide you with the tools and information to make it easy for you to target specific versions of the platform or all the versions that are deployed in volume.

We plan to update the dashboard regularly to reflect deployment of new Android platforms. We also plan to expand the dashboard to include other information like devices per screen size and so on.

Kasus Twitter Luna Maya

Gosip kasus Twitter Luna Maya Maki Infotainment. Lewat situs jejaring Twitter Luna Maya yang ditulis Selasa (15/12/2009), kekasih Ariel "Peterpan" itu melontarkan komentar pedas kepada
"Infotemnt derajatnya lebh HINA dr pd PELACUR, PEMBUNUH!!!! may ur soul burn in hell!!..." begitu tulis pemilik akun @lunmay itu.

Tak ayal, komentar Luna Maya menyulut tanggapan keras. Bambangelf, salah satu follower Twitter Luna Maya, langsung menanggapinya. "Bahasa lu makin norak, bodoh ga terpelajar dan ga mikir panjang...," tulis Bambangelf menanggapi komentar Luna.

Tak terima dengan komentar tersebut, Luna langsung "menyerang" dengan kata-kata garang. "bambangelf: apa urusan lu ama bahasa gw!!!? Kenal aja gak gw ama lo. knp lo ribet ngurusin gw??...."

Membaca reaksi Luna, Bambang yang bekerja di salah satu media televisi swasta itu malah menertawakan Luna. "hahahahaha... lu makin kelihatan t**l ;)"

Bambang yang dihubungi Kompas.com melalui telepon genggamnya, Rabu (16/12/2009), membenarkan hal itu. Ia hanya menyesalkan ucapan Luna yang terkesan kasar di public domain. Sebagai public figure, Luna seharusnya bisa menjaga citra dirinya. "Dia lupa kalau dia itu dibesarkan oleh media," katanya.

Tak mau ucapannya jadi blunder, Luna sepertinya memilih aman. Ia langsung menghapus akun Lunmay di situs jejaring sosial itu, menyusul mulai ramainya reaksi atas ucapannya itu. Saat ini jumlah follower Luna Maya mencapai 123.719.

Hingga saat ini, belum diperoleh keterangan dari Luna mengenai komentar yang ditulis di akun Twitter miliknya itu.

Sebelum Tutup Akun Twitternya, Luna Maya Sempat Minta Maaf

Seakan menyesali ulahnya di situs jejaring Twitter, presenter yang juga model, Luna Maya, langsung meminta maaf melalui status yang di-update-nya pula di Twitter, hingga akhirnya kekasih Ariel "Peterpan" itu menonaktifkan akunnya.

"Maaf yaa semua untuk twit yg gak penting itu, tp untuk yg mengerti makasih bgt, tp untuk yg gak ngerti jg maaf...," tulis Luna di akun Twitter miliknya, Rabu (16/12/2009).

Friday, December 11, 2009

Come to Our Virtual Office Hours

Starting this week, we're going to be holding regular IRC office hours for Android app developers in the #android-dev channel on irc.freenode.net. Members of the Android team will be on hand to answer your technical questions. (Note that we will not be able to provide customer support for the phones themselves.)

We've arranged our office hours to accommodate as many different schedules as possible, for folks around the world. We will initially hold two sessions each week:


  • 12/15/09 Tuesday, 9 a.m. to 10 a.m. PST

  • 12/17/09, Thursday 5 p.m. to 6 p.m. PST

  • 12/22/09, Tuesday 9 a.m. to 10 a.m. PST

  • 01/06/10 Wednesday 9 a.m. to 10 a.m. PST

  • 01/07/10 Thursday 5 p.m. to 6 p.m. PST

Check Wikipedia for a helpful list of IRC clients. Alternatively, you could use a web interface such as the one at freenode.net. We will try to answer as many as we can get through in the hour.

We hope to see you there!

Thursday, December 10, 2009

Optimize your layouts

<style type="text/css">
/* Stylesheet generated from TextMate theme
*
* Mac Classic
*
*
*/

/* Mostly to improve view within the TextMate HTML viewer */
body {
margin: 0;
padding: 0;
}

pre.textmate-source {
margin: 0;
padding: 0 0 0 2px;
font-family: Monaco, monospace;
font-size: 11px;
line-height: 1.3em;
word-wrap: break-word;
white-space: pre;
white-space: pre-wrap;
white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
}

pre.textmate-source.mac_classic {
color: #000000;
background-color: #FFFFFF;
}

pre.textmate-source .linenum {
width: 75px;
padding: 0.1em 1em 0.2em 0;
color: #888;
background-color: #eee;
}
pre.textmate-source.mac_classic span {
padding-top: 0.2em;
padding-bottom: 0.1em;
}
pre.textmate-source.mac_classic ::selection {
background-color: rgba(77, 151, 255, 0.33);
}
/* Comment */
pre.textmate-source.mac_classic .comment {
color: #0066FF;
font-style: italic;
}

/* Keyword */
pre.textmate-source.mac_classic .keyword, pre.textmate-source.mac_classic .storage {
color: #0000FF;
font-weight: bold;
}

/* Number */
pre.textmate-source.mac_classic .constant_numeric {
color: #0000CD;
}

/* User-defined constant */
pre.textmate-source.mac_classic .constant {
color: #C5060B;
font-weight: bold;
}

/* Built-in constant */
pre.textmate-source.mac_classic .constant_language {
color: #585CF6;
font-weight: bold;
}

/* Variable */
pre.textmate-source.mac_classic .variable_language, pre.textmate-source.mac_classic .variable_other {
color: #318495;
}

/* String */
pre.textmate-source.mac_classic .string {
color: #036A07;
}

/* String interpolation */
pre.textmate-source.mac_classic .constant_character_escape, pre.textmate-source.mac_classic .string .source {
color: #26B31A;
}

/* Preprocessor line */
pre.textmate-source.mac_classic .meta_preprocessor {
color: #1A921C;
}

/* Preprocessor directive */
pre.textmate-source.mac_classic .keyword_control_import {
color: #0C450D;
font-weight: bold;
}

/* Function name */
pre.textmate-source.mac_classic .entity_name_function, pre.textmate-source.mac_classic .support_function_any-method {
color: #0000A2;
font-weight: bold;
}

/* Type name */
pre.textmate-source.mac_classic .entity_name_type {
text-decoration: underline;
}

/* Inherited class name */
pre.textmate-source.mac_classic .entity_other_inherited-class {
font-style: italic;
}

/* Function parameter */
pre.textmate-source.mac_classic .variable_parameter {
font-style: italic;
}

/* Function argument and result types */
pre.textmate-source.mac_classic .storage_type_method {
color: #70727E;
}

/* Section */
pre.textmate-source.mac_classic .meta_section .entity_name_section, pre.textmate-source.mac_classic .declaration_section .entity_name_section {
font-style: italic;
}

/* Library function */
pre.textmate-source.mac_classic .support_function {
color: #3C4C72;
font-weight: bold;
}

/* Library object */
pre.textmate-source.mac_classic .support_class, pre.textmate-source.mac_classic .support_type {
color: #6D79DE;
font-weight: bold;
}

/* Library constant */
pre.textmate-source.mac_classic .support_constant {
color: #06960E;
font-weight: bold;
}

/* Library variable */
pre.textmate-source.mac_classic .support_variable {
color: #21439C;
font-weight: bold;
}

/* JS: Operator */
pre.textmate-source.mac_classic .keyword_operator_js {
color: #687687;
}

/* Invalid */
pre.textmate-source.mac_classic .invalid {
color: #FFFFFF;
background-color: #990000;
}

/* Invalid trailing whitespace */
pre.textmate-source.mac_classic .invalid_deprecated_trailing-whitespace {
background-color: #FFD0D0;
}

/* Embedded source */
pre.textmate-source.mac_classic .text .source, pre.textmate-source.mac_classic .string_unquoted {
background-color: rgba(0, 0, 0, 0.05);
}

/* Embedded embedded source */
pre.textmate-source.mac_classic .text .source .string_unquoted, pre.textmate-source.mac_classic .text .source .text .source {
background-color: rgba(0, 0, 0, 0.06);
}

/* Markup XML declaration */
pre.textmate-source.mac_classic .meta_tag_preprocessor_xml {
color: #68685B;
}

/* Markup DOCTYPE */
pre.textmate-source.mac_classic .meta_tag_sgml_doctype, pre.textmate-source.mac_classic .meta_tag_sgml_doctype .entity, pre.textmate-source.mac_classic .meta_tag_sgml_doctype .string, pre.textmate-source.mac_classic .meta_tag_preprocessor_xml, pre.textmate-source.mac_classic .meta_tag_preprocessor_xml .entity, pre.textmate-source.mac_classic .meta_tag_preprocessor_xml .string {
color: #888888;
}

/* Markup DTD */
pre.textmate-source.mac_classic .string_quoted_docinfo_doctype_DTD {
font-style: italic;
}

/* Markup tag */
pre.textmate-source.mac_classic .meta_tag, pre.textmate-source.mac_classic .declaration_tag {
color: #1C02FF;
}

/* Markup name of tag */
pre.textmate-source.mac_classic .entity_name_tag {
font-weight: bold;
}

/* Markup tag attribute */
pre.textmate-source.mac_classic .entity_other_attribute-name {
font-style: italic;
}

/* Markup: Heading */
pre.textmate-source.mac_classic .markup_heading {
color: #0C07FF;
font-weight: bold;
}

/* Markup: Quote */
pre.textmate-source.mac_classic .markup_quote {
color: #000000;
font-style: italic;
}

/* Markup: List */
pre.textmate-source.mac_classic .markup_list {
color: #B90690;
}
</style>Writing user interface layouts for Android applications is easy, but it can sometimes be difficult to optimize them. Most often, heavy modifications made to existing XML layouts, like shuffling views around or changing the type of a container, lead to inefficiencies that go unnoticed.

Starting with the SDK Tools Revision 3 you can use a tool called layoutopt to automatically detect common problems. This tool is currently only available from the command line and its use is very simple - just open a terminal and launch the layoutopt command with a list of directories or XML files to analyze:



$ layoutopt samples/
samples/compound.xml
7:23 The root-level <FrameLayout/> can be replaced with <merge/>
11:21 This LinearLayout layout or its FrameLayout parent is useless samples/simple.xml
7:7 The root-level <FrameLayout/> can be replaced with <merge/>
samples/too_deep.xml
-1:-1 This layout has too many nested layouts: 13 levels, it should have <= 10!
20:81 This LinearLayout layout or its LinearLayout parent is useless
24:79 This LinearLayout layout or its LinearLayout parent is useless
28:77 This LinearLayout layout or its LinearLayout parent is useless
32:75 This LinearLayout layout or its LinearLayout parent is useless
36:73 This LinearLayout layout or its LinearLayout parent is useless
40:71 This LinearLayout layout or its LinearLayout parent is useless
44:69 This LinearLayout layout or its LinearLayout parent is useless
48:67 This LinearLayout layout or its LinearLayout parent is useless
52:65 This LinearLayout layout or its LinearLayout parent is useless
56:63 This LinearLayout layout or its LinearLayout parent is useless
samples/too_many.xml
7:413 The root-level <FrameLayout/> can be replaced with <merge/>
-1:-1 This layout has too many views: 81 views, it should have <= 80! samples/useless.xml
7:19 The root-level <FrameLayout/> can be replaced with <merge/>
11:17 This LinearLayout layout or its FrameLayout parent is useless


For each analyzed file, the tool will indicate the line numbers of each tag that could potentially be optimized. In some cases, layoutopt will also offer a possible solution.

The current version of layoutopt contains a dozen rules used to analyze your layout files and future versions will contain more. Future plans for this tool also include the ability to create and use your own analysis rules, to automatically modify the layouts with optimized XML, and to use it from within Eclipse and/or a standalone user interface.


Windows users: to start layoutopt, open the file called layoutopt.bat in the tools directory of the SDK and on the last line, replace %jarpath% with -jar %jarpath%.

A Frugal Lifestyle

Astaga.com lifestyle on the net , The word “frugality” has left a more negative connotation for most people than simply being a saver, a cheapskate or tightwad. There is a thin line difference to saving and too much frugality to the point of being awkward and ridiculous. This is where the negative connotation comes from.

But if you are guided with the right principles and reasons in deciding to live a frugal lifestyle, you would never go wrong.

If you have decided to live frugally, no need to be worried of insults. Keep your head up high. And keep your focus through these tips.

1. Eating Out - Having gimmicks with friends on a Friday night is fine if you do it once in a while. But this can be expensive if you add them up at the end of the month.

2. Clothing - Naturally, if you are the kind of person who adores signature and designer clothes, do not expect that there will be something left of your take home pay. Instead of being trendy, wear clothes that can easily be matched with your other clothes.

3. Own Home - If you are planning to move out and find a place to settle, do not be overwhelmed by the excitement, instead be practical. As a start, buy a smaller house or try other ways like rent-to-own, do-it-yourself arrangements, and owner financing.

4. Buying Your Own Car - Shy away from sports cars or SUVs. Just stick to your purpose of buying a car which is to transport you anywhere you need to go. Check out also program cars like a new car warranty. Maybe this is not just the best time to replace your car with a new one.

5. Shopping for Groceries - As much as possible do not go with items that are branded. Choose non-brands and try looking for items on the highest or lowest shelves for best prices. Grab the opportunity and shop during sales or use coupons.

6. Family Out - There are inexpensive ways to bond with your family and be entertained like going to libraries, local parks, malling, picnics, visit friends and local church.

7. Buying School Supplies - Stock school supplies at home and do not buy anything fancy.

8. Be contented with what you have and try to live within what you earn.

9. Plan your Child’s College Education - Teach them the ways to be independent and self-supporting by encouraging them to apply for scholarships and “on campus jobs”.

10. Be Aware of your Financial Limitations

11. Anticipate your Failures by Planning - Have always a budget plan so you would avoid impulsive buying.

Thursday, December 3, 2009

Android SDK Updates

Today we are releasing updates to multiple components of the Android SDK:



  • Android 2.0.1, revision 1

  • Android 1.6, revision 2

  • SDK Tools, revision 4



Android 2.0.1 is a minor update to Android 2.0. This update includes several bug fixes and behavior changes, such as application resource selection based on API level and changes to the value of some Bluetooth-related constants. For more detailed information, please see the Android 2.0.1 release notes.


To differentiate its behavior from Android 2.0, the API level of Android 2.0.1 is 6. All Android 2.0 devices will be updated to 2.0.1 before the end of the year, so developers will no longer need to support Android 2.0 at that time. Of course, developers of applications affected by the behavior changes should start compiling and testing their apps immediately.


We are also providing an update to the Android 1.6 SDK component. Revision 2 includes fixes to the compatibility mode for applications that don't support multiple screen sizes, as well as SDK fixes. Please see the Android 1.6, revision 2 release notes for the full list of changes.


Finally, we are also releasing an update to the SDK Tools, now in revision 4. This is a minor update with mostly bug fixes in the SDK Manager. A new version of the Eclipse plug-in that embeds those fixes is also available. For complete details, please see the SDK Tools, revision 4 and ADT 0.9.5 release notes.


One more thing: you can now follow us on twitter @AndroidDev.


Monday, November 30, 2009

Announcing the Winners of ADC 2

Back in May at Google I/O, we announced ADC 2 -- the second Android Developer Challenge -- to encourage the development of cool apps that delight mobile users. We received many interesting and high-quality applications -- everything from exciting arcade games to nifty productivity utilities. We also saw apps that took advantage of openness of Android to enhance system behavior at a deep level to provide users with a greater degree of customization and utility. We were particularly pleased to see submissions from many smaller and independent developers.

Over the last couple of months, tens of thousands of Android users around the world reviewed and scored these applications. There were many great apps and the scores were very close. Together with our official panel of judges, these users have spoken and selected our winners!

I am pleased to present the ADC 2 winners gallery, which includes not only the top winners overall and in each category, but also all of the applications that made it to the top 200. There are a lot of great applications in addition to the top winners.

Thanks to everyone who submitted applications or helped us judge the entrants. We encourage all developers to submit their applications to Android Market where their app can be downloaded and enjoyed by Android users around the world.

Sunday, November 29, 2009

Telkom Buka e-Commerce Mirip Amazon

mbah gendeng mengintip berita yang melansir ngobrol seputar bisnis online, berita cukup menarik tentang perkembangan bisnis online indonesia yaitu Telkom Buka e-Commerce Mirip Amazon.

PT Telekomunikasi Indonesia Tbk (Telkom) resmi meluncurkan portal penyedia layanan e-commerce, content agregator dan fitur komunikasi Mojopia.

Mojopia merupakan strategi perluasan bisnis Telkom yang memberi dukungan bagi para pelaku bisnis dalam mengembangkan usaha. Melalui Mojopia, UKM bisa mengembangkan usahanya lewat layanan e-commerce.

"Bentuk layanan portal ini seperti Amazon," kata CEO Mojopia, Shinta Dhanuwardoyo, saat peluncuran produk ini di Jakarta, Kamis.

"Kami menargetkan pada 2010 sebanyak 1.000 merchant (pedagang) aktif membuka toko online di Mojopia dengan sekitar 1 juta jenis mata dagangan," tambahnya.

Direktur Utama Telkom Rinaldi Firmansyah mengatakan, pengembangan Mojopia bagian dari implementasi transformasi bisnis Telkom yang sebelumnya berbasis telekomunikasi dan informasi menjadi lebih luas, yaitu "Telecommunication, Information, Media, and Edutainment" (Time).

Menurut Rinaldi, Mojopia.com bagian dari anak perusahaan Telkom, Metranet dengan investasi sekitar 2 juta dolar AS.

Investasi ditujukan untuk sumber daya manusia, membangun aplikasi dan pemasaran. Sedangkan penyediaan kapasitas infrastruktur bandwitdh dan backbone tetap menyewa kepada induk perusahaan Telkom.

Adapun untuk kemudahan transaksi online, Mojopia bersinergi dengan Finnet, anak perusahaan lain Telkom yang bergerak layanan solusi kartu pembayaran.

Tuesday, November 24, 2009

ADC 2 Public Judging is now closed

Thanks to tens of thousands of Android users around the world who participated in the review of ADC 2 finalist applications, we have now collected sufficient scores to complete Round 2 of public judging.

We are reviewing the final results and will announce the top winners this coming Monday, November 30. Thanks to all who've participated in ADC 2 and good luck to all the finalists.

Monday, November 23, 2009

Adam Lambert American Music Awards

With the American Music Awards only two days away, and with everyone from Rihanna to Eminem to Adam Lambert American Music Awards set to perform American Dream Movie, there's bound to be multiple standout moments. So how will Lambert compete with those other superstars when performs his "glammy" single, "For Your Entertainment"? Lots of sex appeal, obviously.

"It's gonna be sexy, I think," he told MTV News about his performance on Sunday night. "The wardrobe is amazing. I'm working with 10 dancers that I'm so impressed by. I was looking for a certain sensuality — five guys, five girls and they're all incredible."

Lambert is also bringing his "For Your Entertainment" video bandon board for the performance, and said he simply loves working with them. "I also auditioned a band a couple weeks ago that I've been working with," he said. "I'm so impressed by [them] and it feels really good to be part of a team situation again. It's great because I'm back in a team environment and it reminds me of my roots in musical theater."

Occasionally, when performing, artists like to take aspects of their music videos as a basis for their live act. And fans will definitely get to see aspects of his Ray Kay-directed video for "For Your Entertainment."

It is kind of an extension of what we filmed for the music video stylistically, the fashion of it, some of the choreography choices," he said. "The band is also featured in the music video, so yeah, it's really sexy."

Monday, November 16, 2009

Film 2012 Jualan Soal Kiamat ?


Film 2012 bertema kiamat '2012' diluncurkan secara serentak di seluruh dunia pada Jumat 13 November 2009. Film besutan sutradara Hollywood, Roland Emmerich itu lantas jadi fenomenal.

Penonton rela antri dan berdesak-desakan demi menonton film yang dilatarbelakangi akhir penanggalan Bangsa Maya pada 2012, yang dihubungkan dengan hari akhir dunia.

Antrian panjang penonton juga berarti pundi-pundi uang. Dalam tiga hari penayangan, uang senilai US$ 65 juta, berhasil dikumpulkan. Itu hanya di Amerika Serikat.

Sementara di seluruh di dunia, '2012' diperkirakan menghasilkan tak kurang dari US$ 225 juta. Dibandingkan dengan ongkos produksi yang sebesar US$ 200 juta, '2012' dipastikan untung besar.

Kiamat tak hanya ditunjukan dalam '2012', kekhawatiran besar atas nasib umat manusia juga ditunjukan dalam film-film anyar 'The Road' dan 'The Book of Eli'.

Kekhawatiran atas kehancuran dunia akibat pemanasan global, perang Irak dan Afganistan, ancaman teroris, dan kehancuran ekonomi, akan terus diolah dalam film.

*****
Bukan kali ini saja Hollywood menangguk untung dari menjual film bertema kiamat dan kehancuran besar.

Tak hanya memanfaatkan berbagai ramalan, yang bahkan di luar pemikiran Nostradamus, sang peramal besar, versi kiamat ala Hollywood menyesuaikan diri dengan trend ancaman yang paling dirasakan manusia di era tertentu.

Seperti dikutip dari laman, CBSnews, tema kehancuran dunia mulai marak di awal Perang Dingin. Ketakutan dan trauma nuklir diterjemahkan Hollywood dalam film, sebut saja 'On the Beach', 'Fail-Safe', dan 'Dr. Strangelobe'.

Ketika dunia mengkhawatirkan ledakan jumlah manusia dan masa depan yang suram, Hollywood lantas melempar film-film dengan tema itu, sebut saja 'Soylent Green', 'Silent Running', dan 'The Omega Man'.

Di tahun 1950-an, Hollywood juga menerjemahkan kiamat sebagai perang manusia dengan mahluk luar angkasa atau serangan benda-benda luar angkasa, misalnya dalam "When Worlds Collide" and "War of the Worlds."

Kiamat juga diterjemahkan Hollywod dalam banyak cara, dari yang bisa diterima nalar hingga yang paling muskil.


Film bertemakan wabah vampir , misalnya film Ethan Hawke 'Daybreaker' atau wabah zombie yang menggantikan manusia, seperti tergambar dalam film komedi horor, 'Zombieland' dan 'George Romero's Surbvival of The Death'.

Kehancuran dunia ala Hollywood juga disebabkan perang mati-matian manusia dengan mesin seperti ditunjukan dalam 'Terminator Salvation' dan petualangan animasi '9".

Bangsa kera juga diberi tempat Hollywood sebagai mahluk penyebab kehgancuran manusia dalam 'Planet of the Apes'.

Film dokumenter Al Gore. 'An Inconvenient Truth' yang menggambarkan kerusakan lingkungan akibat pemanasan global, menginspirasi adegan banjir dahsyat dan munculnya bahtera Nuh.

Gambaran tentang bumi yang rusak dan tertutup gunungan sampah juga muncul dalam film anak-anak 'Wall-E'.

Jika, ramalan kehancuran dunia pada 2012 tak terbukti, setidaknya kiamat ala Hollywood akan terus bermetamorfosa.



Wednesday, November 11, 2009

Integrating Application with Intents

Written in collaboration with Michael Burton, Mob.ly; Ivan Mitrovic, uLocate; and Josh Garnier, OpenTable.

OpenTable, uLocate, and Mob.ly worked together to create a great user experience on Android. We saw an opportunity to enable WHERE and GoodFood users to make reservations on OpenTable easily and seamlessly. This is a situation where everyone wins — OpenTable gets more traffic, WHERE and GoodFood gain functionality to make their applications stickier, and users benefit because they can make reservations with only a few taps of a finger. We were able to achieve this deep integration between our applications by using Android's Intent mechanism. Intents are perhaps one of Android's coolest, most unique, and under-appreciated features. Here's how we exploited them to compose a new user experience from parts each of us have.

Designing

One of the first steps is to design your Intent interface, or API. The main public Intent that OpenTable exposes is the RESERVE Intent, which lets you make a reservation at a speci���c restaurant and optionally specify the date, time, and party size.

Hereʼs an example of how to make a reservation using the RESERVE Intent:


startActivity(new Intent("com.opentable.action.RESERVE",
Uri.parse("reserve://opentable.com/2947?partySize=3")));


Our objective was to make it simple and clear to the developer using the Intent. So how did we decide what it would look like?

First, we needed an Action. We considered using Intent.ACTION_VIEW, but decided this didn't map well to making a reservation, so we made up a new action. Following the conventions of the Android platform (roughly <package-name>.action.<action-name>), we chose "com.opentable.action.RESERVE". Actions really are just strings, so it's important to namespace them. Not all applications will need to de���ne their own actions. In fact, common actions such as Intent.ACTION_VIEW (aka "android.intent.action.VIEW") are often a better choice if youʼre not doing something unusual.

Next we needed to determine how data would be sent in our Intent. We decided to have the data encoded in a URI, although you might choose to receive your data as a collection of items in the Intent's data Bundle. We used a scheme of "reserve:" to be consistent with our action. We then put our domain authority and the restaurant ID into the URI path since it was required, and we shunted off all of the other, optional inputs to URI query parameters.

Exposing

Once we knew what we wanted the Intent to look like, we needed to register the Intent with the system so Android would know to start up the OpenTable application. This is done by inserting an Intent filter into the appropriate Activity declaration in AndroidManifest.xml:


<activity android:name=".activity.Splash" ... >
...
<intent-filter>
<action android:name="com.opentable.action.RESERVE"/>
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="reserve" android:host="opentable.com"/>
</intent-filter>
...
</activity>


In our case, we wanted users to see a brief OpenTable splash screen as we loaded up details about their restaurant selection, so we put the Intent Filter in the splash Activity de���nition. We set our category to be DEFAULT. This will ensure our application is launched without asking the user what application to use, as long as no other Activities also list themselves as default for this action.

Notice that things like the URI query parameter ("partySize" in our example) are not speci���ed by the Intent ���lter. This is why documentation is key when de���ning your Intents, which weʼll talk about a bit later.

Processing

Now the only thing left to do was write the code to handle the intent.


protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Uri uri;
final int restaurantId;
try {
uri = getIntent().getData();
restaurantId = Integer.parseInt( uri.getPathSegments().get(0));
} catch(Exception e) {
// Restaurant ID is required
Log.e(e);
startActivity( FindTable.start(FindTablePublic.this));
finish();
return;
}
final String partySize = uri.getQueryParameter("partySize");
...
}


Although this is not quite all the code, you get the idea. The hardest part here was the error handling. OpenTable wanted to be able to gracefully handle erroneous Intents that might be sent by partner applications, so if we have any problem parsing the restaurant ID, we pass the user off to another Activity where they can find the restaurant manually. It's important to verify the input just as you would in a desktop or web application to protect against injection attacks that might harm your app or your users.

Calling and Handling Uncertainty with Grace

Actually invoking the target application from within the requester is quite straight-forward, but there are a few cases we need to handle. What if OpenTable isn't installed? What if WHERE or GoodFood doesn't know the restaurant ID?



















Restaurant ID knownRestaurant ID unknown
User has OpenTableCall OpenTable IntentDon't show reserve button
User doesn't have OpenTableCall Market IntentDon't show reserve button

You'll probably wish to work with your partner to decide exactly what to do if the user doesn't have the target application installed. In this case, we decided we would take the user to Android Market to download OpenTable if s/he wished to do so.


public void showReserveButton() {

// setup the Intent to call OpenTable
Uri reserveUri = Uri.parse(String.format( "reserve://opentable.com/%s?refId=5449",
opentableId));
Intent opentableIntent = new Intent("com.opentable.action.RESERVE", reserveUri);

// setup the Intent to deep link into Android Market
Uri marketUri = Uri.parse("market://search?q=pname:com.opentable");
Intent marketIntent = new Intent(Intent.ACTION_VIEW).setData(marketUri);

opentableButton.setVisibility(opentableId > 0 ? View.VISIBLE : View.GONE);
opentableButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
PackageManager pm = getPackageManager();
startActivity(pm.queryIntentActivities(opentableIntent, 0).size() == 0 ?
opentableIntent : marketIntent);
}
});
}


In the case where the ID for the restaurant is unavailable, whether because they don't take reservations or they aren't part of the OpenTable network, we simply hide the reserve button.


Media_httpdocsgooglec_vixfd


Media_httpdocsgooglec_gcsnr

Publishing the Intent Specification

Now that all the technical work is done, how can you get other developers to use your Intent-based API besides 1:1 outreach? The answer is simple: publish documentation on your website. This makes it more likely that other applications will link to your functionality and also makes your application available to a wider community than you might otherwise reach.

If there's an application that you'd like to tap into that doesn't have any published information, try contacting the developer. It's often in their best interest to encourage third parties to use their APIs, and if they already have an API sitting around, it might be simple to get you the documentation for it.

Summary

It's really just this simple. Now when any of us is in a new city or just around the neighborhood its easy to check which place is the new hot spot and immediately grab an available table. Its great to not need to find a restaurant in one application, launch OpenTable to see if there's a table, find out there isn't, launch the first application again, and on and on. We hope you'll find this write-up useful as you develop your own public intents and that you'll consider sharing them with the greater Android community.

Tuesday, November 10, 2009

Discount Hotels in London

After last posting Kenali dan Kunjungi Objek Wisata di Pandeglang I wanna share Inexpensive Way to Visit Expensive London. One of the most expensive cities of the world, London is a hot tourist destination. Planning a holiday or vacation to the expensive city means lots of money. However, vacation to London is possible within limited budget as well. Every year London welcomes plethora of tourist who come here for different objectives. Whether you are business or pleasure travelers, London never fails to mesmerize.

While you are on short term or long term stay, a visit to London attractions are a must do. Explore Buckingham Palace, Windsor Castle, London Dungeon, London Eye, Tower of London, Westminster Abbey, Madame Tussaud’s, Trafalgar Square, Victoria and Albert Museum, Houses of Parliament and many more.

If you think it is beyond your means to visit London, then there is good news for you. Discounted hotels in London will take care of your accommodation without your need to shell out much. During your stay in discounted hotels in London, you can enjoy English hospitality and impeccable service. Discerning business and pleasure travelers to London can take advantage of modern facilities and amenities including direct-dial telephone, color TV, ironing facilities, 24 hours reception, internet access, wake-up service, satellite TV, lounge bar and many more. These discounted hotels in London offer spacious and comfortable bedrooms, thus making your stay truly home away from home.

If you want to avail of irresistible discounted hotels in London, spend some time in internet and search. Plan your business or leisure London trip much in advance and book discounted hotels in London. You will be surprise to know that London hotels provide significant discount rate in order to keep their rooms’ occupied throughout the year. During Christmas and New Year, visitors to London can avail of up to seventy percent discount in the best hotels of the London.

Choose your discounted London hotels carefully. If you are businessman, prefer discounted hotels in London that are located close to business establishments. In this way you can save time and money to getting to business centers. For those who are n pleasure trip, discounted London hotels near places of tourist interest, restaurants, cinemas, theaters and shopping will be advantageous. Explore the beauty of London by visiting attractions and sights, green parks, amazing aquariums, zoos, beautiful botanical gardens. To know more about the history and culture, visit London museums and galleries. The royal castles and historical sites are witness to London’s rich past.

Book now discounted hotels in London!!


Friday, November 6, 2009

ADC 2 Round 2 Voting Open


Media_http1bpblogspot_rfpbu

The results from ADC 2 Round 1 are now tabulated and verified. With the top 200 applications identified, it's time to begin the final round judging. Be sure to download the ADC 2 judging application, or update your existing application, and help us select the final winners!

For the final round, both users and a Google-selected panel of industry judges will provide votes to determine the final winners. Prizes will be distributed to the top 3 entrants in each of the 10 categories, and the top 3 overall entrants will receive additional prizes. Please see our reference page for full challenge information.

Your vote is critical! We will keep voting open until we have received sufficient votes for all of the applications. We encourage you to download the ADC 2 judging application and evaluate entrants for yourself.

Download Android Developer Challenge 2:


Media_httpchartapisgo_lldzb

Thursday, November 5, 2009

Kenali dan Kunjungi Objek Wisata di Pandeglang

Dalam Kontes SEO "Kenali dan Kunjungi Objek Wisata di Pandeglang", saya memcoba untuk menguatkan postingan utama yang akan berlaga di Kontes SEO tersebut. Kota Pandeglang memang sarat akan tempat - tempat yang indah dan menarik, tempat - tempat tersebut layak dan pantas untuk menjadi tujuan wisata para wisatawan, baik wisatawan lokal maupun asing.
Pemerintahan Kabupaten Pandeglang dengan segala daya dan upayanya selalu berusaha meningkatkan sarana dan prasarana objek - objek wisata yang mereka miliki. Objek -objek yang ada di Pandeglang sangat banyak ragam dan coraknya, wisata hutan, air , pendidikan dan lain - lain.

Daearah wisata yang ada di Provinsi Banten memang menarik dan mempesona, khususnya yang ada di Pandeglang, yang mana pemerintahan Kabupaten Pandeglang begitu peduli terhadap kemajuan daerahnya, termasuk bidang pariwisata. Dengan dukungan yang All out dari pemerintan Pandeglang, maka kemajuan bidang pariwisata di Pandeglang begitu pesat akhir - akhir ini.

Langkah - langkah strategis yang telah dilakukan Pemerintahan Kabupaten Pandeglang bisa menjdi contoh buat kota - kota lainya yang ada di Provinsi Banten khususnya dan di Negara Indonesia umumnya. Semoga saja kota - kota lain tidak merasa malu untuk mencontoh sesuatu yang baik yang telah dipelopori Kota Pandeglang. Kenali dan Kunjungi Objek Wisata di Padenglang

Monday, November 2, 2009

Bring Your Lab Coats


Media_httpdocsgooglec_umhsg

With the recent release of Android 2.0 and the growing number of available devices, we want to give developers a convenient way to test drive their apps on these new devices. We also want to make our Android advocates available to answer any questions you may have.

We are pleased to announce that we will host a series of all day Android developer labs over the next month in the following cities (dates in local time):


  • Mountain View, CA - Nov 9

  • New York, NY - Nov 16

  • London, UK - Nov 17

  • Tokyo, JP - Nov 18

  • Taipei, TW - Nov 20

Due to limited space, developers who have already published an application in Android Market will be given priority. You can request a spot on a first-come, first-serve basis by going to this page. We will send a follow-up email with venue information and other registration details to those who have secured a spot.

Thank you for your continued excitement in Android. We look forward to meeting many of you in the coming weeks!

Tuesday, October 27, 2009

Announcing Android 2.0 support in the SDK!


Media_http3bpblogspot_xuiqw

I am excited to announce that the Android SDK now supports Android 2.0 (also known as Eclair).

Android 2.0 brings new developer APIs for sync, Bluetooth, and a few other areas. Using the new sync, account manager and contacts APIs, you can write applications to enable users to sync their devices to various contact sources. You can also give users a faster way to communicate with others by embedding Quick Contact within your application. With the new Bluetooth API, you can now easily add peer-to-peer connectivity or gaming to your applications. To get a more complete list of the new capabilities you can add to your applications, please go to the Android 2.0 highlights page.

Current developers can use the SDK Manager to add Android 2.0 support to their SDK as well as update their SDK Tools to revision 3. New developers can download the Android SDK from the download site. After the download, Android platforms must be added using the SDK Manager


Media_http3bpblogspot_usspu

The SDK Manager allows you to add new Android platforms to your SDK.

Android SDK Tools, revision 3 is required to develop for Android 2.0. It includes support for code coverage through the Ant build system, as well as Mac OS X 10.6 (Snow Leopard) support for the SDK and related tools. For those of you who develop using Eclipse, we are releasing ADT version 0.9.4 through the usual Eclipse update mechanism.

Over the next few months, we expect to see more and more Android devices being released. These devices will be running Android 1.5, 1.6, or 2.0. We are also planning a minor version update of Android 2.0 towards the end of the year, and that will be the last update for 2009. Below are some of the things you can do to be better prepared:


  • Download the Android 2.0 platform and make sure your existing apps continue to work on new devices running Android 2.0.


  • Make sure that your apps work when using the WVGA (800x480) & FWVGA (854x480) emulator skins. We expect devices with these types of screen, running Android 2.0 to be launched soon.


Checkout the video below for more information about Android 2.0.

Kita Makin Takabur

HARI-HARI ini kita berada dalam suasana Hari Sumpah Pemuda. Hari yang amat bersejarah dalam sejarah perpolitikan nasional. Kita tahu baik, pada 28 Oktober 1928 para pemuda secara gegap gempita mengikrarkan tekadnya yang kita kenal dengan Sumpah Pemuda.
Mereka mengangkat sumpah dengan formulasi bahasa yang amat sederhana. Menggunakan diksi yang mudah dicerna, namun sarat makna, sarat pesan. Mereka berikrar, Berbangsa Satu Bangsa Indonesia, Berbahasa Satu Bahasa Indonesia, dan Bertanah Air Yang Satu, Tanah Air Indonesia.

Tekad itu mereka usung untuk melecutkan semangat perjuangan bangsa ini, membakar spirit kaum muda untuk bangkit melawan penjajah, melawan imperialisme dan kolonialisme yang bercokol di tanah pertiwi, yang membelenggu kebebasan anak-anak negeri ini.

Itu peristiwa bersejarah yang terjadi 81 tahun silam. Peristiwa yang hingga kini terpahat indah dalam sanubari setiap orang, terukir indah dalam benak setiap hati, yang tak melupakan torehan sejarah pada zaman perjuangan dulu.

Saat itu, tatkala bangsa ini dalam kondisi terpuruk akibat penjajahan, semua orang merasa terpanggil untuk membela negara. Semua orang berjuang dan terus berjuang hingga titik darah penghabisan. Mereka bertarung dengan bambu runcing, bertarung dengan senjata yang ada adanya untuk mengusir penjajah. Selama hayat masih dikandung badan, mereka tak berhenti berjuang, demi membebaskan Indonesia dari tindasan kolonial.

Sekarang, kita menikmati hasilnya. Bahkan sudah puluhan tahun lamanya, kita telah mengecapi nikmatnya kemerdekaan, hasil perjuangan mereka dulu. Bahkan di antara kita, ada yang juga telah membangun kemegahan, membangun kepongahan, membangun ketamakan di atas darah dan air mata para pejuang. Kita menyisihkan tujuan perjuangan pendahulu, yang menghantar bangsa ini ke gerbang kemerdekaan dengan taruhan nyawa.

Sebagai contoh, kasus korupsi terus terjadi di negeri ini. Dari pusat sampai ke daerah, masih banyak pejabat yang rajin mengumpulkan harta dengan cara-cara yang melanggar hukum, melanggar aturan yang berlaku. Para pejabat yang diharapkan menjadi teladan bagi masyarakat, malah sebalikmya melakukan aksi yang tidak pada tempatnya.

Begitu juga kaum muda yang diharapkan sebagai penerus bangsa ini, malah terjerumus dalam hal-hal yang kontraproduktif. Tak sedikit anak-anak kita masuk dalam perangkap narkotika dan obat-obatan terlarang (narkoba). Masih banyak lagi contoh kasus yang memperlihatkan karakter anak muda kita, yang sudah dan semakin takabur dalam bingkai teks sumpah pemuda.

Jika dulu para pemuda menyatukan visi misi, menyatukan tekad merebut kemerdekaan dari tangan penjajah demi masa depan bangsa dan negara ini, saat ini justeru kita telah larut dalam perilaku yang mencederai sumpah pemuda itu sendiri.
Bila dulu para pejuang menyatukan bangsa ini dengan satu bahasa, yakni bahasa Indonesia, saat ini kita justeru lebih senang menggunakan bahasa orang lain. Kita merasa lebih terhormat, lebih bermartabat, lebih pintar dan lebih gaul, apabila menggunakan istilah-istilah asing. Kita lupa bahwa untuk menjadikan bahasa Indonesia sebagai bahasa ibu, para pendahulu memperjuangkannya dengan jiwa dan raga.

Kita lupa bahwa pada masa lalu, pemerintah kita telah menjadikan bulan Oktober sebagai bulan bahasa. Bahkan itu masih berlaku sampai sekarang.
Sayangnya, kita tidak menyadari hal tersebut. Kita justeru cenderung membudayakan bahasa asing dalam pergaulan kita. Kita lebih suka mempopulerkan bahasa asing ketimbang kekayaan bahasa yang kita miliki. Kita juga lebih suka menggunakan bahasa serapan daripada bahasa yang kita miliki.

Contoh itu mudah didapat. Saat seminar, misalnya, para pembicara dengan gayanya menggunakan istilah-istilah asing (bahasa Inggris). Mungkin hal itu untuk gagah- gagahan, supaya bisa dibilang pintar. Tapi mereka lupa bahwa cara itu sesungguhnya melukai rasa bahasa yang kita miliki.

Entah sampai kapan sandiwara ini berlangsung. Tapi jika para cerdik cendekia, para pejabat, para akademisi, dan para pemuda, belum menyadari ketimpangan tersebut, maka nasib bahasa Indonesia tentu akan semakin suram. Karena itu, melalui momentum Hari Sumpah Pemuda tahun 2009 ini, kita kembali menyatukan tekad untuk menyudahi hal-hal yang berbau asing. Saatnya kita gunakan kekayaan yang ada pada kita. *