Wednesday, December 14, 2011

Informasi Firmware Kamera Canon

Mungkin ini sudah bukan hal yang baru lagi untuk pengguna kamera Canon. Tapi tidak ada salahnya jika saya posting di sini. Jika pada ponsel ada "Tombol Khusus" untuk melihat nomor IMEI, data tanggal produksi, versi firmware, jumlah pemakaian dsb. dsb., rupanya di kamera pun ada "Tombol Khusus" tersebut untuk mengetahui versi firmware, jumlah pemotretan, kondisi alat, dan lainnya.

Berikut ini caranya.

Sebelum menekan "Tombol Khusus" ini, pertama-tama buat terlebih dahulu 2 File teks kosong dengan nama "vers.req" dan "ver.req". Simpan file ini di direktori root (tempat terluar) dari kartu memori. Kamera perlu mendeteksi keberadaan salah satu dari file ini (tergantung jenis kamera) untuk mengaktifkan fungsi "Tombol Khusus" tersebut.

Masukkan kartu memori ke kamera. Nyalakan kamera dan masuk ke mode PLAYBACK.

Tahan tombol FUNC/SET lalu tekan tombol DISP. Maka akan muncul keterangan jenis kamera, mode PAL/NTSC, serta versi firmware. Untuk informasi lainnya seperti jumlah pemotretan, informasi lensa, informasi driver dsb, tahan tombol FUNC/SET lalu tekan tombol DISP beberapa kali.

Pada Canon SX120IS, Informasi yang ditayangkan sebagai berikut:
  1. (Semua layar)
    Tipe Kamera
    P-ID & PAL/NTSC

    (Layar 1)
    Firmware Ver
    Tanggal
  2. (Layar 2)
    Adj Ver.
    ZoomLensEror
    Tanggal
  3. (Layar 3)
    Total Shoot
    Zoom Retry Count
    Mecha Condition
  4. (Layar 4)
    Driver Info
{LANG:ID} {CAT:TUTORIAL}

Tuesday, November 1, 2011

Seberapa "Berat"-kah Bobot Skripsi Anda?

Kita tahu bahwa skripsi yang dibuat oleh mahasiswa di universitas-universitas sangat beragam baik dari segi topik dan isinya maupun bobotnya. Untuk topik tentu bisa segera diketahui dengan membaca judul dan pengantarnya. Tapi bagaimana cara mengetahui bobot dari skripsi tersebut? Berikut ini adalah salah satu caranya.

Tunggu dulu, bobot yang dimaksud dalam tulisan ini adalah bobot dengan makna tersurat. Jadi bukan mengenai kedalaman pembahasan isinya, tapi bobot yang sama artinya seperti menimbang bobot badan Anda. Atau dengan istilah fisikanya, berapakah massa dari skripsi tersebut?

Apabila merujuk pada aturan format penulisan skripsi di Binus, kertas yang digunakan adalah Quarto (Letter) 80 g/m2. Nah, dari jenis kertas ini sudah dapat diukur bobotnya. 80 g/m2 berarti dalam satu meter persegi (1m × 1m) massanya adalah 80 gram. Jadi untuk kertas Quarto yang berukuran 216 × 279 mm, massa per lembarnya adalah:

(0.216 × 0.279) × 80 = 4.82112 gram / lembar

Misalkan skripsi softcover terdiri dari 500 halaman, maka total massanya menjadi:

500 × 4.82112 = 2410.56 gram = 2.4 kg

Tentu saja nilai di atas hanya perkiraan, karena pada kenyataannya masih ada hal-hal lain yang mempengaruhi, seperti massa tinta dan sampul.

Jika Anda kurang terampil dalam hitung-menghitung, masih ada satu cara lain yang sangat mudah untuk mengetahui bobot skripsi. Mudah saja, cukup ambil satu jilid skripsi dan taruh di atas timbangan sayur. Selesai.
{LANG:ID}

Wednesday, October 19, 2011

Mendapat Kurs Valuta Asing Terkini dengan PHP

Mendapatkan informasi nilai tukar valas (valuta asing) terbaru di internet sebenarnya tidaklah sulit. Ada banyak situs-situs perbankan di Indonesia yang menyediakan informasi kurs terkini, seperti di antaranya:
Mengakses halaman tersebut dari web browser memang mudah. Tetapi masalahnya, bagaimana jika kita sedang membuat sebuah aplikasi web dan ingin mendapatkan data kurs terkini dari situs-situs tersebut untuk diintegrasikan dengan program web.

Karena situs-situs tersebut tidak menyediakan pilihan penyajian informasi dalam format yang programmer-friendly (misalnya JSON atau XML), maka cara yang bisa dilakukan adalah dengan melakukan parsing HTML.

Bagi Anda yang menggunakan PHP, hal ini bisa dilakukan dengan sebuah pustaka PHP untuk mendapatkan data kurs terbaru dari situs-situs perbankan yang terangkum dalam sebuah class KursValas. Unduh file-nya disini.

Cara penggunaannya pun mudah, misalkan kita ingin mendapatkan besaran kurs jual mata uang USD untuk transaksi yang diperoleh dari situs BCA:
<?php
require_once "kursvalas.php";
$kurs = new KursValas("bca", "trx");
echo "1 USD = Rp " . $kurs->get("USD", "sell");
?>

Saat ini KursValas mampu membaca data dari situs BCA, BNI, dan Mandiri.

Beberapa catatan: Karena seluruh informasi kurs ini berasal dari situs eksternal, maka pustaka mungkin bisa menjadi tidak berfungsi sewaktu-waktu jika terjadi perubahan struktur layout halaman di situs tersebut.

KursValas ini menggunakan pustaka simple_html_dom.php yang dibuat oleh S.C. Chen dkk., dirilis dibawah lisensi MIT.

Download KursValas.php
http://files.jar2.net/scripts/php/kursvalas-1.3.src.zip
{LANG:ID} {CAT:TUTORIAL} {CAT:PROGRAMMING}

Wednesday, August 17, 2011

Wheel Color Picker 1.2 is Out!

Despite the two months age of the Wheel Color Picker plugin since its first debut, it is already used in various websites across countries. Therefore I am happy to announce the new release of jQuery Wheel Color Picker plugin! This new version adds some new exciting features and fixes:
  • Setting preset value is now supported. This can be achieved either by setting "value" attribute to inputs (e.g. < input class="colorpicker" value="FF0000" />) or adding "color" option when initializing (e.g. $('.colorpicker').wheelColorPicker({ color: "FF0000" }); ).
  • Added "rgb%" (i.e. rgb(100%, 100%, 100%)) and "rgba%" (i.e. rgba(100%, 100%, 100%, 1) ) color formats.
  • The color picker now supports alpha value. If you set color format option to "rgba" or "rgba%", the color picker dialog will come up with additional alpha slider on the right.
  • Fixed a bug that giving undefined reference to rselectedColor error when using rgba format.

Grab the package while it's hot directly from http://plugins.jquery.com/files/jquery.wheelcolorpicker-1.2.0.zip

For an online demonstration and documentation, please visit http://www.jar2.net/projects/jquery-wheelcolorpicker/demo.

There are still things to do to improve this plugin, such as adding HSL color format support, advanced color picker and so on. Let's look forward to have more new useful features implemented on the next release.


    {LANG:EN} {CAT:PROJECT}

    Thursday, June 30, 2011

    Hack Profil FB Dijadikan Online Shop Palsu

    Kepada peselancar internet yang memiliki akun profil di situs-situs jejaring sosial agaknya perlu lebih berhati-hati dalam menjaga dari akses orang-orang yang tidak berhak.

    Baru-baru ini aku menjumpai postingan wall Facebook dari "toko online" yang menjajakan gadget high-end dengan harga sangat miring (mungkin seperti orang yang jualannya ). Ya, masakan Nokia N900 yang harga normalnya Rp 4.900.000,- dibanderol Rp 1.500.000,- dengan "kualitas aseli/bukan replika", demikian juga dengan produk-produk seperti MacBook Pro seharga Rp 6.700.000,-

    Melihat harga-harga yang tidak wajar bikin aku penasaran untuk mengulik profil Facebook tersebut.

    Toko Online Palsu

    Profil "toko online" ini melabel dirinya sebagai toko online ber-SIUP (Surat Ijin Usaha Perdagangan) dan ber-TDP (Tanda Daftar Perusahaan), lengkap dengan foto "toko offline"-nya yang berlokasi di Batam.

    Tapi setelah ditelusuri memang bukan hanya harganya yang tidak wajar, namun masih ada beberapa hal yang tidak wajar. Jika Anda menemukan keganjilan-keganjilan seperti ini, mungkin Anda akan berpendapat bahwa ini adalah toko online palsu alias penipuan.

    Sangat berusaha meyakinkan calon "customer" (baca: korban) untuk percaya.

    Ada pertanyaan yang bisa diajukan, mengapa bisa seseorang begitu rupa berusaha untuk meyakinkan orang untuk percaya? Jawabannya mudah, karena dia tidak bisa dipercaya. Coba Anda bandingkan dengan orang-orang yang Anda hormati. Jika beliau berujar, apakah kita percaya dengan ucapannya, meskipun dia sama sekali tidak berusaha meyakinkan Anda akan kebenaran ucapannya?

    Berusaha meyakinkan "customer"

    Profil pribadi disulap jadi toko dalam sekejap.

    Tidakkah aneh jika seseorang merelakan profil pribadinya--yang mana digunakan untuk bersosialisasi dan berteman pada umumnya--dirombak menjadi sebuah toko online. Hari-hari sebelum "About Me" diubah masih terjadi percakapan dan salam, tetapi setelah itu semua berubah jadi postingan gadget.

    Wall sebelum di-hack (kiriman sebelum "Changed his About Me")
    Wall setelah di-hack. (kiriman setelah "Changed his About Me")

    Kasihan juga yang punya akun, profilnya di-hack di hari ulang tahunnya..

    Alamat URL tidak sesuai dengan nama toko.

    Mungkin kita sudah tidak heran lagi jika melihat URL facebook dari "Toko Jujur" ini sebagai http://www.facebook.com/melinda (nama ini hanya contoh saja).

    Toko berisi konten pribadi.

    Mungkin orang yang me-hack cukup pintar untuk mengubah nama, informasi serta menghapus semua album foto dan menukarnya dengan gambar-gambar "barang" jualan. Tapi karena itu bukan laman miliknya, mungkin dia kurang teliti dengan menyisakan konten-konten yang sifatnya pribadi, seperti notes main bulu ketek ini.

    Toko gadget main bulu ketek?

    No offense ya buat yang profilnya dipakai untuk screenshot di sini. Sebenarnya ada beberapa nama profil dari koneksi Facebook aku yang punya gejala-gejala yang sama. Saran untuk mereka (pemilik sebenarnya) yang profilnya di-hack, sebaiknya segera laporkan kepada pihak penyedia layanan, d.h.i Facebook agar nama baik tidak tercoreng.

    Laporkan penyalahgunaan.

    Menjaga akun online Anda


    Moral dari blog kali ini adalah: jagalah keamanan data pribadi Anda di Internet. Berikut ini ada sedikit tips yang mungkin bermanfaat:
    • Jangan gunakan password yang sama pada beberapa layanan/website. Jika sampai seseorang berhasil membobol password Anda di satu tempat, akun Anda di situs lain masih aman karena memiliki password  yang beda.
    • Logout sehabis menggunakan. Ini sangat penting jika Anda memakai komputer publik, seperti di warnet atau komputer pinjaman.
    • Jangan centang tanda "Tetap masuk", "Ingat saya" atau "Remember me" jika memakai komputer publik. Dengan mencentang tanda ini, akun akan tetap bisa diakses walaupun peramban web ditutup.
    • Hapus history penjelajahan. Setiap halaman yang Anda buka tercatat di komputer. Jika catatan ini tidak dihapus, orang lain bisa menelusuri halaman apa saja yang pernah dibuka dengan menekan Ctrl+H.
      Menu untuk menghapus di tiap browser mungkin tidak sama, tetapi pada pokoknya cari saja menu semacam "Clear browsing history" atau "Clear browser cache" atau "Bersihkan sejarah penjelajahan"
    {LANG:ID} {CAT:ISSUES}

    Saturday, June 11, 2011

    Converting Image to Grayscale with PHP

    As everybody knows, converting images offline into grayscale in GIMP (or probably Photoshop) is just 2 clicks away. But how about converting them on the fly? Anyways, here's a simple steps to convert an image into grayscale with PHP and GD library.

    Getting Started

    Original
    Grayscale
    Let's begin by choosing your image. For this example, I am using a yummy chicken noodle from Solaria restaurant.

    The main idea is to read every pixel's RGB value and convert them using YIQ colorspace conversion matrix. We only need the Y value for the result color.

    So, here's the function to get the Y value from an RGB color:
    <?php
    // Function to get grayscale color from RGB
    function grayscale($color) {
        $r = ($color >> 16) & 0xFF;
        $g = ($color >> 8) & 0xFF;
        $b = $color & 0xFF;
        $yiq = round($r*0.299 + $g*0.587 + $b*0.114);
        return sprintf("0x%02x%02x%02x", $yiq, $yiq, $yiq);
    }

    $color is in hexadecimal numbers, for example, a magenta color is 0xADD8E6 in hex. We separate its RGB values using binary SHIFT and AND operators, so we have $r = 0xAD, $g = 0xD8, $b = 0xE6.

    The grayscale value is calculated by adding about 30% red, 59% green, and 11% blue. Don't forget to round the result.

    As we are working in RGB, so we return the color back in RGB value. So 0xADD8E6 becomes 0xCDCDCD.

    Next, change the content type as image:
    header("Content-type: image/jpeg");

    Get the image resolution and load it into $img
    // Image file to be converted
    $file = "mie-ayam.jpg";

    // Get image width & height
    list($width, $height) = getimagesize($file);

    // Load source image file
    $img = imagecreatefromjpeg($file);

    Now, replace every pixel into grayscale using the function above:
    for($y = 0; $y < $height; $y++) {
        for($x = 0; $x < $width; $x++) {
            $rgb = imagecolorat($img, $x, $y);
            $gray = grayscale($rgb);
            imagesetpixel($img, $x, $y, $gray);
        }
    }

    Finally we output the JPG image and clear memory
    imagejpeg($img);
    imagedestroy($img);

    Download the file (573 bytes)

    http://en.wikipedia.org/wiki/YIQ
    http://www.prosoxi.com/2011/05/05/converting-images-to-grayscale-using-php-and-the-gd-library/
    {LANG:EN} {CAT:TUTORIAL} {CAT:PROGRAMMING}

    Jar2.net Mendapat Desain Baru

    Baru saja tampilan Jar2.net didesain ulang. Setelah sekian lama dengan tampilan gelap sederhana, kini tampilan Jar2.net hadir lebih segar. Desain ke-6 kali ini masih tetap mengusung kesederhanaan dengan konsep digital vCard seperti situs-situs pribadi lainnya.

    More interactivity, less sugar.

    Kita selalu mengharapkan sesuatu menjadi lebih baik. Dengan kemampuan jQuery dan AJAX, aku mencoba membuat desain dengan lebih banyak animasi agar lebih interaktif. Animasi-animasi ini dikerjakan hanya dengan Javascript + jQuery, tanpa pemanis buatan. Dan sejauh ini sudah bisa berjalan dengan manis di Firefox, Opera, Chrome, bahkan Blackberry. Bagaimana menurut Anda?


    Tampilan awalnya sederhana, hanya ada nama dan display picture yang diambil dari profil Facebook, dengan menu yang bertebaran di bawahnya. Menu ini diberi efek mengambang, seperti di atas air. Jika Anda tertarik, aku sedang membuat tutorial untuk membuat animasi demikian. Coba lihat blog setelah ini.

    Bukan hanya website utama, blog.jar2.net juga telah diperbarui sehingga tampil selaras dengan tema kali ini.

    Oke, cukup sekian untuk hari ini, sekadar update blog yang terbilang sangat jarang jika dibanding dengan update status.

    {LANG:ID} {CAT:JOURNAL}

    Friday, April 15, 2011

    Menyembunyikan Kursor GTK+/X11

    Sekarang ini sudah banyak gadget-gadget dengan touchscreen bertebaran, termasuk di Indonesia. Pada alat-alat jenis ini, keberadaan kursor mouse layaknya pada desktop klasik sudah tidak lagi dibutuhkan. Salah satu problem yang mungkin muncul ketika menggunakan gadget tersebut yang terinstal Linux dengan GTK+ / GNOME adalah cara untuk menghilangkan kursor panah tersebut.

    Ya, salah satu cara yang paling mudah dipikirkan adalah dengan mengganti tema kursor dengan gambar transparan untuk semua bentuk kursor. Ini adalah cara yang dilakukan juga oleh Maemo berbasis GTK.

    Anda dapat mengunduh tema kursor transparan xcursor-transparent.tar.gz tersebut di sini.

    Cara Command Line

    Install tema kursor tersebut dengan mengekstrak ke /usr/share/icons:

    $ cd /usr/share/icons
    $ sudo tar xfz ~/xcursor-transparent.tar.gz

    Kemudian gunakan kursor tersebut sebagai tema default komputer dengan mengubah file /usr/share/icons/default/index.theme:

    $ sudo gedit /usr/share/icons/default/index.theme

    Menjadi sebagai berikut:

    [icon theme]
    Inherits=xcursor-transparent

    Restart X server dan kursor Anda sudah tiada! :-)

    Cara Grafis

    Buka Appearance Preferences melalui menu System » Preferences » Appearance.
    Pada tab Theme, klik Install...
    Pilih file xcursor-transparent.tar.gz yang sudah diunduh.
    Setelah terpasang, pilih Customize...
    Pada tab Pointer, pilih tema xcursor-transparent.

    Memunculkan/menghilangkan Kursor dengan Cepat

    Jika Anda cukup sering menggunakan touchscreen dan mouse/touchpad pada alat Anda, ada cara yang lebih cepat memunculkan/menghilangkan kursor dengan menggunakan shell script toggle-cursor.sh berikut:

    #!/bin/bash
    key_value=$(gconftool --get /desktop/gnome/peripherals/mouse/cursor_theme)
    key_value_bak=$(gconftool --get /desktop/gnome/peripherals/mouse/cursor_theme_bak)
    echo $key_value | grep "xcursor-transparent"
    if [[ $? -eq 0 ]] ; then
     echo $key_value_bak | grep "xcursor-transparent"
     if [[ $? -eq 0 ]] ; then
      gconftool --type String --set /desktop/gnome/peripherals/mouse/cursor_theme "default"
     else
      gconftool --type String --set /desktop/gnome/peripherals/mouse/cursor_theme $key_value_bak
     fi
    else
     gconftool --type String --set /desktop/gnome/peripherals/mouse/cursor_theme_bak $key_value
     gconftool --type String --set /desktop/gnome/peripherals/mouse/cursor_theme "xcursor-transparent"
    fi

    Simpan berkas tersebut di lokasi yang mudah dijangkau, misalnya ~/toggle-cursor.sh kemudian ubah hak akses berkas agar bisa di eksekusi:

    chmod a+x ~/toggle-cursor.sh
    Buat keyboard shortcut melalui gconf-editor.

    Cara Grafis:

    Pada /apps/metacity/global_keybindings/run_command_# (# adalah nomor, gunakan yang masih belum terpakai), isi dengan shortcut misalnya T
    Pada /apps/metacity/keybinding_commands/command_# (# nomor yang sama dengan di atas), isi dengan lokasi absolut script (misalnya /home/fajar/toggle-cursor.sh).

    Cara Command Line:


    $ gconf-tool --type=String --set /apps/metacity/global_keybindings/run_command_2 "<Shift><Control>T"
    $ gconf-tool --type=String --set /apps/metacity/keybinding_commands/command_2 "/home/fajar/toggle-cursor.sh"


    Silakan sesuaikan nomor keybinding, tombol shortcut, dan lokasi script-nya.

    Referensi:
    http://obiltschnig.com/2010/08/14/hiding-the-gtkx11-mouse-cursor/
    http://ubuntuforums.org/showthread.php?t=1194932

    {LANG:ID} {CAT:TUTORIAL}

    Sunday, January 9, 2011

    Estafet Jari

    Baru saja aku pulang dari Pluit. Sepanjang perjalanan aku memikirkan sebuah permainan sederhana untuk dimainkan berkelompok. Hari sudah malam, lampu menerangi jalan, dan berikut inilah gambaran permainan yang terpikirkan.

    Jumlah pemain: 5 - 20 orang

    Alat bantu: 
    Kertas dan alat tulis

    Persiapan:
    Siapkan secarik kertas kecil (DHI 3x3 cm sudah mencukupi) sebanyak jumlah pemain.

    Deskripsi permainan:
    Setiap pemain diminta membentuk sebuah lingkaran. Setelah terbentuk lingkaran, masing-masing diberikan secarik kertas dan diminta untuk memikirkan dan menuliskan sebuah bilangan bulat dari 1 sampai 5. Pemain dilarang untuk menyebutkan atau memperlihatkan bilangan tersebut kepada pemain lainnya. Kemudian kertas tersebut dikumpulkan dan disimpan.

    Seluruh pemain diminta bergandengan tangan dan menutup mata. Pemain akan terus menutup mata selama permainan berlangsung.

    Pada putaran pertama, saat host memberi aba-aba, pemain menaruh jari tangan kanan sebanyak bilangan yang dipikirkan oleh pemain tersebut di telapak tangan kiri orang yang di sebelah kanannya. Demikian pula dengan pemain lainnya, sehingga tiap pemain juga akan mendapati jemari tangan temannya di telapak tangan kirinya. Kemudian pemain menghitung berapa jari yang diletakkan di tangan kirinya, dan menambahkan jumlah tersebut dengan bilangan yang telah dipikirkan sebelumnya.

    Misalnya, A memikirkan bilangan 3. A menaruh tiga jari tangan kanannya di telapak tangan B yang berdiri di sebelah kanannya. Z yang berada di sisi kirinya pun berbuat hal yang sama kepada A. Ketika A menghitung jari yang ditaruh Z di tangannya, ternyata jumlahnya adalah 2. Maka A menjumlahkan 2 dengan bilangannya 3 menjadi 5.

    Berikutnya, bila host memberi aba-aba lagi, setiap pemain menyampaikan jumlah jari yang dirasakan oleh tangan kirinya, kepada teman yang di kanannya dengan cara yang sama seperti putaran pertama. Artinya, setiap pemain akan menerima kembali sejumlah jari yang baru di telapak tangan kirinya. Jumlah jari tersebut dihitung dan ditambahkan dengan jumlah yang terakhir dihitung.

    Misalnya, A menyampaikan bilangan 2 yang diterima dari Z kepada B dengan menaruh dua jarinya. Penyampaian jumlah jari dilakukan bersama-sama setelah mendengar aba-aba. Lantas A merasakan Z hanya menaruh telunjuknya saja di tangan A. Berarti A menambahkan bilangan 1 dengan jumlah terakhir yang telah dihitungnya 5 menjadi 6.

    Demikian putaran tersebut dilakukan berulang-ulang sebanyak n-1 kali, dimana n adalah jumlah pemain. Jadi apabila ada 8 orang yang bermain, berarti akan dilakukan 7 kali putaran atau penyampaian jari.

    Setelah putaran terakhir selesai, para pemain boleh membuka matanya. Jumlah yang telah dihitung oleh masing-masing pemain mungkin saja berbeda dan salah karena kesalahan menghitung atau kesalahan dalam mengenali dan menyampaikan kembali sentuhan jari. Oleh sebab itu semua pemain yang terlibat berdiskusi untuk memutuskan berapa jumlah yang sebenarnya. Hanya boleh ada satu jawaban yang merupakan kesepakatan bersama untuk disebutkan kepada host. Perlu diingatkan bahwa selama berdiskusi pun tidak ada satupun pemain yang boleh memberitahukan berapa bilangan yang dituliskannya di kertas.

    Angka-angka yang tertera di kertas dihitung dan dijumlahkan. Apabila jumlahnya sesuai dengan jawaban dari pemain, maka seluruh pemain memenangkan permainan. Tetapi jika berbeda, maka seluruh pemain kalah.

    Makna Permainan:
    • Melatih konsentrasi dan daya ingat dengan aktivitas mengenali, menghitung, mengingat, dan menyampaikan kembali bilangan-bilangan yang dilakukan secara paralel
    • Melatih kejujuran
    • Melatih kekompakan dalam membuat keputusan bersama
    • Menumbuhkan kesadaran akan tanggung jawab kebersamaan dalam tim, bahwa hal yang terjadi dalam tim, dirasakan dan ditanggung oleh seluruh anggota
    {LANG:ID} {CAT:IDEAS}