Jon Kartago Lamida

Dynamic Richfaces Menu, MenuItem and Action

Posted by: lamida on: Juli 8, 2009

Currently I have necessity to build dynamic menu use rich:menu and rich:menuitem. I make simple POJO model class for each menu and menuitem. Of course you can use EntityBean if necessary. Menu is just used for grouping while menuitem, children of menu which has action property that will triger some action when it is clicked.


// Menu model
public class Menu{
private String menuCaption;
private boolean enabled;
// Relation to MenuItem
private List menuItems;

public Menu(String menuCaption, List menuItems, boolean enabled){
this.menuCaption = menuCaption;
this.menuItems = menuItems;
this.enabled = enabled;
}
// don't forget getter and setter
}

// MenuItem Model
public class MenuItem{
private String menuItemCaption;
private String menuItemAction;
private boolean enabled;  

public MenuItem(String menuItemCaption, String menuItemAction, boolean enabled){
this.menuItemCaption = menuItemCaption;
this.menuItemAction = menuItemAction;
this.enabled = enabled;
}
// don't forget getter and setter
}

Here are MenuManagedBean class. Property menuList will be refered in page and make some kind of this representation.
Menu1 Menu2
-MenuItem1 -MenuItem5
-MenuItem2 -MenuItem6
-MenuItem3
-MenuItem4


public class MenuManagedBean{
private List menuList;
public List getMenuList(){
List menuItemList1 = new ArrayList();
MenuItem menuItem1 = new MenuItem("Menu Item1", "#{someManagedBean.someAction}", true);
MenuItem menuItem2 = new MenuItem("Menu Item2", "#{someManagedBean.someAction}", true);
MenuItem menuItem3 = new MenuItem("Menu Item3", "#{someManagedBean.someAction}", true);
MenuItem menuItem4 = new MenuItem("Menu Item4", "#{someManagedBean.someAction}", true);
menuItemList1.add(menuItem1);
menuItemList1.add(menuItem2);
menuItemList1.add(menuItem3);
menuItemList1.add(menuItem4);

List menuItemList2 = new ArrayList();
MenuItem menuItem5 = new MenuItem("Menu Item5", "#{someManagedBean.someAction}", true);
MenuItem menuItem6 = new MenuItem("Menu Item6", "#{someManagedBean.someAction}", true);
menuItemList2.add(menuItem5);
menuItemList2.add(menuItem6);

Menu menu1 = new Menu("Menu1", menuItemList1, true);
Menu menu2 = new Menu("Menu2", menuItemList2, true);

menuList = new ArrayList();
menuList.add(menu1);
menuList.add(menu2);
return menuList;
}
// getter and setter
}

Next is faces page. You can use facelets or jsp page. For your notice we use jstl c:forEach tag for looping menuList in MenuManagedBean. We can not use ui:repeat or a4j:repeat here. They will not work because ui:repeat and a4j:repeat is rendered on runtime. Otherwise c:forEach is compiled before.

Eventhough the faces page will be shown, and every other value attribute appear correctly, the action attribute is not work. When we click a menuitem, rather than call appropriate string action from menuItemAction property of class MenuItem, its try to call menuItemAction method from menuItem managed bean which don’t exist.


<c:forEach var="listMenu" items="#{menuManagedBean.menuList}">
<rich:dropDownMenu disabled="#{!listMenu.enabled}">
<f:facet name="label">
<h:panelGroup>
<h:outputText value="#{listMenu.menuCaption}"/>
</h:panelGroup>
</f:facet>
<c:forEach var="menuItem" items="#{listMenu.menuItemList}">
<%-- The action attribute bellow is not work --%>
<rich:menuItem value="#{menuItem.menuItemCaption}" action="#{menuItem.menuItemAction}" disabled="#{!menuItem.enabled}"/>
</c:forEach>
</rich:dropDownMenu>
</c:forEach>

After some trial and error, I use binding aproach. I add htmlMenuItem property from class org.richfaces.component.html.HtmlMenuItem. This property will be use as binding value in revised MenuManagedBean class bellow.


import org.richfaces.component.html.HtmlMenuItem;
public class MenuItem{
private String menuItemCaption;
private String menuItemAction;
private boolean enabled;
private HtmlMenuItem htmlMenuItem;

public MenuItem(String menuItemCaption, String menuItemAction, boolean enabled){
this.menuItemCaption = menuItemCaption;
this.menuItemAction = menuItemAction;
this.enabled = enabled;
}

// getter setter

}

public class MenuManagedBean{
private List menuList;
public List getMenuList(){
List menuItemList1 = new ArrayList();
MenuItem menuItem1 = new MenuItem("Menu Item1", "#{someManagedBean.someAction}", true);
// make binding
HtmlMenuItem htmlMenuItem = new HtmlMenuItem();
Class[] params = {};
MethodExpression actionExpression = app.getExpressionFactory().createMethodExpression(ctx.getELContext(),
                    menuItem1, String.class, params);
            htmlMenuItem.setActionExpression(actionExpression);
            htmlMenuItem.setDisabled(!menuItem1.getEnabled());
            htmlMenuItem.setValue(menuItem1.getMenuItemUrl());
            menuItem1.setHtmlMenuItem(htmlMenuItem);

MenuItem menuItem2 = new MenuItem("Menu Item2", "#{someManagedBean.someAction}", true);
// make binding same as above
// ...
MenuItem menuItem3 = new MenuItem("Menu Item3", "#{someManagedBean.someAction}", true);
// make binding same as above
// ...

MenuItem menuItem4 = new MenuItem("Menu Item4", "#{someManagedBean.someAction}", true);
// make binding same as above
// ...

menuItemList1.add(menuItem1);
menuItemList1.add(menuItem2);
menuItemList1.add(menuItem3);
menuItemList1.add(menuItem4);

List menuItemList2 = new ArrayList();
MenuItem menuItem5 = new MenuItem("Menu Item5", "#{someManagedBean.someAction}", true);
// make binding same as above
// ...

MenuItem menuItem6 = new MenuItem("Menu Item6", "#{someManagedBean.someAction}", true);
// make binding same as above
// ...

menuItemList2.add(menuItem5);
menuItemList2.add(menuItem6);

Menu menu1 = new Menu("Menu1", menuItemList1, true);
Menu menu2 = new Menu("Menu2", menuItemList2, true);

menuList = new ArrayList();
menuList.add(menu1);
menuList.add(menu2);
return menuList;
}
}

Last step is we use binding attribute to refer every menu and its menu item. Finally, dynamic menu item work as I expect


<c:forEach var="listMenu" items="#{menuManagedBean.menuList}">
<rich:dropDownMenu disabled="#{!listMenu.enabled}">
<f:facet name="label">
<h:panelGroup>
<h:outputText value="#{listMenu.menuCaption}"/>
</h:panelGroup>
</f:facet>
<c:forEach var="menuItem" items="#{listMenu.menuItemList}">
<%-- We make change here -->
<rich:menuItem binding="#{menuItem.htmlMenuItem}"/>
</c:forEach>
</rich:dropDownMenu>
</c:forEach>

Upgrade Ubuntu 9.04

Posted by: lamida on: Juli 3, 2009

Minggu lalu, akhirnya saya mengupgrade Intrepid Ibex Ubuntu 8.10 ke Jaunty Jackalope Ubuntu 9.04. Alasan install ulang adalah saya harus melebarkan partisi linux yang hanya 15 GB. Padahal saya memerlukan Oracle 11g untuk development. Dengan partisi seukuran itu, komputer saya sering error ketika kapasitas hardisk kosong bisa habis menjadi 0 persen. Sebenarnya jika memungkinkan melakukan proses upgrading, tentunya itu akan menjadi pilihan menyenangkan. Proses install ulang cenderung memakan waktu. Belum lagi setelah install ulang harus mengatur ulang segala konfigurasi dan aplikasi-aplikasi yang dibutuhkan. Namun apa daya, konfigurasi partisi yang tumpang tindih antara logical dan primary memaksa saya harus format ulang beberapa partisi dan tidak bisa upgrade, harus install ulang.

Tahapan pertama dari prosesi install ulang adalah backupp data-data. Pertama adalah bookmark firefox. Meski saya sudah register del.iciou.us, saya masih gak ngerti cara pakenya. :p Jadi backup bookmark kita lakukan secara manual dari firefox. Backup berikutnya adalah file .bashrc di home folder. Meski tidak penting-penting amat, tapi perlu dilakukan juga. Awalnya ingin membackup thunderbird. Namun ternyata tidak ada pilihan mudah untuk melakukan itu. Jadi setelah install ulang tinggal download ulang saja semua email dari server. Ketiga, backup file .vdi virtualbox. Saya punya Windows XP, FreeBSD dan Open Solaris di sana. Berkat kecanggihan virtualbox, OS virtual tersebut bisa digotong-gotong sesuka hati. Lalu yang paling penting backup data-data lain ke hardisk portable.

Tahapan kedua, download iso terbaru dari internet. Dengan koneksi internet yang ada, download selesai kurang dari 1 jam. Tahapan ketiga panggang iso ke cd rw. Untungnya masih ada cd rw yang meski sudah baret-baret ternyata masih bisa dipake. Tahapan keempat, install ubuntunya. Tidak sampai satu jam, ubuntu sudah matang.

Tahapan kelima adalah install ulang aplikasi-aplikasi yang diperlukan. Paling utama JDK. Saya memilih menginstall punya Sun dari pada menginstall dari repositori ubuntu. Lalu install netbeans dan glassfish. Setelah itu, yang paling sulit adalah install oracle 11g. Namun kini tidak perlu khawatir partisi Linux sudah 40 GB dengan swap 2.5 GB. Lalu install thunderbird dari repository. Yang tak kalah penting, upgrade Pidgin. Kurang beruntung, pidgin yang dibundel dengan Jaunty Jackalope masih versi 2.5.5. Masih error nyambung ke yahoo. Dengan sedikit otak-atik saya akhirnya bisa membuat pidgin 2.5.7 siap pakai. Semua aplikasi lain seperti Eclipse (ganymede dan galileo), JBoss, Ant, Maven, service mix, Mule, tomcat, ireport, liferay, mobicent SIP Server ada di directory ntfs, jadi hanya perlu linking dari .bashrc file. Terakhir karena pengen iseng, saya install weblogic punya bea dan oracle dan websphere community edition. Yang tak boleh lupa adalah install Virtual Box. Saya install yang dari Sun daripada versi OSE dari repo ubuntu.

First impression setelah install adalah, login screen yang beda, trus wallpaper yang beda, system tray yang juga agak beda. Setelah semua selesai, komputer siap dipakai koding lagi. Pusing lagi deh. :(

Sejak pertengahan Juni kemarin pidgin mengalami masalah untuk terhubung ke server yahoo messenger. Padahal untuk orang yang online 25 jam sehari seperti saya :) , aplikasi chat client sangat penting untuk selalu bisa terhubung dengan relasi. Oleh karena saya memakai Linux, saya memakai Pidgin (versi 2.5.2 bawaan dari Ubuntu Intrepid Ibex 8.10 milik saya), aplikasi chat client terbaik. Pidgin bisa terhubung ke banyak protokol chat sekaligus, seperti yahoo, google talk, AIM dan yang terpenting facebook messenger. Dari banyak protokol chat, rekanan saya paling banyak menggunakan yahoo messenger. Jika pidgin tidak bisa terkoneksi ke yahoo tentu ini menjadi gangguan yang tidak menyenangkan.

Protokol yahoo messenger adalah protokol tertutup. Developer pidgin harus melakukan upaya reverse engineering yang baik untuk bisa terhubung ke protokol yahoo. Permasalahan akan terjadi bila pada satu waktu yahoo melakukan perbuhan atau upgrade protokol mereka. Mungkin inilah kira-kira yang menjadi penyebab Pidgin tidak dapat terhubung ke yahoo beberapa hari terakhir.

Menanggapi permasalahan ini beberapa solusi muncul di internet beberapa hari terakhir. Yang pertama adalah menamabah entri 66.163.181.184 scs.msg.yahoo.com di file /etc/hosts. Solusi ini dapat bekerja dengan baik selama kira-kira 3 atau 4 hari. Namun setelah itu pidgin kembali tidak dapat terhubung ke server yahoo chat. Solusi selanjutnya yang sempat beredar adalah mengganti page server di manage account menu yahoo dari scs.msg.yahoo.com menjadi cn.scs.msg.yahoo.com. Nampaknya sukses. Namun kurang dari 5 detik, Pidgin langsung crash.

Apa gunanya post ini bila tidak memberi solusi. Solusi terakhir yang saya dapatkan dan semoga bisa menjadi solusi permanen adalah upgrade versi Pidgin ke versi 2.5.7. Segera meluncur ke www.pidgin.im dan download versi terbaru. Untuk distro ubuntu tidak ada pilihan untuk mendownload versi terbaru secara langsung, karena ubuntu hanya akan melakukan upgrade software dalam distribusi hanya karena pertimbangan security. Namun di dowload page pidgin diberikan instruksi detail dan sekarang Pidgin saya telah terupgrade ke versi terbaru dan kembali bisa terhubung ke server yahoo messenger. Semoga saja solusi ini bisa permanen.

Sebuah judul yang sangat aneh ya. Namun sejak kemarin benar-benar gemas ingin menulis topik ini.

Post ini mencoba mengulas singkat 2 film Indonesia terakhir yang sempat saya tonton. Pertama Virgin 2: Ini Film Porno (tau kan tagline sebenarnya), saya tonton malam minggu lalu di Cijantung. Kedua, Ketika Cinta Bertasbih. Baru saja saya liat tadi siang di Cibubur Junction. Dari dua judul tersebut saya harap dapat dipahami kata komparasi dan jomplangisme di atas. :) Karena 2 film tersebut benar-benar jomplang. Absolutely sh*t vs absolutely good.

Kita mulai dengan Virgin 2. Satu-satunya alasan yang membuat saya masuk teater yang memutar film ini adalah paksaan sahabat dekat saya yang penasaran dengan kisah film tersebut. Hitung-hitung ingin melihat seberapa sampah film-film model ini, akhirnya saya ikuti juga ajakan kawan dekat saya tersebut. Setelah keluar teater, ternyata asumsi saya salah. Film itu tidak rusak kok. Namun lebih rusak 1000x dari perkiraan saya. :D Ulasan singkat yang cukup tajam namun tajam mengenai mengenai film ini bisa dilihat di sini.

Saya sangat setuju dengan pendapat di blog cebongipiet. Mengajarkan tidak melakukan hal-hal tidak benar, misalnya mengajarkan tidak melakukan pergaulan bebas, free sex dan narkotika melalui tayangan yang justru menunjukan semua hal itu adalah yang sangat klise. Mengajarkan hal yang baik haruslah melalui tayangan yang baik. Mengekspos keburukan justru membuka kepenasaran generasi-generasi yang masih muda untuk mencoba alih-alih untuk menghindari. Oleh karena itu saya ganti tagline Virgin 2: Bukan Film Porno menjadi Virgin 2: Ini Film Porno. Tagline yang sangat tidak mutu dan dilecehkan di banyak forum. Bagaimana tidak, film ini masih sangat banyak menunjukan keseksian tidak jelas dari artis-artis muda malang. Kekerasan, pemerkosaan, pembunuhan, bunuh diri, narkotika dengan inti cerita dan pesan moral yang nol besar. Nilai 1 bintang dari 5 bintang pun tidak sama sekali layak untuk film ini. Nilainya cukup nol besar saja. Jadi untuk para produser film berkocek besar. Sadarlah untuk tidak sekedar mengharap keuntung komersial dengan menghiraukan tujuan ideal dari sebuah karya yang akan ditonton masyarakat. Buatlah film-film berkualitas dengan pesan moral yang baik. Film sukses tidak selalu harus menceritakan tentang sesuatu yang tidak baik. Film dengan konten berbobot pun bisa menjadi sebuah produk yang sukses. Seperti ulasan untuk film berikutnya.

Ketika Cinta Bertasbih adalah karya lain dari Habiburahman El Shirazy yang juga difilmkan setelah film sebelumnya yang sangat sukses Ayat-Ayat Cinta. Di tengah gempuran film-film buruk dengan tema-tema klenik dan atau seks, Ayat-Ayat Cinta dan Ketika Cinta Bertasbih mampu membuktikan bahwa film bermuatan moral positif pun bisa sukses bila digarap dengan baik.

Secara pribadi saya lebih menyukai Ketika Cinta Bertasbih dibanding Ayat-Ayat Cinta. Ada sangat banyak sentilan-sentilan moral yang mengarahkan namun tidak menggurui. Di tengah-tengah banyak kisah-kisah positif penonton masih sempat dihibur dengan potongan-potongan humor yang lucu namun tidak garing. Beberapa ulasan mungkin banyak membahas masih ada kekurangan-kekurangan dari sisi sinematografi, akting pendukung film yang terlalu kaku dan hal-hal antah berantah lainnya. Namun bagi penonton awam seperti saya, tayangan sekitar 120 menit yang saya saksikan tadi sangat luar biasa. Cukup layak untuk saya nobatkan sebagai film terbaik yang saya tonton di tahun 2009 ini bahkan mengalahkan Star Trek sekalipun. Meski agak pegal juga ketika di akhir film tulisan To Continued sangat membuat gemas. Tinggal kita nantikan saja seperti apa kisah lanjutan film ini. Untuk review detail dari 2 film ini dapat dicari di tempat lain. Post ini hanyalah ungkapan kegemasan mengenai Jomplangisme tayangan-tayangan sebagai corong yang dapat menjadi kandidat ideal untuk dakwah hal-hal kebaikan. Akhir kata, semoga berkenan.

May Notes

Posted by: lamida on: Mei 29, 2009

Sejak kemarin siang, saya batuk-batuk hampir tanpa henti. Tersangka utamanya adalah segelas plastik es krim duren. Jelas saja semalaman tidak bisa tidur nyenyak.

 
Tanpa terasa bulan Mei pun sudah tiba di penghujungnya. Hari ini adalah deadline entry JavaFX Coding Challenge. Seperti sebelum-sebelumnya saya pun hanya bisa terpaku diam tanpa dapat memasukan entry apa pun. Ada apa dengan diri ini? Manajemen waktu yang compang camping dan kegamangan memilih prioritas sudah menjadi penyakit yang sangat kronis. Namun, namanya juga manusia yang terkadang melakukan kesalahan. Akan menjadi sebuah hal yang sangat bijak bila bisa belajar dari setiap kesalahan untuk menjadi lebih baik di masa berikutnya.

 
Berhubung Jumat ini adalah tanggal kerja terakhir di bulan Mei ini, seharusnya nanti sore, transferan gaji (yang tidak terlalu besar) sudah bisa masuk ke rekening. Jika kebanyakan orang efektif punya todo list. Orang boros seperti saya punya to buy list. :p Listing pertama adalah hardisk portable. Sejak sebulan terakhir tertarik dengan Seagete Freetogo. Ingin coba membeli yang 500GB. Lumayan untuk warehouse koleksi ebook, mp3 dan film. Sekaligus saja juga ingin mengopi data di hardisk desktop lama. Mengorganisirnya sehingga mudah data-data mudah dicari dan digunakan bila diperlukan. 

 
Tobuy list yang lain adalah ingin membeli laptop baru. Tidak terlalu tertarik dengan netbook-netbook mikro berlayar di bawah 10 inchi. Minimal 12 inchi dan ber-dvd room. Mungkin nanti mencoba mencari bekasan-bekasan yang masih berkualitas. Inginnya sih merasakan punya macbook. Jadi bisa koding aplikasi IPhone. Yah mungkin nanti. Untuk sekarang saya sudah cukup puas dengan distro-distro linux yang ada.

Satu lagi, saya amat sangat berharap tidak ada work over time lagi minggu ini. Capek. Buktinya selasa lalu saya drop tidak bisa masuk. Tepar.

 

Tips Mencapai Tujuan Apapun Dengan Mudah

Posted by: lamida on: Mei 26, 2009

Salah satu penulis buku pengembangan diri yang paling saya suka adalah Brian Tracy. Beberapa bukunya yang cukup bagus adalah “Goals How to Get Everything You Want Faster than You Ever Thought Possible”, “Change your thinking and change your life” dan “Create Your Own Future How To Master The 12 Critical Factors Of Unlimited Success”. Dari buku-buku tersebut topik intinya adalah mengenai pencapaian target.

Intisari tips mengenai teknik pencapaian target tersebut sebenarnya sangat sederhana. Kita bisa mencapai hal apa pun yang kita inginkan. Tipsnya pun sangat logis dan masuk akal. Kepenasaran saya yang muncul adalah meski tips intisari tersebut sangat logis di atas teori tahapan implementasinya tetap saja tidak terlalu mudah.

Tahapan pertama dan terpenting dalam pencapaian tujuan adalah tahu apa yang kita inginkan. Tuliskan secara spesifik, berjangka waktu dan terukur. Ingin sukses adalah contoh tujuan yang masih terlalu general dan tidak bisa diukur. Mendapat pekerjaan mengajar bla bla di sekolah internasional xxx dalam waktu 6 bulan ke depan adalah contoh target yang spesifik, berjangka waktu dan dapat diukur keberhasilan atau kegagalannya kegagalannya. Harus diperhatikan juga, targetan harus tertulis dan bukan sekedar di kepala.

Tahapan kedua adalah menyiapkan langkah strategis, bertahap dan konsisten dalam pencapaian tujuan tertulis tadi. Segala sesuatu itu ada harganya. Demikian juga dengan pencapaian tujuan. Harga dari pencapaian tujuan adalah usaha.

Usaha tersebut harus strategis karena jalan yang ditempuh harus efektif dan efisien, harus menggunakan strategi, tidak ngasal. Bertahap berarti harus sabar. Jangan hajar bleh. Terkadang banyak hal harus dilakukan step by step. Sesuatu bisa dilakukan bila prasyaratnya sudah dipenuhi. Konsisten berarti harus istiqomah. Pasti dalam tahapan mewujudkan tujuan ada hambatan dan kegagalan yang menghadang. Orang konsisten akan terus jalan dan pantang menyerah.

Tahapan ketiga evaluasi. Terkadang di tengah jalan dibutuhkan pergantian strategi atau mengambil upaya alternatif. Melakukan langkah yang sama meski sudah berkali-kali gagal jelas bukan hal yang pintar.

Tahapan keempat adalah celebrating. Selamat, anda telah sampai di tujuan anda. Kesediaan melakukan usaha, dengan konsisten namun tetap smart akan menghancurkan hambatan apa pun yang memisahkan antara kita dan apa yang kita inginkan.

Demikian tips singkatnya. Seperti yang sudah saya tulis pada bagian atas, sangat terlihat mudah di atas kertas (atau di atas monitor) :p. Namun untuk tahapan praktik saya pun belum bisa membuktikan banyak. Setidaknya semoga tulisan tidak berguna ini bisa sedikit berguna.

Perhatian! Sebaiknya anda baru membaca post ini bila sudah menyaksikan serial tersebut.

Senin malam lalu saya menonton episode 20 dari Season 4 serial Prison Break. Semenjak episode paling pertama saya sudah sangat fanatik dengan serial ini. Kisah awalnya adalah upaya Michael Scofield seorang insinyur sipil genius yang ingin membebaskan kakaknya Lincoln Burrow, yang terancam hukuman mati untuk pembunuhan yang tidak ia lakukan. Dengan berjalannya episode demi episode, cerita mulai agak-agak melenceng ke tema yang agak di awang-awang.

Season pertama sepenuh bercerita tentang upaya pelarian dari Penjara Fox River. Season kedua Prison Break mengangkat kisah pengejaran para pelarian dari Fox River di luar penjara. Season ketiga mengangkat cerita petualangan Scofield, Burrow dan beberapa kawan-kawan di Panama. Secara tidak sengaja karena diatur oleh skenario misterius Scofield harus masuk ke Penjara Sona di Panama. Sepanjang season 3 cerita inti adalah mengenai upaya Scofield melarikan diri dari Sona. Di season 3 ini mulai diangkat wacana sebuah organisasi raksasa misterius yang disebut Company.

Season keempat menceritakan upaya Scofield dan kawan-kawan untuk meruntuhkan Company. Di sini mulai diangkat sebuah mesin rahasia milik Company yang harus dihancurkan yang bernama Scylla. Scylla inilah yang kemudian menjadi tema inti season keempat. Meski pada awalnya tidak diketahui dengan pasti apa sebenarnya Scylla, apa gunanya, ternyata Scylla adalah benda yang sangat diperebutkan. Proses perebutan Scylla ini harus mengorbankan banyak nyawa yang berjatuhan. Meski pada akhirnya Scylla justru diserahkan pada Paul Kellerman, seorang tokoh antagonis di season 1 dan season 2 serial. Dengan penyerahan Scylla tersebut Scofield dan kawan-kawan mendapat jaminan untuk penghapusan track record buruk mereka.

Meski dengan kisah yang pada akhirnya menjadi ngalor-ngidul saya benar-benar menyukai dengan kisah Prison Break ini dan berbagai tokoh di dalamnya. Tokoh favorit saya adalah Michael Scofield dan Alex Mahone. Alex Mahone sendiri pada awalnya adalah tokoh antagonis. Namun dalam perjalanan ia menjadi rekanan. Satu hal yang menjadi tanda tanya saya, pada listing episode Prison Break, season 4 dituliskan ada hingga episode 24. Namun pada episode 22 yang saya tonton terakhir, cerita sudah sampai pada akhirnya. Sebuah ending yang sangat jenius menurut saya. Diceritakan setelah Scylla diserahkan ke Kellerman, Scofield, Burrow, Tancredi, Mahone dan yang lain bisa kembali membersihkan nama mereka. Namun, di beberapa scene terakhir sebelum episode berakhir, diperlihatkan ketika Scofield bisa berkumpul bersama kekasih yang sangat ia cintai, Sara Tancredi. Ketika mereka berdua tengah berjalan bersama di pantai, tiba darah kembali keluar dari hidung Scofield. Kemudian scene pun menggambarkan kisah 4 tahun kemudian. Ketika tim yang berusaha mengejar dan merebut Scylla dapat hidup tentram kembali. Mahone yang bisa hidup tenang setelah yakin istrinya bisa hidup aman, meski mereka tidak hidup bersama lagi. Sucre yang bisa berkumpul bersama anak dan istrinya. Burrow yang juga bisa berkumpul dengan LJ dan Sofia kekasihnya. C-Note yang bisa kembali ke keluarganya. T-Bag yang harus kembali ke penjara. Donald Self yang harus lumpuh setelah diracun oleh orang-orang Christina Scofield. Serta sebuah scene yang sangat menarik dari Jenderal Krantz yang akan dihukum mati di kursi listrik. Scene kemudian beralih ke Sara Tancredi yang memanggil nama Michael. Ternyata yang datang adalah seorang anak kecil, anak Sara dengan Scofield. Episode ini berakhir ketika Sara, Scofield junior, Burrow, Mahone, Sucre berkumpul di satu tempat. Tak lama, kamera pun mengarah pada sebuah batu nisan dimana semua orang tadi memandangi nisan tersebut. Nisan yang bertuliskan nama Michael Scofield, dengan tanggal kematian 4 tahun sebelumnya. Kanker otak pun akhirnya tetap merenggut nyawa Scofield. Demikianlah sebuah ending yang sangat memukau bagi saya. Akhirnya kepenasaran selanjutnya adalah apakah masih ada 2 episode sisa. Jika ya, apa yang akan kira-kira diceritakan? Kita tunggu saja.

YMDA 2009 Finale and Nothing of me

Posted by: lamida on: Mei 21, 2009

Seperti biasa penyesalan pasti selalu datang belakangan. Penyesalan terbesar saya untuk 3 bulan terakhir adalah, why I can not manage my time with well? Manajemen waktu saya acak kadul. Semrawut, acak-acakan tidak keruan. Hasil dari kecacatan tersebut adalah tidak adanya nilai tambah yang saya peroleh dalam waktu tersebut. Tidak menambah ilmu baru (malahan yang ada mungkin adalah penyusutan), tidak adanya penambahan penghasilan, tidak ada penambahan hal-hal lain yang bermanfaat. Semuanya stagnan.

Penyesalan terbesar saya dari buruknya manajemen waktu tersebut adalah gagalnya saya menyelesaikan koding untuk Yahoo Mobile Developer Award 2009 lalu. Jika aplikasi saja tidak diselesaikan tentunya kans untuk menang menyusut menjadi 0 persen. Padahal jika saja saya bisa berkeras untuk menyelesaikan sejadi-jadinya aplikasi dengan segala keterbatasan waktu, tekanan yang sedang tinggi-tingginya di tempat kerja dan fisik yang sangat drop 2 bulan terakhir, mungkin saya akan memiliki peluang, mencapai sesuatu yang belum pernah saya gapai sebelumnya.

Hal yang menggembirakan dari kegagalan di atas adalah salah satu orang yang menjadi pemenang di YMDA 2009 tersebut adalah teman kerja saya. Dengan proses pengerjaan yang hanya sekitar 3 minggu saja, ia dengan gemilang berhasil memenangkan uang senilai USD 10,000. Sebuah nilai yang mungkin hampir tidak pernah terlintas di benak saya. Tentu saja kemenangan kawan saya tersebut sangat memotivasi saya. Jika dia saja bisa, alasan apa lagi yang membuat saya tidak bisa. Agak bosan juga terkadang, bila terus menerus mencari alasan ketika kita gagal menggapai sesuatu.

Tanpa banyak bicara, mulai detik ini saya ingin mulai menjadi orang yang bisa menyelesaikan apa pun yang harus diselesaikan. Mulai mengatur sumber daya diri dengan seefisien dan seefektif mungkin. Waktu, tenaga dan pikiran. You are what you think. There is a price for everything. Not always money, but mostly consistent effort.

Kos Koser

Posted by: lamida on: Mei 21, 2009

Setelah mempertimbangkan bahwa commute pulang pergi dari rumah di Jonggol ke kantor di Kuningan sudah menjadi hal yang tidak masuk akal, akhirnya saya memutuskan untuk kos. Sekitar minggu lalu saya menyewa kamar di Rawamangun.

Kenapa Rawamangun, pertama karena itu adalah satu-satunya daerah di Jakarta yang sudah tidak asing bagi saya, empat setengah tahun saya kuliah di Rawamangun. Kedua, harga kamar di Ramangun masih cukup terjangkau bagi pria yang masih berdompet tipis seperti saya. Agak kaget ketika saya mencoba survey harga kos di sekitar Kuningan. Sebagian besar ada di kisaran harga 1/3 hingga 1/2 gaji saya. Jika tetap saya ambil juga, artinya saya hanya bekerja untuk membayar kosan. Don’t make sense. Alasan ketiga, suasana di sana sangat menyenangkan. Dekat ke Kelapa Gading jika ingin cuci mata, banyak makanan, dan anti banjir. Alhasil dengan keputusan tersebut, saya bisa memangkas waktu di jalan. Semula 4 jam pulang pergi dengan total jarak 110 Km menjadi sekitar 50 menit pulang pergi dengan jarak 22 Km saja.

Dengan penghematan waktu dan jarak tempuh tersebut, saya berhasil mensubstitusi selisih waktu untuk kegiatan yang berguna. Saya seharusnya saya bisa menggunakan waktu untuk belajar dan menyelesaikan pekerjaan. Namun nampaknya saya lebih senang untuk memanfaatkan waktu tambahan yang saya dapat untuk menambah jam tidur. :) Setidaknya sekarang saya tidak sering batuk-batuk lagi karena diserang angin malam.

Rencananya saya hanya akan kos sekitar 2 bulan di sana. Saya adalah tipikal anak rumahan yang agak kurang betah jauh dari keluarga. Sejak kos saja saya tetap pulang setidaknya seminggu 2 kali. Setelah 2 bulan nanti saya sedang menyusun rencana lain dalam hal yang berkaitan dengan pekerjaan saat ini. Kita tunggu saja.

Posted by: lamida on: Mei 11, 2009

11 Mei 2008, tepat setahun lalu. 10 Mei 2009, tepat semalam. Ada banyak sekali hal-hal yang terus membuat saya berpikir. Mencoba menjawab kebingungan yang terkadang datang bertubi-tubi.

Ada banyak keindahan dari sebuah cinta. Terkadang ada rasa sedih juga yang harus diterima. Sesulit apa pun kondisinya, aku ingin selalu membuat orang bahagia, meski untuk itu mungkin aku harus siap untuk terus bersedih.

Jumlah Kunjungan

  • 82,442 hits

Pilih Kategori Tulisan

 

Juli 2009
S S R K J S M
« Jun    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Flickr Photos

mitsubishi-lancer-evolution-x-2008_2

jon 16 okt 7

jon 16 okt 6

jon 16 okt 5

jon 16 okt 4

More Photos