bermain-main dengan java reflection

Jumat, 18 September 2015
dalam posting ini saya hanya ingin mencoba java.lang.reflect dalam men-set property dari sebuah object. ada 2 cara yang saya coba yaitu dengan langsung men-set field-nya dan satu lagi yaitu dengan meng-invoke method setternya.

apa bedanya? silakan menuju ke http://blog.nostratech.com/2015/09/bermain-main-dengan-java-reflection.html untuk pembahasannya.

baca selengkapnya..






-------------------------------------------------------------------------------------

menguji atomisitas redis - INCR command

post ini ditujukan untuk menguji sifat atomisitas command INCR redis. 

kebutuhannya adalah, misalnya di aplikasi saya membutuhkan sebuah generator unique code. cara termudah untuk membuat unique code adalah dengan melakukan increment yang dimulai dari suatu angka, dan seterusnya. nantinya ini bisa dikombinasikan dengan character lain.

jika kita melihat dari 1 jvm, hal ini mudah saja, misalnya kita bisa buat sebuah variable static yang menampung angka tertentu dan menyiapkan sebuah method synchronized bagi thread yang hendak mengambil value tersebut (dan meng-increment-nya).

tapi bagaimana jika kita memiliki lebih dari 1 jvm? silakan menuju ke http://blog.nostratech.com/2015/09/menguji-atomisitas-redis-incr-command.html untuk pembahasannya.

baca selengkapnya..






-------------------------------------------------------------------------------------

sedikit pikiran

Minggu, 04 Januari 2015

ada yang bilang kadang kita baru akan menyadari pentingnya sesuatu setelah kita kehilangan sesuatu itu. tapi ga selalu begitu. pengalaman gw bilang kadang ketika kita kehilangan sesuatu, tiba-tiba mindset bisa berubah dengan cepat menyesuaikan dengan kondisi terbaru. dan kita tetap tidak menyadari sesuatu yang hilang tersebut karena, mungkin, di mindset yang baru sesuatu itu hilang dari posisi vitalnya, menyesuaikan misalnya dengan arah gerak atau tujuan baru.

dan ketika tiba-tiba si sesuatu itu datang kembali, mindset pun berubah lagi tetapi tidak dengan cepat. dan proses mengembalikan ke mindset awal tadi itu lah yang menyadarkan bahwa ada sesuatu yang selama ini hilang, dan akhirnya sekarang telah kembali.

teringat juga tentang sebuah ide yang cukup lama terlupakan. ide yang ditanamkan pada masa-masa perguruan tinggi. 'the last strong hold', sebuah benteng yang jujur dan berusaha mengutamakan kepentingan semua golongan, setia pada basis kemampuan. benteng yang kokoh. lama terlupakan, apalagi terimplementasikan.

2014, satu tahun waktu yang dibutuhkan untuk akhirnya menyadari itu. dan kini setelah kembali sadar, dengan segenap jejak dan pengalaman yang telah berkembang, apa yang mau dilakukan berikutnya? apa yang perlu dituang ke dalam langkah-langkah kecil untuk dijalankan mulai dari 2015?

karir
pembekalan kemampuan diawali dengan mindset survival. untuk bertahan hidup. melakukan sesuatu dengan keterampilan tertentu, untuk mendapatkan sesuatu yang bisa ditukar dengan kebutuhan dasar. di titik awal, apa pun dilakukan dengan tujuan sederhana: bertahan hidup.

ketika tujuan bertahan hidup telah tercapai, berikutnya adalah mengembangkan kemampuan lebih luas lagi. mencari tantangan di dunia yang baru, dengan tanggung jawab yang lebih besar. juga menuntut untuk ditukar dengan alat tukar yang lebih besar jumlahnya. dan seterusnya.

di 2014, tanpa sadar mindset telah berubah. melupakan salah satu hal utama yaitu bekerja sebagai kegiatan pembekalan kemampuan. terfokus pada tujuan lain yang materialistik yang, sejauh review saat ini, arahnya malah kontra produktif terhadap tujuan pembekalan kemampuan. ini tentu perlu diubah di 2015 dan seterusnya.

keluarga
setelah bisa menghidupi diri sendiri, kita mulai untuk berusaha menghidupi orang lain. minimal membantu mengurangi beban untuk orang-orang terdekat.

dari dulu selalu hadir di pikiran, betapa hebatnya sebuah pelataran, digunakan sebagai tempat berpijak bagi orang-orang yang melakukan berbagai kegiatan di atasnya untuk mengembangkan bakatnya masing-masing. betapa berartinya sebuah mercusuar, yang tegak dalam ombak dan memberi secercah sinar sebagai panduan dalam gelap. betapa menyenangkannya sebuah aliran air, digunakan untuk membersihkan, atau sarana bersantai menikmati aliran alam yang tenang, maupun aliran deras yang kadang terjadi dan digunakan sebagai sarana memacu adrenalin bagi penikmatnya. betapa hangatnya api yang memberi hangat dalam dingin. betapa bergunanya sebuah pisau, dengan karakter yang tajam bisa digunakan untuk menyiapkan makan maupun sebagai senjata.

aku ingin jadi itu semua, minimal untuk orang-orang terdekat, keluarga. karir dan kemampuan yang berkembang dalam perjalanannya, harus bisa digunakan sebagai pelataran, mercusuar dan pisau. karakter yang terbentuk dalam perjalanan harus bisa digunakan sebagai aliran air dan juga api. bagi orang-orang terdekat. masih banyak utang soal ini di 2014, semoga di 2015 bisa lebih baik.

lingkungan
ada banyak masalah di luar sana. berusaha menjadi bagian dari solusi. minimal, tidak menjadi bagian dari masalah. menuju lingkungan yang ideal, diperlukan ide. satu idealisme yang sama, berarti perlu satu ide bersama. spread out your idea! speak up! toleransi, hargai perbedaan sebagai suatu kekayaan. menuju indonesia yang damai dan berkemajuan tinggi.



baca selengkapnya..






-------------------------------------------------------------------------------------

mimpi aneh

Jumat, 10 Oktober 2014
mimpi aneh:

scene ada di mobil kaya mobil travel sendirian. duduk di tengah, trus pindah duduk di depan, nyetir sambil foto2. trus tiba2 ngerasa ada orang2 teriak2 di luar, tapi ga gw waro. tutup semua jendela otomatis dari posisi supir, 2 depan, 2 tengah, 2 belakangnya, itu ga ngliat buttonnya. cari terus masih ada lagi ga ke belakangnya, dst. masih ada lagi 2 belakangnya, pas diteken, ada suara pintu belakang ngebuka.

pas nengok ternyata bener pintu belakang kebuka. langsung berenti, itu di suatu tempat semen2an, mirip cucian mobil tapi kosong. trus turun.. ada org di luar nunjuk2 pinggiran semen (ky tembok pendek) yg kegores sesuatu, gw curiga jangan2 itu kegores pas gw minggirin mobil terlalu mepet. ada motor gw box sampingnya ilang. yg kanan ga ada, yg kiri ancur tinggal kerangkanya doang. gw ga terlalu mikirin itu ancur, tapi gw mikir 'wah berarti barang2 gw (yg gw inget ada beberapa baju) jatoh bececeran di jalan dong'. trus naikin motor ke mobil (dari pintu belakang, kursi2 belakang tiba2 ilang jd ada 'bagasi' gede).

trus naik ke mobil. naik2 ada org yg ceritanya gw kenal (entah siapa), dia supir dari yg punya mobil. tetep ga tau itu mobil siapa, dan siapa sbnrnya si supir itu.

*miss*

jalan pulang, turunan gitu, suasananya mirip di bali turun dari pacung ke arah mengwi. si supir yg bawa.

*miss*

berusaha nyari 'puing2' kecelakaan motor. tiba2 ngerasa 'pantesan gw ngerasa lemes bgt' (dugaan mungkin sbnrnya gw abis kecelakaan motor).

*miss* -> lupa apakah tiba2 liat puing2 trus berenti.

tiba2 kebangun di suatu tempat, masih dengan perasaan lemes n ngantuk dan berasumsi gw tadinya abis kecelakaan motor. ngliat sekeliling ada beberapa orang posisinya agak jauh.

*miss*

ada sesosok org yg ceritanya gw kenal sebagai temen gw yg sukanya berantem/ugal2an (memel). tiduran sambil kesakitan. dugaan awal gw dia sakit lehernya, masih dengan dugaan abis kecelakaan motor (tapi bener2 dugaan, ga inget sama sekali apa bener kecelakaan motor) gw pikir dia patah leher tapi masih idup. gw coba angkat dia, teriak2 ke orang2 utk bantuin ngangkat.

akhirnya gw ngangkat tmn gw itu sendiri, ngebopong rangkulan sambil gw pegangin lehernya. trus jalan, org2 yg lain ikut jalan, ada 1 lg yg ngebopong 1 org lagi. mereka itu semua entah siapa, tapi saat itu gw pikir mungkin mereka semua tmn2 gw.

sambil jalan gw tanya memel yg sakit leher atau pinggang, dia bilang pinggang. jadi gw stop pegangin lehernya, ganti pegangin pinggangnya utk njaga biar punggungnya ga bungkuk.

jalan ramean gitu gw udah lupa soal kecelakaan motor, tiba2 punya dugaan lain jangan2 abis berantem. trus pas jalan sampe di daerah tertentu, kaya jalan perumahan, mirip jalanan depan rumah gw. ngelewatin satu rumah, ada 2-3 orang di teras rumah itu. trus perasaan gw ga enak, ngeduga 2/3 org itu terlibat juga di kejadian berantem (yg gw ga inget sama sekali bener berantem atau ngga, cuma dugaan).

2 orang keluar, anak muda n bapak2.

*miss* -> lupa apakah ada 'tmn2 gw' yg ngomong sesuatu ke si anak muda, atau si anak muda negor duluan trus dijawab sama salah satu tmn2 gw.

si anak muda marah, mukul 2 temen gw yg lg saling ngebopong. masing2 sekali pukul, langsung jatoh kaya mau pingsan, berdarah2 idungnya.
*miss* -> lupa apa saat itu si memel dipukul jg sampe jatoh.

gw teriak ke tmn2 yg lain utk angkat lagi mereka2 yg jatoh abis dipukul si anak muda.

gw jalan lagi sambil ngebopong memel, sampe di ujung jalan itu, perempatan (mirip perempatan depan rumah gw). di situ gw makin bingung jangan2 bener kami abis berantem (mikir 'pantesan gw lemes, berarti bukan kecelakaan motor' tapi masih keinget soal motor gw yg boxnya ancur. tapi sempet kepikiran kalo jangan2 si memel yg bawa motor gw trus jatoh).

makin ga ngerti sama apa yg udah terjadi sebelomnya. tiba2 kepikiran ini kaya film hangover, berusaha mahamin kondisi, tracking dari kondisi terakhir, one thing leads to another, dari belakang ke depan.

trus kepikiran utk bangun dan nyatet ini sebelom lupa (ini masih dalem mimpi).

real:
trus kebangun beneran. masih agak pusing, liat jam (jam 23:20an). trus berusaha nginget2 sambil nyatet.

mau coba tidur lagi sampe jam 2, berharap semoga mimpinya lanjut lagi.



baca selengkapnya..






-------------------------------------------------------------------------------------

mendadak islami

Jumat, 18 Juli 2014
awalnya pas lagi nyari2 detail timezone (standard time dan daylight saving time) untuk tiap airport code (standard iata) buat kerjaan kantor, tiba2 nyampe ke stackoverflow.com (http://stackoverflow.com/questions/20553371/how-to-get-timezone-from-airport-code-iata-faa). trus malah jadi bengong soal stackoverflow.

stackoverflow tuh semacem socmed yg tujuannya untuk saut2an soal computer programming, ada yang nanya, ada yang njawab. kalo jawabannya bagus dapet reputasi dalam poin, kalo jawabannya jelek (ga nyambung sama pertanyaan) bisa dikurangin reputasinya dalam poin.
It features questions and answers on a wide range of topics in computer programming. The website serves as a platform for users to ask and answer questions, and, through membership and active participation, to vote questions and answers up or down and edit questions and answers in a fashion similar to a wiki or digg. Users of Stack Overflow can earn reputation points and "badges"; for example, a person is awarded 10 reputation points for receiving an "up" vote on an answer given to a question, and can receive badges for their valued contributions, which represents a kind of gamification of the traditional Q&A site or forum. All user-generated content is licensed under a Creative Commons Attribute-ShareAlike license. Closing unsuccessful questions is encouraged as a mechanism to differentiate from competitors such as Yahoo! Answers. -http://en.wikipedia.org/wiki/Stack_Overflow

di situs ini keliatan ada banyak orang pinter yang baik, suka ngajarin orang. gimana yang ngajarinnya bagus, gimana yang ngajarinnya sok tau, gimana yang ga ngajarin. ada yang ngajarin konsep, ada yang ngajarin cara codingnya (pake contoh code yg dia bikin), dan lain-lain. intinya sih di situs ini banyak orang-orang yang suka berbagi. berbagi masalah, berbagi solusi.

sampe lah akhirnya orang-orang lain yang lagi belajar tentang sesuatu, lagi nyoba2 trus eror, trus googling, dapet link yang sesuai sama keyword2 yang ada di pertanyaannya (karena sempat ada orang lain yang menanyakan hal yang sama) yaitu stackoverflow. dan seterusnya dan makin banyak juga orang yang dateng, bertanya, atau menjawab di stackoverflow. dan makin banyak juga lah keyword yang dia perluin untuk bisa kebaca sama mesin pencari cem google.

dia ga repot2 ngurusin SEO (http://en.wikipedia.org/wiki/Search_engine_optimization), tapi para pengguna sendiri lah yang mbantuk mereka untuk 'njaga' SEO tentang pentingnya keyowrds. yang terus menerus lahir dari perkembangbiakan para penggunanya. cerdas! ya cem gw ini lah 'korban'nya. gara2 ngebahas stackoverflow, liat aja di posting ini ada berapa kata stackoverflow. keywordnya tebel banget, disebut berkali2, iklan gratis buat dia :D

yah, intinya pengguna dan pengunjung situs ini meningkat terus. mereka udah dapet trust dari orang2 (thanks to search engines). selanjutnya mau bisnis apa lagi nih?

modalnya jelas, ada banyak orang pinter berkeliaran di situsnya. banyak orang nyari solusi di websitenya dia. 'gw jualin aja lah ni orang2 pinter', pikirnya. bikinlah dia program ini http://careers.stackoverflow.com/products. ada job listing, ada developer listing. developer nyari job, perusahaan nyari developer. dua2nya saling mencari, lalu berpadu cinta di dalam lapaknya. makin kuat aja lah brandingnya. tanpa perlu repot2 mikirin keberlangsungannya, toh 'produk' dan 'pasar'nya saling mencari satu sama lain di dalam brandingnya. cem prostitusi, pasti bakal bertahan terus lah :D

ide bisnis ini cerdas banget dan akan makin berkembang. selanjutnya apa lagi ya?

btw, kenapa judulnya mendadak islami, kok ga nyambung sama isinya?
ya justru biar rusak SEO nya, kalo judulnya 'tentang stackoverflow' jadi nambah lagi iklan dia di tempat gw.


baca selengkapnya..






-------------------------------------------------------------------------------------

Cucumber for Java Behaviour Driven Development

Selasa, 27 Mei 2014
Let's say the client or partner has a new requirement. We're dealing with what is exactly he wants. Then the requirements will be implemented by the developers. Is there any tool that can be use to ease this process, so we can get the exact cases what the client wants, and easy to be implemented by developers in their unit tests?

here it is: http://blog.nostratech.com/2014/05/behaviour-driven-development-using.html

baca selengkapnya..






-------------------------------------------------------------------------------------

trip singapura

Sabtu, 29 Maret 2014
sekali lagi berkunjung ke singapura. kali ini dibayarin sama kantor. saat trip pertama dulu, fokus perhatiannya ada pada transportasi publik yaitu MRT dan bis, namun kali ini karena dateng untuk keperluan kantor, jadi ga punya banyak waktu untuk jalan2 jauh yang pake MRT atau bis. akhirnya aktivitas perpindahan lokasi lebih banyak dilakukan dengan jalan kaki, sambil ngamatin kendaraan-kendaraan (mobil/motor/bis) yang mengisi jalan dan juga sambil ngamatin para pejalan kaki lainnya.

tata kota
salah satu yang cukup gw soroti di singapura adalah marka jalan. tiap jalan memiliki marka yang jelas. garis putih pemisah lajur, maupun kotak kuning (YBJ) menjadi standar di semua jalan yang gw lintasi, termasuk di jalan kecil. cukup miris ketika gw liat lagi kondisi jalan raya di Jabodetabek yang biasa gw lalui, garis pemisah lajur pun belum tentu ada. mungkin di jalan protokol garis pemisah lajur tercetak cukup jelas, tapi di jalan2 lain, tidak jelas dimana batas lajurnya. garis pinggir jalan pun jarang ditemui di jalan2 jabodetabek.

YBJ (Yellow Box Junction), bisa dilihat penjelasan fungsinya di http://catatan.tmcpoldametro.net/, tujuannya untuk menghindari deadlock di bagian jalan yang menjadi perpotongan antara beberapa jalur. di jabodetabek, YBJ hanya gw temui di beberapa perempatan besar yang rawan macet, dan itu pun banyak pengguna kendaraan pribadi yang tidak mengindahkan fungsi YBJ ini. di singapura, YBJ diterapkan dengan baik, bukan hanya di perempatan besar tapi juga bahkan di putaran antara 2 jalur, perpotongan jalan kecil dan jalan besar, hingga di samping lokasi perhentian bus selain halte.

ybj di putaran jalan

ybj di perpotongan jalan kecil

ybj di samping stop bus

para pengguna kendaraan di singapura pun menaati marka tersebut. suatu pagi yang gw amati, ketika lampu sedang merah, pengendara mobil yang kebetulan berada di 'belakang' YBJ, mengerem kendaraannya di belakang YBJ sampai lampu hijau kembali.

dengan ketaatan pengguna kendaraan seperti itu, selama seminggu gw di singapura, gw cuma denger 3 kali orang nglakson. sangat berbeda dengan suasana di jabodetabek.

enak banget jalan kaki di singapura. jalur pejalan kaki didesain dengan serius, trotoarnya lebar, tersambung terus di semua jalan. bahkan untuk nyebrang jalan, tersedia lampu merah untuk pejalan kaki. kalo lampu merah untuk kendaraan punya 3 warna (merah, kuning, hijau) dimana kuning artinya siap2 (siap2 jalan atau siap2 stop), bagi pejalan kaki lampunya cuma 2 yaitu merah dan hijau.

pada warna hijau pejalan kaki, ada nyala kedip2 dan nyala terus. nyala terus artinya orang bisa mulai menyebrang, sedangkan jika lampu hijau berkedip, pejalan kaki dihimbau untuk tidak mulai menyebrang. kadang ada sih yang tetep mulai nyebrang waktu lampu udah kedip-kedip, tapi konsekuensinya adalah si orang itu biasanya harus jalan cepet atau lari dari tengah jalan karena lampu kendaraan yg akan lewat udah hijau.

hal tersebut menunjukkan adanya perhitungan durasi berapa rata-rata waktu yang dibutuhkan orang-orang untuk menyebrang. jika lampu merah untuk kendaraan yang akan melewati jalur terebut akan berakhir (segera menjadi hijau), durasi rata-rata tersebut dibutuhkan untuk menentukan apakah lampu hijau pejalan kaki sudah perlu dikedipkan. detail sekali sistemnya dibuat.

kondisi ini membuat pejalan kaki (yah setidaknya gw dan temen gw) merasa dihargai sebagai pengguna jalan yang setara dengan mobil atau motor atau bis. dan entah bagaimana awalnya dikondisikan, para pengguna kendaraan pribadi akan selalu mengalah pada pejalan kaki ketika pejalan kaki hendak menyebrang.

jalan kaki dan kesehatan
dengan kondisi yang didesain nyaman untuk berjalan kaki, para penduduk singapura cenderung lebih memilih untuk berjalan kaki jika lokasi tujuan berjarak sekitar 1km dari lokasi awal. hal demikian akan mengimbangi kebutuhan para pekerja singapura untuk berolahraga minimal. dengan pola kerja yang lebih banyak dihabiskan di belakang meja atau di depan monitor, jalan kaki akan menyeimbangkan kebutuhan badan akan gerak.

jarang sekali gw ketemu pekerja/warga singapura berusia sekolah sampai usia kerja yang bertubuh gemuk. di jalan sehari2 yang gw temui mayoritas bertubuh langsing, baik pria mau pun wanitanya. gw rasa ini ada hubungannya juga dengan kebiasaan jalan kaki sehari-hari. seminggu gw di sana, lemak di perut gw banyak berkurang :D

berdasarkan data dari http://www.worldlifeexpectancy.com/country-health-profile/singapore, terlihat bahwa life expectancy warga singapur secara historis meningkat dari taun ke taun, dan pada taun 2011 menempati peringkat 8 besar terbaik di dunia.

walaupun termasuk nominasi negara dengan tingginya tingkat penduduk yang tidak bahagia (http://www.scmp.com/news/hong-kong/article/1131222/singapore-hong-kong-face-happiness-deficit?page=all), walaupun belum tentu tidak bahagia adalah sama dengan stress atau sedih, seperti dikatakan di artikel ini http://www.gallup.com/poll/158882/singapore-ranks-least-emotional-country-world.aspx bahwa penduduk singapur sedikit menggunakan emosi (positif ataupun negatif), tetapi data di paragraf sebelumnya menunjukkan bahwa singapur berada di nominasi negara dengan tingkat kesehatan terbaik.

hal di atas dapat dijadikan pelajaran bahwa dengan meningkatkan kualitas transportasi publik dan fasilitas pejalan kaki, membuat orang-orang akan memilih untuk menggunakan transportasi publik dan/atau berjalan kaki, dapat mengurangi potensi minimal dua masalah sekaligus yaitu kemacetan dan kesehatan.

etika sosial (formalitas)
banyak didenger bahwa di singapura orang2nya cenderung individualistik. ga peduli masalah orang lain, ga mau mengganggu dan ga mau diganggu. selama gw di sana, ketemu macem-macem orang dari negara dan budaya yang beda-beda, satu hal yang (mungkin tanpa sadar) dilakukan bersama-sama adalah meminimalisir gesekan yang mungkin terjadi akibat perbedaan budaya atau latar belakang antar individunya.

hal ini bukan berarti ignorant atau ga bersosialisasi satu sama lain, tetapi justru saling bersosialisasi tetapi dengan menciptakan suatu formalitas tertentu yang dilakukan bersama. hal kecil sebagai contoh, yang gw dapet fotonya, adalah foto ini

say thank you when someone holds the lift door for you

salah satu hal yang cukup menonjol di singapura adalah kebiasaan tidak memetingkan diri sendiri ketika berada di lingkungan sosial. entah itu di jalan raya, di stasiun MRT, di halte bis, mau pun di lift. cukup sering terlihat seseorang yang berada dekat tombol lift menahan pintu lift agar tetap terbuka agar orang-orang yang akan keluar dari lift tidak perlu terburu-buru atau hati-hati takut pintu tertutup saat dia akan lewat. dan untuk contoh demikian, formalitas yang dibentuk adalah dengan mengucapkan terima kasih kepada yang melakukannya.

kita tidak bisa menilai apakah mereka tulus atau tidak saat mengucapkan itu. tetapi bagi orang yang menahan pintu, tiap ucapan adalah apresiasi yang baik. gw pernah coba melakukan itu, dan gw cukup surprise karena banyak ucapan2 terima kasih yang disampaikan (biarpun sebagian dari mereka mengucapkannya dengan kepala menunduk tanpa kontak mata).

di kejadian lain, seorang kawan saya yang asli singapura menahan pintu, dan sambil gw keluar gw bilang 'thank you' ke dia dan reaksinya adalah dia dan beberapa kawan lain justru tertawa-tawa sambil menepuk punggung gw. ini gw artikan bahwa ucapan itu adalah formalitas bagi mereka-mereka yang tidak terlalu mengenal (atau bahkan tidak kenal sama sekali).

dan yang baik menurut gw dalam hal ini adalah, walaupun himbauan ini ditempel secara tertulis di lift, walaupun (mungkin) merupakan formalitas saja, tetapi tetap ada kesadaran untuk melakukannya. walaupun mungkin bukan dilandasi empati, tetapi memang mereka menyadari bahwa untuk meminimalisir gesekan, ada formalitas tertentu yang 'perlu' dilakukan dan tidak memalukan untuk melakukannya.




baca selengkapnya..






-------------------------------------------------------------------------------------

javaFX redirect page and passing object to controller

Selasa, 31 Desember 2013
how to redirect page and passing object between controller class in javaFX?
read more at http://blog.nostratech.com/2013/12/javafx-redirect-page-and-passing-object.html

baca selengkapnya..






-------------------------------------------------------------------------------------

ADF table multiple selection tanpa business component

Minggu, 15 Desember 2013
Ada kalanya saat menggunakan ADF, kita mem-bind suatu table tidak melalui business component, misalnya data tersebut tidak berasal dari database, bisa jadi hasil dari suatu kalkulasi di engine tertentu dan resultnya berupa list, atau bisa juga data didapat dari invokasi service (soap/rest).

bagaimana cara melakukan multiple selection untuk kasus seperti di atas? baca selengkapnya di http://blog.nostratech.com/2013/12/adf-table-multiple-selection-tanpa.html

baca selengkapnya..






-------------------------------------------------------------------------------------

Sentralisasi Hibernate Cache dengan Terracotta/Ehcache

ORM cache diperlukan untuk mengurangi akses ke database, yaitu untuk pengaksesan data yang sama berulang kali. Defaultnya, hibernate telah menerapkan caching pada level Session (L1). artinya, cache tersebut hanya digunakan oleh 1 user, dalam 1 proses transaksi. Bagaimana untuk menerapkan caching untuk multi-user (multi-session)?

baca selengkapnya di http://blog.nostratech.com/2013/12/sentralisasi-hibernate-cache-dengan.html.

baca selengkapnya..






-------------------------------------------------------------------------------------

maaf

Rabu, 07 Agustus 2013
prinsip 'no regrets' mbentuk mindset gw untuk selalu ga menyesali apa yang udah gw lakukan. selalu berusaha memanfaatkan yang udah terjadi itu untuk jadi bekal keesokan hari. menjalani konsekuensi demi konsekuensi. membiasakan diri untuk mengedepankan sisi positif dari yang telah terjadi tersebut, secara ga sadar bikin gw 'menghilangkan' negatifnya, demi memperkuat alasan untuk 'tidak menyesal'. selalu mencari pembenaran?

dengan mengasumsikan semua hal yg gw lakukan adalah udah ngelewatin pertimbangan matang tentang baik-buruknya, maka semua yang telah dilakukan dan telah terjadi tersebut pastilah yang terbaik. terbaik pada waktunya. tapi ada kalanya pertimbangan2 tersebut kurang mencakup aspek atau wawasan yang lebih luas. dan ada kalanya asumsi tersebut tidak dijalankan.

menjalani konsekuensi. dengan prinsip yang sama, no regrets. dan siklus akan berulang.

membiasakan diri seperti demikian, ada positifnya, ada negatifnya. positifnya, akan selalu berani menjalankan tiap konsekuensi, karena meyakini apa yang kita lakukan adalah tepat. tapi ada negatifnya, yaitu berkurangnya introspeksi diri.

pasti ada salahnya. meski tidak disengaja, kesalahan, terutama kesalahan yang dilakukan kepada orang lain, bisa menyakiti perasaan. dan itu melenceng dari salah satu prinsip yang ingin dikejar, yaitu 'tidak mengganggu dan tidak ingin diganggu'. walau tidak disengaja, kesalahan itu bisa mengganggu.

kadang kala, kata maaf tetap diperlukan. bukan saja kepada orang lain, tapi juga kepada diri sendiri. tetap berintrospeksi. dan terima saja kenyataan bahwa kadang kala 'regrets' tetap diperlukan.

maaf.

baca selengkapnya..






-------------------------------------------------------------------------------------

some of these days thoughts

Minggu, 07 Juli 2013

beberapa pikiran beberapa hari (atau beberapa minggu) ini. ada beberapa pikiran yang ga berkaitan dengan yang lain, mungkin sbnrnya postingan ini bisa dibagi2 jadi beberapa posting pendek (subpost), tapi males ah ngepost banyak2. gabungin aja lah ya.

chat server application
dimulai dari ngulik2 oracle communications instant messaging server - kita singkat aja namanya jadi ocims. dia salah satu produknya oracle yang nanganin real-time communication, 'saingannya' oracle beehive (mungkin beehive udah tenar duluan). standar dan teknologi protocol yang diusung: xmpp, singkatnya si ocims ini adalah server buat chatting.

kalo kita chatting di ym misalnya, kita ngetik di aplikasi (desktop/web) nya ym, ngeliat presence (siapa aja yg online/offline), dll. semua aktivitas yg kita lakukan di aplikasi tersebut akan dikirim ke server chatnya yahoo. utk diterusin lagi ke setiap pemilik akun ym yg lagi online, secara realtime. misalnya kita ngechat temen kita, yg kita ketik dikirim ke server, trus server akan nerusin informasi tadi ke aplikasinya temen kita (baca: client). trus nongol deh message kita di sana.

*technically, bukan server yang akan nerusin info tadi ke client. tapi tiap client naro listener di server, utk nerima message yang ditujukan ke dirinya, dan dibawa ke aplikasi kliennya.

itu artinya, server ga akan berguna kalo ga ada kliennya. aplikasi apa yang bisa jadi clientnya?

itu lah asiknya xmpp (atau jabber). selain teknologi, dia juga adalah sebuah standar. dengan adanya sebuah standar, beberapa provider (server) bisa menerima client dari berbagai aplikasi. sekarang google, facebook, yahoo pada pake xmpp utk instant messagingnya, dan utk bisa mengakses mereka (bahkan pada saat bersamaan) kita bisa menggunakan aplikasi seperti pidgin/adium dan kalo ga salah ym versi baru juga support utk login ke im-nya facebook..

kalo demikian, logikanya, setelah gw setup ocims, gw bisa konek pake pidgin dan adium. dan bener aja, memang bisa konek, login, ngliat presence, kirim2an message, juga kirim2an file. sukses.

chat client application
oke, kita bisa konek pake adium. tapi main goalnya apa sih sebenernya? ternyata si klien itu lagi pengen integrasiin fitur chat ke aplikasi portalnya. portalnya dia pake oracle juga. jadi yang harus dilakukan berikutnya adalah masang chat client di sebuah aplikasi web. si aplikasi web ini nantinya akan di-embed ke halaman portal.

pidgin bisa di-embed ke aplikasi web ngga? gw ngga tau. gimana caranya?
coba googling2, nemu beberapa web chat app pake javascript, misalnya yg ini: http://opkode.com/media/blog/converse.js-xmpp-instant-messaging-with-javascript. wah bagus nih, coba ah. ternyata eh ternyata, browser punya kebijakan same origin policy, silakan baca juga HTTP access control. jadinya koneksi xmpp harus 'dialihkan' melalui http, memanfaatkan BOSH.

so, terkait dengan aplikasi client ini, ada 2 opsi: 1) pake javascript yg udah ada, trus setup bosh di ocims, atau 2) ga perlu setup bosh, tapi bikin aplikasi xmpp client pake java, utk di-embed ke web app. opsi (1) keliatannya butuh effort yang lebih banyak utk ngertiin dulu apa itu bosh, dan gimana cara kerja bosh sbnrnya, dan gimana hubungan teknis bosh dan xmpp server. jadi karena dikejar waktu, opsi (2) lah yg dipake.

harusnya kalo pake javascript aplikasinya bisa jauh lebih ringan daripada aplikasi webapp java. terkait dengan masalah server processing. kalo pake java framework, misalnya jsf atau adf atau yg lain, komponen2 direndernya oleh server, dengan kata lain, server harus melakukan juga fungsi tambahan selain processing data, kalo concurrent usernya banyak mungkin akan kerasa beratnya.

tapi apa mau dikata, waktu lah yang akhirnya mengerucutkan pilihan. webapp pun dibuat pake framework oracle adf (mempermudah integrasi dengan oracle webcenter portal, udah ada pluginnya di IDE jdeveloper) dan xmpp client diimplementasi menggunakan smack api.

kondisi saat ini, xmpp client sudah berhasil dijalankan (terpisah dengan framework adf). tetapi saat diintegrasikan dengan framework adf, masih tersangkut masalah terkait dengan mekanisme page rendering dan data control yang dimiliki sama adf. curhatan soal ini dibahas dikit di subpost life barrier di bawah.

review soap vs rest webservices
sebenernya ini dimulai dari case umum: gw pengen aplikasi gw dijadiin soa-based, utk integrasinya pake webservice. pertanyaannya: mendingan mana, webservice RESTful atau SOAP?

di situ ada overview sekilas, dilanjutin dengan komparasinya. disertakan juga link2 referensi kalo mau baca2 lebih lanjut. silakan.

life barrier
ini tentang sudut pandang.

semua hal yang dilakukan tiap orang, berasal dari sudut pandang orang tersebut terhadap objek yang dikenai pekerjaannya. hal-hal kecil yang dilakukan berulang-ulang dan akhirnya membentuk kebiasaan. karena telah terbiasa, akhirnya orang tersebut menjadi yakin dalam menjalaninya. entah salah atau benar, tapi keyakinan pada apa yang dilakukan (atau apa yang dituju) itulah yang memunculkan keberanian (menghadapi konsekuensinya) dan makin memperkuat karakter tiap orang, yang tentunya berbeda satu sama lain. sudut pandangnya berbeda.

misalnya seorang programmer. anggaplah dia programmer java. terbiasa menggunakan library2 opensource dalam proses developmentnya. karena yang digunakan adalah library, maka logika programming yang dia terapkan pun berdasarkan logikanya. logika dan arsitekturnya adalah rancangan logika sang programmer.

tiba-tiba pada suatu hari, programmer tersebut diminta untuk melakukan development softwarenya menggunakan framework (bukan library) milik vendor tertentu. library mengacu pada reusable functions, framework mengacu pada reusable behaviors. behaviors berarti tingkah laku, dan tingkah laku terkait dengan logika si pembuatnya, terkait lagi dengan sudut pandang pembuatnya.

adalah sebuah kesalahan fatal bagi seorang programmer untuk ngotot membawakan logikanya di tengah framework yang dia gunakan. karena dalam banyak kasus, logika sang programmer tidak sejalan dengan logika pembuat framework. dan pemanfaatan framework itu pun jadinya bukan best practice nya framework itu. dan bug2 yang tidak perlu pun bermunculan, dan usaha2 fixingnya pun bisa jadi malah memperparah keadaan. dan mungkin solusi terakhir yang bisa dilakukan adalah rework. mengikuti logika pembuatnya.

konteks yang sama bisa juga diterapkan dalam logika beragama. ketika seseorang telah menjalani hari2nya dengan keyakinan yang berasal dari logikanya sendiri, selama bertahun-tahun. dan kemudian berusaha mengenal suatu agama dan/atau kepercayaan (mendekati keyakinan melalui sudut pandang tertentu) tetapi dengan membawa logikanya dalam (berusaha) memahami kepercayaan itu.

agama, artinya aturan, untuk membuat jadi teratur. mengatur behavior tertentu, bisa dianalogikan sebagai framework tiap orang sebagai programmer yang memprogram kehidupannya, untuk mengenal framework, harus dilepaskan dulu logika pribadinya. ikuti alur dan mekanisme frameworknya.

dan, yah… ga mudah untuk melepas logika bawaan. karena artinya sudut pandangnya harus diubah. tetapi untuk mengenal sebuah framework/agama, sudut pandang harus diubah mengikuti framework/agama-nya. walaupun ga mudah.


baca selengkapnya..






-------------------------------------------------------------------------------------

membandingkan SOAP dan REST webservice

Senin, 01 Juli 2013
silakan langsung menuju halaman ini
http://blog.nostratech.com/2013/07/membandingkan-soap-dan-rest-webservice.html

baca selengkapnya..






-------------------------------------------------------------------------------------

Membuat Custom WebLogic Certificate

Rabu, 26 Juni 2013
membuat custom weblogic certificate, dengan symantec (free trial).
http://blog.nostratech.com/2013/06/membuat-custom-weblogic-certificate.html

baca selengkapnya..






-------------------------------------------------------------------------------------

Parsing ISO 8583 dengan jPOS Library

Selasa, 11 Juni 2013
sekilas tentang iso 8583 dan parsingnya dengan jPOS.
http://blog.nostratech.com/2013/06/parsing-iso-8587-dengan-jpos-library.html

baca selengkapnya..






-------------------------------------------------------------------------------------