rioastamal.net

Just things inside my head…

Tutorial: Updating Twitter Status via Shell Script

Posted by rio On February - 9 - 2010

The Goal

Updating twitter status via shell script. The command used to send the HTTP request is POST a.k.a lwp-request (a perl script) that included in most linux distribution.

Twitter Status Update

The Process

  1. Open your text editor i.e. gedit/geany/etc or even vi you are die hard fans of this editor.
  2. Copy and paste code below.

    #!/bin/bash
    #
    TUNAME="lesstalkme"
    TUPASS=""
    TSTATUS=""
    TURL="http://twitter.com/statuses/update.xml"
    TDATA="source=LTME&status="
     
    # print some fancy header :)
    echo "-----------------------------------------"
    echo "         Twitter Status Updater"
    echo " http://www.less-talk-more-example.info/"
    echo "------------------------------------------"
     
    echo -n "Twitter Password: "
    read -ers TUPASS
    echo -e "\nEnter Twitter Status:"
    read TSTATUS
     
    # replace some characters ( I'm too lazy to replace all the characters :))
    TSTATUS=`echo $TSTATUS | sed 's/ /%20/g'` # space => %20
    TSTATUS=`echo $TSTATUS | sed 's/@/%40/g'` # @ => %40
    TSTATUS=`echo $TSTATUS | sed 's/\//%2F/g'` # / => %2F
    TSTATUS=`echo $TSTATUS | sed 's/:/%3A/g'` # : => %3B
    TSTATUS=`echo $TSTATUS | sed 's/#/%23/g'` # # => %23
     
    # now POST the data
    echo ""
    echo -n "Updating status..."
    echo "${TDATA}${TSTATUS}" | POST -C $TUNAME:$TUPASS $TURL | grep $TUNAME > /dev/null
    # check status
    # ------------
    # successfull request always return XML format that containts our username
    # so we grep that to check the status
    if [ $? -eq 0 ]; then
      echo "DONE."
    else
      echo "ERROR."
    fi
  3. Replace TUNAME value with your own username.
  4. Save to somewhere i.e. /tmp directory just for testing.
  5. Name it twitter.sh
  6. Open the shell terminal in GNOME System » Application » Terminal
  7. Go to /tmp directory and give execute permission to the file.
    $ cd /tmp
    $ chmod +x twitter.sh
  8. Execute the file, you’ll be promted to enter twitter password and status.
    $ ./twitter.sh
  9. Fill it and voila!! your twitter status has been updated :).
    Twitter Status

Screencast



Download the Code

twitter.sh.zip via ziddu.com.
Size: 0.69kb
MD5 Checksum: f9d38c632430a617331cc4f8d298fcf1

Source:
http://www.less-talk-more-example.info/2010/02/update-twitter-status-via-shell-script.html

bookmark bookmark bookmark bookmark bookmark bookmark

Patching Bug: Reset Admin Password pada Wordpress <= 2.8.3

Posted by rio On February - 3 - 2010

PERINGATAN!
Artikel ini hanya untuk pengetahuan semata-mata, segala tindakan yang diakibatkan oleh artikel ini bukan merupakan tanggung jawab penulis. Terima kasih.

WP LogoBagi anda yang menggunakan wordpress sebagai engine blog, info berikut ini mungkin sangat berguna untuk anda. Wordpress sebelum versi 2.8.4 memiliki bug Reset Admin Password. Pada versi-versi tersebut seserang tanpa akses privilege apapun dapat dengan mudah mereset password account anda anda hanya dengan mensupply sebuah array pada parameterkey yang ada di query string URL.

Contoh normal link:

http://www.example.com/wp-login.php?action=rp&key=o7naCKN3OoeU2KJMMsag

Link untuk reset:

http://www.example.com/wp-login.php?action=rp&key[]=

Berikut ini adalah potongan code yang menyebabkan bug tersebut.

wp-login.php:
...[snip]....
line +/- 186:
function reset_password($key) {
    global $wpdb
 
    $key = preg_replace('/[^a-z0-9]/i', '', $key)
 
    if ( empty( $key ) )
        return new WP_Error('invalid_key', __('Invalid key'))
 
    $user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key))
    if ( empty( $user ) )
        return new WP_Error('invalid_key', __('Invalid key'))
...[snip]....
line +/- 276:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login'
$errors = new WP_Error()
 
if ( isset($_GET['key']) )
    $action = 'resetpass'
 
// validate action so as to default to the login screen
if ( !in_array($action, array('logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login')) && false === has_filter('login_form_' . $action) )
    $action = 'login'
...[snip]....
 
line +/- 370:
 
break
 
case 'resetpass' :
case 'rp' :
    $errors = reset_password($_GET['key'])
 
    if ( ! is_wp_error($errors) ) {
        wp_redirect('wp-login.php?checkemail=newpass')
        exit()
    }
 
    wp_redirect('wp-login.php?action=lostpassword&error=invalidkey')
    exit()
 
break
...[snip ]...

» Patching the Bug

Untuk memperbaiki bug tersebut ada dua cara yaitu:

  • Upgrade ke Wordpress 2.8.4, atau
  • Melakukan patch manual

Nah bagi yang malas upgrade wordpress sebaiknya segera melakukan patch secara manual. Berikut ini adalah perubahan pada file wp-login.php sebelum dan sesudah dipatch.

Sebelum patch (cari pada baris sekitar 350-an):

case 'resetpass' :
case 'rp' :
	$errors = reset_password($_GET['key'])
 
	if ( ! is_wp_error($errors) ) {
		wp_redirect('wp-login.php?checkemail=newpass')
		exit()
	}
 
	wp_redirect('wp-login.php?action=lostpassword&error=invalidkey')
	exit()
 
break

Sesudah dipatch:

case 'resetpass' :
case 'rp' :
	if (is_array($_GET['key'])) {
		die("<strong>Hacking detected.</strong>")
		exit()
	}
	$errors = reset_password($_GET['key'])
 
	if ( ! is_wp_error($errors) ) {
		wp_redirect('wp-login.php?checkemail=newpass')
		exit()
	}
 
	wp_redirect('wp-login.php?action=lostpassword&error=invalidkey')
	exit()
 
break

Setelah itu re-upload file wp-login.php ke server anda kembali.

Bagi yang memiliki akses shell ke server anda dapat melakukan patch dengan menggunakan perintah berikut(asumsi file wp-login.php.patch satu direktori).

$ patch wp-login.php -i wp-login.php.patch

Download wp-login.php.patch

Referensi:
http://milw0rm.com/exploits/9410
http://lug.stikom.edu/2010/02/patching-bug-reset-admin-password-pada-wordpress/

bookmark bookmark bookmark bookmark bookmark bookmark

Oleh-oleh Gathering LUG STIKOM v1.0

Posted by rio On December - 27 - 2009

Poto BarengAlhamdulillah acara Gathering LUG STIKOM v1.0 dengan code name “Mataram Fish” berjalan dengan sukses dan lancar. Acara yang kami selenggarakan pada hari Sabtu tanggal 26 Desember 2009, dihadiri sekitar kurang lebih 30 Slugers. Mereka yang hadir diantaranya adalah anggota LUG STIKOM yang masih aktif, mas-mas senior, dan Pak Anjik. Para Slugers senior yang datang diantaranya:

  • Mas Budi W.
  • Mas Nuzli
  • Mas David
  • Mas Zaenal
  • Mas Iyul

Acara baru dimulai sekitar pukul 15.30-an lebih setelah menunggu Pak Anjik menyelesaikan “Routing” karena traffic lagi padat :D. Acara pertama adalah pembacaan kegiatan yang sudah dilakukan LUG STIKOM selama tahun 2009 dan rencana untuk tahun 2010. Berlanjut dengan sambutan dari Pak Anjik selaku pembina LUG STIKOM. Sesi berikutnya yaitu sharing dari masing2 senior minus Mas Iyul*( datangnya telat :p ) selama beberapa menit. Lanjut pada sesi yang paling ditunggu terutama buat Mas Nuzli yang dari Malang sudah kelaparan yaitu makan-makan.

Read the rest of this entry »

bookmark bookmark bookmark bookmark bookmark bookmark

Mengganti Hostname pada Distro Berbasis Debian

Posted by rio On November - 17 - 2009

hostname notePernahkah ada keinginan dari anda untuk mengganti hostname dari sistem anda. Biasanya ketika kita menginstall misal distro ubuntu hostname kita akan menjadi username-laptop dsb. Nah bagaimana kita mengubahnya? Caranya sebenarnya cukup simple. Buka terminal anda klik Application » Accessories » Terminal

lug@username-laptop:~$ sudo gedit /etc/hostname

Nah disitu ada nama dari hostname lawas anda, ganti dengan yang baru misal stikom-surabaya. Sistem seharusnya mengupdate otomatis file /etc/hosts karena ada perubahan di /etc/hostname namun untuk memastikan buka saja file tersebut:

lug@username-laptop:~$ sudo gedit /etc/hosts

Cari string hostname lama anda jika ada lalu ganti ke hostname yang baru. Untuk mengecek kita dapat menggunakan perintah sysctl.

lug@username-laptop:~$ sysctl kernel.hostname
kernel.hostname = stikom-surabaya
lug@username-laptop:~$

Agar tampilan prompt bash juga berubah silahkan buka session bash baru dengan menekan kombinasi Ctrl-Shift-T. Seharusnya tampilan hostname pada bash akan berubah menjadi yang baru.

lug@stikom-surabaya:~$

Selamat Mencoba ;)

bookmark bookmark bookmark bookmark bookmark bookmark

Mencari String pada File Menggunakan Shell

Posted by rio On November - 15 - 2009

hostname noteWah… udah lama g ngepost nih, saatnya meramaikan kembali blantikan situs lug.stikom.edu :D. OK, langsung saja. Mencari nama file adalah hal yang biasa dan sudah sering dilakukan bahkan end-userpun sering melakukannya. Tetapi, bagi sebagian dari kita terutama application developer yang kegemarannya ngoprek source code. Bayangkan situasi seperti ini:

  • Anda sedang mengeksplorasi source code wordpress.
  • Anda bertemu dengan kode seperti berikut maybe_unserialize($the_string);
  • Anda tentu bingung maksud fungsi maybe_unserialize ini apa jika anda tidak mengetahui sumber fungsinya yang asli.
  • Untuk mengetahui sumber fungsinya, tentu anda harus tahu dimana lokasi file tempat fungsi itu berada.
  • Nah, jika filenya hanya 2-3 saja tidak masalah tetapi jika sudah puluhan bahkan ribuan file?

Untuk itu kita dapat memanfaatkan shell untuk melakukan pencarian tersebut. Syntax yang akan kita gunakan adalah sebagai berikut:

$ find LOKASI_PENCARIAN -exec grep -n 'STRING_YANG_DICARI' {} \; -print

Berikut ini adalah contoh untuk masalah di atas, dimana string yang akan kita cari adalah “function maybe_unserialize” dan letak dari source wordpress adalah di /var/www/wordpress.

$ cd /var/www/wordpress
$ find . -exec grep -n 'function maybe_unserialize' {} \; -print
250:function maybe_unserialize( $original ) {
./wp-includes/functions.php

Dari output perintah diatas terlihat bahwa string function maybe_unserialize terdapat pada file functions.php di dalam folder wp-includes dan terletak pada baris ke-250.

Semoga berguna :)

Source:
http://lug.stikom.edu/2009/11/mencari-string-dalam-sebuah-file-menggunakan-shell/

bookmark bookmark bookmark bookmark bookmark bookmark

Tips: How to Change Geany Themes to Dark

Posted by rio On July - 1 - 2009

Sorry if there are any spelling or grammatical errors, I’m learning English… :)

In the last few years gedit(the GNOME default editor) has been my favorite since it comes with syntax highlighting. I’m a web developer so most of the time I write PHP, HTML, Javascript or CSS code. I think gedit is doing fantastic job since I do not need WYSIWYG editor. I spent hours for coding so I like dark theme called oblivion on gedit. But in recent time I’ve found that the missing feature of gedit is code folding.

The Alternatives

So I begin to search the alternative, my criteria are the editor should lightweight and easy to customize. And my choice goes to Geany. It has all gedit features plus code folding, that was I need :). But the default theme is white background :(. It makes my eyes quickly tired. I miss the gedit oblivion theme. Thanks to god someone has made that theme for geany. The theme name is Oblivion 2 made by Barry van Oudtshoorn.

But Barry’s oblivion seems little differs from original gedit theme. The selection text is red, yellow marker, and some white text for default. Those color is still high contras not too good if you want to stay for hours in front of your monitor. So, modified the theme to mimic as close as possible the gedit oblivion theme. I call it Oblivio LC, LC is stand for [L]ow [C]ontras.

Installing Oblivion LC Theme

Download Oblivion LC at here: http://rioastamal.net/files/oblivion-lc.tar.gz

After that, extract the content to directory ~/.config/geany/filedefs. Here the example how to do it via terminal. I assume you save the downloaded theme in /tmp directory.

  1. Open Terminal (Application » Accessories » Terminal)
  2. Go /tmp direcoty
    $ cd /tmp
  3. Extract the package to ~/.config/geany/filedefs directory
    $ tar -zxvf oblivion-lc.tar.gz -C ~/.config/geany/filedefs/
  4. Start your Geany and enjoy your new dark theme :)

Here’s my screenshot, I’ve configure my geany to optimize the screen. I love using shortcut instead of mouse :).

References

bookmark bookmark bookmark bookmark bookmark bookmark

Karena terus-menerus diteror deadline akhir-akhir ini, membuat “suhu” otak cukup panas sehingga memerlukan cooling down sebentar hehehe…. Mau main-main game yang ada bosan, lalu kepikiran kepingin nostalgia dengan game-game jaman jadul dulu waktu SD. Masih inget dengan game Contra dan Sonic. Itu adalah salah dua game yg paling saya gemari dan teman-teman sewaktu kecil dulu selain Mario Bros tentunya hehe :). Kedua game tersebut berjalan pada platform yang berbeda (pada saat itu). Contra pada NES (Nintendo Entertainment System) sedangkan Sonic pada Sega Genesis.

Meski sebenarnya dulu g pernah punya konsol NES maupun Sega, klo mau main ya numpang ke rumah temen hehehe, baru punya konsol NES kelas 3 SD sedangkan Sega g pernah keturutan malah dapet Super Nintendo lalu PS :). Walah kelamaan nostalgia malah lupa tutorialnya… :)

Menginstall gFCEU Ultra dan DGen

Untuk emulator NES kita menggunakan aplikasi gFCEU (GTK Front End untuk FCEU) sedangkan untuk emulator Sega Genesis kita menggunakan dgen. Agar tidak berpusing ria kita langsung install saja lewat repository. Caranya masuk ke Terminal melalui menu Application »» Accessories »» Terminal.

Untuk install gfce perintahnya adalah:

$ sudo apt-get install gfceu

Untuk dgen perintahnya adalah:

$ sudo apt-get install dgen

Mendapatkan File ROM Contra dan Sonic

Untuk ROM game-game lawas saya mendownload di www.dgemu.com. Untuk mendownload file ROM dari game anda harus register dulu di forum dgemu. Nah, setelah itu baru bisa download. Tapi ingat, sistem download menggunakan GPs (Gold Pieces) semacam points yang didapat setelah posting di forum. Ketika anda register anda akan mendapat sekitar 100 GPs. Untuk lebih jelasnya silahkan lihat sendiri di FAQ atau forum dgemu.com. Setelah mendownload kedua ROM sy asumsikan anda meng-extract ZIPnya ke /home/xxx/game (dimana xxx adalah username anda dan “game” adalah sebuah direktori baru yang anda buat).

Menjalankan gFCEU

Untuk memainkan Contra maka kita perlu menjalan NES emulator kita yaitu gFCEU. Caranya akses dari menu Applicatoion »» Games » GFCE Ultra NES Emulator. Kemudian tekan browse untuk mencari lokasi ROM dari Contra. Lihat ilustrasi gambar dibawah.

gfceu NES Emulator

Contra Screenshot

Menjalankan DGen

Berbeda dengan fceu yang memiliki front-end, dgen murni kita jalankan lewat terminal. Caranya masuk keterminal lalu ketikkan perintah berikut:

$ cd ~/game
$ dgen sonic.bin

* Asumsi file image Sonic terletak di /home/xxx/game seperti yang telah diasumsikan diatas.
* dimana sonic.bin adalah nama file image dari game yang telah saya ubah.

Atau jika VGA anda cukup cepat anda dapat menggunakan perintah berikut:

$ dgen -G -X 800 -Y 600 sonic.bin

* Perintah diatas akan mengaktifkan fitur OpenGL dan menggunakan resolusi 800×600.

Sonic Sega Screenshot

Performance Tips

Jika kemampuan VGA pas-pasan tapi dapat menjalankan compiz sebaiknya anda tetap menjalankan game dalam mode window dengan ukuran kecil. Kemudian gunakan Zoom Effect dari compiz untuk memperbesar layar. Khusus untuk dgen jangan mengaktifkan fitur -G (OpenGL) jika ingin menggunakan effect zoom dari compiz.

Selamat bermain game klasik…!!!

bookmark bookmark bookmark bookmark bookmark bookmark

Sekedar sharing aja kemarin(tanggal 19 juni 2009) sempet kesel karena coba login ke Yahoo Messenger lewat Pidgin g bisa konek2. Terpaksa pake versi webmessenger, dengan segala ketidak nyamanannya :). Setelah googling ternyata ada yang mengalami hal serupa. Solusinya ada di sini:

http://ubuntuforums.org/showthread.php?t=1191064&page=3

Yaitu dengan mengganti Server Pager-nya dari scs.msg.yahoo.com menjadi cn.scs.msg.yahoo.com. Coba Non-aktifkan dan aktifkan kembali account anda. Seharusnya anda sudah dapat login kembali melalui pidgin anda. Lihat gambar berikut untuk lebih jelas…

Sebagai catatan saya menggunakan ubuntu 8.10 dengan language-pack Indonesia dan pidgin 2.5.4.

1. Klik menu Akun-akun (Accounts)

pidgin modify account

2. Pilih Account anda lalu klik Ubah Akun (Modify Account)
3. Pilih tab Lanjutan (Advanced)
4. Ganti nilai dari Server Penyeranta (Pager Server) dari scs.msg.yahoo.com menjadi cn.scs.msg.yahoo.com.

yahoo pager server

5. Non aktifkan Account anda lalu aktifkan lagi.
6. Selamat ber-pidgin ria kembali…

bookmark bookmark bookmark bookmark bookmark bookmark

Glory…Glory… Man. United

Posted by rio On May - 19 - 2009

Meskipun telat tapi gpp dipost aja hehehehe….

Akhirnya MU memastikan gelar juara musim ini setelah bermain imbang 0 - 0 melawan Arsenal di Old Trafford. Ini merupakan capaian yang ke-18 kali MU dalam merengkuh gelar juara Liga Inggris. Serta menyamai rekor liverpool untuk jumlah tropi terbanyak.

Acara nonbar kali ini berbeda dari biasanya. Meskipun tetap bertempat di Mecure Hotel, tetapi lokasinya berbeda. Acara yang biasa dihelat di Coffee Cafe kali ini diadakan di poolside Hotel. Hal ini juga sebagai antisipasi banyaknya para fans kedua tim yang datang. Dan memang benar saja daerah kolam renang hotel penuh sesak dengan “lautan merah”. Saya yg datang sekitar pukul 18.30 sudah hampir penuh. Datang sendiri karena masih menunggu teman “Si Tonggi” yang datengnya telat sekitar jam 19.15. Hampir aja tu tike saya tuker sendiri dengan snack untung aja si tonggi datang… hehe g jadi dech…

Acara semakin meriah dengan dipandu Shandy gibol dari Radio Suzanna dan tamu istemewa yaitu vokalis boomerang “Roy”. Roy boomerang sempet menyanikan dua lagu pendek baik dari lagu album baru dan dari album lawas yg diikuti oleh nyanyian para penonton yg hadir.

Setelah peluit panjang dibunyikan kegilaan2 fans MU mulai terlihat. Chants wajib Glory… Glory… Man. United pun langsung berkumandang… kekekekekek YES… MU Juara…. langsung dech dilanjutkan dengan acara poto2 bareng… plus nyebur kolam… untuk acara cebur-menyebur untung g ikutan padahal hampir ditarik ma temen2 pura ngeluarin dompet plus HP lalu pura2 copot celana… selamat…. aman… akhirnya… ehhehehe….

GLORY…GLORY… MAN. UNITED…

bookmark bookmark bookmark bookmark bookmark bookmark

Sorry if there are any spelling or grammatical errors, I’m learning English… :)

Before I start, Let me explain what google android is, taken from android official distribution.

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.

Pre-Installation

You must have Java and Apache Ant installed to make android fully works(especially for development). You can refer to my other article about installing Java and Apache on Ubuntu Linux here:

My Environment

  • My $HOME is located in /home/astadev
  • I put android package in $HOME/archive/a
  • I extract the package to $HOME/programs
  • My Android SDK version is 1.1 Release 1

Installation

Download the latest version of Google Android at http://www.android.com/. I save it to $HOME/archive/a. The archive in ZIP format. So we need to extract it using unzip command.

$ unzip ~/archive/a/android-sdk-linux_x86-1.1_r1.zip -d ~/programs/
$ cd programs
$ ln -s android-sdk-linux_x86-1.1_r1 android

The last command is to make symbolic link to directory android-sdk-linux_x86-1.1_r1. So, you can also access the directory in $HOME/programs/android. It will make directory more easy to read and quite useful in development.

Running The Emulator

The easiest way to test your installation is to run the Android Emulator. The emulator located inside the tools/ directory. Follow the instruction below to run the emulator.

$ cd ~/programs/android/tools/
$ ./emulator

Note: Be patient, it takes quite longtime to be fully loaded even with my Intel core2 duo and 1GB of RAM.

As an alternative you can create a launcher(short-cut) on your Desktop. I assume your Desktop is using GNOME. Although it will be quite similar to other Desktop like KDE or XFCE.

  1. Right click on your desktop
  2. Choose Create Launcher…
  3. Fill “Android Emulator” in Name field
  4. On Command field fill it with “/home/astadev/programs/android/tools/emulator” (without quote and make sure the path is point to the correct directory of your android installation)
  5. Click OK
  6. Double click the launcher to test it

Here’s the screenshot. To flip the orientation of the emulator use combination of CTRL+F11.

Google Android Emulator

Reference:
Android Official Site

bookmark bookmark bookmark bookmark bookmark bookmark