Archive for the ‘General’ Category

Problematic Employment (De)Generation

Mungkin sebagian besar dari Anda pernah membaca bahwa generasi yang ada sebelum generasi Anda akan kecewa dengan generasi Anda, dan saya yakin sebagian besar orang-orang yang berada di generasi Anda akan kecewa dengan generasi di bawah Anda. Anggaplah bahwa setiap generasi memiliki gap sekitar 4-5 tahun, dan dengan keadaan umur saya sekarang ini yang sudah pertengahan 20 menuju 30, generasi di bawah saya merupakan generasi yang diisi oleh orang-orang yang umumnya baru lulus kuliah atau populernya disebut fresh graduate.

Sebelum saya melakukan pembahasan yang serius mengenai generasi, saya ingin menekankan bahwa sebagian besar dari tulisan ini hanya opini walau beberapa akan saya sertakan dengan fakta. Saya juga menyertakan tips dan trik pada akhir tulisan ini, yang mungkin akan berguna bagi teman-teman yang akan mencari kerja dan mau sukses. Selain itu, ada baiknya kita lihat dulu kenyataan mengenai lapangan pekerjaan serta juga pekerjanya.

Pengangguran Intelektual

Berdasarkan laporan BPS atau Badan Pusat Statistik Indonesia, pengangguran yang telah mengenyam pendidikan lanjut atau yang belakangan sering disebut sebagai pengangguran intelektual memiliki komposisi sebesar 610 ribu orang dari keseluruhan jumlah pengangguran yang berjumlah 7,17 juta orang [Sumber]. Bahkan beberapa pengamat mulai memprediksikan bahwa jumlah ini akan bertambah banyak seiring dengan semakin mudahnya akses pendidikan di Indonesia. [Sumber]

Dari sumber di atas ada beberapa solusi yang ditawarkan, seperti sertifikasi, sehingga diharapkan para pekerja Indonesia ini bisa bersaing. Apalagi mengingat Indonesia akan memasuki pasar bebas ASEAN di mana nantinya pekerja dari luar negeri akan lebih mudah masuk ke Indonesia, tentu saja hal ini menjadi tantangan yang sangat berat bagi calon pekerja. Sampai saat ini, sepengatahuan saya, sertifikasi belum menjadi standar di dalam kurikulum yang diajarkan di perguruan tinggi. Beberapa perguruan tinggi memang sudah mulai melakukan sertifikasi sebelum para mahasiswanya lulus, tetapi itupun belum terlalu efektif untuk menggenjot kemampuan dari para lulusan baru.

Perguruan Tinggi dan IT

Belakangan sebagai seseorang yang mulai membuka usaha sendiri, saya memiliki kendala yang dihadapi oleh beberapa orang yang memiliki usaha saat ini, yaitu calon pekerja. Sebagai catatan, bahwa saya memiliki pengalaman kerja hampir 8 tahun, terutama di dunia Teknologi Informasi yang tentu belakangan ini sedang wah-wah nya bagi anak muda. Dengan cepatnya perkembangan teknologi, tentu ada pengaruh ke minat dari calon mahasiswa untuk mendaftar ke jurusan yang berorientasi ke dunia IT, misalnya saja Teknik Informatika atau Sistem Informasi. Selain itu pihak perguruan tinggi juga mulai jor-joran melakukan promosi dan marketing untuk jurusan ini. Perguruan tinggi yang sebelumnya tidak memiliki jurusan ini atau expertise di bidang ini pun tidak sungkan untuk membuka jurusan baru berbasis IT, bahkan perguruan tinggi baru mulai bermunculan dengan IT sebagai fokus mereka.

Tentu perguruan tinggi tidak bisa disalahkan, apalagi kita kembali ke dalam ranah pemasaran atau marketing, di mana bila ada permintaan maka ada penawaran. Bila memang ada trend baru di dunia, kenapa tidak dimanfaatkan. Semua kembali kepada pilihan masing-masing orang, apakah memang akan termakan kepada penawaran yang dilakukan oleh perguruan tinggi atau tidak.

Masalahnya, tidak semua orang paham bahwa dunia IT tidak sekedar berkutat di masalah utak-atik perangkat lunak atau software, atau utak-atik di perangkat keras. Saya pernah, bahkan sering mendengar bahwa mahasiswa-mahasiswa baru memiliki motivasi di dunia IT karena sebelumnya mereka tertarik ke dunia hiburannya alias video game. Sebagian lain tertarik karena dunia IT pada akhirnya berhasil menelurkan puluhan orang yang menembus daftar billionaire terkaya di dunia.

Mindset seperti itulah yang memiliki kecenderungan menjerumuskan calon mahasiswa ini sehingga akhirnya setelah lulus mereka tidak memiliki tujuan yang jelas, bahkan kehilangan minat di dunia ini sama sekali setelah merasakan kejamnya dunia IT. Bahkan beberapa di antaranya mengambil karir yang jauh berbeda dengan jurusan yang dienyam selama menjadi mahasiswa, tapi paling tidak mereka masih mendapatkan pekerjaan.

Kembali kepada bidang yang saya tekuni, bahwa sebagian besar mahasiswa IT yang pada akhirnya masuk ke jalur yang tepat, menekuni pekerjaan sebagai programmer. Sebenarnya menjadi programmer tidak harus melalui proses pendidikan di perguruan tinggi terlebih dahulu, apalagi dengan mudahnya akses untuk belajar programming saat ini. Banyak materi yang disajikan di internet sehingga seorang yang belum lulus SMA pun sudah bisa menjadi programmer, toh tujuan programmer hanya mengetikkan kode dan menjalankannya menjadi sebuah aplikasi atau program saja. Yang mereka tidak sadari, untuk bersaing di dunia ini, bukan hanya sekedar bisa mengetik dengan cepat dan menghindari kesalahan sebanyak mungkin, tetapi juga bagaimana merancang dan mengevaluasi seluruh sistem yang ada.

Pada kenyataannya, saya belum banyak melihat kemampuan ini dimiliki oleh fresh graduate dari jurusan IT. Beberapa orang akan beralasan bahwa kemampuan ini akan didapatkan seiring dengan pengalaman yang didapatkan pada saat bekerja. Lalu, apakah mereka harus disalahkan karena mereka tidak mulai bekeja dulu saat mereka kuliah? Dan apakah saya sendiri memiliki keuntungan karena sudah lebih dahulu kerja sambil kuliah? Mungkin iya, mungkin juga tidak. Seperti yang saya katakan, bahwa saat ini sangat mudah mengakses materi-materi pembelajaran melalui internet, dan itu tidak sebatas pada programming saja, tetapi juga konsep-konsep dan desain yang dapat diimplementasikan di dunia nyata. Bahkan berbagai proyek open-source dapat diakses dengan mudah setiap orang yang ingin belajar bisa membuka dan mempelajari aplikasi yang sudah dibuat dan digunakan secara luas. Tapi apakah ini cukup untuk menggugah para mahasiswa untuk belajar lebih banyak semasa kuliah? Belum tentu.

Di satu sisi, dengan tidak banyaknya orang yang berpikir lebih jauh ke dalam IT, terutama dengan posisi programmer atau software engineer, saya pribadi mendapatkan posisi yang cukup diuntungkan karena tentu saja persaingan menjadi berkurang. Tetapi di sisi lain, keadaan ini akan menyulitkan saya karena sebagian besar pekerjaan harus saya handle sendiri.

Mindset yang Benar dan Salah dalam Gaji

Terlepas dari apakah setiap orang memiliki skill dan pengalaman yang cukup untuk masuk ke dunia kerja, terdapat satu lagi masalah yang dimiliki oleh fresh graduate, yaitu mindset atau cara pikir atas pekerjaan yang akan dihadapi di dunia nyata. Dan tentu bila kita bicara mindset, sebenarnya kembali lagi ke pengalaman individual mengingat mindset dapat dibentuk seiring dengan waktu. Tentu keterbentukan mindset ini bisa benar dan juga bisa mengarah ke jalan yang salah. Bagi saya, belakangan mindset yang salah lebih banyak dikembangkan pada anak-anak fresh graduate, tanpa bermaksud men-generalisir karena tentu masih ada fresh graduate yang memiliki mindset yang benar. Selain itu, benar dan salah adalah masalah etika sehingga yang benar bagi saya, belum tentu benar bagi Anda, jadi semua relatif, tetapi di sini saya akan mencoba menumpahkan pemikiran saya pribadi.

Kebetulan saya sempat berbincang-bincang dengan seseorang yang merupakan salah satu petinggi sebuah perusahaan, dan perbincangan seputar dunia kerja dan pekerjanya. Beliau cukup antusias untuk menceritakan pengalamannya dalam merekrut para lulusan perguruan tinggi, dan kebanyakan yang diceritakan adalah lulusan-lulusan baru yang memiliki mindset yang menurutnya dan menurut saya pribadi salah.

Saat ini ada kecenderungan bahwa para lulusan akan mematok harga tinggi untuk gaji mereka, tentu hal ini sangat logis. Siapa yang tidak mau mendapatkan gaji tinggi, apalagi di Jakarta yang memiliki biaya hidup yang tinggi serta gaya hidup yang tidak terbatas dan terus berkembang? Tetapi logika ini akan segera dipatahkan ketika gaji ini dibandingkan dengan kemampuan yang dimiliki oleh orang tersebut. Seperti yang saya katakan di atas bahwa sebagian besar fresh graduate tidak memiliki pengalaman kerja maupun skill yang cukup untuk mendapatkan gaji yang diharapkan. Beberapa dari fresh graduate sempat cerita ke saya bahwa mereka sengaja mematok gaji yang tinggi supaya bilapun ditawar, maka harganya akan turun sedikit.

Sebagai perbandingan bahwa saat ini (2014), gaji standar untuk seorang fresh graduate yang belum berpengalaman di dunia IT adalah sekitar 2,7 juta sampai dengan 3 juta rupiah, beberapa sudah termasuk uang makan dan transport, sedangkan beberapa perusahaan lainnya mematok gaji tersebut sebagai gaji bersih, sehingga nilai tertinggi yang syukur-syukur bisa didapatkan oleh seorang fresh graduate yang belum memiliki pengalaman apapun adalah 3,5 juta rupiah. Bila perusahaan yang Anda lamar cukup sukses dan memiliki title multinasional, mungkin bisa mendapatkan 4 sampai 5 juta rupiah sebagai fresh graduate, tetapi tentunya ekspektasi dan seleksi yang dilakukan akan lebih ketat. Siapapun tidak akan membayar seseorang dengan harga yang tinggi yang tidak memiliki kemampuan untuk menyelesaikan masalah yang dihadapi oleh pihak perusahaan.

Anehnya, beberapa orang masih menganggap bahwa nilai 5 juta rupiah per bulan masih sangat kecil untuk ukuran mereka. Ada beberapa kemungkinan mereka memiliki pemikiran seperti itu. Pertama, beberapa orang membandingkan gaji di Indonesia dengan gaji di luar negeri, khususnya negara maju. Tanpa logika yang baik, konversi langsung gaji standar pekerja di Amerika Serikat yang sebesar 5 digit dolar per tahun, asumsikan saja $12.000 per tahun, maka ketika dikonversikan ke rupiah akan menjadi Rp 10.000.000 per bulan.

Kedua, karena mereka merupakan perantauan sehingga biaya hidup mereka akan bertambah. Sebagian mahasiswa yang berasal dari daerah umumnya akan tinggal di indekos sekitar kampus mereka agar kampus lebih mudah diakses, dan belakangan harga indekos tidak lagi murah. Kamar kos dengan fasilitas AC umumnya dipatok sebesar 1,2 juta per bulan saat ini. Bila dengan kamar mandi dalam, tidak menutup kemungkinan bisa mencapai harga 1,5 juta per bulan. Selain itu, beberapa mahasiswa yang saya temukan memiliki kecenderungan sudah cukup nyaman dengan kamar kos yang ditempati selama 3 tahun perkuliahan, sehingga tidak mudah bagi mereka untuk keluar. Tentu saja hal ini berimplikasi ke biaya transportasi untuk ke tempat kerja. Dengan perhitungan bahwa setiap kali pergi / pulang kerja menggunakan 2 kali angkutan umum dengan biaya Rp 3.000 per perjalanan, maka dalam sehari harus menghabiskan Rp 12.000, atau Rp 240.000 sebulan (20 hari kerja).

Tidak lupa juga dengan uang makan sebesar Rp 10.000 untuk sekali makan, sehingga dalam satu bulan akan menjadi Rp 900.000 bila makan 3 kali sehari. Dengan hitungan ini, ditambah minimal biaya lainnya Rp 1 juta untuk cadangan, maka biaya yang diperlukan untuk satu bulan minimal sekitar Rp 3.340.000, angka yang cukup fantastis hanya untuk bertahan hidup di Jakarta dengan 4 komponen tersebut sebagai seorang perantauan, . Tentu saja hal ini menjadi pertimbangan bagi para pekerja untuk mematok gaji tinggi, dan juga bagi perusahaan untuk merekrut karyawan yang memiliki domisili yang dekat serta memang tinggal di Jakarta sejak awal. Jadi bagi perusahaan jangan berharap untuk mendapatkan pekerja dengan range gaji di bawah Rp 3.500.000 bagi anak-anak daerah yang memiliki standar hidup yang cukup tinggi tersebut. Dan, saya akui mindset ini cukup logis dan benar, walau kembali lagi ke masing-masing orang apakah akan berusaha lebih untuk mendapatkan lebih atau tidak.

Ketiga, adalah keinginan untuk bisa menabung lebih banyak sejak awal, dan pada akhirnya melakukan pengeluaran lebih sejak awal. Saya tidak dapat membantah bahwa budaya konsumtif sudah cukup mengakar kuat di Indonesia, apalagi di Jakarta. Setiap orang ingin memiliki perangkat gadget yang terbaru dan terbaik, bisa menikmati makanan yang terbaik dan termahal, serta menikmati hidup dengan hiburan yang terbaik pula, tapi tanpa usaha yang keras dan tidak tahan banting.

Keempat, mungkin ini cukup tidak masuk akal bila ada orang yang mengatakan hal ini, tetapi kenyataannya memang ada. Beberapa orang masih menganggap bahwa kerja hanyalah opsional bagi mereka, mengingat mereka dari kalangan yang berada. Tanpa bekerja pun, mereka bisa mendapat penghasilan dari orang tua atau perusahaan yang dijalankan oleh orang tua mereka. Untuk dapat bekerja, mereka ingin agar penghasilan yang didapat dari bekerja lebih tinggi dari penghasilan yang didapatkan dari orang tua mereka. Bila alasannya seperti ini, maka hanya masalah waktu saja mereka menjumpai masalah di masa depan mereka.

Pemanjaan Mental

Seluruh masalah tersebut berakar dari mental masing-masing orang. Akses teknologi yang mudah saat ini, membuat orang makin merasa hidup lebih mudah dan nyaman, serta beberapa hal dapat dilakukan dengan instan. Sayangnya, bagi beberapa orang, sukses mungkin juga bisa didapatkan dengan instan tanpa pengorbanan. Beberapa fresh graduate yang saya kenal, dengan mudah keluar dari perusahaan tempatnya bekerja hanya karena tidak tahan dengan beban training yang dilaksanakan oleh perusahaan tersebut, padahal perusahaan tersebut merupakan salah satu perusahaan yang terkenal di Indonesia. Yup, bahkan belum melewati training sudah menyerah di tengah jalan. Lalu kenapa sejak awal orang ini tidak dihentikan saat rekruitmen?

Sebenarnya perusahaan memiliki cara untuk menangkal orang-orang seperti ini yang dinamakan psikotest. Test ini merupakan cara yang digunakan untuk melihat potensi seseorang, serta sifat seseorang dalam hal profesionalisme, misalnya team work atau kemampuan menghadapi masalah, fokus terhadap pekerjaan dan berpikir dengan cepat. Dengan test-test seperti ini, walau tidak 100% dapat menyaring orang-orang yang kurang cocok, akan tetapi umumnya dapat mengurangi kemungkinan perusahaan merekrut orang-orang yang salah dan berpotensi merusak. Walau demikian, trik-trik untuk menghadapi test ini sudah mulai banyak beredar di internet dan sangat mudah untuk dicari, sehingga hasil test saat ini belum tentu murni menunjukkan perilaku seseorang dalam bekerja. Dalam kasus orang yang saya ceritakan sebelumnya, orang tersebut memiliki channel berupa kerabat dekat sehingga rekrutmen dapat dilewati dengan mudah.

Bila test yang sudah menjadi standar ini saja tidak reliable, bagaimana lagi cara untuk menyaring dan melihat potensi karyawan? Sebagian besar perusahaan akan melakukan probation period, atau dengan kata lain masa uji coba, yang umumnya berlangsung selama 3 bulan sampai 6 bulan. Selama masa ini, karyawan mendapatkan gaji yang lebih kecil dari yang dijanjikan, dan dapat diberhentikan sewaktu-waktu bila perusahaan tidak puas, dan ada kemungkinan pihak pekerja juga dapat mengajukan penghentian. Umumnya pada masa ini beban kerja yang diberikan akan sama dengan beban kerja umum untuk melihat skill dan kemampuan pekerja tersebut dalam menghadapi tekanan pekerjaan.

Lalu bila probation period masih tidak cukup, pihak perusahaan juga dapat mengajukan kontrak kerja yang umumnya berlaku 1 atau 2 tahun (dengan undang-undang ketenagakerjaan Indonesia maksimal 3 tahun), sehingga perusahaan dapat memberhentikan pekerjanya bila performa tidak mencukupi dan pekerja juga dapat mundur setelah masa kontrak selesai.

Permasalahan seperti ini sebenarnya sudah cukup familiar bagi saya sendiri, mengingat bila membaca dari post-post sebelum ini (dalam Bahasa Inggris), saya menceritakan bahwa adanya anggota tim yang menghilang tanpa bertanggung jawab atas pekerjaannya. Dan dapat dipastikan sangat sulit mencari pekerja-pekerja yang loyal dan tidak berorientasi kepada gaji besar semata.

Tips dan Trik

Di bagian ini, saya memberikan tips dan trik untuk menjadi sukses dari berbagai perspektif, termasuk dari pengalaman saya selama ini. Tentu saja kesuksesan relatif bagi setiap orang, silahkan Anda nilai sendiri target sukses Anda seperti apa, karena sampai saat ini pun saya masih berusaha untuk sukses. :)

  • Jangan bekerja dengan orientasi gaji semata, akan tetapi orientasi kepada pengalaman dan skill. Dengan pengalaman dan skill yang cukup, otomatis gaji akan disesuaikan dengan sendirinya.
  • Jangan menutup diri kepada proses pembelajaran. Bagi sebagian orang, belajar sudah usai setelah tidak lagi di bangku perkuliahan, akan tetapi di kehidupan nyata, pembelajaran dilakukan terus menerus sepanjang hidup. Ketika Anda berhenti belajar, maka saat itulah Anda berhenti untuk berkembang.
  • Jangan takut untuk membantu orang lain. Apalagi bila bantuan yang diminta bukan sesuatu yang benar-benar kita kuasai, karena justru dari sana kita dapat belajar lebih untuk menguasai sesuatu yang belum pernah kita lakukan.
  • Percaya atas usaha Anda. Tidak ada orang yang secara instan dari orang kecil menjadi sukses atau miliuner seperti Bill Gates atau Mark Zuckerberg. Selalu percaya bahwa sekecil dan seberat apapun usaha Anda tidak akan sia-sia dan memiliki hasil di masa depan.

Tanpa bermaksud menyombongkan diri, dengan pengalaman yang cukup banyak di dunia IT, pekerjaan datang dengan cukup mudah kepada saya. Tahun lalu ketika saya memasang profile di LinkedIn, bisa dikatakan bahwa hampir setiap minggu saya mendapatkan tawaran kerja dengan berbagai posisi di dunia IT. Selain itu tawaran kerja juga datang dari beberapa kenalan dengan posisi yang cukup menggiurkan, salah satunya CIO dalam perusahaan. Akan tetapi mengingat saya selalu ingin mencoba sesuatu yang baru dan tidak pernah ingin terikat, maka seluruh tawaran tersebut tidak saya ambil sampai saat ini.

Kesimpulan

Tanpa bermaksud menjelek-jelekkan generasi di bawah saya, saya menulis tulisan ini untuk membagi pemikiran saya atas apa yang saya alami selama ini. Seperti yang saya katakan, kesuksesan dan definisi sukses ini kembali ke pribadi masing-masing orang, begitu pula dengan cara mencapai kesuksesan tersebut, atau mundur dari kesuksesan. Hanya saja fenomena yang terjadi belakangan membuat saya tertarik untuk menuliskan mengenai lemahnya daya saing fresh graduate saat ini.

Pada akhirnya, semoga saja pendapat saya ini merupakan pendapat atau opini yang salah dan dapat dipatahkan dengan pembuktian di dunia kerja. :)

This entry was last modified on: September 7th, 2017 at 1:29

Preventing Right Clicking on Browser is Useless

Just a moment ago, I visited a website that contains some pictures in its page and some features that I found interesting. Then I was curious about the way it worked, so I tried to right-click on that page in attempt to see the page source. The problem was that the context menu didn’t appear. In brief of second, I successfully accessed the page source, by using Ctrl + U (in fact, almost all browsers can use this key shortcut to access the page source).

So, what is the point of the story above? It’s simple: preventing right clicking on browser is useless, on most case. Underline that.

Well, as I said it’s not totally useless, depends on the purpose of preventing right clicking. In my case, they try to hide the access to page source, and maybe also some other function that can be accessed by using the context menu, such as view the image file, copy the text, view the page info, save the page, etc. However it also disable some useful functions that may cause annoyance for some people, such as accessing bookmark, accessing previous page, reloading the page, etc.

Some people are afraid the content that they publish in their website may be taken by some people, and the content may be used without any permission from the real author. In fact, by preventing right clicking, it can only stop the newbies or beginners from taking your content, those are people who don’t know that by disabling JavaScript, or by accessing menu bar, or by using keyboard shortcut they can control almost everything that appears in their browser. Also it is a useless method if the visitor of the site are bots because they don’t have arm, they don’t use mouse, they don’t do any click, and the worst, they don’t understand what JavaScript is.

Many people don’t really understand that internet is an open world that can be accessed by everyone (as long as they have privilege to access it, of course). Publishing any material on internet means you have to know the risk that your material can be taken by everyone. There is no absolute way to stop this practice. The only way that can be used to minimize that “bad” practice is by licensing the content or material itself. By giving it license, you may grant people to use it under some terms and conditions, or maybe just prevent them to use it without your permission, but it doesn’t prevent them to take it. If you really serious about your content, you may also give warning to people who use your material without your permission when you find that your content is being used by other people, perhaps by requesting that people to give credit to you, or request them to take down the content. In some rare and extreme cases, you may also sue the “snatcher” if they really take economic advantages by using or selling your content.

So, when do the right-click preventing become useful? The answer is when you need to override the usage of right click itself. As I said, the main usage of right clicking is to open the context menu of your browser. However, when developing some web applications you may need to change the function of right click from opening default context menu to something else like opening custom context menu that you create, creating reverse effect of left clicking, etc. Other than to override it, just leave the right click function as is.

The point here is don’t make the users of your website confuse and have to guess why the right clicking on the page doesn’t work. If you really care about user experience, just let the users or visitors to explore your site without any restriction on usability. You may change the function of right click as long as there is information about the change, but never ever disable right clicking at all.

If you really that afraid that your pictures may be claimed by other people, I suggest you to leave watermarks on all your pictures. A big and repeating watermark so that it will be looked more like pictures of watermarks rather than the original picture that you intend people to see. Sound or song? Insert subliminal message that may be heard like Satan saying the most awkward thing when played in even low speaker volume. For video? Well, watermark it like crazy and insert subliminal message on the audio. How about texts? The craziest way is to convert the text to image, video or song, then do what I’ve said before. :D Actually, you can insert hidden messages or texts (by using CSS display none), a lot of them, so that when someone try to copy it, it will end up messed. Well, it’s the most evil things that ever comes to my mind.

Seriously, for all those things, you have to trust that your license and copyright will work. And pray to God (if you believe in It/Him/Her), that someone claimed it may be infected by long everlasting hiccup. :D

Non-WWW Domain Cookie Problems

If you come to this blog (etersoul.com), you may realize that the domain name appears without www preceding the etersoul.com on your address bar or location bar of your browser. Even if you try to type www.etersoul.com, it will redirect your browser to “etersoul.com”. Well, I did this intentionally some years ago when I first use this domain name and installing blog engine for this site. The reason was that I once visited a site called no-www.org, which is encourage people who own internet domain name to remove it’s “www” because “www” is considered as deprecated and so it must not be used.

If you visit that website, you’ll find the reason why they — the people behind no-www.org, appear to conclude that using “www” is deprecated:

By default, all popular Web browsers assume the HTTP protocol. In doing so, the software prepends the ‘http://’ onto the requested URL and automatically connect to the HTTP server on port 80. Why then do many servers require their websites to communicate through the www subdomain? Mail servers do not require you to send emails to recipient@mail.domain.com. Likewise, web servers should allow access to their pages though the main domain unless a particular subdomain is required.

Succinctly, use of the www subdomain is redundant and time consuming to communicate. The internet, media, and society are all better off without it.

I was agree with this statement so I implemented redirection when someone who visits my site by using “www” to non-www one. My site now classified as Class B at no-www.org with that scenario. Even I implemented this scheme to some of my projects. In fact, using this schema is not without negative effects.

Some months ago, I made some experiments that used my domain name and web browser cookie, which is data that are stored by the website on user’s browser. I found that using my domain that was not preceded by www might cause the cookie that was created for domain .etersoul.com to be sent to the server when the visitor also opens all my sub-domain sites. Well, it is by design that the cookie data from the domain can also be accessed by the sub-domain, unless you also describing the path of cookie. However it may cause other problems to appear rather than solutions.

Consider you use an application that is located at “/application1/” path with “example.com” domain, and the cookie is implementing this path (of course with the domain), it will still send the cookie data when sometime you must also place some application with the same path name, but under sub-domain (for example, “subdomain.example.com/application1/”). Another case, you may need that cookie to be accessed by other application in same domain, but you don’t want to place it under “application1” path. Actually, it just a matter of how the developer handles the cookie data so it will just ignore it when the data is not relevant for the application, but of course it create extra coding effort.

Some people may wondering, “why must I being bothered if the cookies are sent to the domain as well sub-domain?”. Well, the answer is depend on your website, i.e. how many user accessing your website, how many different applications that are hosted on your domain and sub-domains, and is your primary “no-www domain” total users larger than the sum of users of your sub-domains. If you just running a small website or personal website, with irregular visitors come and go (and perhaps some spiders, crawlers or spam bots) like this website, without sub-domain or just one or two rarely visited sub-domains, you could just ignore the problems. However if you really want to run a combination of serious website with tons of users, thousands hits per minute, many spam bots and crawlers that try to drain out your limited server power and limited network bandwidth, many sub-domains with some sub-sub-domains, with probably uncountable files that don’t “eat” your cookies, and your site always stops responding on busy time (and you know the problems in fact is your own website if you host your site on shared hosting), you will find out that cookie optimization is one of several methods to effectively cut these problems.

Here is the math for you. For example, you have 10 cookies with 20 bytes data each that are “baked” for your main domain, say that “.mydomain.com”, so you have to send the total of 200 bytes each time you need to request another file. On a page of your web application, a user must fetch 6 Javascript files, 4 CSS files, 29 images (some of them even just icons under 1 Kilobyte), so the user’s web browser need to send 40 different requests. But remember, each time the browser send a request, it also needs to send the data of cookies that are designated to that domain and the sub-domains, so that the total of data for sending the cookies alone is: 200 bytes x 40 request = 8 KB. A small number for 1 user with 1 page request. Multiply it with 1000 users that request averagely 5 pages each minute, the server and network have to handle about: 8 KB x 1000 users x 5 request = 40 Megabytes per minutes, just for the cookie data, assuming that the static files are also not optimized to be cached by the user’s browser. Huge waste of resource, of course.

That’s why even big websites like Google or Facebook don’t use no-www scheme so they can independently assign the cookies for the main site with “www”, the cookies for other sub-domains other than “www”, and the cookies that are globally accessible from the whole site. Another work around for this cookie problem is to use another domain to serve static contents that don’t need use any cookies at all, like Facebook that use fbcdn.net to serve all user uploaded images and static file. Of course using the CDN (Content Delivery Network), they also optimize many other things, such as compression, caching, etc.

Oh, another suggestion. If you really want to make a site, try to make a site that is accessible both by using www and no-www, however redirect the unused one to the scheme that you consider better to be implemented. For this site, I redirect www to no-www domain. This is for the sake of search engine optimization, and for some, as bandwidth conservation since every request from www to non-www is considered as different by the web browser and the web browser will never use the cache if you try to request the same static file from those two different scheme.

How about this site? I don’t think I really need to change my website to www one. I am comfort with the condition without www, but of course will consider the using of www on my other projects.

By the way, this is the first technical post that I write in English, so I apologize if there are some mistakes in grammar or structures. Google Translate? Nope, I didn’t use that kind of thing when writing this article since there will be many weirder word that Google Translate will produce. I just try to use my own sentences, and of course my own writing style. :) However if you are Indonesian and don’t understand this article, you could try to use Google Translate to help you. One more thing, please tell me if you found mistake on my post. Thanks. :)

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.

Problem with MySQL Socket on Linux Ubuntu

Mengembangkan aplikasi berbasiskan Apache Web Server, PHP dan MySQL tanpa mengetahui seluk beluk mengenai Linux tentu seperti makan nasi tanpa lauk, kurang lengkap rasanya. Dan ketika kita mencoba untuk mengambil sejumlah lauk, ternyata kadang rasanya malah ga cocok sama selera kita atau justru malah terasa pahit. Itu yang mungkin aku rasakan ketika mencoba menginstall Apache Web Server, PHP dan MySQL di Ubuntu.

Bagi sebagian besar orang, menginstall modul baru di Ubuntu cukup dengan menggunakan perintah apt-get saja, dan secara otomatis paket program akan didownload dari repository Ubuntu dan dikonfigurasi secara otomatis pula. Seorang pengguna Ubuntu dapat dengan mudah menginstall MySQL Server dengan mengetikkan sudo apt-get install mysql di terminal atau console.

Dan dalam sekejap seharusnya paket MySQL akan terinstall dan bisa langsung dinikmati tanpa harus neko-neko dengan urusan tetek-bengek seperti konfigurasi dan sebagainya. Bila sang pengguna kurang beruntung, mungkin dia akan menemukan error seperti yang saya alami beberapa hari yang lalu dengan installasi MySQL seperti yang aku deskripsikan di bawah. Sebagai informasi saja, bahwa MySQL yang aku install tidak melalui apt-get seperti yang tertulis di atas, melainkan dari kompilasi secara langsung dari source code sehingga mungkin saja bisa berbeda masalah dan pemecahannya.

Tampaknya salah satu masalah yang paling sering dihadapi baik melalui apt-get atau dengan compile sendiri adalah error ketika mulai menjalankan MySQL Daemon dengan perintah mysqld_safe atau mysql start yang ditandai dengan pesan “Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’” dan proses pun di kill karena error itu. Aku sempat kesulitan mencari solusinya di internet, berhubung juga banyak yang mengalami hal serupa, tapi setelah aku mencoba solusi dari mereka justru masalah ini masih belum terselesaikan. Akhirnya setelah sempat bingung-bingung, aku pun mencoba membaca dokumentasinya (seharusnya ini yang aku lakukan sejak awal sebelum membuang-buang waktu mencari di internet), dan memang dari sanalah semua permasalahan dapat diselesaikan.

(more…)

This entry was last modified on: July 27th, 2009 at 1:14

Function One: Help Me!!

Di setiap keyboard pasti terdapat tombol F1. Tapi dari yang aku tahu banyak orang yang ga menekan tombol ini, karena kebanyakan bila menekan tombol ini dalam sebuah aplikasi salah-salah yang muncul adalah sebuah window yang dianggap “menganggu” dengan judul kurang lebih adalah “Help”. Padahal justru window yang mengganggu ini menjadi sebuah hal yang dapat membantu ketika kita pusing dalam menggunakan sebuah aplikasi.

Memang aku akui tidak semua orang suka membaca dokumentasi tertulis, dan lebih suka menanyakan orang lain secara langsung. Bahkan kalau sampai titik ekstrimnya sih bakal membuat orang lain kesal sendiri karena ditanya-tanya terus, padahal jawabannya dapat ditemukan di dokumentasi dengan sedikit usaha yaitu dengan Ctrl + F atau fungsi find. Tentu saja semua ini bukan hanya berlaku bagi penggunaan aplikasi, tetapi juga pengembangan aplikasi.

Kebanyakan software pengembangan aplikasi atau programming memiliki help file yang cukup membantu dan berisi daftar-daftar function dan cara penggunaan aplikasi tersebut. Bahkan untuk seseorang yang belum pernah menyentuh programming sama sekali, bisa saja dalam seminggu menjadi cukup mahir dalam dasar-dasar programming hanya dengan membaca help file dari awal bila orang tersebut benar-benar berniat pada programming atau pengembangan aplikasi. Percaya ga percaya bahwa hal ini memang nyata dan bukan cuma cuap-cuap kosong belaka.

(more…)

Ubuntu 9.04: Masalah pada driver Intel

Setelah sekian lama ditunggu, akhirnya Ubuntu 9.04 Jaunty Jackalope hadir juga sejak kemaren, tanggal 24 April 2009. Tanpa menunggu lama, aku langsung melakukan upgrade dari Update Manager yang disediakan di Intrepid. Upgrade memakan waktu yang lumayan lama, dari jam 4 sore kemarennya, dan harus aku hidupkan laptopku sampai jam 2 keesokan harinya (hari ini). Masalahnya bukan hanya karena Speedy sudah semakin pelit dalam ngasi bandwidth nya, tapi juga karena internet yang beberapa kali disconnect sehingga saya harus sabar-sabar dan berusaha ga cepat naik darah. Perjuangan mendownload 900 MB lebih file untuk diupdate oleh Ubuntu pun berakhir sukses beberapa jam yang lalu.

Dan mulailah aku menelusuri satu per satu kisah indah di Ubuntu ini. Splash screen pada saat baru booting ke Ubuntu berubah dengan bar yang lebih sempit, begitu juga ketika di shut down. Saat mengaktifkan Pidgin, setiap ada orang yang logout atau login dari YM, terdapat notifikasi pada bagian kanan atas, begitu juga ketika ada orang yang mengirimkan message. Sayangnya tampilan notification itu terlalu kaku, muncul tiba-tiba, hilangpun tiba-tiba, tanpa ada efek fading. Selebihnya tidak ada yang terlalu berubah jauh dari segi fitur yang ada.

Sayang seribu saya, beberapa hal yang menambah daya tarik di atas hancur ketika mengatahui kenyataan pahit di balik Jaunty ini. Seperti ketika aku mengupdate dari 8.04 ke 8.10, Compiz membuat sedikit masalah dengan tidak menampilkan beberapa efek window, dan akupun harus mencari cara di Google untuk mengaktifkan Compiz ini kembali. Ketika mengupdate ke 9.04 ini, masalah kembali timbul ketika Compiz kembali “membandel” di mana ga bisa diaktifkan dan digunakan sama sekali. Akhirnya karena bingung, aku cari lagi lah cara atau orang yang punya masalah serupa di forum Ubuntu-nya.

(more…)

This entry was last modified on: April 25th, 2009 at 15:58