Wednesday, December 26, 2007

Nokmote Beta 1 released

Setelah menunggu berminggu - minggu akhirnya Tuan Samir merelease Nokmote beta 1 kemarin (25 Desember 2007).
Ku download versi unsigned-nya kemudian signed sendiri, install, trus dijalankan di N95-ku ternyata benar-benar ribet, navigasi dengan pergerakan itu lebih sulit dibanding sekedar menekan button navigasi.
Setidaknya nokmote bisa membuat N95 anda pamer keunikan kepada pengguna hape jenis lainnya.
Bravo accelerometer!
Bravo Nokmote!
Bravo N95!

Tuesday, November 13, 2007

RotateMe.. NokMote.. Hidden accelerometer

Funny stuffs,.. dari sini aku baru tahu ternyata N95 mempunyai hidden accelerometer.
Dengan RotateMe bikin N95 mirip iPhone dalam menentukan screen dari landscape ke potrait dan vice versa, cukup dengan menggerakkan hape ke posisi tegak atau menyamping.
Itu belum seberapa unik, ada yang lebih unik lagi dari pembuat RotateMe yaitu NokMote, membuat hape berdansa mirip Wiimote, lebih jelasnya lihat videonya di sini.
Sayangnya masih harus nunggu release NokMote sampai Desember. Sudah googling kemana-mana memang belum disebarkan. Kalo sudah ada yang dapat, bagi dong?

Flash Lite 3.0 Security Sandbox

Terdapat perbedaan security sandbox pada Flash Lite 3.0 dibanding versi-versi Flash Lite terdahulu. Secara umum Flash Lite 3.0 mengikuti model dari Flash 8 security.
Ketemu masalah yang baru ku sadari ketika ingin membuat aplikasi Flash Lite 3.0 dengan menggunakan XMLSocket yang berhubungan dengan SocketServer lokal yang dibuat dengan Python di N95, (ide ini secara umum sudah diterapkan di Flyer Framework).
Terdapat kesulitan untuk koneksi, pertama kali aku menduga hal ini disebabkan perbedaan versi interpreter Python yang ku pakai (1.4.1) dengan os device.
Setelah berapa kali utak-atik, akhirnya ku coba dengan emulator Adobe Device Central CS3 di PC untuk koneksi dengan server socket sederhana di Python Desktop, ternyata berhasil terkoneksi.
Ketika dicoba di device tetap gagal, demikian pula ketika di coba diputar dengan Flash Player 9 terdapat dialog security window.
Setelah membaca Local file security ada beberapa penjelasan yang membantu penyelesaian masalah.

# Trust management is done by the host application in Flash Lite.

Flash Lite 3.0 standalone player sebagai host.

# No trust configuration files are required in Flash Lite.
Ini yang repot bila kita membuat local swf yang ingin akses ke network.
Dengan begitu mekanisme load 'cross-domain policy files' tidak akan membantu??

# SWF file developers, manufacturers, and carriers must make all security decisions in Flash Lite. There is no user-mediated trust, or Settings Manager. However, the host application may provide a mechanism by which users can make limited security decisions. For example, the host may allow users to designate a particular SWF file as trusted.

Beberapa aplikasi swf2sis seperti Janus, KuneriLite yang bertindak sebagai host mungkin dapat menangani hal ini di Flash Lite 1.x - 2.x, tapi belum ada pemberitahuan untuk FL3.

# Prohibited operations fail silently; no dialog box is displayed in Flash Lite.
Ini yang membuat pusing pada awalnya, tidak ada pesan kesalahan atau koneksi gagal yang disampaikan.

Mestinya untuk Flash Lite harus ada fasilitas On Device Debug seperti kepunyaannya SonyEricsson.

Sunday, November 04, 2007

I got my FlashLite 3.0

Setelah agak lama menunggu, akhirnya FlashLite 3.0 Developer Edition yang ku request 3 minggu lalu mampir juga di inbox. Sebuah email dari Richie Teo (Adobe System Incorporated) berisi attachment SIS langsung ku download.

FlashLite edisi developer ini merupakan standalone, jadi tidak terintegrasi dengan web browser built-in dari N95. Nokia sendiri telah mengumumkan dukungan FlashLite 3.0 pada device terbaru mereka dalam waktu dekat.

FlashLite 3.0 mempunyai perbedaan dengan FlashLite versi-versi sebelumnya seperti pada performance (rendering, scripting speed, dan code optimization) yang 25% - 30% lebih baik, manajemen memory yang lebih efisien, dukungan terhadap FLV, Emoticons in predefined color, External API for browser scripting.

Informasi tentang FlashLite 3.0 lebih lanjut dapat di lihat di FlashLite Features, FlashLite version comparison, FlashLite architecture, Nokia CreativePro.

Saat ini tidak ada link langsung untuk download FlashLite 3.0 dan aku tidak bisa membagikannya karena SIS-nya IMEI depending, bila anda tertarik bisa merequest via email, petunjuk lebih lanjut bisa dibaca disini.

Untuk eksperimen lebih lanjut terutama mobile video dengan FlashLite 3.0 belum bisa ku posting, karena masih diluar kota. Tapi sebagai persiapan ada baiknya anda download Flash Lite 3.0 Update for Flash CS3 Pro and Device Central CS3 dari MaD Developer Center.

Friday, October 12, 2007

Meski terasa sulit mengucapkannya, tetapi...

Meski terasa sulit mengucapkannya, tetapi tetaplah tulus kami menghaturkannya :



/**
* @langversion Actionscript 3.0
*
*/

function
selamatLebaranUntuk(penerima:Person):String{

var teks:String = "Assalamualaikum " + penerima.getNama() + "\n";
teks += "Kami sekeluarga mengucapkan : \n";
teks += "Minal Aidin Wal Faidzin\n";

var arrayKhilaf:Array = BukuKesalahanDanKhilaf.getKhilafTo(penerima);

for(var i:int = 0; i<= arrayKhilaf.length; i++){

var khilaf:Khilaf = arrayKhilaf[i] as Khilaf;
teks += "Mohon Maaf Lahir dan Batin,\n";
teks += "bila ada kesalahan berupa " + khilaf.detail + "\n";
teks += "sewaktu " + khilaf.getTime() + "\n";
teks += (khilaf.isSengaja) ?
"yang tersengaja \n" :
"yang tidak kami sadari\n\n" ;
}

teks += "\n\n";
teks += "Di Idul Fitri 1428 H ini, semoga tetap terjaga silaturahmi\n";
teks += "dan kebersamaan kita\n";
teks += "Wassalamualaikum Wr. Wb\n";
teks += "Deden Ramadhan sekeluarga.";

return teks;

}

trace(selamatLebaranUntuk(anda));



Tuesday, October 09, 2007

FlashLite 3.0 Developer Edition for N95 device available by request

FlashLite 3.0 edisi developer untuk N95 bisa diperoleh dengan submit email ke mobiledeveloper@adobe.com dengan subject "Request for FL3 Developer Edition" disertai IMEI N95 anda di dalam email tersebut.
Perlu diperhatikan bahwa waktu submit email itu hanya dilayani pada tanggal 16 Oktober 2007 sore hari waktu Eastern Time (GMT+4) atau kira-kira (jam 11.00 WIB 16 Oktober 2007 malam s/d 04.00 am WIB 17 Oktober 2007 dini hari). Dan built SIS-nya akan tersedia pada akhir 19 Oktober 2007.

Tuesday, September 25, 2007

Logo Eclipse vs Logo Konica Minolta

Pernah lihat tim Honda di MotoGP yang disponsori Konica Minolta Honda?
Coba perhatikan logo Konica Minolta

Benar-benar mirip dengan logonya Eclipse IDE dari IBM kan?
Siapa yang tiru siapa?

Logo Konica Minolta :


Logo Eclipse :

Saturday, September 22, 2007

SmartComGPS, Widsets untuk N95


Thanks untuk pembuat aplikasi SmartComGPS, untuk kompatible aplikasinya dengan GPS built-in N95.
Juga untuk kompatibilitas dengan aplikasi mapping favorit OZI Explorer.
Thanks untuk teknik brilian membungkus file image superbesar menjadi .ogf2, sehingga aku dapat melihat kontur satelite kabupatenku di N95, termasuk record track sepanjang 90 km menuju puskesmas-ku.
Setelah dipikir, salah satu keuntungan mempunyai PDA/HP dengan fasilitas GPS, dibanding GPS devices sendiri adalah, kita bisa meng-install berbagai aplikasi yang terkait dengan GPS. Ada puluhan aplikasi seperti itu jumlahnya diluar sana, dari yang populer seperti Route66 sampai Tomtom Mobile seri terbaru.
Dibandingkan dengan standalone GPS, bagaimana kita bisa menambahkan aplikasi baru kedalamnya?

Yang patut dicoba lagi adalah Widsets, sebuah midlet java yang visioner, dengan kemampuan menambahkan widget client baru (seperti add-on atau plug-in). Sudah tersedia ribuan client baru yang siap di-"pick". Client dengan bermacam fungsi tersebut yang terdiri dari news reader, feed reader, game, email client, dapat di tambahkan OTA langsung kedalam midlet.
kunjungi http://www.widsets.com/

Wednesday, September 12, 2007

The page *googlesyndication.com/* was not accepted!

Seandainya kita dapat dengan mudah mem-block *googlesyndication.com/* di-Firefox, tanpa perlu program kaya Ad Block.
Di Offline Commander dengan mudah kita bisa set project filter dengan "AND NOT *googlesyndication.com/*"
Lumayan untuk ngirit bandwidth!

Monday, September 10, 2007

WBXML

Dulu sekali pernah Bill Gates mengatakan segala sesuatunya akan melalui XML.
Terbukti sekarang banyak sekali ditemui XML di kehidupan kita. Yang paling sering dapat dilihat di badan feed yang kita update tiap pagi, atau di SOAP dan Webservices, atau di MXML yang kita utak atik di Flex,dan masih banyak lagi yang belum disebutkan.

Karena XML begitu general, hanya sebuah data string literal yang terstruktur dengan sederhana sehingga dapat dimengerti oleh semua pihak di semua platform. Meskipun XML sudah banyak termodifikasi seiring dengan keperluan pemakaiannya, tetap saja strukturnya mengikuti kaidah baku sesuai dengan namespace-nya.

Salah satu kendala dalam pemakaian XML adalah ukurannya yang kadang-kadang membengkak dan tidak efisien dalam menentukan struktur dan konten serta entities-nya. Sehingga developer masih memilih alternatif lain dalam pertukaran data. Misalnya developer Flash banyak yang lebih menyukai pemakaian protokol AMF dibanding XML dan variannya. Karena content binary AMF masih lebih compact dibanding source XML yang berupa string.

Karena itu makin banyak dikembangkan format lain untuk pemakaian XML yang lebih efisien. Salah satunya adalah WBXML (Wireless Binary XML) content format.
Wireless Binary XML sengaja didesain untuk mengurangi ukuran tranmisi dari dokumen XML, sehingga mengefektifkan penggunaan data XML terutama pada jalur komunikasi berkecepatan rendah (narrow-band).
Format binary dari WBXML tetap mampu menghantarkan data tanpa adanya fungsionalitas dan informasi semantik yang tercecer. Didesain untuk tetap menjaga struktur elemen dari XML, dan memperbolehkan browser untuk men-skip elements atau attributes yang tidak diketahui. Binary format dari WBXML di encoded dari hasil parsing dokumen XML terutama dari struktur dan konten serta entiti dokumen. Sedangkan Meta-information termasuk definisi tipe dokumen dan conditional sections tidak disertakan ketika XML di-convert ke binary format.

Untuk pembahasan XML lebih lengkap baca di
XML Schema, http://www.w3.org/XML/Schema

Untuk mengenal WBXML lebih lanjut baca di
WAP Binary XML Content Format, http://www.w3.org/TR/wbxml/

Saturday, September 08, 2007

FlashLite, JSR179 di N95

FlashLite yang didukung oleh N95 saat ini adalah FlashLite 2.0, sedangkan FlashLite 2.1 baru akan didukung oleh Nokia N95 8Gb, yang agak bikin repot adalah sewaktu mau upgrade ke FlashLite 2.1 di N95 ternyata tidak berhasil. Muncul error yang mengatakan tidak bisa menginstall/ meng-update aplikasi yang sudah terinstall di ROM.
Hal ini terjadi karena identifier yang digunakan oleh FlashLite 2.0 dan FlashLite 2.1 serupa.
Hampir mirip dengan keadaan di PC dimana semua Flash Player baik dari semua versi generasi maupun versi debug/non debug menggunakan identifier yang sama.
Ada baiknya Adobe menerapkan sistem identifier yang dapat menangani situasi seperti ini.

Untuk J2ME API, ternyata N95 sudah mendukung implementasi dari JSR179 (Location API for J2ME). Dengan demikian kita bisa membuat sebuah aplikasi midlet untuk navigasi dengan GPS built-in dari N95.
Ada beberapa pertimbangan untuk membuat sebuah aplikasi navigasi peta daripada hanya menggunakan aplikasi serupa yang bawaan dari Nokia (Smart2Go).
Pertama, tidak semua kota di Indonesia yang sudah tercakup di pre-installed NokiaMap yang disertakan sewaktu pembelian. Hanya Jakarta saja. Itu pun menurut beberapa sumber (pengguna GPS lain) menyebutkan detail dan feature map tidak dapat dibandingkan dengan GPS devices seperti Garmin atau pun Magellan.
Selain itu, meskipun Nokia sudah memberitahukan adanya kerjasama dengan third party (Solo Maps) untuk pembuatan dan pemasaran peta kota lain terutama di Jawa dan Bali yang suitable dengan NokiaMap, tentunya tidak gratis begitu saja sampai ke pengguna.
Pertimbangan lain adalah kadangkala N95 memerlukan charge untuk koneksi guna mendownload fitur-fitur tambahan dan area yang tidak tercover.
Dan hal lain yang sering membuatku kecewa dengan GPS devices (tidak Garmin, tidak Magellan, tidak juga N95) adalah keakuratan bangunan alam di peta vector generik mereka. Ini sering ku temui sewaktu tracking dikotaku. Seringkali sewaktu menyisiri daerah pinggiran sungai besar, ada daerah rute, POI (point of interest) yang sebenarnya masih berada 400 meter dipinggir sungai, tetapi bila dilihat di screen ternyata sudah berada di tengah-tengah sungai besar itu. Ada kemungkinan rata-rata semua devices diatas memakai sumber source peta yang sama, terutama pada daerah di Kalimantan yang tentu saja sangat terpencil dibanding tanah Amerika sana sehingga keakuratan belum tentu terjaga. Hal lain yang menyebabkan kondisi seperti itu kemungkinan adalah pemakaian Datum WGS 84 yang mungkin tidak aplikable pada daerah-daerah di Indonesia. (sok tau kali..)

Dari semua pertimbangan dan ide pembuatan aplikasi devices, yang paling penting adalah pemilihan platform. Apakah menggunakan platform J2ME atau Symbian akan menghasilkan perbedaan besar pada outputnya. Terlalu lama sebagai pengguna SonyEricsson yang berbasis BREW J2ME mengharuskan aku untuk mengutak-atik lagi CodeWarrior untuk menyegarkan ingatan.

Friday, August 17, 2007

Merdeka!!, atau sekedar balik modal

1 (satu) bulan pertama menetap di desa ini, suasana Agustusan tetap sepi.
Mungkin karena aku ber-tipe "Soliter phlegmatic-melancholic" makanya kesepian ini tetap dapat ku nikmati.
Selama 1 bulan pertama disini sudah 2 kali aku mendapat pertanyaan serupa dari warga yang agak mengusik pikiran.
Mereka nanya begini : "Bapakkan sudah capek lama-lama kuliah kedokteran, keluar biaya banyak, gak taunya ditugaskan disini. Gak bisa balik modal dong?"
Pada awalnya aku tidak begitu "ngeh" dengan pertanyaan itu. Karena aku pikir maklum saja mereka nanya, karena mereka kan pedagang pendatang.
Mereka tidak tahu kalau biaya kuliah ku 1 semester murah meriah, mungkin masih lebih mahal 6 bulan SPP anak SMA swasta sekarang!
Jadi dokter adalah nasib, dan menjalankan profesinya seperti iklan berlabel 76 itu adalah pilihan, tidak ada pikiran untuk bersandar lebih pada itu. Karena jadi PNS bukan segalanya, makanya ketika ditanya oleh senior ku mau jadi apa nanti dengan karir kepegawaian ku, ku jawab sekena-nya, "Mau jadi seniman, pak!"
Tidak perlu memikirkan balik modal, karena aku tidak merasa almamater ku menjual ilmu kepada kita. Semua terasa sudah kembali ketika aku membaca pengumuman kelulusan UMPTN. Tidak perlu memikirkan berapa yang sudah dikeluarkan untuk mempelajari programming selama 10 tahun ini, karena semua sudah kembali ketika berkutat dengan belitan alur logika yang mengalir di thread ratusan ribu baris kode yang sudah kita tuliskan di actionscript.
Hari ini mesti ku kaji lagi tentang pengertian-pengertian Waktu, Liquiditas, Asosiasi, dan Empati yang selalu memberi batas tentang pergerakan akal secara dinamis.

sloppy maneh...

Note : Flash based VOIP di Flex benar-benar menjadi loncatan Flash Tech berikutnya setelah Flash Video.

Monday, August 13, 2007

Listrik mati..(lagi)

Untuk kesekian kalinya, PLN mati lagi didesa ini. Terpaksa beberapa pekerjaan script tertunda (lagi).
Kemarin sewaktu scan di blog-nya John Grden ketemu suatu penjelasan penting yg sederhana tentang performance operasi aritmetika di actionscript 3.0.
Disitu diberitahukan m=n*.5 lebih cepat dibanding m=n/2 .
Tapi m=n>>1 masih lebih cepat dibanding m=n*.5
Itu hal penting yg sering kita sepelekan

Monday, July 30, 2007

SWF 9 File Specs and Banjir..



Minggu kemarin pulang dari pelosok,
Setelah 20 km naik motor melewati jalan berpasir dan agak rusak.
Akhirnya sampai di jembatan pertama, berhenti sebentar di desa (Lampuyang) itu untuk mencari makan.
Baru turun dari motor, ternyata baru sadar kalo jalan didepan sudah dipenuhi banjir setinggi lutut.
Mestinya selama 20 km berikutnya aku pasti akan terjebak banjir.

Di hari-hari normal pun untuk melewati jalan Desa Lampuyang - Seranggas akan penuh perjuangan, karena rusak berat dan dipenuhi oleh kubangan disana-sini. Dan batang kayu banyak melintang disetiap badan jalan yang tertutup lumpur!
Apalagi sekarang banjir setinggi itu? Kasian motor dinasku! Kalo badan sih gak perlu dikasiani!

Akhirnya gak jadi makan, mending uangnya untuk ongkos nyewa perahu.
Ongkosnya, untuk 1 orang dengan 1 motor ditawarin oleh bapak yang punya perahu Rp. 40.000,-
Sebenarnya bisa ditawar sih. Tapi aku malas saja untuk nawar.
Apalagi bapaknya tahu kalo aku dokter yang tugas dikecamatan ini.

Kemudian selama perjalanan 15 km berikutnya, aku dan motorku numpang perahu, kemudian berhenti di desa Kuin.
Aku kira sudah terbebas banjir. Gak taunya masih ada, setinggi lutut lagi!! Terpaksalah dengan bersusah payah selama 1 jam, akhirnya bisa lega.
Selanjutnya 55 km sisanya bisa menikmati kembali perjalanan pulang yang dihiasi pemandangan kebun kelapa tiada henti-hentinya, diselingi hutan karet.

Katanya spesifikasi file SWF versi 9 sudah mulai di release ya?
(Taunya pas baca blognya Emmy Huang, kemarin).
Aku belum menyimak secara jelas, tapi kalo arsitektur SWF 9 termasuk spesifikasi file abc (actionscript byte code ) sudah diketahui secara jelas oleh publik, jadi akan tinggal menunggu waktu paling lama setengah tahun untuk mendapatkan decompiler file swf ya?

Siapa yang paling beruntung dengan di-release-nya spesifikasi swf-9 ini?

Yang pertama; Vendor-vendor lain yang selama ini mempunyai tool untuk meng-export animasi dan multimedia ke file SWF 8 dan sebelumnya, untuk di upgrade ke SWF 9.

Yang kedua; Para pembuat SWF alternative untuk aplikasi seperti Nicolas Cannase (HaXe), dan OpenLaszlo.

Yang ketiga; Para pembuat decompiler, deassembler, obfuscator flash dari yang proprietary sampai free, seperti Sothink, ASVGuy (Burak. K) dan Igor Kogan (Flasm dan Flare).

Selain itu para developer dan pemerhati flash awam seperti kita perlu mengetahui spesifikasi SWF 9 untuk sekedar menambah wawasan.

Saturday, July 21, 2007

Apa kabar dunia

Sudah agak mendingan sekarang, bisa ketemu koneksi lagi..
Bulan ini agak susah bikin posting baru karena atasan ngotot untuk meresmikan puskesmas baru secepatnya.
BTW puskesmas yang dimaksud berada 90 km selatan kota ku, dipinggir pantai dengan geograpik yang sangat indah.
Jarang jarang kan menemukan kondisi dimana ada tanah pantai selebar 100 meter kemudian tegak lurus sepanjang 2 kilometer, dan kiri kanan-nya pantai!! Yang kanan pantai pasir putih dengan ombak agak gede langsung berbatasan dengan laut jawa, sedangkan yang kiri pantai ditumbuhi rumput hijau halus dengan bunga warna-warni dengan ombak tenang, berbatasan dengan teluk air payau. Tengah-tengahnya penuh dengan pohon cemara. Kedua pantai beda habitat itu membentuk garis sejajar selebar 100 meter , sepanjang 2 kilometer!!
It's beautiful beach, we call it Ujung Pandaran..
Karena aku satu-satunya dokter disini yang mau ditugaskan ke tempat eksotik itu, (tuntutan profesi). Berat sih!!
Tidak ada MXNA disitu, tidak ada Nicolas Cannasse, penduduk tidak ada yang nyambung di ajak ngomong tentang J2ME apalagi diskusi tentang RecordStore.
Yang paling krusial mungkin ngusahain koneksi internet disana, juga GPS devices! Sama Cessna 182 Skylane R/C Engine untuk sekedar park flyer sore-sore dipinggir pantai... :) kalo bisa sih!!, terserah kalo harus sampai menyisihkan sebagian dana operasional ,hahahaha! Apa kata BPK nanti!!
Tapi itu sepadan lah kalo dokter miring kaya aku harus berada dalam kondisi yang 'paradoxal' begitu!
I miss my free time for coding..

Tuesday, June 26, 2007

Decorator Pattern

Pada penerapan OOP di Actionscript 3.0, konsep inheritance mempunyai dua kelemahan utama :

  • Kita tidak bisa mengubah ciri bawaan dari suatu object class sewaktu runtime. Contohnya sebuah class DesimalKorektor. Kita tidak akan bisa mengubah sebuah DesimalKorektor menjadi DesimalKorektorDuaDigit sewaktu runtime bila kita memakai konsep inherintace secara klasik.

  • Semakin kita banyak menggunakan permutasi, akan semakin susah memakai beberapa class di package kita. Lebih jelasnya begini ; jika anda ingin meng-extend-kan sebuah class DesimalKorektor supaya lebih scalable, anda mungkin akan membuat subclass ScalableDesimalKorektor dari DesimalKorektor. Untuk membuat DesimalKorektor yang bisa di-undo, anda mungkin akan membuat subclass UndoableDesimalKorektor. Tetapi, bagaimana caranya bila kita ingin mengkombinasikan fitur-fitur dari beberapa subclass tadi menjadi satu subclass (sewaktu runtime)? Dengan inheritance anda harus mendeklarasikan subclass tadi untuk menambahkan fitur baru. Setiap fitur baru akan meningkatkan jumlah class yang diperlukan, sehingga akan diperlukan usaha lebih dalam management-nya.

Pada beberapa “aliran” developer, ada yang melakukan beberapa metode untuk menanggulangi kelemahan dari inheritance ini. Diantaranya dengan menggunakan “Decorator Pattern”. Untuk menambahkan fitur baru pada suatu subclass, Decorator Pattern lebih menerapkan konsep komposisi dibandingkan pewarisan dari inheritance. Sehingga akan menjadi mungkin untuk menambahkan ciri baru dan mengubah perilaku (behavior) dari class tersebut sewaktu runtime.
Prinsip utama dari Decorator Pattern adalah setiap object decorator dengan type tertentu dapat menambahkan atau merubah behavior dari object yang di “decor”. Sang class Decorator dan class yang di “d├ęcor” harus meng-implement interface yang sama.

Decorator Pattern terdiri dari :
  • Decorator / decorated (interface)

  • Concrete decorated (class)

  • Absctract decorator (class)

  • Concrete decorator (class-class)


Di posting berikutnya akan kita bahas masing-masing elemen diatas.

Saturday, June 16, 2007

Bookmark June 16 2007

Biasanya, frame rate benar-benar merepotkan bila di Flex. Ada banyak alasan untuk berpendapat seperti itu. Terutama bila dalam membuat sebuah SWF yang mempunyai banyak frame. Flash sudah tentu lebih baik dalam menghasilkan SWF yang tahu bagaimana cara menangani preload dari timeline dengan frame yang banyak, demikian juga dalam menangani playback-nya. Karena Flash lebih baik dalam membuat SWF yang mempunyai content berupa animasi.

Sebaliknya urusan animasi di Flex tidak akan semudah itu, pertama dalam proses pembuatannya tidak dikenal konsep timeline, kemudian dalam playback-nya, akan di-eksekusi “lebih lambat”.
Karena, kita terdogma menerapkan sebuah “state” aplikasi/animasi di Flash berdasarkan frame (frame state navigation) dengan gotoAndStop() atau gotoAndPlay(), atau dengan mengatur visible/ alpha transparansi dari MovieClip.

Tidak demikian dengan Flex, karena Flex mengatur “state” dengan menggunakan DisplayList (Flash Player 9 DisplayList).
DisplayList memungkinkan anda mempunyai sebuah Sprite/MovieClip yang exist, tapi belum di-render di stage. Jadi bila pada animasi yang mempunyai banyak frame di timeline-nya, maka SWF hasil dari Flash akan melakukan preload asset-asset yang akan dimainkan terlebih dahulu. Sedangkan SWF hasil dari Flex tidak menerapkan proses preload seperti itu, sehingga animasi akan dijalankan lebih lambat.

Urusan “state” dalam SWF penting dalam interaksi dengan user, baik untuk navigasi maupun “application state” dan animasi. Di Flash kita terbiasa mengatur sebuah MovieClip dengan visible property ke false, yang artinya MovieClip sudah berada ditempatnya di stage, hanya saja belum terlihat, dan kemudian membuat visible menjadi true pada saat yang diperlukan. Sedangkan pada Flex terdapat mekanisme yang lebih mendasar dalam mengatur state. Pada banyak UI Component di framework Flex mengatur “state” dengan “add” dan “remove children” dari DisplayList. Umumnya sesaat setelah asset di jalankan (di-animasi-kan) akan langsung di “removed” dari DisplayList, dan akan menjadi prioritas utama oleh Garbage Collector untuk disingkirkan dari RAM. Sehingga ketika animasi dijalankan lagi, akan lebih lambat karena asset tadi akan harus di-load lagi ke memory.

Sedangkan di Flash, proses tadi berlangsung simple, karena secara “alami” kita selalu membuat frame awal sebagai preload, untuk memberitahukan Flash Player me-load semua asset – asset animasi sebelum playback. Dan proses “removing asset” yang sudah dimainkan dari RAM oleh Garbage Collector (Flash Player 8) biasanya akan dilakukan secara berkala setiap 60 detik atau ketika penggunaan RAM meningkat 20% atau lebih.

Yang perlu dipertimbangkan lagi adalah sewaktu embedding sound dan image di Flex. Karena di Flex tidak dikenal konsep Library, sehingga anda perlu menggunakan tag embed di code Flex anda untuk meng-asosiasi-kan image dan suara external ke sebuah variable, dan menggunakan variable itu untuk “link” ke asset. Asset-asset external ini di embed ke SWF sehingga anda tidak perlu khawatir tentang preloading misalnya dengan loadMovie atau Sound.loadSound.
Flex membungkus asset ini dengan class-class khusus yang dinamakan Class “Asset”, hampir mirip dengan kondisi ketika anda meng-import sound ke Flash Library dan meng-export-nya dengan linkage.
Bila kita meng-embed sebuah symbol MovieClip dari SWF eksternal, maka Flex akan membungkusnya sebagai class mx.core.MovieClipAsset, dan ketika kita meng-embed sebuah image, Flex akan membungkusnya sebagai class mx.core.BitmapAsset.
Artinya.., akan sulit mengakses class ini di SWF Flash 9. Kecuali dengan menempatkan MovieClipAsset dan BitmapAsset beserta sebagian framework Flex yang terkait di Flash 9 classes directory.

Monday, June 11, 2007

Flasher adalah developer paling sibuk

Boleh suka atau nggak setuju!!
Dibanding developer atau programmer bahasa lain, flasher merupakan developer yang paling kurang tidur karena perkembangan teknologi flash sangat cepat.
Dari September 98 Flash 3, Juni 99 Flash 4, Agustus 2000 Flash 5, Maret 2002 Flash 6, September 2003 Flash 7, Agustus 2005 Flash 8, 2006 Flex, April 2007 Flash CS3 (9).
Tidak sampai setahun selalu muncul versi barunya.
Bandingkan dengan Java (dari seri 1.4 ke seri 1.5 perlu berapa tahun?), juga PHP (dari php 4 ke php 5 perlu berapa tahun), .NET ?, VB ?, Perl?

Hampir tidak bisa menghela nafas sebentar pun sewaktu baru selesai memahami salah satu bagian paling abstrak di Flex 2.0.1 yaitu "Flash ApplicationDomain" sekarang sudah muncul Flex 3 yang datang dengan kemampuan cache Flex Framework. Berbarengan juga dengan Adobe AIR beta (a.k.a Apollo), Adobe Flash Player Update 3 juga, coba cek di lab!

Software proprietary lain yang bikin developernya banyak begadang kebanyakan dari jenis multimedia ya? Seperti 3DSMax? Atau ada yang lain? Sedangkan kalo dari jenis Language Background paling cuma Actionscript ya?

Kemana pun arah perkembangan tool favorit anda, selama masih suka pasti selalu bergairah mengikutinya, gak pernah mengeluh..

Yes!! We're Flash Tech Addict!!

Friday, June 08, 2007

Public Variable, Get/Set, Binding..

Kapan sebaiknya kita memilih menggunakan antara get/set atau public variable di class kita?
Dalam beberapa situasi, penggunaan get/set mempunyai keuntungan tersendiri.
Sebaliknya pada situasi lain public variable akan lebih efektif dibandingkan get/set

Sedangkan dalam penggunaannya, bentuk pemanggilan keduanya mempunyai kesamaan.


//Contoh penggunaan public variable dan get/set
myClass.myPublicVariable = true;
//atau
trace(myClass.myPublicVariable);



Pendeklarasian public variable :

/** 
* Contoh deklarasi public var di myClass
*/


[Bindable]
public var
myPublicVariable:Boolean = true;



Pada kondisi bila tidak ada tindak lanjut tambahan (additional actions) ketika variable berubah value, maka penulisan public variable lebih baik dibandingkan get/set.

Pada contoh diatas bila myPublicVariable diubah value-nya maka binding akan di-update, dan segala object component yang ter-bound dengan binding variable tadi juga ter-update. Sehingga tidak perlu menggunakan get/set disini.

Pendeklarasian get/set function :

/** 
* Contoh deklarasi public get/set di myClass
*/

[Bindable(event="publicVarUpdated")]
public function set
myPublicVariable(val:Boolean):void{
_myVar = val;
_counterSet++;
otherFunction();
dispatchEvent(new FlexEvent("publicVarUpdated"));
}


public function get myPublicVariable():Boolean{
_counterGet++;
otherFunction2();
return _myVar;
}

private var _myVar:Boolean;
private var _counterSet:int;
private var _counterGet:int



Pada contoh diatas baris [Bindable(event="publicVarUpdated")] menunjukkan bahwa setiap component / object lain yang ter-bound ke property myPublicVariable akan langsung meng-update value-nya ketika event dengan type "publicVarUpdated" di-dispatch. Anda perhatikan di function setter-nya terdapat baris untuk dispatchEvent ketika myPublicVariable di-set, yang akan langsung memberitahukan ke semua component/ object yang ter-bound ke property myPublicVariable ini untuk segera meng-update value sesuai nilai terbaru.

Keuntungan utama dari get/set adalah mereka memungkinkan serangkaian perintah tambahan dieksekusi dalam satu pemanggilan function get/set. Anda dapat membuat class/component anda untuk langsung memanggil fungsi tertentu ketika get/set dipanggil, seperti contoh diatas.

Dalam framework Adobe Flex component, get/set banyak dipakai terutama untuk dispatch custom event, mengganti style component, layout, measure dan lain-lain.

Friday, May 25, 2007

Seumur hidup sekali, semoga

(flash player 8-latest required, get flash here).


If you are unable to attend, we ask your presence in thought and prayer, or (at least) give us a comment below..

Regard

Deden
Yenie

Tuesday, May 22, 2007

NSAID + Kemoterapi + Radioterapi poten untuk kanker

Para peneliti di University of Iowa Roy J. dan Lucille A. Carver College of Medicine menemukan fakta lain tentang penggunaan obat-obatan Anti Inflamatory Non Steroid yang dikombinasikan dengan Kemoterapi dan Radioterapi dalam penanganan penyakit kanker.
Sebelumnya telah diketahui kegunaan kombinasi 3 terapi ini pada dua aspek. Pertama lebih menggunakannya sebagai pencegahan (preventif kanker) tetapi berpengaruh pada efek jangka panjang. Aspek kedua untuk penggunaan pengobatan (kuratif) kanker.
Pada salah satu penelitian di UI (University of Iowa) ditemukan bahwa celecoxib (salah satu NSAID) dan sulindac sulfide (Clinoril sulfide) ternyata memperlambat proliferasi sel kanker dan membunuh sel kanker (pada beberapa prosentase).
Sedangkan sampel NSAID jenis lain (aspirin, naproxen (Aleve) atau rofecoxib (Vioxx) yang ikut dipakai pada penelitian tersebut terbukti tidak terlalu bermakna sebagai anti kanker.
Pada penelitian lebih lanjut pengaruh celecoxib sebagai anti kanker ternyata terdapat dalam intervensi-nya dalam siklus sel.

Seperti diketahui (ingat kuliah biokim nih!!) : Sebuah sel akan melewati 3 fase sebelum mereka membelah diri. Yaitu : fase G1, ketika sel membesar dan mempersiapkan cadangan protein; Fase S, ketika sel mulai mempersiapkan rantai DNA dan mereplika khromosom; kemudian fase G2, ketika sel mempersiapkan pembelahan. Siklus sel ini juga terdiri dari beberapa "Check point" penting untuk memutuskan apakah pertumbuhan sel berhenti dan apakah suatu fase sudah siap untuk memasuki fase berikutnya.
Para peneliti menemukan bahwa celecoxib merubah ekspresi salah satu protein di "Checkpoint" fase G1 , sehingga secara bermakna menurunkan aktivitas protein E2F1 (protein jenis ini diperlukan sel untuk bergerak ke fase tertentu di siklus sel, dan juga sangat penting pada aktivitas S fase seperti perbaikan DNA). Dan ini memberi harapan pada pada metode penanganan suatu kanker di masa depan.

Yang mesti diperhatikan : Syukur kalo fenomena ini di-patenkan oleh sebuah akademi (Iowa University), dan tidak oleh sebuah pabrik farmasi. Kalo nggak harga obat makin gak karuan (Jadinya lagi-lagi "kita-kita" cuma jadi agen farmasi)

Wednesday, May 16, 2007

My Two Cents May16

Some old work at 2003 :

Activate the movie before control (use A W S D, arrows keys).



Download swf here
Download source here

Bookmark May 16 2007

Overloading & Rest parameters.

Overloading adalah suatu kondisi dimana sebuah object / class mempunyai 2 (dua) atau lebih metode / fungsi dengan nama sama tetapi berbeda argument (parameter). Overloading kerap kita temui di pemrograman java.

Salah satu contoh overloading di java :



    /**
* @langversion java
*
*
* Tutup koneksi cara 1
* @param ps
* @param c
*/

public static void closeConnection(PreparedStatement ps, Connection c)
{
try
{
if (ps != null)
{
ps.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
try
{
if (c != null)
{
c.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}

/**
* Tutup koneksi cara 2
* @param c
*/

public static void closeConnection(Connection c)
{
try
{
if (c != null)
{
c.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}


Sampai saat ini, Actionscript masih belum mendukung overloading. Tetapi ada bentuk penulisan lain sebagai alternatif untuk overloading yang ada di Actionscript 3.0 yaitu rest parameters. Rest parameter memperbolehkan kita menggunakan 0 (nol) atau lebih parameter tambahan dengan "unknown types" kepada suatu fungsi.
Anda mendeklarasikan rest parameter dengan menggunakan nama parameter yang didahului dengan 3 titik.
Didalam badan metode, nilai dari rest parameter diakses sebagai sebuah array.
Salah satu contoh rest parameter di Actionscript 3.0 :



/**
* @langversion Actionscript 3.0
*
*/

function
contoh(...rest):String {

var b:String = "rest terdiri dari :";

// akses isi dari rest parameter (Array)
for(var i:uint = 0; i < rest.length; i++) {
b += " " + rest[i];
}

return b;
}

// pemanggilan

contoh("test");
// output :
// rest terdiri dari : test



contoh("test", "satu", "dua", "tiga");
// output :
// rest terdiri dari : test satu dua tiga





Note : Overloading disini tidak sama dengan overloading operator di C++

Sunday, May 13, 2007

Datum and Distance calculating in Actionscript 3.0

Tanya Datum?

Untuk menunjukkan suatu posisi di bumi kita, sudah pasti diperlukan koordinat. Satu titik koordinat terdiri atas latitude dan longitude (garis lintang dan garis bujur). Penggambaran garis-garis latitude dan longitude akan berupa jaring (tile) bidang-bidang kotak bila dilihat dari peta / map 2D. Tetapi untuk peta yang lebih baik biasanya mampu menunjukkan tile dari latitude dan longitude yang bervariasi bentuk bidangnya (agak membulat), dari yang kotak sampai trapesium sampai segitiga, ini dimaksudkan untuk menunjukkan perhitungan matematis permukaan bumi yang membulat (geosphere)! Sampai disini bisa dibayangkan?

Bentuk bidang (yang dibentuk tile latitude dan longitude) yang berbeda-beda tadi digunakan untuk memetakan area-area ditempat yang berbeda dipermukaan bumi. Konsep ini dikenal sebagai ellipsoid. Sebuah Datum akan bereferensi kepada bentuk bidang tertentu tadi dipermukaan bumi, ini disebut dengan Rujukan Ellipsoid. Dari semua Datum yang dikenal, semuanya memiliki dua perbedaan utama, yaitu posisi asal (origins) tempat referensi dipermukaan bumi, dan rotasi (terhadap kelengkungan permukaan bumi), akibatnya kedua faktor ini akan mempengaruhi representasi numerik dari suatu posisi.

Kenapa anda mesti repot dengan Datum?

Bila anda memiliki 2 peta suatu wilayah, dan keduanya memiliki grid latitude dan longitude yang digambar dengan Datum yang berbeda, maka bentuk ellipsoid dari setiap tile di grid yang terdapat dikedua peta tersebut akan berbeda. Misalnya suatu wilayah di Australia bila dibandingkan di kedua peta yang masing-masing memakai Datum AGD66 dan WGS 84 akan menunjukkan perbedaan posisi yang mencapai 200 meter (0,1 mil). Bayangkan bila sebuah rudal salah sasaran hanya karena perbedaan Datum antara komandan dan juru tembak.

Untungnya setiap GPS devices sudah mempunyai kebijakan tentang Datum dalam penggunaan navigasinya. Pada merk Garmin dan Magellan, konstanta Datum yang digunakan selalu WGS 84 (default), sedangkan Lowrance/Eagle sebagian besar mengkuti WGS 84.

Salah satu penerapan Datum yang berguna : Pengukuran jarak antara 2 posisi di geosphere.

Pengukuran jarak antara 2 posisi di objek bulat-absolut tidak persis sama dengan permukaan bumi. Dan pasti sangat berbeda bila dibandingkan dengan pengukuran posisi di bidang datar yang cukup memakai Pythagoras. Dikarenakan bumi tidak bulat sempurna karena bentuknya yang sedikit mendatar di kedua kutubnya terhadap radius ekuator.

Sebuah Rujukan Ellipsoid (Reference Ellipsoid) yang diwakili Datum biasanya terdiri dari 4 parameter :
  • Radius Ekuatorial (a)
  • Faktor Flattening/ perataan (f) (berbanding terbalik, sehingga dituliskan 1/f).
  • Delta a (selisih Radius Ekuatorial suatu Datum dengan Radius Ekuatorial Datum WGS 84) dalam meter
  • Delta f (selisih Faktor Flattening suatu Datum dengan Faktor Flattening Datum WGS 84) dikalikan dengan 10^4.

WGS 84 mempunyai Radius Ekuatorial 6378137.0 dan Faktor Flattening 1/298.257223563.
Sampai saat ini aku mengetahui ada sekitar 23 Datum yang terdaftar di Reference Ellipsoid List

Selanjutnya cara perhitungan jarak antara 2 posisi di geosphere akan hampir sama dengan perhitungan di objek bulat-absolut, tinggal memperhitungkan faktor parameter yang berpengaruh diatas.

Case 1 : Pengukuran jarak 2 posisi di geosphere dengan Datum WGS 84 di Actionscript 3.0

Ringkasnya kita langsung membuat static class dengan nama Distance (Class ini kupakai pada proyek pembuatan Map Vector Sampit di Flex 2.0.1), dan Flash Player API yang diperlukan adalah flash.geom.Point (Nggak perlu panjang lebar lagi kan? Ntar malah dikira mau bikin Wiki entries, he3x!).


package com.dy.utils
{
import flash.geom.Point;

/**
* Class Distance untuk mengukur jarak 2 posisi di Geosphere.
* Datum WGS 84
*/

public class Distance
{

/**
* Static var : Radius Ekuatorial
*/

private static const a:Number = 6378137;

/**
* Static var : Faktor Flattening/ perataan
*/


private static const f:Number = 1/298.257223563;

private static const f2:Number = 2*f - f*f;

/**
* Fungsi utama untuk pengukuran.
* Point.y = latitude dengan format dd.ddddd
* Point.x = longitude dengan format dd.ddddd
* @param point1 Posisi awal pengukuran
* @param point2 Posisi akhir pengukuran
*
* @return Jarak
*/


public static function measure( point1:Point, point2:Point):Number{

/*
* Cari representasi 3D dari posisi awal
*/

var fSinB1:Number = Math.sin(point1.y * Math.PI/180);
var fCosB1:Number = Math.cos(point1.y * Math.PI/180);
var fSinL1:Number = Math.sin(point1.x * Math.PI/180);
var fCosL1:Number = Math.cos(point1.x * Math.PI/180);
//perhitungkan Radius Ekuatorial terhadap posisi awal var N1:Number = a /Math.sqrt(1 - f2 * fSinB1 * fSinB1);
var X1:Number = N1*fCosB1*fCosL1;
var Y1:Number = N1*fCosB1*fSinL1;
var Z1:Number = (1 - f2)*N1*fSinB1;

/*
* Cari representasi 3D dari posisi akhir
*/


var fSinB2:Number = Math.sin(point2.y*Math.PI/180);
var fCosB2:Number = Math.cos(point2.y*Math.PI/180);
var fSinL2:Number = Math.sin(point2.x*Math.PI/180);
var fCosL2:Number = Math.cos(point2.x*Math.PI/180);
//perhitungkan Radius Ekuatorial terhadap posisi akhir var N2:Number = a/Math.sqrt(1 - f2*fSinB2*fSinB2);
var X2:Number = N2*fCosB2*fCosL2;
var Y2:Number = N2*fCosB2*fSinL2;
var Z2:Number = (1 - f2)*N2*fSinB2;

//cari selisih jaraknya

var D:Number = Math.sqrt((X1 - X2)*(X1 - X2) + (Y1 - Y2)*(Y1 - Y2) + (Z1 - Z2)*(Z1 - Z2));
var R:Number = N1;
var D2:Number = 2*R* Math.asin(.5*D/R);

return D2;
}

}
}



Download Class Distance di-sini

Coba di aplikasi di bawah ini (Flash Player 9 required):




Case 2 : Hasil Pengukuran Benchmark.


Pengukuran posisi antara Point(lon:36.91672, lat:55.73837) dan Point(lon:37.35804, lat:57.14513) menghasilkan 158989.00805546957 meter atau 158.99 km di Actionscript 3.0. Dibawah ini hasil perbandingan pengukuran jarak yang identik dari beberapa mapping software untuk cross cek :

  • MapSource : 156,10 km
  • OZI : 159,07 km
  • GPSMapEdit : 158.7 km
  • Actionscript 3.0 : 158.99 km

Tuh kan beda? Untuk Actionscript 3.0 perbedaan mungkin karena hasil penanganan float yang diwakili oleh type variable Number oleh Flash Payer yang tidak persis sama dengan di bahasa native C/C++ kali? Lha yang bikin bingung, bukannya MapSource, OZI dan GPSMapEdit sama-sama native? malah ikutan beda satu sama lain? Ada penjelasan?

Eclipse IDE part I

Eclipse IDE (Integrated Development Environments) lebih dikenal sebagai Java IDE. Walaupun begitu Eclipse IDE (lebih sering dipanggil dengan sebutan Eclipse Platform) sebenarnya adalah IDE untuk apa saja. Hampir semua bahasa pemrograman terkenal bisa diolah disini. Eclipse dapat dipergunakan untuk membuat beragam aplikasi seperti web sites, embedded Java™ programs, C++ programs, PHP, dan Enterprise JavaBeans™, embedded device applications, bahkan Flex™ project dan Actionscript 3.0 project bisa dibuat melalui Flex Builder yang notabene adalah salah satu plugin Eclipse.

Feature dan fungsi bawaan (built-in) Eclipse sangat sederhana dan generik. Eclipse memakai perangkat tambahan yang independent (extended) untuk mengerjakan sesuatu yang baru yang lebih kompleks. Platform Eclipse dibangun dari serangkaian mekanisme, dari mencari, menyatukan dan menjalankan seperangkat modul-modul yang dinamakan plug-in. Ketika Platform ini dijalankan, pengguna (user) disuguhi dengan IDE (Integrated Development Environments) yang terdiri dari berbagai set plug-in yang tersedia.

Platform Eclipse dirancang dan didesain untuk memenuhi beberapa keadaan dibawah ini :
  • Mendukung perakitan dan kompilasi berbagai tool yang berguna untuk pembuatan aplikasi.

  • Mendukung plug-in (tool) dari pihak mana saja termasuk vendor software independen, yang bisa diintegrasikan kedalam Platform Eclipse.

  • Sebagai tool yang bisa membuat, mengedit dan memanipulasi file-file dari berbagai content type (contohnya : HTML, Java, C, JSP, EJB, XML, and GIF, PHP, Actionscript, Perl) .

  • Mendukung pengembangan lingkungan aplikasi (application development environments) baik GUI (Graphical User Interface) dan non-GUI.

  • Bisa dijalankan pada banyak sistem operasi, termasuk Windows® dan Linux™.

  • Berperan besar dalam mengembangkan bahasa pemrogramman Java sebagai perangkat bahasa penulisan populer.

  • Penting untuk disadari, kelebihan Eclipse sebagai IDE akan dirasakan oleh pengguna (user) tergantung dari seberapa baik peralatan (plug-in) terintegrasi dengan Platform Eclipse dan seberapa baik setiap plug-in bekerja satu sama lain pada lingkungan yang sesuai dengan kebutuhan pengguna. Bersambung

    Saturday, May 12, 2007

    Lagu manakah yang terbaik yang pernah diciptakan?

    Dengan tidak menyepelekan pendapat lain, lagu yang pertama kali (ku
    simak kritis secara musikalitas
    ) ketika awal - awal masuk kelas 1 SMP
    (usiaku 10 tahun waktu itu) dan menemukan teman baru (Andy (alm))
    yang kritis terhadap musik menyarankan untuk mendengarkan lagu yang
    bahkan lebih tua dari tahun kelahiranku. Di-release pada Oktober 1975,
    Bohemian Rhapsody terus menjadi salah satu lagu yang akan tidak pernah
    jemu ku dengar sampai hari ini. Anda tentu tahu lagu ini kan?


    Sebenarnya apa yang diceritakan lagu ini? Tidak ada penjelasan resmi
    dari Queen tentang tema BR, tapi suatu kali Freddie Mercury (konon)
    mengatakan "Cuma acak, hanya alunan omong kosong". Mungkin dia benar,
    tapi sebenarnya seperti ada curahan terselubung tentang pengalaman
    pribadi Freddie yang tersamar di lirik BR. Pada waktu pertama kali
    diluncurkan BR hanya perlu waktu 3 minggu untuk menduduki rangking 1
    tangga lagu di Inggris, Dan pada July 1976 menduduki peringkat 9,
    merupakan lagu Queen yang pertama yang masuk jajaran 10 Top Hit tangga
    lagu Amerika.

    16 tahun kemudian (tahun 1992) BR kembali secara cepat menduduki
    peringkat 2 tangga lagu Amerika, itu 3 bulan setelah kematian Freddie
    (November 1991). Lagu ini populer lagi diakibatkan oleh masa berkabung
    itu, juga karena kepopuleran film "Waynes World" yang mengusung BR
    disalah satu scene-nya.

    Tidak ada yang perlu diistimewakan dari BR, cuma sebuah lagu tahun 70-an yang memainkan sebuah opera di atas panggung Rock dengan warna yang jauh melebihi tahun peluncurannya. Kita akan gampang untuk
    mendengarkan ungkapan dan melody jenius dari Freddie dan Brian May di
    lagu ini, tidak perlu mengkerutkan dahi sebagaimana bila kita menyimak
    orkestra Richard Wagner misalnya.

    Menilai lagu terbaik cuma dengan didengar tidak akan cukup untuk memberikan resensi yang adil kan? Kalau ingin merasakan bedanya, sekali kali luangkan waktu untuk memainkan lagu ini dengan grup band anda
    (kalau umur masih dipandang pantas), tidak perlu mengumpulkan
    teman-teman yang advanced skill bermusiknya. Dan dengan cepat semoga
    anda setuju bahwa setiap alat musik yang dimainkan serasa berdialog
    lewat loop melewati tangga nada yang berbeda-beda, perubahan
    mengejutkan irama ketukan yang sesekali menyerempet ke 3/4. Sadar nggak
    kalo Choir paduan suara melantunkan potongan "Is this the real life"
    terdiri dari 4 suara (C#, Bb, Ab, F) dengan F sebagai low tone
    merupakan suatu alunan pembukaan yang janggal, jarang ditemui, apalagi
    di band-band Indonesia.

    Tanpa menyadari begitu megahnya lagu ini, aku dan grup bandku (waktu jaman kuliah dulu) dengan pede-nya membawakan lagu ini sewaktu lomba
    band dikampus, mungkin karena didukung oleh para backing vokal (dicopot
    dari paduan suara angkatan kami) yang "mungkin" kelihatan pas sewaktu
    diatas panggung, dan mungkin karena peserta lain lagi jelek-jeleknya,
    kami sukses merebut juara 1 (norak!!) .Tapi kalau suatu saat disuruh membawakan lagu ini sekali lagi dengan formasi band yang sama, aku dengan tegas menolak deh! Bukan apa-apa sih, kita kan main musik tidak serius-serius bener, apalagi disuruh membawakan lagu yang diidolakan jutaan orang, apa kata dunia?

    Recap : Bohemian Rhapsody dari Queen merupakan lagu terbaik yang pernah diciptakan di era modern ini, dan ratusan ribu orang di luar
    sana jauh sebelum posting ini ditulis sudah berpendapat seperti itu.
    Bersama Innuendo (Queen), Kashmir (Led Zeppelin), BH paling tidak
    seminggu sekali dimainkan JetAudio dikamarku.


    Lagu manakah yang terbaik yang pernah diciptakan menurutmu?

    Friday, May 11, 2007

    May 11th for Dijkstra


    Edsger W Dijkstra

    Hari ini adalah ulang tahun Edsger Wybe Dijkstra (Rotterdam, 11 Mei 1930).

    Bagi yang belum terlalu mengenal Dijkstra, dia adalah ilmuwan komputer Belanda, yang sangat terkenal dengan algoritma ciptaannya shortest path - algorithm , biasa disebut juga dengan Dijkstra's algorithm, yang salah satu implementasi pentingnya adalah OSPF (open shortest path first) yang menjadi dasar dari internet routing.

    Selain itu dia terkenal karena kebiasaannya menulis manuskrip-manuskrip yang biasa disebut "EWDs" karena Dijkstra selalu memberi penanda nomor diikuti dengan "EWD" sebagai prefix pada setiap judul manuskripnya. Kebanyakan topik yang terdapat di setiap manuskripnya seputar matematika dan sains komputer.

    Dijkstra dikenal sebagai seseorang yang akrab dengan sains komputer tetapi hanya memiliki sebiji komputer seumur hidupnya, yang agak telat dimilikinya. Itu pun sangat jarang digunakannya. Ceritanya, sebagian besar manuskrip Djikstra diterbitkan setelah tahun 1972 berupa tulisan tangan. Dia sangat menjauhi penggunaan komputer pada pekerjaannya selama beberapa puluh tahun. Akhirnya setelah mengalah kepada dorongan beberapa koleganya di Universitas Texas, dia memutuskan untuk membeli sebuah komputer Macintosh, dan ujung-ujungnya hanya digunakan untuk memeriksa email dan browsing. Dikarenakan prinsipnya yang mengatakan sains komputer sangat lebih abstrak dari sekedar programming semata. "Computer Science is no more about computers than astronomy is about telescopes." ujarnya.

    Selain itu kalimat slogan terkenal dari Dijkstra adalah "2 or more, use a for" . Artinya bila anda menemukan situasi didalam penulisan kode program anda yang ternyata memerlukan pemrosesan instance dari suatu struktur data lebih dari sekali, maka waktunya untuk membuat loop, baik dengan statement for(..) maupun while(..)

    Dijkstra meninggal tanggal 06 Agustus 2002 di Nuenen Belanda, sehari setelah aku berusia 24 tahun, karena kanker. Untuk mengenang jasa Djikstra, oleh ACM (Association for Computing Machinery) yang mengurus penghargaan bidang komputer tahunan "PODC Influential Paper Award " mengganti nama penghargaan itu menjadi "Dijkstra Prize" sampai sekarang.

    Selamat Ulang Tahun Dijkstra, algoritma shortest path-nya memecahkan segala pendekatan pemikiran yang memusingkanku sewaktu SMA dulu. Nama Dijkstra secara pribadi begitu melekat di otak sejak aku belajar C++ dulu ketika membaca pengantar buku "C++ A Practical Introduction" karangan Brian Hahn, disitu tertulis pendapat Dijkstra yang mengatakan "Pemrograman Berorientasi Objek adalah gagasan buruk yang janggal". Sampai saat ini aku belum bisa mengerti mengapa dia bisa berpendapat seperti itu?

    Download Algoritma Dijkstra beserta Tester di Actionscript 3.0 di sini

    Tuesday, May 08, 2007

    Map Vector of Sampit

    Beberapa bulan terakhir ini proyek pembuatan peta Sampit dengan Flex 2.0.1 ini agak jarang disentuh karena kesibukan lain.
    Alasan pembuatan peta? Ya mungkin karena orang yang suka coding pasti tertarik dengan sesuatu yang berbau diagram, juga tertarik dengan peta, itu pasti naluri kan?
    Bagi beberapa orang sebaliknya, biasa saja..

    Pembuatan peta kota sudah sering kulakukan setiap kali berada di suatu wilayah, dulunya waktu SMP dengan manual seadanya, jalan kaki sambil gambar, bersepedamotor sambil gambar, foto -foto. Terakhir 3 tahun yang lalu sewaktu gmap mulai rame agak terbantu juga dengan satelite imagery-nya, trus setelah kenal Garmin menjadi lebih seru lagi, jalan jalan keliling kota sambil tracking.

    Pengolahan hasil tracking dan waypoint dilakukan di GPSMapEdit dan cGPSMapper, kalibrasi Datum dan lain-lain dengan OzyExplorer. Setelah itu format dasar di-export menjadi Polish Format (*.mp), kemudian di-export lagi ke format tersendiri sesuai device-nya, untuk J2ME di K508i memakai format tersendiri (custom) yang lebih ringan, sedangkan untuk PDA tetap memakai Polish Format, dan untuk Flex memakai custom format (*.dyp) yang berupa binary terkompress, exporter bikin di Netbeans.

    Kenapa memakai format peta tersendiri? Paling nggak tidak bisa dibuka di aplikasi map lain / ini sih berhubungan dengan hak cipta. Karena tracking sendiri muterin seantero kota selama berminggu-minggu lebih capek daripada coding, makanya pembatasan kompatibilitas format file harus dipikirkan, :)

    Dari 3 proyek ini (J2ME, PDA, Flex) yang sudah cukup matang adalah J2ME, sedangkan untuk PDA (Win CE) masih terkendala manajemen memory Flash Player 6 untuk PDA yang jelek.

    Pada versi demo Flex dibawah ini, beberapa feature tidak disertakan seperti Label, Search Form, Area Calculating, Path Finder dan lain-lain.








    Dan demo J2ME-nya di Emulator KToolBar :






    Sunday, May 06, 2007

    Plugin Maven 2 untuk Flex

    Setelah sekian lama menunggu-nunggu, akhirnya ada juga yang menyediakan plug-in untuk Maven 2 di Adobe Flex 2.0.1.
    Baca info lebih lanjut dan repository di http://www.servebox.com/foundry/doku.php?id=m2f2plugin

    Sedangkan untuk yang ingin lebih mengenal Maven 2 lihat baca http://maven.apache.org/

    Friday, May 04, 2007

    Yahoo Web Messenger

    Yahoo telah meluncurkan "Yahoo! web messenger".
    Yaitu sebuah web application yang mempunyai fitur hampir sama dengan Yahoo! Messenger (versi desktop application).
    Dan "Yahoo! Web Messenger" ini berbasis Flex, dengan status versi beta.
    Yang membuat agak penasaran adalah : Mekanisme streaming untuk chatting (bila ada), apakah Yahoo! menggunakan API URLStream?
    Dengan hadirnya webmessenger ini setidaknya Yahoo! sudah 2 kali memakai framework Flex, Yang pertama dengan Yahoo!Map dilanjutkan dengan ini.

    Wednesday, May 02, 2007

    Silverlight yang menyilaukan

    Mungkin karena kebiasaan yang berbeda dalam mengungkapkan hal baru di Amerika sana maka terdapat banyak situasi yang simpang siur tentang calon pertempuran antara flash dan silverlight.
    Beberapa ada yang begitu vulgar berusaha menunjukkan kalo satu produk akan jauh mengungguli teknologi pihak lain, dipihak lain ada juga yang berusaha sebisanya untuk menunjukkan kematangan produk yang lebih duluan berkibar bertahun tahun.
    Yang jadi masalah bukan mana yang lebih unggul kan?
    Tinggal bukti yang cukup mewakili saja..
    Baik dari segi pasar / client, pengembang/developer/programmer, user, teknis dan lainnya, iya kan..
    Tidak masalah kalau harus ada yang merasa direndahkan.,
    Yang jadi masalah kita terlalu mengikuti kebiasaan orang sana yang selalu terpengaruh dengan WOW FACTOR, yaitu keterpesonaan yang berlebihan terhadap sesuatu yang baru yang lebih berdasar pada penilaian situasional dan bukan berdasar pemikiran lanjut yang lebih mendalam, iya kan?

    Ada gak yang pernah memeriksa domain silverlight.com, memangnya ownernya sudah Microsoft?
    flash.com pastinya punya adobe dong..

    Friday, April 27, 2007

    Flex to Opensources

    Pada 25 April 2007 lalu framework Flex berubah menjadi Opensources (Mozilla Public License).
    Status ini tidak hanya untuk source code dari framework saja tetapi juga Flex SDK termasuk MXMLC, COMPC, ASC, Flex Debugger, Flex Components, dan ini yang menarik : ActionScript 3 Libraries juga ikut opensources

    Baca press release di Adobe Press Room
    Baca Info tambahan di Labs
    Baca FAQ Flex Opensources di sini
    gabung dengan groups diskusi Flex Opensources di http://groups.google.com/group/flex-open-source/

    Sayangnya Flex Charting tidak berubah statusnya, tetap tertutup.
    Demikian juga dengan Flex Data Services, tetap tertutup. Kabarnya FDS (Flex Data Services) akan di-integrasikan dengan produk Adobe lainnya : Adobe LiveCycle ES (enterprise suite) sebagai LiveCycle Data Services.

    Bookmark April 27 2007

    Traits

    Sebelumnya di blog ini sudah pernah di-posting artikel tentang Just in Time Compiler sebagai salah satu cara untuk meningkatkan performance (kecepatan) eksekusi kode Actionscript 3.0 oleh Flash Player 9 (baca di Bookmark April 19 2007).

    Masih ada mekanisme lain yang membantu proses peningkatan performance tersebut, yaitu Traits.

    Konsep Traits diciptakan di Actionscript 3.0 untuk menanggulangi permasalahan yang kerap terjadi di Actionscript versi sebelumnya.

    Pada Actionscript 1.0 / 2.0 proses pencarian nama suatu object merupakan sesuatu yang melelahkan dan memakan waktu bagi Flash Player terutama pencarian object termasuk dengan property-nya (termasuk dengan semua variable, function dan methode yang terdapat di object tersebut) dari dalam suatu framework yang mempunyai package raksasa yang terdiri dari banyak object class.

    Sedangkan di Actionscript 3.0 proses tersebut berlangsung lebih efisien dan lebih hemat waktu karena segala properties yang berasal dari superclass (inherited) telah di-copy-kan kedalam traits yang terdapat disetiap subclass. Pemahaman traits itu sendiri sepertinya akan terasa abstract bagi setiap programmer. Sekilas traits lebih mirip sebagai properties, tetapi tidak akan dapat diakses/ viable di daftar properties suatu object class.

    Traits di AVM 2 (virtual machine untuk Flash Player 9 - AS 3.0) berfungsi untuk menyediakan segala informasi detail tentang layout dan isi dari suatu class. Dengan informasi tersebut AVM 2 dapat mengurangi waktu eksekusi kode secara signifikan karena dapat menginstruksikan langsung suatu properties/ methode object ke machine tanpa menghabiskan waktu mencari ulang representasi superclass yang mewariskan properties tersebut.

    Kehadiran Traits ini terasa dengan peningkatan performance dan pengurangan pemakaian memory (memory usage) Flash Player 9. Dan "penampakan" suatu object di memory system akan lebih kecil secara nyata dibanding dengan "penampakan" object serupa di versi terdahulu dari Actionscript. Contohnya : jika suatu class dideklarasikan secara non dynamic (sealed) maka instance dari class tersebut tentu tidak memerlukan hash table sebagai penampung properties yang ditambahkan secara dynamic, sehingga akan lebih sedikit menampung pointer ke traits yang ada di object tersebut. Hasilnya sebagai perbandingan, bila di Actionscript 2.0 object tersebut memerlukan 200 bytes untuk me-representasi-kan dirinya maka cukup 20 bytes saja yang diperlukan di Actionscript 3.0 untuk melakukan hal yang sama.



    Catatan :
  • Dari beberapa sumber disebutkan tidak ada jaminan bahwa feature Traits ini akan tetap digunakan atau diganti/ dibuang pada AVM generasi selanjutnya.

  • Referensi lain tentang hasil benchmark perbandingan waktu eksekusi antara Actionscript 2.0 vs Actionscript 3.0 bisa dicari melalui search engine. Benchmark lain diantaranya yang pernah dibahas oleh Grant Skinner tentang perbandingan loop dengan type Number di AS 2 vs AS 3.0, atau loop antara int, uint dan Number pada Juni lalu.
  • Thursday, April 26, 2007

    Zinc Vs Apollo


    Mungkin gerah juga karena Apollo banyak dibanding bandingkan
    dengan Zinc, akhirnya Jaspal Sohal [CEO, Multidmedia Ltd] angkat bicara
    untuk menjelaskan perbedaan keduanya (Nggak enak ati sama Mike Chamber
    kali..)
    Berikut tabel perbandingannya :





































































    Zinc™ vs Apollo™
     
    Zinc
    Apollo
    100% Standalone (No Plug-Ins/Runtimes required)
    Does not Require Installation to Run
    Can run from CD-Rom/DVD/USB
    Alpha Transparency
    File IO Commands
    Browser Commands
    Database Connectivity
    Play External Video (MPEG, AVI, MOV)
    Distribute via DRM Solutions
    Connect to External 3rd Party DLL's

    Sumber : MDM Newsletter - April 2007
    Baca artikel lengkapnya di http://www.multidmedia.com/support/developers/articles/?action=show&id=33



    Tentang Apollo™ sampai saat ini kita tidak bisa terlalu dini memberi penilaian khusus karena masih versi alpha.
    Paling tidak janganlah Apollo sama nasibnya dengan saudara tuanya (Central) yang langsung layu / kurang diminati, [alasan Adobe : Central hanya diperuntukkan di Actionscript 2.0]


    Tuesday, April 24, 2007

    Posting mailist babaflash di upload ke forum babaflash

    Agak kaget juga sewaktu googling dengan keyword 'flash remoting' , khusus untuk pencarian di Indonesia ternyata menemukan url di babaflash : http://www.babaflash.com/forum/listreply.asp?katutid=1&katutname=BabaShare&katid=5&threadid=633&fc=1

    Link diatas adalah salah satu posting di forum Babaflash tertanggal 8 May 2004, hampir 3 tahun yang lalu.
    Yang bikin kaget aku merasa jarang banget posting di forum babaflash pada tanggal tanggal segitu, dan lebih prefer posting di milis Babaflash di yahoo saja.

    Ternyata posting tersebut berasal dari milist babaflash yang bertanggal 7 May 2004, kemudian oleh moderator babaflash.com dimasukkan ke forum. Ya nggak apa apa sih, semoga ada manfaatnya.
    Mestinya dari dulu aku banyak posting juga di forum babaflash.com ya, biar gak sepi ^_^ [becanda babaji :)].
    Tapi bagaimanapun lebih praktis dimilis kali ya?

    Sunday, April 22, 2007

    Bookmark April 22 2007

    FLV (Flash Video)

    FLV adalah salah satu format video di internet dengan menggunakan Adobe Flash Player.
    Format FLV adalah proprietari dari Adobe (Macromedia).
    Flash Player bisa menghantarkan format flv dimulai sejak Flash Player versi 6.

    Dengan kemampuan diputar oleh swf atau diembed kedalamnya, flv menjadi salah satu format video yang bisa diputar hampir disemua sistem operasi.
    Browser yang sudah mempunyai plug in flash player akan langsung bisa memutar flv.
    Ini adalah salah satu kunci keuntungan dibanding dengan format video lain yang biasanya memerlukan plug in di browser yang lebih besar (ukuran installer plug in-nya).
    Didukung juga dengan keuntungan lain seperti distribusi penyebaran Flash player yang sangat luas.

    Format Video
    Umumnya flv menggunakan stream bit video yang merupakan salah satu varian dari standar video H.263 (Sorenson Spark).
    Pada Flash Player 8 keatas terdapat fasilitas dukungan untuk memainkan stream bit video On2 TrueMotion VP6 yang mempunyai keunggulan seperti kualitas visual yang lebih tinggi serta kemampuan dalam penggunaan lower bit rates, tetapi karena memerlukan proses render dengan tingkat komputasi yang lebih tinggi maka diragukan format ini dapat berjalan lancar di komputer low end (tua).

    Flv dibuat (encoding) dengan tool yang terdapat di Macromedia Flash 8, atau bisa menggunakan On2's Flix encoding tools, Sorenson Squeeze, FFmpeg dan tool-tool dari pihak lainnya.

    Format audio
    Audio di flv biasanya di encode sebagai MP3, sedangkan audio yang berasal dari mikropon user akan di encode dengan Nellymoser codec (proprietary format).
    Flv juga mendukung audio yang tidak terkompress atau nama lainnya ADPCM format audio.

    FLV sebagai alasan utama Adobe mengakuisisi Macromedia.
    Dari semua produk unggulan Macromedia dari Coldfusion, Dreamweaver, Firework, Jrun, Authorware, Flash, dan lain-lain. Yang menjadi alasan (nilai beli) yang menggoda Adobe bukanlah produk - produk laris seperti yang disebutkan diatas. Bukan pula Teknologi Animasi flash yang mengubah internet itu, tetapi adalah Flash Video.
    Dikutip dari Mike Downey (Senior Product Manager Adobe Flash) :
    “At the highest levels of Adobe’s corporate agenda is the Flash Video platform, it was officially called out by our CEO that it was one of the main reasons Adobe wanted to acquire Macromedia.”

    Tonggak FLV yang fenomenal : Youtube
    Kisah Youtube bermula dari empat orang (Chad Hurley, Steve Chen, and Jawed Karim) yang sebelumnya adalah karyawan PayPal.
    Domain Youtube.com sendiri baru diaktivasi pada February 15, 2005.
    Pada pertengahan 2006, youtube adalah salah satu site yang paling pesat pertumbuhannya dan menduduki peringkat 5 besar site yang paling terkenal diInternet.
    Pada 9 Oktober 2006 Google mengakuisisi Youtube dengan nilai US$1.65 billion.
    Dari 4 orang pendiri yang bermarkas di garasi, kini Youtube mempunyai 67 karyawan, 100 juta flv yang diakses tiap hari, 65.000 flv baru yang diupload tiap per 24 jam. Diakses 27 juta pengunjung tiap bulan.
    Dengan statistik di atas tidak berlebihan majalah Time memberikan penghargaan ke Youtube sebagai "Invention of the Year" tahun 2006.
    Semua tidak lepas dari keterkaitan dan penggunaan teknologi flv.
    Hal lain yang cukup menggelitik adalah 3 kunci perkembangan flash yang dipaparkan Mike Downey :
    1. IDE (Integrated Developing Tool) / Authoring Flash yang lebih baik.
    2. Flash Mobile device (Flash lite).
    3. Flash Video.
    Ketiga aspek diatas kini masing masing mempunyai ratusan proyek-proyek internal yang terus menerus menggodok flash menjadi lebih matang di release versi berikutnya.

    Bagaimana dengan flv didalam negeri? Salah satu portal yang mengadopsi teknologi flv adalah indonesia.sc , dan tampaknya akan semakin besar karena mempunyai konsep dan konsumen yang jelas.

    Sekali lagi Flash mengubah Internet, kali ini tidak dengan animasi vektornya yang kadang membuat programmer antipati dengan usabiliti flash site yang buruk )*, tapi dengan penghantaran video dengan lebih efisien dan lebih efektif dibanding teknologi sejenis dari pihak lain.

    Note :
    *. Bukanlah flash mempunyai usability yang lebih buruk dibanding html page, tetapi jadilah desainer yang lebih bijak dalam usability dengan flash.
    *. Kadang banyak anggapan programmer tidak bisa menjadi desainer yang baik, demikian pula sebaliknya. Syukurlah bila kita merasa baik - baik saja sebagai keduanya.

    Saturday, April 21, 2007

    Catch Flash if you can!!

    Masih ingat Livemotion?
    Kineticfusion?
    Xamlon?
    Avalon?
    Microsoft Expression?
    Belum berhenti juga..?

    Sekarang mulai banyak yang melirik ke Silverlight (codename WPF/E)
    Hmm..
    Catch Flash if you can!!
    Besok bila masih sempat kita bahas mereka satu-satu.
    Sekarang sudah malam!

    Friday, April 20, 2007

    Penyebutan Bilangan (nominal)

    Sekarang ini, lazimnya untuk penyebutan bilangan bisa di bagi menjadi dua sistem. Sistem pertama dianut oleh Amerika dan Prancis. Sistem kedua dianut oleh kebanyakan negara Eropa (selain Prancis), seperti Inggris dan lainnya. Bagaimana dengan negara kita? Indonesia cenderung mengikuti sistem yang pertama.

    Ditempat kita untuk menyebut angka diatas 1 milyar dengan menggunakan kelipatan perseribuan, misalnya satu milyar ( 1 bilyun) adalah seribu juta.
    Yang agak repot adalah penulisannya. Kita terbiasa menulis desimal dengan koma, pengelompokkan digit dilakukan tiap perseribuan dan ditandai dengan titik. Untungnya di setiap sistem operasi komputer yang telah mapan sudah tersedia menu setting untuk mengganti / kustomisasi aturan regional ini.

    Kembali ke sistem penyebutan bilangan, sistem kedua yang dianut oleh Inggris menyebut bilangan diatas 1 milyar dengan kelipatan persejutaan, misalnya satu milyar adalah sejuta juta. Agak aneh bagi kita ya? Untungnya pilihan katanya tetap sama dari juta, milyar, trilyun, kuadrilyun, kuintilyun, sekstilyun, septilyun, oktilyun, nonilyun, desilyun, dan seterusnya.

    Dibawah ada swf untuk demo penyebutan nominal rupiah dengan menggunakan library yang tadinya dibuat sewaktu ada proyek dari klien (Perusahaan Pembiayaan) tahun 2006.
    Library ini digunakan di Flex 2.0.1 untuk penyebutan bilangan (nilai nominal uang) di salah satu modul yang diperlukan di aplikasi klien tersebut. Anda dapat menggunakannya dalam project anda dengan mendownload swc-nya.
    Terdapat 2 class utama dalam swc yaitu : RupiahTerbilang dan RupiahFormatter.
    Class RupiahTerbilang untuk menyebutkan nominal rupiah ke dalam suatu bentuk kalimat. Misalnya diberikan argument 12345. Oleh Class ini akan di-return-kan string berupa “Duabelas ribu Tiga Ratus Empat puluh Lima ”
    Class RupiahFormatter untuk memformat bilangan yang diberikan menjadi terformat ke bentuk standar penulisan nominal rupiah. Argument 12345 oleh class RupiahFormatter akan di-return-kan string berupa “Rp12.345,00 ”

    Catatan :
    Pada Class RupiahTerbilang, penyebutan bilangan dibatasi hanya sampai 10 Kwadrilyun untuk menghindari kesalahan representasi tipe Number oleh Flash Player untuk angka lebih besar dari 10 Kwadrilyun. Karena Flash Player hanya menggunakan 52 bit dari total integer yang diberikan dan beberapa special hidden bit sisanya dalam merepresentasikan suatu integers dari -9,007,199,254,740,992 (-253) sampai 9,007,199,254,740,992 (253).

    Anda bisa mencobanya di aplikasi dibawah ini (Flash Player 9 required)
    Bila anda hanya melihat kotak kosong saja, update flash player anda






    Masukkan di kotak pertama angka nominal (bila terdapat desimal tuliskan dengan titik bukan koma) kemudian tekan enter. Bila anda menulis angka dengan benar di kotak kedua akan langsung tertera bilangan yang sudah diformat oleh class RupiahFormatter, dan bila anda menggerakkan mouse ke kotak kedua akan muncul tooltip yang berisi kalimat hasil dari penyebutan angka oleh class RupiahTerbilang.

    Download swc component
    Download source

    Thursday, April 19, 2007

    Bookmark April 19 2007

    Actionscript Virtual Machine

    Actionscript Virtual Machine (AVM) merupakan engine yang terdapat di Flash Player untuk mengeksekusi code-code dari bahasa program Actionscript.

    Dalam sejarahnya sampai posting ini dipublish, AVM bisa dibedakan menjadi 2 generasi.

    Generasi pertama atau biasa disebut AVM1 (Actionscript Virtual Machine 1) digunakan pada Flash versi 4 – versi 8.

    Generasi kedua (AVM2) diperkenalkan pada Flash versi 9.

    Pembahasan mengenai AVM tidak lepas dari sejarah actionscript.

    Berikut adalah perkembangan actionscript dari Flash 3 – Flash 8 :



    - Pada Flash 3, actionscript hanya berupa kode perintah sederhana untuk mengatur pergerakan dan kontrol animasi. Movieclip mulai diperkenalkan.

    - Pada Flash 4 pemakaian variable mulai dioptimasi dan dilengkapi interface untuk berhubungan ke CGI (Server).

    - Pada Flash 5 actionscript versi 1 mulai mengikuti ECMAScript. Operasi dengan XML mulai diperkenalkan.

    - Pada Flash 6, di authoring tool Flash MX disertakan component UI yang merupakan penerapan OOP pada actionscript dengan memakai konsep prototype.

    - Pada Flash 7 (Flash MX 2004) actionscript beranjak ke versi 2 dan dibakukan menurut ECMAScript. Tetapi belum 100% “standard compliant”. Pembakuan ini hanya untuk kepentingan aturan notasi dan deklarasi penulisan, dan belum merupakan pembakuan kode dalam arti yang sebenarnya. Karena sewaktu dikompilasi kode-kode actionscript 2 tetap serupa dengan actionscript 1. Demikian juga proses eksekusi bytecode oleh AVM , tidak ada perbedaan berarti antara code actionscript 1 dan actionscript 2.

    - Pada Flash 8 terdapat peningkatan yang nyata pada aspek visual, misalnya Filter dan Glow, Bitmap Caching, optimasi Flash Video (flv), Blend mode dan lain-lain. Sedangkan dalam Core API terdapat API baru yaitu External Interface yang mempunyai fungsi hampir sama dengan fscommand untuk eksekusi kode yang terdapat di host (kontainer ActiveX , Javascript di browser, dll).



    Actionscript Virtual Machine 2 (AVM2) dan Actionscript 3.0

    AVM2 merupakan penulisan ulang (full rewrite) dari AVM1. Dan Actionscript 3.0 adalah versi selanjutnya dari actionscript yang ditujukan untuk AVM2.

    Baik AVM2 dan actionscript 3.0 pertamakali diperkenalkan pada Flash 9 public beta (Flash 8.5) yang direlease akhir 2005.

    Keduanya (AVM2 dan Actionscript 3.0) merupakan kata kunci dalam terminologi flash versi 9.

    Pada awal kemunculan Flash 9 sering muncul kerancuan pada kata lain yaitu “Flex”.

    Flex adalah sebuah framework yang dibangun berdasarkan teknologi Flash.

    Flex pasti Flash dan Flash tidak hanya Flex.

    Framework Flex terdiri dari package raksasa class class actionscript 3.0 yang diperkenalkan oleh adobe (macromedia) untuk membuat aplikasi web di swf.

    Hampir serupa dengan .NET framework yang dibangun di C/C++ oleh Microsoft.

    Sampai saat ini Flex sudah mencapai versi 2, dan ditulis di actionscript 3.0.



    Mengapa bahasa Actionscript diklaim mempunyai keseimbangan baik sebagai static language dan dynamic language?

    - Dikatakan static seperti halnya bahasa C++, C#, dan Java karena sanggup membangun system aplikasi yang komplek dan sempurna dibanding versi sebelumnya.

    - Dikatakan dynamic karena seperti halnya bahasa – bahasa dinamis seperti ECMAScript, Perl, Python; actionscript mampu menawarkan flexibilitas dan lebih expresif.



    Actionscript 3.0 diyakini sudah 100% memenuhi spesifikasi ECMA-262, dan fitur–fitur bahasa yang terbaru yang terdapat didalamnya berdasarkan proposal ECMAScript 4 Netscape.





    Flash Player 9


    Flash player adalah keseluruhan engine yang mengeksekusi file movie (swf) flash. Mulai dari me-render vector graphic, menjalankan animasi sampai sebagai interpreter dari code – code actionscript, yang sebelumnya sudah dirubah menjadi bytecode sewaktu swf di-compile.

    Flash player bisa diakui sebagai salah satu monumen yang terdapat di internet. Salah satu interpreter terkecil dan terluas penyebarannya ke seluruh dunia dan hampir ke seluruh platform sistem operasi.

    Sewaktu masih bersama Macromedia, menjaga ukuran player tetap kecil adalah prioritas utama dari tim enginering flash player. Ada kemungkinan prioritas lain akan bertambah dan berpengaruh sesudah teknologi flash dipegang Adobe.

    Di player versi 9, kedua virtual machine (AVM1 dan AVM2) masing-masing eksis. AVM2 untuk mengeksekusi Flash9 dan AS3, sedangkan AVM1 untuk mengeksekusi flash dan actionscript versi sebelumnya.



    Hal ini memberikan keuntungan dalam kompatibilitas tipe swf yang dieksekusi, dan memberikan kebebasan developer dalam membuat movie tanpa terbatasi oleh versi movie swf yang mereka buat.

    Mengapa actionscript harus dirubah menjadi bytecode sewaktu di-embed ke dalam swf? Salah satu alasannya adalah untuk menjaga ukuran flash player tetap kecil. Karena dengan format bytecode, flash player tidak perlu lagi client-side compiler untuk mengeksekusi-nya. Bayangkan bila client-side compiler tetap dimasukkan ke dalam arsitektur player.., yang pasti akan mempengaruhi ukuran player menjadi lebih besar.

    Perbedaan nyata Flash player 9 dengan versi sebelumnya, di versi ini eksekusi di-klaim lebih cepat 10 kali dari sebelumnya, dan penggunaan memory dihemat 50% bahkan lebih.



    Just-In-Time compiler

    Just-In-Time compiler atau JIT adalah compiler internal yang terdapat dalam setiap Flash Player untuk meng-kompilasi bytecode actionscript menjadi native machine code sewaktu runtime.

    Dengan adanya JIT di Flash player 9 inilah maka eksekusi code actionscript meningkat sangat pesat dibanding versi sebelumnya.

    JIT merupakan solusi untuk memperbaiki kinerja AVM2 sewaktu menjalankan code actionscript. Dan diharapkan kode-kode actionscript kita akan berjalan dengan kecepatan hampir sama dengan kode – kode Java/ C++.



    Mengapa JIT ?

    Karena actionscript yang highly dinamic, loosely typed, dan merupakan bahasa scripting interpreter seperti halnya kebanyakan bahasa scripting dinamis lainnya akan dieksekusi lebih lambat dibanding code – code Java/ C++ yang statis yang telah berupa native machine code sewaktu code (Java/C++) tersebut dikompilasi.

    Sehingga dengan JIT code-code actionscript yang sudah berupa bytecode di swf akan ditranslasi menjadi bahasa mesin. Penggunaan JIT juga dimaksudkan untuk menanggulangi perbedaan arsitekstur mesin / prosessor tempat Flash Player berjalan.