Archive

Archive for the ‘programming’ Category

IE Focus Problem

August 26th, 2008

I making an application that required to focus() on text input on a form. All the form is using AJAX. Usually u just need this command to make it work using Jquery:

$(“#search_code”).focus();

But i think IE 7 has a problem focusing on created-on-the-fly-DOM text input. It won’t focus. Firefox does this splendidly without any problem. So i think this may resolve the problem

$(“#search_code”).blur().focus();

And it doesn’t. I try to googling and found some site to try select first than focus. So i type this code :

$(“#search_code”).select().focus();

It work on the first DOM, when i remove the field and recreated it, it won’t focus anymore…

After 3 days stuck on this error. I decided on temporarily fixed this with stupid workaround

function ieFocus(el) {  // Damn IE  for(a = 0 ; a < 10 ; a++) {    el.blur();    el.focus();  }}

I’m trying to find a proper solution to this problem. Have anyone have a same problem before? Please reply ^^

Thanks in advance.

  • Share/Bookmark

programming

Cache your data

January 17th, 2008

Beberapa hari ini, gue diharuskan membuat aplikasi yang support diakses banyak orang dalam saat yang bersamaan. Dengan bertambahnya user akses berarti bertambah juga performance server yang diperlukan. Dalam riset beberapa hari ini, gue menemukan beberapa alternatif yang lumayan untuk mengurangi beban server. Gunakaan cache.

Apa itu cache?

Cache adalah proses membuat data sementara hasil render suata page ke dalam file atau database. Jika ada user lain yang meminta halaman yang sama ke server anda, anda tidak perlu merender lagi halaman tersebut, cukup baca hasil render yang sebelumnya.

Beberapa cara cache

1. memchached
memcached membantu anda untuk menyimpan hasil result dari query database ke dalam suatu server. Sebelum query anda dijalankan, anda akan mengecheck dulu di servernya memcached apakah query ini sebelumnya sudah dilakukan atau belom. Memcached menggunakan sistem hash dengan multiple server, sehingga anda bisa mengurangi sistem database anda menjadi sesedikit mungkin, sehingga bisa mengurangi cost untuk multi server databases.
Pro:
- Dipakai oleh situs2 besar seperti youtube, gamefaqs, dll, anda bisa melihat list lengkapnya di situs aslinya.
- Sangat membantu untuk mengurangi beban database. Menurut manualnya bisa mengurangi 8 koneksi database menjadi 1.
- 1 result hanya tersimpan di satu server, bukan di semua server. Pembagian server dibagi oleh sistem hashing. Jadi kalo anda punya 3 komputer dengan memory 2 giga, anda sama dengan mempunyai cache server dengan memory 6 giga.
- Berfungsi untuk banyak bahasa dan banyak sistem database.
Cons:
- Sangat memakan memory.
- Anda harus merubah semua logic code anda dari yang hanya baca dari database untuk check dulu ke cache baru baca ke database. Setelah baca dari database, anda akan memasukan result tersebut ke cache.

2. Code Igniter’s cache
Saya menggunakan codeigniter sebagai framework php saya. Keuntungan dari menggunakan framework ini adalah CI menyediakan fasilitas cache internal, tanpa load library tambahan. Anda hanya cukup memanggil satu baris ini di manapun code anda berada :

$this->output->cache(n);

dimana n adalah jumlah menit halaman itu ingin anda cache.
Pro:
- Sedikit sekali perubahan yang anda perlukan untuk menjalankan cache.
- Menggunakan sistem hash juga, tentu saja untuk paramater pemanggilan page yang berbeda, CI akan membuat file cache terpisah. /file/a/ tidak sama dengan /file/b/
- Tidak seperti memcache yang memcache result dari database yang masih harus di proses code PHP. CI mengload langsung code HTML yang sudah di render, hasilnya jauh lebih cepat.
Cons:
- Setiap web server mempunya cachenya masing2. Jadi masih akan membebani database walaupun halaman yang sama dipanggil, kalau user menggunakan server web yang berbeda.
- Membebani web server untuk menyimpan file cache.

Masih banyak cara lagi untuk melakukan cache. Kedua cara diatas bisa digabungkan untuk hasil yang lebih maximal lagi. Tetapi sejauh yang saya coba, cache CI sendirian cukup menurunkan beban server banyak. Sehingga jumlah 3 server bisa dikurangi menjadi 1 server saja.

  • Share/Bookmark

programming , ,

mod_deflate

December 7th, 2007

Gara2 lagi belajar jquery kemaren itu, akhirnya penasaran begimana caranya bikin file itu jadi 14 kb. Dan belajarin cara setting apache mod_deflate. Saya ada buat setting filenya dalam bahasa indonesia buat yang pusink setting nya. Bisa di liat di sini

http://www.rickyok.net/tutorial/apache_gzip

Semoga membantu.

  • Share/Bookmark

programming ,

Menghapus query history pada mysql

November 17th, 2007

Pada saat anda mengetik perintah SQL pada MySQL command-line di linux, perintah tersebut akan tertinggal di sana. Tekan tombol atas untuk melihat list perintah apa saja yang anda (atau orang lain dengan login yang sama) ketik sebelumnya.

Jika anda baru saja mengquery seseuatu yang tidak ingin orang lain lihat, tentunya anda tidak ingin log ini tertinggal. Anda bisa dengan mudah menghapus list ini dengan menghapus file .mysql_history yang terletak di home dengan perintah

rm ~/.mysql_history

Atau jika anda tidak ingin sama sekali untuk mempunyai log, anda bisa mengarahkan mysql_history itu ke /dev/null dengan cara menlinknya. Jangan lupa hapus dulu mysql_history.

ln -s /dev/null .mysql_history

Semoga membantu.

  • Share/Bookmark

programming , ,

Code Igniter Problem

October 5th, 2007

Gue udah pake framework CodeIgniter ini mayan lama dech, kurang lebih 1 tahun terakhir. Tapi baru kemaren ini ketemu masalah dengan database connection nya. Begitu di liat di MySQL nya, banyak banget connection yang sleep. Connection ini ngabisin resource MySQL, jadi engga bisa buka connection baru lagi kalo udah sampe Max allowed connectionnya. Setelah teliti punya teliti dan browsing2 google rupanya masalahnya ada di config databasenya CI.

$config["default"]["pconnect"] = TRUE;

pconnect itu artinya persistent connection. Jadi setelah kelar transaction dia engga putus dari databasenya. Setelah diganti jadi FALSE, semua masalah langsung jadi beres ^^. Agak lama sich, tapi yach mao gimana lagi.

Sekian, semoga membantu

  • Share/Bookmark

programming

Switch to our mobile site