Acer Mobile

Mr Rizkan pernah menanyaiku: apa yang berubah di dunia konvergensi? Pertanyaan mendadak itu aku jawab mendadak bahwa saat kita menyebut three-screens, sekarang prioritasnya sudah berubah: (1) mobile, (2) komputer, (3) TV. TV mungkin masih diminati, dan artis masih digilai. Tapi buat Generasi Z, ada kesan bahwa TV itu peninggalan masa lalu yang sebentar lagi ditinggal. Dan mobile — tentu — adalah perangkat yang setiap saat kita bawa: di kelas, di pasar, di rapat, di balik bantal. Trafik Twitter melonjak dari Indonesia dalam beberapa bulan terakhir, sementara user Facebook sudah mencapai 8.5 juta — lebih karena mobile terminal.

Namun di dunia mobile sendiri situasinya serupa: terjadi pergolakan mengikuti arus teknologi, minat user, dan lifestyle. PalmOS pernah berjaya, lalu digantikan Windows Mobile. Aku mulai jadi user di gelombang kedua ini, dengan Xphone dan XDA. Bukan hal yang buruk: banyak fungsi komputasi yang telah dijalankan di sini. Aplikasi mudah dicari, terutama dari third party. Mobile Internet masa itu sudah memungkinkan blogging, email, dll. VPN pun bisa jalan. Internet banking? Jalan sekali :). Lalu masuklah RIM dan Apple. Pemakai Blackberry masa kini, yang mengagumi fasilitas komputasi dan Internet di perangkatnya, seringkali hanya belum sadar bahwa mereka bukan trendsetter. Kalimat “Loh, loe kok bisa Facebookan? Loe kan nggak punya Blackberry?” adalah real dari pemakai Blackberry macam itu. Bahwa Blackberry dan kemudian iPhone menjadi puncak pengalaman mobile computing lebih merupakan kepiawaian RIM dan terutama Apple meramu experience, lifestyle, dan branding. Dan tentu sambil menarik kurva Moore yang memungkinkan kita bisa nonton Youtube pada layar tajam iPhone di kasur sambil mencoba bobo.

Acer-Mobile

Jadi menarik waktu aku menerima undangan dari Acer Mobile untuk memperbincangkan satu lagi terobosan pada mobile terminal. Sadar bahwa Acer Mobile ini berplatformkan Windows Mobile (versi 6.1), aku langsung berminat. Terbayang sebuah adegan The Empire Strikes Back: Bagaimana Windows harus mengerahkan kekuatannya untuk tetap unggul di ranah mobile. Jadilah aku datang, bersama beberapa blogger, ke Hotel Mulia. Tak sangka, kali ini kami disambut tim yang luar biasa lengkap. Dari Acer hadir Mr Kamarudin Abd Kahar sendiri (Direktur Pengembangan Bisnis Acer Mobile untuk Asia Pasifik) yang dikawal tim marketing, plus tim dari Windows Mobile, komplit :).

Aku mungkin bikin kaget dengan tidak terlalu banyak berbincang tentang spek teknis :). Gampang dicari di Google :). Aku lebih banyak talk tentang rencana pengembangan Acer: seserius apa mereka menerjuni dunia mobile, rencana aliansi bisnis, dan pengembangan teknologi. Seperti komputer Acer dan netbook Acer Aspire One, aku menangkap kesan bahwa Acer Mobile tidak akan menghabiskan uang untuk promosi besar, tetapi lebih akan menunjukkan ke para user tentang kualitas produk mereka, dengan harga yang terjangkau, dan dengan demikian membuat user akhirnya akan memilih mereka, sekaligus merekomendasikan ke lingkungan mereka.

F900Apple membuat ‘revolusi’ dengan AppStore, yang ditiru Nokia dengan OVI. Tetapi Acer memanfaatkan kekayaan aplikasi Windows Mobile yang telah dikembangkan para developer bertahun-tahun, mudah dicari dan diinstal, dan dengan forum pemakai yang cukup luas. Lebih dari itu, Acer sendiri mendukung dan mempromosikan content tersegmentasi. Salah satu yang dipaparkan adalah aplikasi lengkap bagi pelaku transaksi saham di IDX. Lokal sekali :).

Tapi kalau dibayangkan tampilan Acer Mobile ini mirip Windows Mobile biasa, kita akan kecele. Kalau kita melihat displaynya, yang menggunakan Acer User Interface 2.0, kita pasti langsung ingin menyentuh dan memainkannya. Displaynya memetaforakan sebuah meja kerja, dengan kalender, kartu nama, lukisan, alat tulis, dan jendela. Melongok jendela, kita akan melihat situasi cuaca, baik di tempat kita maupun di tempat lain. Memainkan kartu nama pun seperti melihat koleksi foto teman (kebetulan aku memang suka memasang foto teman-teman di Buku Alamatku). Browsing musik dan foto juga, menarik.

Aku agak bingung juga: ada 6 Acer Mobile yang boleh dimainkan. Pegang sana sini, yang langsung membuat akrab adalah F900. Pas untuk aku yang terbiasa dengan iPhone dan Nokia 5800 :). Touch screen, map, dan aplikasi lain, membuat lupa bahwa ini sebuah Windows Mobile. Hah, memang inovasi menarik, terpendam di gadget tipis (150 gram). GPS OK sekali, biarpun di dalam ruangan. Koneksi suite GSM (GPRS hingga HSDPA kat 8 dan HSUPA kat 5), atau WiFi. Yang lebih dari iPhone-ku, selain HSDPA/HSUPA, adalah Bluetooth berfungsi penuh, kamera 3.2 MP yang dilengkapi auto-focus, dan micr0-SD card. Spek lain, sila dilihat di site Acer. Tapi buat mereka yang kuno, boros, dan doyan keyboard qwerty keras (haha — canda), ada M900 juga sih. Di jajaran mid-end, ada DX900 yang enak dipegang (aku nggak bisa mendeskripsikan benda yang enak dipegang — pokoknya terasa enak).

Tapi aku memang jail. Jadi aku malah tanya: “Ssst, kenapa sih pakai Windows? Biarpun keren, tapi … Windows gitu lohh.”
Dan ini jawabannya: “Sssst, kita juga lagi siapin yang versi Android.”
Hihi, keren :).

WordCamp Jakarta 2009

WordCamp itu kopdar para stakeholder WordPress: developer, designer, dan user. User bukan hanya blogger, tapi juga pihak yang berminat menggunakan engine WordPress sebagai CMS untuk berbagai aplikasi web. Lucu kali ya: dulu semuanya “over IP” — lalu jadi “over web” — dan mungkin akan jadi “over blog” :).

WordCamp Jakarta 2009 diselenggarakan oleh Valent Mustamin, dan dihadiri oleh Matt Mullenweg sendiri. Tempat di Erasmus Huis, Kuningan, Jakarta, 17-18 Januari. Btw, dua hari ini Kuningan keren sekali. Cuaca amat cerah tapi segar tak panas, sementara trafik sungguh jinak :).

Di hari-1, konon hadir 68 orang. Matt maju sebentar membuka acara. Lalu, sebagai sponsor, Edelman Digital menyampaikan presentasi perdana. Presentasinya OK, tapi mungkin salah segmen, haha. Kita mulai membuat livetweet dengan tag #wordcamp. Berikutnya adalah sharing session pagi. Di sini disampaikan kegiatan komunitas pemakai WordPress. Blogger daerah diwakili Rara dari AngingMamiri. Vishnu Mahmud bercerita tentang video podcast. Pitra berbagi tentang forum diskusi Fresh. Dll.

Setelah lunch, Matt yang pemalu memaparkan perkembangan WordPress. Dimulai dari sejarah dan versi2 awal WordPress (yang mengingatkanku pada hal2 yang membuatku bermigrasi ke WordPress: simplicity &
hackability). Matt beralih ke alasan2 yang melandasi evolusi ke 2.7, dan ke rencana 2.8. Yang akan banyak dikembangkan adalah theme, widget, dan plugin. Sebagai penggemar foto, Matt menyampaikan bahwa WordPress sudah memungkinkan photo tagging. Belum mirip Facebook sih, tapi sudah OK lah. Seperti yang juga dipublishnya di blog pribadinya, Matt juga menyebut baru meluncurkan wordpress.tv, tempat sharing informasi mengenai WordPress. Dan yang buat aku paling menarik adalah dukungan untuk pengembangan lebih lanjut WordPress sebagai CMS. Salah satu contoh yang diberikan adalah aplikasi social network menggunakan WordPress.

Menurut data Matt, Bahasa Indonesia sudah menjadi bahasa ketiga pada pemakai WordPress.com, setelah bahasa Inggris dan Spanyol. Juga yang kedua tumbuh tercepat. Enam bulan terakhir saja, ada 143rb pemakai baru yang berbahasa Indonesia di WordPress.com (143.108 orang). Belum yang menggunakan WordPress.org dan WordPress MultiUser ya :). Dalam kurun waktu yang sama, 40 kota di Indonesia mengirimkan trafik 117 juta ke WordPress. Pemakai di Indonesia cukup bervariasi, dengan pemakai WordPress.com dan WordPress.org cukup berimbang. Di negara seperti RRC misalnya, pemakai WordPress.com agak kecil: ada blok dari penguasa.

Sebagai kopdar, tentu ada perbincangan di luar forum juga. Ada perbincangan2 menarik tentang bagaimana blog terus saling melengkapi dengan media non blog. Vivanews juga sempat menginterview tentang keunggulan platform WordPress. Hihi, ada bagian yang Vivanews belum paham, yaitu tentang interaktivitas blog. Tapi keunggulan WordPress sebagai open source terkomunikasikan dengan baik.

Hari kedua dimulai Mas Romi Satria Wahono dengan berbagai aspek penggunaan blog: mengeksplorasi engine dan eksplorasi kepada nilai komunikasi blog sendiri. Aku rada terlambat, menikmati weekend pagi di rumah dulu, jadi tak mengikuti 100% paparan beliau. Waktu break, aku baru lihat bahwa pasukan BBV membawa anak2 SMA, finalis mading online ke acara ini. Ide keren. Trus kopi. Trus bikin entry blog ini. Matt naik lagi ke panggung untuk talk show tentang aspek bisnis dari platform WordPress. OK, blog disambung lain hari. Lihat di Twitter aja dulu ya.

Platform Smartphone Masakini

Analis pasar Canalys melaporan: Symbian masih jadi platform aplikasi terminal mobile terbesar secara internasional: nyaris dua pertiga pangsa pasar. Padahal setiap terminal dipungut royalti US$5. Tapi khusus di US, pangsanya berbeda: pasar dikuasai Microsoft (Windows Mobile), Apple (iPhone), dan RIM (Blackberry). Dan kalau kita lihat, semuanya adalah platform yang bersifat propietary. Linux punya share kurang dari 10% saja.

Platform berlinux a.l. Android, LiMo, dan Openmoko. Android merupakan ekspansi Google ke dunia mobile. Arah pengembangan bersifat open source, berbasis Linux, tetapi menggunakan virtual machine mirip Java, jadi mirip iPhone (Apple) atau Brew (Qualcomm). Semua tools bisa didownload gratis dari Google. LiMo baru mengeluarkan spesifikasi API, dan baru berencana meluncurkan SDK. Tapi dokumen selain spek API baru bisa didapat setelah kita mendaftar ke Yayasan LiMo dengan membayar US$40000.

Menariknya, beberapa platform propietary nampaknya tengah bertransisi ke arah open source. Symbian termasuk di antaranya. Platform yang juga bertransisi adalah MOAP dan Palm. Ya, palm yang pernah populer di PDA itu tengah bertransisi dari PalmOS propietary ke OS baru berbasis Linux.

Apa nih, pengaruhnya buat kita?

Bilangan-Bilangan Euler

Hari2 ini, aku jadi sering harus main2 dengan SMS gateway, dan bikin aplikasi web mini dengan itu. Tentu dengan PHP dan MySQL lagi. Dan sebenernya aku ragu, apa scripting dengan PHP masih bisa kita anggap bagian dari programming, seperti zaman kita dulu masih boleh sering2 main2 dengan C++. Batasnya “etika”-nya apa sih? :) Aku selalu berpikir bahwa programming harus agak mengandung hacking, dengan meletakkan kreativitas personal ke dalam kode; yang membuat program ciptaan seorang programmer jadi suatu yang akan berbeda dengan program programmer lain. Atau mungkin aku — seperti biasa — salah menggunakan istilah lagi :).

Dengan bahasa C, aku pernah membandingkan deret untuk menghitung nilai e dan π. Tentu bilangan natural e melejit lebih cepat ke nilai asimptotiknya. Soalnya aku waktu itu cuma menghitung π sebagai arc tan 1 yang dideretkan sebagai 1 – 1/3 + 1/5 – 1/7 + 1/9 dst. Padahal mungkin programmer lain bisa lebih cepat dengan menggunakan π3/32 = 1 – 1/33 + 1/53 – 1/73 + 1/93 dst.

π3/32 diambil dari π3/(16*2!). Dan ini bisa dilanjutkan ke pangkat ganjil yang lain. Jadi:

π/4 = 1 – 1/3 + 1/5 – 1/7 + 1/9 …
π3/(42*2!) = 1 – 1/33 + 1/53 – 1/73 + 1/93
5*π5/(43*4!) = 1 – 1/35 + 1/55 – 1/75 + 1/95
61*π7/(44*6!) = 1 – 1/37 + 1/57 – 1/77 + 1/97
1385*π9/(45*8!) = 1 – 1/39 + 1/59 – 1/79 + 1/99
50521*π11/(46*10!) = 1 – 1/311 + 1/511 – 1/711 + 1/911

Deret angka 1, 1, 5, 61, 1385, 50521, 2702765, 199360981, 19391512145, dan seterusnya itu disebut dengan bilangan-bilangan Euler (Euler numbers). Dia berasal dari sesuatu yang disebut permutasi zigzag. Permutasi zigzag itu kemungkinan kita menderetkan n bilangan p yang berbeda, dengan p1 < p2 > p3 < p4 > dst sampai bilangan n. Dengan kata lain, pi < pi+1 jika i ganjil, dan pi > pi+1 jika i genap. Bolak balik. Zigzag. Untuk n=0, 1, dan 2, tentu hanya ada satu kemungkinan; untuk n=3 ada 2 kemungkinan; untuk n=4 ada 5 kemungkinan; lalu 16, 61, 272, 1385, dan seterusnya. Nah, kita ambil yang genap saja untuk bilangan Euler kita.

Tapi apa kaitannya permutasi ini, dengan Euler, dengan arc tan, dengan π? Nah, itulah asyiknya kalau weekend tidak harus dihabiskan untuk urusan kantor. Jadi ada yang bisa dimainin :)

Sementara itu,

π2/6 = 1 + 1/22 + 1/32 + 1/42 + 1/52 … dan kita bisa memasuki cerita lain …

Pertemoean Peretas

Pun hanya dalam bekerja, aku sering hidup dalam dua dunia. Apakah aku orang komunitas yang memanfaatkan fasilitas Telkom, atau orang Telkom yang memanfaatkan hubungan dengan komunitas? Aku selalu menganggap bukan dua2nya. Telkom bukan hal terpenting dalam hidupku. Dan komunitas itu jamak. Tapi seperti orang lainnya, kita tentu cenderung melakukan sinergi berbagai sisi hidup kita, sambil berharap mudah2an hasil akhirnya optimal. Dan kalau itu berhasil, kita merasa jadi hacker.

Aku sendiri merasa beruntung, bulan ini banyak ketemu dengan para peretas (hackers). Malam tahun baru (1 Muharram 1429), waktu rekan2 Isnet membentuk Koperasi, aku duduk semeja dengan Mas Ahmad Rully (Afumado Rurrii). Ini typical hacker Isnet (dalam budaya yang meliputi misalnya Mas Aria Prima, Mas Kumoro Wisnu Wibowo, sampai Mas Harry SufehmiMbak Ranti enaknya dihitung nggak ya?) — orang2 yang selalu bikin aku kagum, yang lebih banyak bekerja keras di balik layar, namun jarang terdengar suaranya di atas pentas :). Aku hanya ketemu Mas Aria sekali waktu beliau berkunjung singkat ke ITB, dan sekali ketemu Mas Kum waktu beliau beresepsi pernikahan. Jadi beruntung bisa ketemu Mas Rully, yang aku sambar untuk duduk semeja. Dan tak lama Mas Harry Sufehmi (berambut panjang!!) bergabung ke meja itu. Jadilah meja itu sayap hacker Isnet :).

Beberapa hari kemudian, ketemu lagi dengan Mas Harry Sufehmi di Waroeng Podjok of Plasa Senayan, berbincang tentang SMS content dan mobile content lain, dengan Mas Fami Fachruddin, dan Mas Budi Putra. Dan di ruang tak jauh, Café Bean of Plasa Senayan, beberapa jam kemudian, ketemu dengan kelompok besar anggota milis Teknologia. Judulnya Teknologia Offline. Di sini, selain ada wajah lama seperti Avianto dan Kukuh, banyak wajah yang baru buat aku, incl Irfan Tommy, Pitra, Adeline, Hasyim, Andi, Ilya, hmm siapa lagi ya. Tema umum tentang memulai deployment content ke masyarakat, dari berbagai sisi. Notulen ada di milis, dan bisa digoogle. Url ke mereka, bentar ya :).

teknologia-offline.jpg

Masih di Jakarta, aku baca ajakan ketemuan KLuB (Kelompok Linux Bandung). Aku minta ketemuannya ditunda, biar aku ada di Bandung, haha :). Tapi syukurlah mereka mau. Jadi akhirnya baru hari Minggu kemarin aku ketemu para hacker muda dari KLuB. Jumpa diawali di Pondok Baca Arcamanik, dimana KLuB punya komitmen melakukan instalasi dan maintentance LTSP untuk komputer buat anak2 kurang mampu. Trus dilanjutkan makan2 di Suis Butcher. Suasana perhackeran bikin Suis Butcher lebih menarik daripada hari lain. Anggota KLuB yang hadir a.l. Wisnu Manupraba, Antonius Aryo, Zaki Akhmad, dan Rolly Maulana. Tidak ada anggota KLuB dari angkatan tua, haha. Jangan2 udah pada pindah ke Mac :p. Aku coba ajak rekan2 KLuB untuk menggelar LTSP buat jadi solusi pengadaan jaringan komputer di sekolah2 lain yang secara finansial belum kuat, barangkali pakai dana CDC.

klub-at-suis-butcher.jpg

Udah selesai? Belum. Januari belum berakhir. Dalam kerangka Telkom, aku menghabiskan dua hari ini di Lembang, melakukan join plan session bersama Divisi Multimedia. Waaaa, djoempa hacker lagi. Orang2 pintar Telkom ini lebih banyak di balik layar memang. Takut dibajak, haha :). Tapi merekalah yang bikin aku yakin bahwa Telkom masih punya masa depan yang OK. Dan, OK, untuk menghormati gaya hidup mereka, nama mereka juga nggak aku tulis.

Ephremides

Kurasa IEEE harus jadi kategori satu lagi di blog ini. Atau tag, kalau aku sudah memutuskan bermigrasi ke WordPress 2.3.x nanti. Urusan lain deh. So, hari ini aku menikmati jadi mahasiswa. Datang ke Univ Bina Nusantara untuk menghadiri IEEE Distinguished Lecture on Cross Layering Issues. Lecturenya Prof Anthony Ephremides, dari Univ of Maryland. Namanya Yunani bener ya, mengingatkan pada Empieles (tema tesisku, haha). Mantan Presiden IEEE Information Theory Society (dimana aku hanya berstatus ‘mantan anggota’) ini datang ke Jakarta hanya untuk satu sesi kuliah ini, dalam tur kuliahnya keliling Asia Tenggara.

Di dalam ruangan, aku baru sadar bahwa judul kuliahnya adalah Cross-Layer Issued in Wireless Networks. Tadinya aku pikir semacam GMPLS dalam network terkonvergensi, karena sejauh ini aku membayangkan beliau sebagai ahli traffic engineering. Kuliah ini lebih menyoroti kasus2 dalam wireless network berelemen banyak (single hop dan multi hop), dimana akhirnya keputusan untuk membentuk jalinan network (pada layer fisik) akan berkait penuh dengan layer2 di atasnya (MAC, IP, dst). Tapi tak sembarang cara dilakukan untuk melakukan cross-layering. Secara hati2, kita harus amati interaksi antar layer, melakukan eksploitasi atasnya. Selanjutnya adalah formula2 dengan huruf2 Yunani (kan …) yang bikin otak merasa muda lagi (haha). Dan kemudian ide tentang network coding. Yummie.

Buat yang berminat, materi kuliah ini bisa aku kirim via mail. Atau kontak host sesi ini: Mr Lukas Tanutama and Mr Wiejaya of Univ Bina Nusantara, Computer Engineering Department. Telusuri juga beberapa tulisan Pak Ephremides di sini: www.hindawi.com/13692679.html.

Di dekat toilet aku mendengar seorang senior berbincang tentang penanaman saham Telkom baru2 ini di sebuah perusahaan pengembang perangkat lunak. Waktu aku keluar, Mr Endang of Trisakti memperkenalkan aku ke beliau. “Ini Kuncoro, Pak. Dari Telkom.” Beliau menatapku lekat, trus … “Ya, saya melihat kuliah Anda di Trisakti minggu lalu. Saya duduk di belakang.”

Akar Kuadrat dan 5f3759df

Saat source code untuk game Quake III dibuka, orang menemukan kode-kode C menarik dari John Carmack. Salah satunya adalah fungsi invers akar kuadrat, yang pada intinya ditulis sebagai berikut:

float InvSqrt(float x)
{
float xhalf = 0.5f*x;
int i = *(int*)&x;
i = 0x5f3759df- (i>>1);
x = *(float*)&i;
x = x*(1.5f-xhalf*x*x);
return x;
}

Menariknya, hack semacam ini menghasilkan kecepatan kalkulasi yang amat cepat, kira-kira empat kali lebih cepat daripada menggunakan (float)(1.0/sqrt(x)), walaupun sqrt dalam hal ini menggunakan instruksi assembly FSQRT.

Yang jelas, kode ini memanfaatkan metode Newton-Raphson. Tetapi pendekatan yang digunakan, dan terutama penggunaan heksadesimal 5f3759df tentu sangat menarik. Googlekan angka itu, dan temukan petualangan menarik mencari asal-usul baik bilangan ajaib itu, maupun hacknya sendiri. D Ebery misalnya, menganggap shift i>>1 mengakibatkan interpolasi linear pada si invers akar kuadrat. Tetapi, pertama kali, kita harus ingat bahwa si penulis kode sedang memainkan bit-bit floating point yang secara standar akan dikodekan sesuai IEEE 754-1985 (yang memisahkan mantissa dengan eksponen); dan si penulis juga meyakinkan diri bahwa kode ini jalan baik untuk little endian maupun big endian.

Sekarang, metode Newton-Raphson dulu, sambil dipandu C Lomont. Kita akan menghitung 1/akar(x). Definisikan dulu f(y)=1/y2 – x, sehingga nantinya nilai yang kita cari adalah akar positif dari f(x). Dengan metode Newton, jika kita punya pendekatan awal yn, maka kitadapat menghitung pendekatan berikutnya sebagai yn+1 = yn – f(yn)/f'(yn). Dengan f(y) di atas, akan diperoleh yn+1 = ½yn (3 – xyn2), atau dalam kode C di atas adalah x = x*(1.5f-xhalf*x*x), dengan x nilai pendekatan awal y0 kita. Baris i = 0x5f3759df-(i>>1) menghitung nilai awal y0 ini, dengan mengalikan eksponen x dengan -½. Kemudian bagian yang menarik pun dimulai. Karena, hey, yang dishift kan bukan hanya eksponen, tetapi keseluruhan bilangan.

Ada beberapa pendekatan untuk bagian ini. Aku baca baik versi C Lomont maupun C McEniry. Lomont membagi ulasan untuk eksponen genap dan ganjil segala. Tapi akhirnya yang mereka dapati adalah sebuah pola berulang, yang kemudian dicari minimasi kesalahannya, sehingga diperoleh sebuah nilai dengan kesalahan paling kecil. Dan kode di atas itulah hasilnya, dengan sebuah kiraan r 0.4327448899 dst. Lomont sendiri mendapati bahwa ia memperoleh bilangan yang memberikan akurasi lebih tinggi, yaitu 5f375a86. McEniry mengkritik bahwa brutal force yang sempat digunakan Lomont bisa justru tidak mendeteksi jurang sempit antar celah serangan brutal itu. Tapi, sebagaimana Lomont, ia juga memberikan saran perbaikan, baik untuk versi float maupun versi double.

float InvSqrt(float x)
{
union {float f; unsigned long ul; } y;
y.f = x;
y.ul = ( 0xBE6EB50C – y.ul ) >> 1;
y.f = 0.5f * y.f * (3.0f – x * y.f * y.f);
return y.f;
}

Untuk versi double, keyword float harus diganti double, unsigned long menjadi unsigned long long, dan si konstanta ajaib jadi 0xBFCDD6A18F6A6F54.

%d bloggers like this: