Archive for the ‘Computer’ Category

Developing Real-time Network Game

Just recently, one of my friend visited me and like always we had a chat about the gaming industry in Indonesia and IT problem in general. The topic mainly about the future of Indonesian gaming industry and some problems related to the studio. So let’s discuss about it.

I was once a server programmer in a game studio for more than 1 year. A friend (not the one who came recently) easily convinced me to join with this studio as a server programmer since I was really curious about how to build a server for multiplayer game, also I have interest in network programming since I was in the college but never had the chance to do the implementation until he asked me to join to help him build a server for the game he developed. Honestly I learned a lot from there, technically and also the background of Indonesian game development.

We know that Indonesia started to produce many games that have good quality, primarily in mobile. Several years ago, Indonesia’s video game company are just limited and dominated as outsourced from the big company overseas, as far as I know this happened when I was still a student in the college, c.a 2006. After the booming of smartphone in 2008-2009, the gaming industry was also grown with many development platform that developers can use. Android, iOS, BlackBerry and even Windows Phone. Many game engines — open source or commercial — appeared such as Unity3D, Unreal Engine, UDK (derived from Unreal Engine), MonoGame (open source version of Microsoft XNA). The number of developer grown because the easiness of using all those matured game engines, with no exception of Indonesia developers.

However, something is bothering me. Although the number of Indonesian developers grown, the prominent development choice are mobile game and some Adobe Flash based games. Now I wonder, where is the legendary MMORPG game that used to be in the news in early 2010, Nusantara Online? I just searched it in Google before write this post, and found almost nothing about that project anymore. Did the developer has been disbanded? Why did the project stopped after that much of publication?

I done some research on network based game in Indonesia, perhaps a game with real-time multiplayer feature that are developed for mobile or PC, but found nothing. Many games that are developed and using network feature mainly use it only to submit the score or progress, which can be easily made using web services API which many web developer without much knowledge of game development can made in relatively short time.

When I worked in that game studio, the game I worked on are a Flash based game. The first concept of this game are MMORPG where many people can interact each other, however in the middle of development, the concept was changed into simple online RPG (not massively) simply because the story itself doesn’t suit to be build into a MMORPG. The change actually can be handled with simple web service like the one I told above, however I insist to use network or socket programming so I can learn something from this project and also benchmark the performance when this system is connected by many players at once. Then it was prematurely halted in the middle of development without any good reasons. Although I believe the main problem was management and development process, I will not talk about it since the topic in this article is about the network game.

Since that day, I still have the urge to develop a MMORPG until now. I was once read an online discussion about Nusantara Online, there were too many bugs and the game itself lagged when being played. From what I read, it was primarily the problem in the client graphic engine. They used engine which are not primarily developed for video game, also since the game itself developed for so long it might also cause the engine outdated. Moving to the newest engine should be problematic especially when the API has been changed too much. Perhaps the other factor for the game performance are the server side.

Based on my experience, I can tell that developing the real-time server application for MMORPG is difficult technically. Here are some of the factors that I can tell:

  • The server developer must have knowledge not just in programming language, but also in tweaking the application so it can run smoothly when are being connected by many players.
  • The server developer also need to have a good patience and ready to be placed in development environment that basically just consists of console windows and text file for debugging the problems in the server side.
  • Server testing usually depends on the client. Even though if we can create automated test script, user testing still must be done from the client. Imagine when the developer need to recompile the application each time he found errors and execute the client binary.
  • Scripting language usually causing performance degradation, so the primary options for the server development are compiled language which dominated by C or C++ (and C# as I developed the application). As for as I know, C and C++ are not popular languages for development, especially in Indonesia, and the university never teach past the basic when I was in college. Currently many of scripting languages can be alternatives because they employ Just-in-time (JIT) compilation so the performance should be better, although it’s still fall far behind the compiled application.
  • Another resource is needed when you’re dealing with server and network. If the server developer has this knowledge, it even better since it will support it’s tweaking and testing effort.
  • Communication skill with front-end developers must be really good, and the willingness to document the server API because the server will surely getting complex from time to time.
  • Other indirect factor is the font-end developers, are they understand the concept behind socket programming or not?

Beside of all those factor, the teamwork and communication of the team as a whole are also important. The server programmer must know the design of the game so he can decide what is the best way to implement the functions, the project manager and game designer also must try find out the difficulty that might be happened when implementing something with the server programmer. So, that’s developing a real-time network game is really hard and challenging, and perhaps that’s why not much people or game companies want to try doing this.
I also had a chance to search a network game engine from Google. I found some of this so called “network engine”, however many of them are focusing in the client side, not the server side. Even if there are engines that promised to have server side one, I believe it’s hard to develop with, due to the complexity and performance limitation because you add another layer of processing with an engine. You also will have problem in tweaking since you don’t know the core process of the engine unless you learn the source code by yourself. In the end, one of the viable solution is designing and developing the server engine from scratch. If I have plenty of spare time (and good partners), I will try to continue my effort in creating one simple MMORPG, perhaps a web-based one because currently you can implement socket programming (not fully) with WebSocket protocol. I’ve done a little experiment with WebSocket and NodeJS but they’re still to early to be published. And well, the basic problem in WebSocket is latency since the WebSocket is TCP based where usually a real-time game uses UDP protocol. I also have a plan to open source it, perhaps it might be a good contribution for people who want to try to be a server developer.

It’s my dream to build a game by myself or by my team. Yup, as one commenters in one of my previous post, “keep dreaming”, then I shall. And I’m going to do it, and realize it! Hey, perhaps I will be the one who successfully create an MMORPG in Indonesia. :D

Internet Explorer 9 Beta at a Glance

Internet Explorer 9 (IE9). Mungkin ini menjadi salah satu browser yang paling ditunggu-tunggu kehadirannya, apalagi melihat banyaknya isu-isu bahwa borwser ini adalah pembunuh “para pembunuh Internet Explorer versi sebelumnya”. Digadang-gadangkan bahwa IE9 memiliki fitur yang lebih baik daripada kebanyakan browser alias saingan lainnya, dan bahkan lebih cepat dari browser-browser lainnya. Apakah memang benar begitu? Mari kita coba lihat secara singkat mengenai browser yang sekarang masih dalam tahap beta ini.

Internet Explorer 9 Beta Interface

Interface dari IE9 Beta.

Pertama, untuk interface. Untuk urusan interface, pasti interface yang paling banyak ditiru belakangan adalah interface dengan tab di posisi paling atas dari browser, tak ketinggalan juga, kini IE9 juga melakukan perubahan yang sama. Tab diletakkan pada bagian paling atas. Uniknya, address bar yang digunakan untuk menampilkan dan menuliskan URL berada sejajar dengan tab tersebut. Kesan yang aku dapat dari situ adalah jadi terasa sempit. Entah kenapa, bagian atas jadi terasa terdapat celah kosong yang terlalu besar, padahal Google Chrome saja memanfaatkan “celah” tersebut, dan tetap menyediakan tempat tersendiri bagi address bar sehingga baris untuk address bar masih bisa diisi dengan tools-tools lainnya.

Kemudian dengan memanfaatkan fitur Aero Peek dari Windows 7 yang aku gunakan, aku bisa melihat thumbnails dari halaman web yang aku buka. Yup, walaupun berada di dalam tab tersendiri, tetapi thumbnails tetap ditampilkan sendiri-sendiri melalui taskbar sehingga kita dapat melihat sekilas isi dari halaman tersebut hanya dengan meletakkan mouse di thumbnails tersebut. Perlu diketahui, fitur ini juga terdapat di Firefox 4 beta. Terdapat juga fitur baru untuk membuat halaman web menjadi seperti sebuah aplikasi yang bisa di-pin di start menu atau task bar. Sayangnya, fitur serupa juga sudah dipersiapkan Mozilla dari jauh hari dengan Prism-nya.


This entry was last modified on: October 7th, 2013 at 0:10

C Sharp Debut

Aku pernah membaca sebuah artikel — sayangnya aku sudah lupa di mana artikel itu berada — di mana pada artikel tersebut tertulis bahwa lebih baik seorang programmer menguasai suatu bahasa pemrograman terlebih dahulu sebelum berpindah ke bahasa lain. Bahkan bahasa yang disarankan adalah C atau C++ karena merupakan bahasa yang sangat strict bila kita ingin mempelajari pemrograman secara akademik dan profesional. Bukan berarti bahwa bahasa lain seperti BASIC merupakan bahasa yang haram bagi programmer pemula, hanya saja dari pengalamanku, aku banyak melihat orang-orang yang sudah terbiasa dengan BASIC terlebih dahulu kecenderungannya malah kagok melihat dan menggunakan bahasa lainnya.

Aku sendiri sudah cukup terbiasa dengan C, walau tidak bisa dibilang sebagai seorang yang benar-benar menguasai dan menggunakannya secara profesional. Sejak lama aku lebih tertarik pada dunia web, dan sempat berkenalan dengan ASP, kemudian jatuh cinta kepada PHP yang sampai saat ini masih merupakan bahasa yang aku utamakan untuk diperdalam dalam pengembangan aplikasi web.

Selain sebagai programmer (dalam arti jeleknya yaitu “tukang coding”), aku juga berusaha menjadi developer, dengan mempelajari banyak hal seperti security, konsep pemrograman, analisa dan desain, serta project management, di mana project-project yang aku kerjakan selama ini “memaksaku” untuk berpikir sesuatu yang BESAR. Bukan soal bayarannya yang besar, tapi soal sistem yang besar dalam skala enterprise di mana beberapa aplikasi harus bisa bekerja sama dan terkait satu sama lainnya. Di sini aku diajak untuk berpikir dan mendesain aplikasi-aplikasi dengan baik, mengingat bila terdapat satu saja masalah dalam aplikasi atau proses, bisa saja mempengaruhi aplikasi-aplikasi lainnya.

Belakangan ini aku memulai debut bahasa pemrograman baru, yaitu C Sharp atau C#. Sebuah bahasa yang diciptakan oleh salah satu perusahaan yang disanjung dan juga dicerca banyak orang: Microsoft. Aku sendiri lebih suka mengetiknya sebagai C Sharp, sepertinya karena banyak artikel-artikel yang aku temukan di Google bila mencari bantuan merupakan hasil dari penggunaan kata C Sharp. Dengan embel-embel “C”, bahasa ini cukup mirip dengan bahasa C. Lebih tepatnya sih C++ karena sifatnya yang object oriented.


Ajax, gunakan atau tidak?

Semua bermula dari sebuah debat kecil antara aku dan seorang temanku mengenai penggunaan teknologi Ajax dalam aplikasi yang sedang aku buat untuk menyelesaikan thesis-ku. Dari sana muncul ide untuk menerapkan Ajax dalam beberapa bagian dari aplikasi yang sedang dibuat dari temanku, akan tetapi sayangnya seperti biasa, aku bukan orang yang mudah menerima tanpa analisa usability dari aplikasi yang sedang dibuat. Setelah analisis singkat, aku memutuskan bahwa kami tidak perlu menggunakan Ajax karena yang penting aplikasi yang dibuat cukup simple, dan toh skripsi ini terfokus pada penulisan, bukan aplikasi.

Ajax. Apakah Anda pernah mendengar dengan kata ini? Bila Anda seorang developer web, web designer, atau orang yang cukup memiliki pengetahuan dalam bidang web (termasuk walaupun Anda hanya pengguna saja), rasanya istilah ini bukan lagi istilah yang asing bagi telinga Anda. Asynchronous JavaScript and XML, sebuah teknologi pertukaran data asinkron dalam aplikasi web yang sedang naik daun sejak beberapa tahun yang lalu. Penggunaan Ajax juga menjadi dasar dari perkembangan Web 2.0 dengan hadirnya banyak situs yang menggunakan teknologi ini. Tapi apakah memang teknologi Ajax ini sudah begitu siap untuk diterapkan di semua lini pengembangan web?

Mari kita telusuri dulu asal muasal dan cara kerja Ajax ini. Ajax merupakan teknologi yang tidak tergolong muda karena perkembangannya sudah ada sejak lama, yaitu sekitar tahun 1990-an ketika terjadi booming teknologi internet dan world wide web, akan tetapi teknologi ini mendapatkan namanya sejak perkembangan Web 2.0 semakin besar dengan menghadirkan interaktifitas pengguna dengan penyedia layanan berbasis web. Teknologi ini sendiri menggabungkan antara kerja JavaScript, (X)HTML, dan CSS di browser atau client, data dalam bentuk XML atau JSON, serta web server. Cara kerja teknologi ini hampir sama dengan ketika browser melakukan request halaman ke suatu server, hanya saja tidak semua halaman serta merta dimuat ulang, tetapi melainkan hanya sebagian saja sehingga tampak seolah-olah halaman lebih interaktif.

Sayangnya, walaupun Ajax sudah cukup lama hadir di dunia ini, dan juga sudah cukup lama terjadi booming dan penggunaannya di web dalam 5 tahun terakhir, masih banyak persiapan yang belum matang dalam menggunakan teknologi ini. Hal ini dapat dilihat dari kesiapan user dalam menggunakannya, kesiapan developer dalam memanfaatkannya, kesiapan infrastruktur server dalam mengadopsinya, serta kesiapan user agent atau browser dalam menanganinya dalam suatu standar yang sama.

Masih banyak user yang belum menggunakan browser terbaru yang mengikuti standar sehingga sebagian teknologi ini masih belum dapat terpakai dan ditampilkan dengan sempurna. Banyak developer yang masih belum memahami atau memiliki dasar yang kuat atas Ajax yang akan mereka gunakan. Banyak juga server yang belum siap meng-handle banyaknya request dari penerapan Ajax dengan cara yang salah sehingga akhirnya tidak kuat menghadapi gempuran client karena kurang pahamnya developer yang mengembangkannya. Beberapa browser juga memiliki cara kerja yang berbeda-beda dalam menangani Ajax sehingga menyulitkan developer dalam pengembangannya.

Kehadiran Ajax memang membuat web menjadi dinamis dan interaktif, akan tetapi hal ini tidak serta merta dapat menggantikan posisi aplikasi desktop. Kehadiran cloud computing dan berbagai web application yang menggunakan Ajax, serta perkembangan operating system berbasiskan web hanya akan sebatas melengkapi teknologi desktop yang ada, bukan menggantikannya. Jadi salah besar bila seorang berpendapat dan berpikiran bahwa aplikasi web dikembangkan untuk dapat menggantikan aplikasi desktop secara total. Berbagai halangan seperti bandwidth jaringan, keamanan dan kecepatan pemrosesan pun secara tidak langsung akan berpengaruh terhadap efektifitas aplikasi web.

Ketika user mendapatkan sebuah situs yang menggunakan banyak teknologi Ajax, misalkan saja Facebook — dan tentu saja teknologi ini sudah diadopsi dengan cukup matang oleh Facebook — user akan mudah tertarik karena sisi interaktif dan modern-nya. Hal ini berpengaruh terhadap banyaknya developer yang memanfaatkan teknologi Ajax ketika ingin mengembangkan aplikasi berbasis web, biasanya tanpa memikirkan kekurangannya. Di sisi user yang juga tidak banyak mengetahui seluk-beluk teknologi ini, mereka seringkali menganggap bahwa teknologi Ajax merupakan teknologi yang bagus dan paling modern sehingga sebisa mungkin web yang dikembangkan memakai teknologi ini.

Alhasil dengan tidak pahamnya user dan developer, akhirnya teknologi ini seakan-akan hanya merupakan eye-candy atau hiasan yang seringkali tidak memiliki pondasi yang cukup kuat untuk mendukungnya, misalkan aksesibilitas ketika user mematikan JavaScript atau memblokir beberapa konten seperti iklan yang mungkin saja sifatnya false-positive sehingga Ajax tidak bisa dipakai. Belum lagi dari sisi keamanan, user tidak melakukan validasi dan sanitasi atas pesan yang disampaikan dari server sehingga memungkinkan berbagai bentuk serangan terhadap end-user seperti XSS dan CSRF.

Saya sendiri sudah cukup lama belajar Ajax, sejak hampir 2 tahun yang lalu. Akan tetapi baru berani memasukkannya ke dalam project yang saya kerjakan baru 3 bulan yang lalu setelah project tersebut saya rasa sudah cukup matang dalam memberi pondasi terhadap Ajax. Saya cukup salut melihat atau mendengar orang-orang yang berani menggunakan Ajax dalam project-project yang dibuatnya, padahal pondasi pengetahuannya belum kuat, tapi yah memang saya sendiri belum pernah mendengar secara langsung ada kasus project gagal karena memaksa memakai Ajax.

Jadi bila Anda memang cukup yakin bahwa project Anda tidak akan gagal karenanya, silahkan pakai teknologi ini walaupun Anda baru mengetahui mengenai Ajax hari ini atau beberapa hari yang lalu. Akan tetapi bila Anda merasa bahwa pondasi yang kuat adalah sesuatu yang diperlukan untuk membangun suatu sistem atau aplikasi, silahkan coba untuk mendalami terlebih dahulu dasar-dasar JavaScript, XHTML, CSS, protokol HTTP, serta jaringan sebelum mengimplementasikan. Bahkan akan lebih baik bila memahami cara kerja Ajax dari sisi teoritis, bukan hanya dari sisi coding saja. Jujur saja, coding itu mudah, semudah melakukan kesalahan karena desain sistem atau aplikasi yang salah.

Ada beberapa pertanyaan yang harus Anda tanyakan kepada diri Anda sebelum memakai Ajax:

  1. Bisakan aplikasi Anda melakukan fungsi yang sama tanpa menggunakan Ajax atau ketika JavaScript dimatikan?
  2. Apakah sebelumnya Anda memikirkan konsep web yang Anda kembangkan ketika tidak menggunakan Ajax?
  3. Apakah dengan menggunakan Ajax justru akan memberi efek positif dibanding dengan efek negatifnya?
  4. Apakah Ajax itu benar-benar diperlukan dalam aplikasi yang Anda buat?

Bila minimal 3 jawaban dari pertanyaan di atas adalah “ya”, maka jangan ragu untuk menggunakan Ajax. Sebagai informasi, bila Anda menjawab “tidak” pada beberapa pilihan di atas maka beberapa hal akan dikorbankan, yaitu 1) aksesibilitas, 2) rancangan atau desain, 3) fungsionalitas Ajax, dan 4) simplicity dan fungsionalitas aplikasi.

Jadi, Ajax tidak dikembangkan untuk membuat suatu web menjadi keren karena tidak perlu melakukan reload halaman, bukan pula untuk membuat web menggantikan fungsi aplikasi desktop, tetapi hanya sebuah teknologi yang membantu kenyamanan dan kemudahan bagi end-user.

Why Do You Must Set Your System Time Properly before Going Online?

Petunjuk sederhana sebelum Anda membaca artikel ini secara menyeluruh, cek tanggal dan waktu yang ada di komputer Anda (biasanya terdapat di ujung kanan bawah atau kanan atas tergantung sistem operasi dan pengaturan posisi). Apakah tanggal Anda benar-benar sudah menunjukkan tanggal hari ini? Apakah zona waktu sudah menunjuk ke zona yang tepat dengan daerah Anda? Bila jawabannya tidak, maka lebih baik Anda segera mengaturnya sesuai dengan kondisi yang ada sebelum muncul masalah-masalah karena waktu komputer Anda salah.

Kenapa waktu sistem menjadi begitu penting? Waktu yang sudah diatur di komputer akan dipergunakan untuk banyak hal, antara lain memberi tanggal kepada file yang baru dibuat atau dimodifikasi, menentukan bagaimana aplikasi-aplikasi bertindak, dan bagaimana schedule yang diletakkan di komputer Anda akan dijalankan. Tentu Anda tidak ingin kan bila suatu waktu Anda mengatur jadwal melalui sebuah aplikasi penjadwalan untuk 1 minggu ke depan, kemudian Anda memasang alarm di sana, dan kemudian menemukan alarm tidak berbunyi sampai 1 minggu kemudian. Setelah dicek, yang Anda temukan adalah waktu di komputer Anda adalah 1 tahun sebelumnya!

Beberapa waktu yang lalu ada beberapa orang yang bertanya melalui blog ini mengenai pesan keamanan yang muncul ketika mengakses beberapa website yang menggunakan fasilitas enkripsi dan sertifikat keamanan. Halaman-halaman yang memiliki sertifikasi keamanan bisa dilihat dengan beberapa ciri-ciri seperti alamat dimulai dengan https (bukan http), warna kotak alamat adalah biru / hijau dan memiliki logo gembok di sisi kanan bawah browser Anda.

Untuk menghindari penyalahgunaan sertifikat, website-website publik umumnya menggunakan sertifikat yang dirilis oleh perusahaan yang terpercaya seperti VeriSign, dan daftar perusahaan terpercaya ini umumnya disimpan di browser, serta memiliki tanggal mulai dan kadaluarsanya. Masalahnya bila terdapat kecurigaan manipulasi pada sertifikat ini, beberapa browser seperti Mozilla Firefox akan memunculkan peringatan seperti “this connection is not trusted” atau “sambungan ini tidak terpercaya“, termasuk juga bila sertifikat berada di luar tanggal mulai dan tanggal kadaluarsanya. Beberapa orang yang mengalami masalah mengatakan peringatan ini muncul ketika melakukan login ke Facebook atau Yahoo!. Solusi yang paling umum bisa menyelesaikan masalah tersebut adalah dengan melakukan setting ke tanggal dan waktu yang tepat sesuai dengan hari itu juga. Akan tetapi bila masalah tetap muncul kembali, saran saya adalah mendownload ulang browser Anda dari sumber terpercaya atau dari website vendornya secara langsung.

Masalah lain yang mungkin timbul adalah cookies yang merupakan sebuah file atau data kecil yang disimpan di komputer pengakses internet atau di browser yang akan dikirimkan ke server bila diperlukan. Umumnya cookies memiliki waktu expired, di mana ketika waktu yang ada di komputer mencapai waktu expired tersebut cookies secara otomatis akan dihapus, sedangkan beberapa cookies hanya dihapus sampai browser ditutup. Cookies ini juga sering digunakan sebagai metode autentikasi oleh website-website yang menerapkan fasilitas “login” ke penggunanya. Masalah yang akan terjadi bila waktu sistem Anda tidak tepat, khususnya bila terlalu cepat (di-set di masa depan), maka kemungkinan akan langsung dihapus ketika baru dibuat di komputer pengguna tersebut karena dianggap telah expired. Alhasil account Anda pun langsung di “kick” keluar dari sistem mereka dan diminta untuk login lagi yang tiada akhir.

Sebagai catatan tambahan adalah waktu standar yang digunakan adalah waktu GMT, sedangkan Indonesia berada di GMT +7 sampai GMT + 9 (Jakarta dan Waktu Indonesia Barat lainnya berada di GMT +7). Umumnya komputer menerapkan sistem time zone atau zona waktu di mana pengguna bisa melakukan settings zona waktu yang sesuai, alhasil komputer pun akan mengubah waktu yang Anda atur tersebut ke dalam GMT secara otomatis bila diperlukan. Dalam hal ini, cookies juga menggunakan zona waktu GMT untuk waktu expired-nya, sehingga bila Anda mengatur zona waktu Anda di GMT, tetapi waktu yang Anda terapkan adalah Waktu Indonesia Barat, maka yang Anda dapatkan adalah waktu sistem Anda terlalu cepat 7 jam, yang akhirnya akan membuat cookies juga langsung terhapus bila waktu expired-nya kurang dari 7 jam setelah cookies dibuat. Dalam kasus ini juga, bila terdapat cookies login, maka cookies ini otomatis akan dihapus dan Anda akan langsung ter-logout.

Tentu bukan berarti segala hal yang berhubungan dengan login adalah karena waktu sistem Anda. Mungkin juga karena beberapa hal lainnya seperti browser yang diatur tidak menerima cookies atau masalah jaringan internet.

Dalam beberapa kasus juga waktu sistem akan digunakan sebagai metode sinkronisasi data antar jaringan, termasuk juga jaringan internet. Jadi bila saja Anda menggunakan aplikasi internet, akan tetapi menerima pesan peringatan bahwa data tidak dapat disinkronisasi, lebih baik Anda mengecek kembali lagi tanggal dan waktu di komputer Anda terlebih dahulu sebelum mengecek hal lainnya seperti kondisi jaringan Anda.

Selain itu bila Anda menjalankan server atau menjalankan aplikasi / service yang bisa membuat log (catatan) atas aktivitas yang dilakukan oleh jaringan, apalagi yang sifatnya penting, lebih baik mengecek kondisi waktu sistem Anda terlebih dahulu sebelum data Anda menjadi berantakan.

Beberapa tips lainnya yang mungkin berguna sekitar waktu komputer Anda adalah:

  1. Cek kondisi baterai CMOS komputer Anda karena baterai ini dipergunakan untuk menjalankan waktu sistem Anda walau komputer Anda dimatikan.
  2. Nyalakan fasilitas sinkronisasi waktu otomatis yang disediakan oleh sistem operasi Anda agar waktu yang ada di komputer Anda tetap aktual.
  3. Jangan mengubah-ubah waktu sistem Anda secara tiba-tiba (dengan rentang yang jauh pula) bila Anda tidak tahu resikonya karena biasanya akan menyebabkan beberapa program atau aplikasi menunjukkan gejala aneh atau kerusakan karena tidak sinkron lagi dengan waktu sistem.

Semoga artikel ini bisa membantu Anda memahami keterkaitan antara waktu sistem / komputer dengan masalah di seputar kegiatan online Anda.

This entry was last modified on: September 12th, 2009 at 23:11

Firefox 3.5 Review

Setelah sekian lama Firefox 3.0 dirilis, akhirnya update terbaru untuk browser yang naik daun ini kembali diluncurkan kemarin, tepatnya tanggal 30 Juni 2009. Dan seperti biasa, aku sudah mencobanya selama 1 hari untuk aktivitas normalku, seperti browsing, Facebook, dan web developing, dan di sinilah aku akan menceritakan mengenai browser terbaru besutan Mozilla ini.

Dari sisi interface atau tampilan tidak banyak berubah dibandingkan dengan Firefox 3.0. Semua tampilan seperti susunan tombol, icon standard serta layout menu tidak terjadi perubahan dan Anda tidak akan tahu apakah sedang memakai Firefox 3.0 atau sudah mengupdate ke Firefox 3.5 kalau hanya melihat dari interface.

Satu hal yang baru dari Firefox 3.5 ini adalah fitur private browsing yang sudah muncul terlebih dahulu di browser Google Chrome di mana para Firefox tidak akan meninggalkan jejak history atau apapun bila menggunakan fitur private browsing ini. Semua history, cookie dan data pribadi lainnya akan otomatis dihapus oleh Firefox bila menutup fitur ini. Bagi yang masih bingung ingin menggunakan “fitur porno” ini, bisa mengaksesnya melalui Tools > Start Private Browsing.


This entry was last modified on: July 1st, 2009 at 19:42

Moore’s Law vs. Wirth’s Law and Software Development

Tanpa kita sadari bahwa sekarang kita sudah semakin masuk ke dalam era teknologi yang semakin lama semakin canggih. Dan seperti biasa, kebanyakan dari kita hanya melihat sisi terang dari perkembangan teknologi itu, mulai dari prosesor yang semakin cepat, program-program yang semakin canggih, tampilan yang semakin memukau sampai kepada koneksi internet yang semakin tinggi kecepatannya. Di sisi lain, banyak kekacauan mulai menggerogoti semua hal tersebut dan sebenarnya menghilangkan semua hal itu sehingga apa yang sebenarnya kita rasakan tidak lebih dari teknologi yang kita rasakan beberapa tahun yang lalu.

Aku membaca sebuah artikel yang menarik di IEEE Spectrum mengenai hukum-hukum perkembangan teknologi. Di sana terdapat 5 hukum + 1 hukum yang menggungkapkan fakta di balik realita semu yang banyak dilihat oleh orang-orang. Kelima hukum tersebut adalah Moore’s Law, Rock’s Law, Machrone’s Law, Metcalfe’s Law, dan Wirth’s Law, ditambah dengan sebuah hukum yang tidak terkait secara langsung dengan yang ingin aku bahas di sini Nielsen’s Law.

Moore’s Law diungkapkan oleh Gordon E. Moore mengatakan bahwa jumlah transistor dalam sebuah prosesor akan berganda setiap tahun. Akan tetapi prediksi ini agak meleset sampai akhirnya sekarang prediksi ini menjadi setiap 18 bulan (walau rata-rata terjadi setiap 22 – 24 bulan), dan hukum ini dijalankan oleh perusahaan prosesor terkemuka: Intel. Di sisi lain dengan penambahan transistor ini, perubahan terjadi pada proses fabrikasi dan berarti tentu berpengaruh pada harga, yang akhirnya dikemukakan melalui Rock’s Law.

Rock’s Law yang didedikasikan kepada Arthur Rock, seorang penemu di Intel, mengatakan bahwa harga peralatan semikonduktor (dalam hal ini untuk membuat prosesor) akan mengganda setiap 4 tahun sekali. Secara peralatan yang diperlukan untuk melakukan “pembedahan” atas prosesor memang semakin canggih, tentu peralatan ini akan semakin mahal. Hal ini akan berpengaruh kepada harga produksi prosesor yang semakin mahal tetapi di-eliminasi oleh hukum ekonomi tentang persediaan dan permintaan barang, dengan kata lain produksi massal.  Akibatnya? Muncullah Machrone’s Law tentang harga PC.