java podcast

Indo Java Podcast #15 : Pentaho

4

Episode kali ini adalah lanjutan dari episode sebelumnya. Tamu kita masih sama, Feris Thia dari PHI Integration dan founder dari milis pentaho indonesia (pentaho-id@googlegroups.com). Kita membahas dari awal apa itu pentaho hingga secara detail membahas satu per satu komponen / modul yang ada dalam pentaho. Tak lupa juga kita bahas tentang milis pentaho indonesia yang ramai sekali.

Setelah itu kita lebih jauh membahas tentang langkah-langkah development aplikasi BI mulai dari membuat star schema, kemudian setup ETL untuk mengambil data dari aplikasi transaksi dikirim datanya ke BI. Setelah itu dibuat cube dari fact table, dan pada akhirnya bisa dibuat MDX query untuk mempresentasikan cube yang sudah dibuat.

Pembahasan paling seru terjadi ketika kita membahas secara teknis bagaimana ETL (Pentaho Data Integration / kettle) bekerja, membuat table transaksi yang BI friendly hingga membahas perbedaan antara data dalam excell dan data dalam table database.

Podcast kita akhiri dengan pembahasan lebih lanjut tentang industri BI di indonesia serta membahas karir di BI.

#15 http://indo-java-podcast.googlecode.com/files/indo-java-podcast%2315.mp3
- Pentaho sebagai solusi dan pentaho sebagai perusahaan
- Arsitektur aplikasi yang menggunakan Bussiness Intelligence
- Komponen Pentaho
– Pentaho Reporting
– Pentaho Data Integration (Kettle), aplikasi ETL yang merupakan komponen jagoanya Pentaho
– Pentaho Analysis (Mondrian), crosstab reporting tools
– Pentaho Data Mining (Weka)
– Pentaho BI Server

Indo Java Podcast #14 : Data warehouse, data mining dan bussiness intelligent bareng Ferish Thia

0

Hi pendengarnya indo java podcast. Lagi-lagi kita perlu waktu 3 bulan untuk menerbitkan episode baru :(, setelah awal tahun kemaren saya yang sibuk, gantian 3 bulan terakhir Dito yang sibuk, jadi mohon maaf atas ketidaklancaran penerbitan episode Indo Java Podcast. Kali ini kita kedatangan tamu, Feris Thia, dari PHI-Integration. Kita ngomongin Data Warehouse, Data Mining dan Bussiness Intelligent dari awal sampai akhir bahkan sampai beberapa topik diluar teknis seperti lowongan kerja, karir di area ini hingga pengalaman implementasi PHI di berbagai perusahaan.

Kita mulai membahas tentang apa itu Data Warehouse dan dua mahzab yaitu : Ralph Kimball dan Bill Inmon (http://en.wikipedia.org/wiki/Data_warehouse). Kemudian dilanjutkan dengan membahas lebih lanjut teori aliran Kimballites, di dalamnya ada teori tentang snowflake schema dan star schema. Saya sendiri cukup mendapat banyak penerangan tentang istilah-istilah penting dalam DW, misalnya apa itu fact table dan dimension table yang sebenernya adalah nama lain dari master table dan transaction table di OLTP.

Setelah puas membahas DW, kita lanjut ke tema yang lebih seru, yaitu Data Mining dan Bussiness Intelligent. Nah di sini ada istilah yang disebut dengan active reporting, dimana report yang ditampilkan kepada pengguna sudah mengandung “kecerdasan”, bukan lagi pasif reporting yang cuma menampilkan data dalam bentuk table, diagram atau malah cuma angka-angka gak bermakna. Singkatnya, Data Mining dan Bussiness Intelligent itu membuat data bisa ngomong dengan bahasa manusia :D. Data Mining dan Bussiness Intelligent bisa membuat management melihat keadaan perusahaan dengan lebih jelas dan dengan persepsi yang sama, kalau cuma data pasif yang disajikan, maka setiap orang dalam managerial bisa punya asumsi yang berbeda tentang keadaan perusahaan, ada yang bilang oh penjualan kita OK nih, nah ini parameter OK dilihat dari mana? Bussiness Intelligent bisa menterjemahkan data yang dikumpulkan oleh Data warehouse menjadi laporan-laporan aktif seperti ini.

#14 : http://indo-java-podcast.googlecode.com/files/indo-java-podcast 14.mp3
- Data Warehouse
– Ralph Kimball dan Bill Inmon
– Snowflake schema dan Star schema
– Dimension dan Fact schema
– Slowly changing dimension
- Bussiness Intelligent dan Data Mining

Indo Java Podcast 13 : Migrasi EJB2.0 ke EJB3.0, Spring Integration di EJB3.0, Buku Java Desktop

3

Hai, pendengarnya indo java podcast. Udah 3 bulan berlalu tanpa episode baru, banyak hal terjadi dalam 3 bulan kemaren, terutama karena saya ganti status, jadi waktu weekend kebanyakan pulang ke indonesia untuk mempersiapkan acaranya. Nah akhirnya minggu kemaren ada waktu luang lagi untuk rekaman indo java podcast episode 13.

Episode kali ini kita (saya dan dito) membahas tentang kerjaanya dito di kantor, yaitu migrasi dari EJB2 ke EJB3 dan bagaimana mengintegrasikan EJB3 menggunakan Spring. Kesimpulanya, Spring bisa digunakan bersama-sama dengan EJB3 maupun EJB2 dengan sangat baik, Spring mempunyai peran cukup signifikan untuk mengurangi kode untuk menjembatani antara MVC framework (Struts dalam hal ini) dengan backedn (EJB3).

Bagian berikutnya kita membahas buku saya yang segera terbit, judul bukunya “Java Desktop : Membuat Aplikasi POS menggunakan Swing, Spring dan Hibernate”. Buku ini saya tulis di sela-sela kesibukan sehari-hari, makanya waktu penulisanya menjadi cukup panjang, 8 bulan. Buku ini sebenernya adalah penjelasan dari project-template yang saya buat, jadi nantinya setiap template yang saya buat di project-template.googlecode.com ada buku pendampingnya. Tentu saja ini bukan perkara instant, karena menulis buku itu ternyata memerlukan waktu jauh lebih lama daripada menulis kode.

#13 : http://indo-java-podcast.googlecode.com/files/indo-java-podcast%2313.mp3
– Migrasi EJB2.0 ke EJB3.0
– Integrasi Spring dan EJB3.0
– Buku Java Desktop

Happy Podcasting

Indo Java Podcast 12 : Membuat Framework Sendiri, EJB dan Spring

1

Episode kali ini Indo Java Podcast tidak berhasil mendatangkan satupun nara sumber untuk ngobrol bareng. Alasan utama sepertinya gara-gara libur natal-tahun baru sehingga nara sumber yang kita hubungi sedang sibuk dengan acara keluarga atau sedang cuti kerja.

Kali ini saya dan Dito ngobrol tentang thread yang panjang banged di JUG-Indonesia. Thread ini dimulai oleh Eko S.W yang berniat membuat framework sendiri. Banyak pro dan kontra dari anggota JUG mengenai hal ini. Quote-quote yang muncul pun banyak, misalnya tentang sindrom NIH (Not Invented Here) dimana hal-hal generic seperti framework selalu dibuat oleh orang lain yang mempunyai expertis, waktu dan resource untuk fokus membuat framework. Quote lain lebih memilih jalan tengah, “If you want to reinvent the weel, make sure it’s rounded”, pendapat ini tidak memandang Reinvent the wheel sebagai hal yang sia-sia, tapi tetap memberikan penekanan bahwa membuat framework itu gak gampang dan pastikan yang mau membuat mempunyai expertise yang cukup.

Saya sendiri memandang bahwa generasi baru framework web java yang populer lebih mementingkan UI dibanding hanya sebatas MVC. Framework yang mempermudah developer membuat UI tanpa harus dipusingkan dengan CSS serta masalah “cross browser” menjadi sangat populer, apalagi kalau bisa dipadukan dengan framework MVC yang sudah populer seperti Spring dan Struts2.

Setengah bagian podcast berikutnya Dito membahas tentang migrasi EJB2 ke EJB3. Di kantornya yang sekarang arsitektur yang digunakan adalah EJB2 dan Spring, kemudian karena alasan performa, EJB2 akan diupgrade ke EJB3 sekaligus Spring-nya juga diupdate. Satu hal yang saya pelajari, ternyata Spring itu friendly sekali dengan EJB, banyak class-class bawaan Spring yang dapat mempermudah development EJB. Salah satunya adalah LocalStatelessSessionProxyFactoryBean, class ini dapat menyulap EJB Session Bean menjadi Spring Bean, sehingga kita bisa menggunakan IoC untuk menginject Session Bean ke class lain (servlet atau struts action). Teknik IoC jauh lebih baik dan bersih dibanding harus melakukan JNDI lookup untuk mendapatkan Session Bean.

#12 http://indo-java-podcast.googlecode.com/files/indo-java-podcast%2312.mp3
– membuat framework sendiri
– EJB2-Spring
– Migrasi EJB2 ke EJB3
– Selamat tahun baru 2011

Happy Podcasting

Indo Java Podcast 11 : Laporan Dito dari Oracle OTN Days 2010 Singapore

0

Kali ini tamu kita nggak asing lagi, Dito, yang melaporkan pandangan mata dari Oracle OTN Days 2010 Singapore yang dilaksanakan pada bulan november kemaren. Dari acara tersebut banyak yang dibahas, terutama yang lagi Hot adalah Java EE 6, JDK 7 dan JDK 8. Improvement di Java EE 6 seperti servlet 3.0 dibahas dengan panjang lebar, indo java podcast episode 7 juga membahas Java EE 6.

Highlight berikutnya adalah Java Language improvement di JDK 7 dan JDK 8, project-project baru seperti lambda, coin dan jigsaw dibahas panjang lebar oleh Dito. Cukup menarik pembahasanya, karena sudah ditunggu-tunggu oleh komunitas java kapan ini JDK versi baru keluar.

Seperti biasa, di acara dev days java selalu diikuti oleh pembahasan tentang Solaris dan tools-nya. beberapa tahun terakhir DTrace selalu menjadi materi presentasi, kali ini ditambahin tentang BTrace yang sepertinya merupakan enhancement dan generasi terbaru tools Solaris untuk management aplikasi.

#11 http://indo-java-podcast.googlecode.com/files/indo-java-podcast%2311.mp3
– Liputan Oracle Technology Network (OTN) Developer Day 23 November 2010 Singapore
– Keynote Session: Java – The Language of the Future Slide
– Overview of Java EE 6.0 Slide
– Java Development Kit 7 and Java SE 7 Slide
– Java Persistence API Best Practices Slide
– Java FX 2.0 Slide
– Dynamic instrumentation of Java Applications using DTrace and Btrace Slide

Happy Podcasting

Indo Java Podcast 10 : Ngobrol bareng Adelwin tentang Large Development Team

1

Kali ini Indo Java Podcast kedatangan tamu, Adelwin Handoyo dari Standard Chartered Bank Singapore. Kita ngomongin tentang development team yang berukuran cukup besar. Obrolan dimulai dengan menjelaskan seberapa besar ukuran project-nya, struktur team dan development proses yang ada di SC.

Obrolan berlanjut ke development cycle mulai dari nulis kode, commit ke versioning system, build hingga deploy ke staging (test) area. Ada beberapa jenis staging area : CIT (component integration test), SIT (system integration test), UAT (user acceptance test), Load Test, Penetration Test. Setiap staging area ini mempunyai test team tersendiri untuk memastikan semua aspek aplikasi dari kebutuhan fungsional sampai kebutuhan non fungsional dicapai.

Setelah proses development dan testing dibahas, kita membahas konfigurasi di deployment seperti application server, database, reverse proxy hingga SSO authentication. Database connection menjadi topik yang cukup hangat karena sering kali menjadi bottleneck performance aplikasi, salah satu cara memecahkan masalah ini adalah dengan menggunakan cache. Pembahasan mengenai database berlanjut ke topik indexing, cartesian query joint hingga penggunaan Hibernate untuk memastikan bahwa semua query yang ditulis programmer berkualitas tinggi.

Quote yang saya suka banged dari podcast kali ini adalah “seberapa pinter kamu, seberapa banyak knowledge kamu, seberapa cemerlang ide kamu, semua itu gak berguna kalau kerjaan di depan mata nggak selesai”. Mentalitas ini sangat kental di development team besar, knowledge tentang berbagai macam framework tidak berguna kalau kode yang kita tulis mengandung banyak bug, strukturnya berantakan dan susah dimantain. Teman saya sekantor yang selalu mendapat outstanding achievement setiap tahunya, bengong ketika saya ngomongin PHP!, tapi kodenya bagus, terstruktur, minim bug, attitude-nya sepuluh jempol! serius 100% terhadap kerjaan nggak nyambi nggak melakukan hal-hal yang nggak berhubungan dengan kerjaan selama di kantor. Peer presure juga sangat terasa, karena kode kita digunakan oleh orang lain dan juga sebaliknya, kalau kita lambat menyelesaikan tugas kelihatan sekali sebagai bottleneck, dan pastinya tidak bagus di mata PM.

#10 http://indo-java-podcast.googlecode.com/files/indo-java-podcast%2310.mp3
- Perkenalan Adelwin Handoyo
- Large Development Team di Standard Chartered dan Deutsche Bank Singapore
- Technology Stack : Struts2-Spring-MyBatis-Oracle
- Tools dalam development: Ant, Maven, Eclipse, IBM Rational Change, HP Quality Center, HP Load Runner
- Development process
- Testing process: CIT, SIT, UAT, Load Test, Penetration Test.
- Konfigurasi deployment: WebLogic, Managed Server, apache httpd reverse proxy, CAS, SSO
- Attitude menentukan sekali keberhasilan seseorang dalam lingkungan development besar

Happy Podcasting

Indo Java Podcast #9: Web Security bareng Ganius Tanuel

1

Sekarang ini aplikasi web sudah menjadi standard aplikasi untuk banyak organisasi, termasuk institusi finansial dan perbankan. Aplikasi untuk institusi ini sangat sensitif dan harus dilindungi dengan keamanan maksimum. Indo Java Podcast kali ini kedatangan tamu, Ganius Tanuel dari Visa, beliau adalah Security Assessor yang bertugas untuk melakukan assessment terhadap aplikasi di perusahaanya.

Security Assessor dikenal juga sebagai Ethical Hacker, jadi pekerjaan sehari-hari beliau adalah berusaha melakukan hacking atau bisa juga disebut sebagai penetration test. Kegiatan hacking ini dilakukan dalam dua tahap, tahap pertama dilakukan secara terotomasi dengan perkakas, setelah itu dilanjutkan dengan manual hacking untuk mencari celah keamanan aplikasi.

Di bagian berikutnya kita membahas top 10 OWASP security vulnerabilities yang mencakup : SQL Injection, XSS (Cross site scripting), Session Fixation, Input Validation dan seterusnya. Selain dibahas jenis vulnerabilitynya kita juga membahas tentang bagaimana menghindari celah ini muncul di aplikasi kita. Pembahasan berikutnya dilanjutkan dengan studi kasus apache.org yang diserang hacker beberapa bulan lalu. Beritanya bisa dilihat di sini.

#9 : http://indo-java-podcast.googlecode.com/files/indo-java-podcast%239.mp3
– Perkenalan Ganius Tanuel
– Security Assessor, Ethical Hacker
– Automated dan manual penetration test
– owasp.org, PCI complience dan Security Regulation
– OWASP top 10 security vulnerability dan bagaimana mencegahnya
– Apache.org hacked, studi kasus

Happy podcasting

Indo Java Podcast #8: Didiet said “Java Sucks!!”

2

Episode #8 indo java podcast terasa sangat istimewa dengan kedatangan Didiet (@lynkluna) dari mijix. Kita ngobrol panjang lebar kesana-kemari tentang platform java yang sucks big time. Banyak hal di platform java yang sekarang nyaris tidak relevan lagi digerus teknologi baru yang lebih baik. Misalnya Java Desktop yang kalah pamornya dibanding cocoa di mac atau GTK di linux, Java ME yang nasibnya tinggal menunggu waktu digerus sama Android. Praktis Java Platform hanya menyisakan Java EE saja.

Obrolan makin seru dengan membahas VM yang sekarang ada di pasaran, seperti interpreter-nya python, interpreternya PHP dan Ruby. Kemudian perbincangan menyerempet konsep Thread vs Fork-Join Process di Unix dan windows, dimana sebenernya di low level implementation JVM menterjemahkan Thread sebagai Light Weigth Process di *nix tetapi JVM tidak bisa menterjemahkan Thread menjadi Process di windows platform karena membuat process baru di windows cost-nya sangat tinggi. Inilah alasan utama kenapa Java multithreading mempunyai kinerja lebih tinggi di *nix platform dibanding di windows platform.

Obrolan beralih ke topik Synchronous vs Asynchronous Socket, dimana dulunya socket programming tidak mendukung synchronous excecution, karena model asynchronous socket itu susah sekali dihandling di dalam kode aplikasi, maka diperkenalkanlah synchronous socket, di java semua class di dalam java.io menerapkan synchronous socket. Application server java versi lama seperti tomcat 5 ke bawah menggunakan synchronous socket. Ternyata belakangan synchronous socket tidak disukai karena performancenya cenderung turun kalau request-nya sangat banyak. Diperkenalkanlah lagi konsep asynchronous socket, package java.nio menggunakan asynchronous socket, dan application server yang lebih baru seperti tomcat 6 ke atas menggunakan asynchronous socket, hasilnya kinerja tomcat 6 dengan load tinggi sangat stabil dan tidak ada gejala penurunan kinerja. Didiet juga mengutarakan kalau PHP tidak bisa menggunakan asynchronous socket, makanya didiet nggak ngefan dengan PHP :D.

#8 http://indo-java-podcast.googlecode.com/files/indo-java-podcast%238.mp3
- Java Sucks
- JVM dan VM lain
- Multithreading dan Fork-Join paralelism
- Synchronous vs Asynchronous Socket

Happy Podcasting

Indo Java Podcast #7 : Spring Roo vs Java EE 6 Death Match

5

Indo Java podcast #7 akhirnya terbit juga setelah agak lama. Proses editingnya memerlukan waktu cukup lama karena ada kesalahan teknis pada waktu rekaman, file yang kerekam terputus-putus menjadi beberapa file dan akhirnya harus digabung-gabungin lagi.

Anyway, indo java podcast ini membahas dua buah framework aplikasi web java: Spring Roo dan Java EE 6 web profile. Pembahasan dimulai dengan memperkenalkan spesifikasi masing-masing framework. Roo menggunakan Spring MVC 3.0, JPA, ApectJ dan dojo toolkit. Kalau Java EE 6 web profile menggunakan JSF 2.0, PrimeFaces 2.1, JPA 2 menggunakan EclipseLink dan Servlet 3.0.

Kita membuat sebuah aplikasi sederhana yang terdiri dari sebuah table, ada halaman form untuk insert dan update table, ada satu halaman untuk menampilkan table dalam grid. Table yang kita gunakan adalah table person yang terdiri dari beberapa kolom seperti id, nama, password dan satu kolom blob untuk menyimpan foto yang diupload user.

Di bagian awal dito menerangkan panjang lebar mengenai development modelnya Spring Roo yang menganut DDD (Domain Driven Design) dimana Model / Entity tidak hanya dumb class sebagai representasi dari table database, tetapi juga mempunyai kapabilitas untuk melakukan operasi terhadap dirinya sendiri. Misalnya ada Entity Person, maka akan ada method Person.save(), Person.delete(), Person.update() dan seterusnya. Dengan DDD, DAO pattern secara otomatis menjadi tidak berguna, karena operasi terhadap Entity dilakukan di dalam Entity itu sendiri, tidak di dalam DAO. Roo tidak hanya framework, tapi tools untuk rapid development, sepertinya Roo ini mengambil banyak inspirasi dari Ruby on Rails. Framework java yang menggunakan metode serupa adalah Play Framework.

Di segmen berikutnya saya menerangkan lebih jauh tentang Java EE 6, kemudian menjelaskan satu per satu file yang saya buat. Mulai dari SessionBean, Entity, Servlet, ManagedBean hingga ke UI file-nya. Penjelasanya cukup teknis dan cukup sulit dibayangkan tanpa melihat source code-nya, jadi silahkan browse langsung source codenya di :

http://code.google.com/p/indo-java-podcast/source/browse

Atau bisa juga pull repository indojava podcast menggunakan mercurial cleint, atau bisa juga install tortoise-hg.

hg clone https://indo-java-podcast.googlecode.com/hg/ indo-java-podcast

#7 http://indo-java-podcast.googlecode.com/files/indo-java-podcast%237.mp3
- Pengenalan Spring Roo
- Pengenalan Java EE 6 Web profile
- DDD (Domain Driven Design) di Spring Roo
- JSF, JPA, EJB dan Servlet di Java EE 6
- Aplikasi CRUD sederhana menggunakan Spring Roo dan Java EE 6

Happy Podcasting

Indo Java Podcast #6 : Ngobrol bareng dengan Daniel Baktiar tentang Software Architect

3

Indo Java Podcast kedatangan tamu lagi, kali ini yang menemani kita ngobrol adalah Daniel Baktiar. Kita ngobrol bareng tentang role Software Architect dalam dunia industri IT. Obrolan berlanjut ke stack teknologi yang digunakan oleh Daniel di perusahaan sekarang, developement environtment dan tools hingga sampai ke bagaimana belajar java yang baik.

Daniel memberikan gambaran yang cukup jelas tentang apa itu Software / Solution Architect, peranya dalam SDLC hingga skill apa yang diperlukan oleh seorang Architect. Satu quote yang menarik adalah “Role Software Architect itu dibuat agar orang-orang technical karirnya tidak langsung mentok”. Architect dalam SDLC berperan sebagai partner dari Project Manager untuk memberikan keputusan teknis dalam sebuah tim development. Architect juga harus mempunyai skill teknis yang sangat luas mulai dari platform pengembangan aplikasi, developement environtment, deployment environtment hingga harus mengerti tentang berbagai macam regulasi.

Architect juga harus mempunyai life skill berupa komunikasi dan negosiasi agar rekomendasinya yang diajukan ke management bisa diterima, serta harus bisa memperoleh kepercayaan dari anggota development team bahwa framework yang digunakan memudahkan development dan menaikkan produktifitas. Menjadi agen perubahan itu sarat dengan subjektifitas, tidak cukup bahwa perubahan yang dicanangkan adalah sesuatu yang baik, subject yang membawa perubahan juga harus baik.

#6 http://indo-java-podcast.googlecode.com/files/Indo%20Java%20Podcast%20%236.mp3
– Role Software Architect
– Daniel’s Framework Stack : Struts2-Spring-Hibernate
– Daniel’s Development Tools and Metodology : Subversion-Maven2
– Daniel’s Deployment environtment : Database-Virtualization
– Being Agent of change
– Belajar java dari mana?

Happy Podcasting

Go to Top