BSA Sued by Indonesian company

I thought I’d never see the day – BSA (Business Software Alliance) is currently being sued by an Indonesian company, Multisari, due to the illegal raids carried out to find illegal / pirated software.

I know, I know – what an irony indeed, right ? :) breaking the law to find the breakers of the law, gosh.
What a bunch of genius. :D

Context : Here in Indonesia, some(often?)times there are rogue officials, from BSA or Police, who conducted the checks (raids) illegally.

Imagine having your computers / servers seized suddenly, due to suspicion of having illegal software in it.
What a nasty way to halt a company’s daily operation eh? Yet that’s what happened with a lot of companies here.

No search warrant. No warning whatsoever.
Just some officers suddenly showing up in your office, do some quick check – and there goes your computers.

However, most of the victims chose to stay silent. Or, do a backhand deal with said officers, involving some cash of course, to secure the return of their computer.

Some of the victims of these illegal BSA raids also chose to migrate to Linux :) which then are welcomed warmly by the local F/OSS community.
Thanks BSA for sending them our way ! Bill Gates & Steve Ballmer would be SO happy that you did such a great job :D

Anyway, Multisari chose to stood its ground. It chose to strike back at these BSA bullies. And I’m so happy to be able to witness such a day. Good for them !

Quoted :


“In case number 517/Pdt.G/2011/PN.Jkt.Pst, Multisari Langgeng Inc. sued BSA Singapore, BSA Indonesia, and BSA Washington DC”


“Multisari sued BSA because of the raids conducted by BSA Singapore (**) and BSA Indonesia to its office on September 22dn, 2011″

(**) What the hell is BSA Singapore doing here, raiding Indonesian companies, on Indonesian soil ?
This is an outrage.

Source : http://www.bisnis.com/articles/hukum-bisnis-perkara-multisari-vs-bsa-masuk-mediasi
(hint: Google Translate is your friend)

MySQL Performance :: Panduan Utama Tentang MySQL & Hardware Yang Dibutuhkan + MySQL Bantai Memcached & NoSQL !

Panduan Utama : MySQL & Hardwarenya Yang Diperlukan

Beberapa client utama saya adalah pengguna MySQL. Software yang mereka gunakan memanfaatkan MySQL sebagai databasenya dengan intensif, dan dengan beban kerja yang banyak & berat.

Karena itu, semua hal seputar topik performa MySQL sangat menarik perhatian saya.

Secara rutin saya & tim kami melakukan berbagai penelitian seputar kinerja MySQL.
Untuk beban kerja tertentu, bagian sistim yang mana yang menjadi bottleneck ? Bagaimana cara melenyapkan bottleneck tersebut ? Bagaimana meningkatkan response time dari MySQL ? Bagaimana cara meningkatkan kapasitas pemrosesan datanya ? Dan seterusnya.

Karena itu saya cukup terkejut gembira menemukan file presentasi berikut ini — dimana berbagai isinya selaras dengan banyak dari temuan kami selama ini. Maka, Anda akan dapat memanfaatkan informasi di dokumen ini seketika; dan tidak perlu sampai melakukan riset selama bertahun-tahun seperti yang kami lakukan secara rutin:

[ Linux & Hardware Optimizations For MySQL ]

Berikut ini adalah beberapa poin-poin ringkasannya :

  • Hardware RAID bisa mengakibatkan performa yang buruk : Tidak setaranya kualitas berbagai produk hardware RAID yang ada jadi bisa menyebabkan justru turunnya performa dibandingkan jika tanpa RAID. Prosesor yang melempem, firmware yang buggy / tidak berkualitas, dst — semua ini dapat menyebabkan penurunan kinerja yang cukup serius. Karena itu sudah cukup lama kami menyarankan untuk melakukan RAID secara software, terutama RAID0 / RAID10.
  • Banyak RAM = Kinerja Naik : MySQL dapat memanfaatkan RAM yang ada untuk banyak hal — mengatur agar proses INSERT menjadi sequential ke disk (sangat signifikan untuk harddisk / bukan SSD), “join” buffer, cache, dst.

    Pasang RAM sebanyak-banyaknya di server database Anda, dan lalu atur setting MySQL, agar bisa memanfaatkan RAM yang ada tersebut.

  • RAID0 / RAID10 adalah cara termurah untuk meningkatkan kinerja disk
  • InnoDB lebih kencang untuk Write-Ops : InnoDB melakukan proses row-level locking pada saat write — dan bukannya table-level locking seperti MyISAM. Pada MyISAM, jika sedang ada proses Write (insert / update / delete) maka seluruh operasi lainnya dihentikan oleh MySQL. Karena itu, pada table MyISAM yang proses Write nya cukup banyak, performanya bisa langsung anjlok dengan sangat drastis.
  • SSD SATA lebih lambat daripada SSD PCI-Express : kadang bisa lebih dari 2x lipat.
  • BBWC = Battery Backed-up Write Cache : satu kelebihan Hardware RAID adalah BBWC. Dengan BBWC, maka proses Write bisa menjadi jauh lebih cepat. Jangan lupa untuk mematikan dulu write cache di masing-masing disk nya sendiri.

Dan masih ada sangat banyak lagi tips & informasi berguna lainnya, yang sulit untuk ditemukan dimana-mana.
Berbeda dengan berbagai artikel di banyak situs, dokumen ini sangat padat isinya, dan tidak bertele-tele. Straight to the point. Sampai kadang bisa kebingungan sendiri membacanya :)

Sangat direkomendasikan untuk mereka yang banyak bersentuhan dengan MySQL.

Untuk melakukan sendiri berbagai proses profiling & optimization nya, saya juga bisa merekomendasikan dokumen ini : [ Performance TUning & Stabilization Tips ]


MySQL Bantai Memcached & NoSQL : 750.000 query / second !

Beberapa tahun terakhir ini kita sering mendengar bagaimana MySQL itu lambat. Bahwa musti pakai Memcached baru bisa agak cepat / meningkat kapasitas (pemrosesan data) nya. Bahwa untuk jumlah query yang sangat banyak, maka musti membuang MySQL dan pindah ke NoSQL.

Yoshinori Matsunobu membuktikan bahwa MySQL sebetulnya amat kencang – dengan Plugin “HandlerSocket”, maka MySQL jadi bisa memproses 750.000 query per detik ! Sementara memcached hanya bisa mencapai 420.000 qps, dan Yoshinori belum berhasil menemukan produk NoSQL yang performanya bisa menyaingi ini.

Secara ringkas – HandlerSocket adalah plugin yang memungkinkan kita untuk mengakses database MySQL secara direct / bypass layer SQL internalnya. Jadinya seperti NoSQL juga, hanya saja ini di MySQL – bukan menggunakan database server lainnya.

HandlerSocket ini, karena berbasis MySQL, jadi memiliki berbagai kelebihan berikut ini dibandingkan dengan software NoSQL biasa :

  • Databasenya bisa diakses secara normal : karena mengakses database MySQL, maka datanya tetap bisa diakses secara normal / dengan perintah / query SQL biasa. Contoh: pembuatan laporan, tetap bisa menggunakan query SQL biasa.

    Tidak seperti software NoSQL lainnya; dimana seluruh akses harus berupa perintah NoSQL.

  • Crash-safe : HandlerSocket di desain untuk menggunakan database engine InnoDB di MySQL.
  • Semua keuntungan operasional MySQL : karena HandlerSocket berjalan di dalam MySQL sebagai plugin, maka semua manfaat MySQL bisa didapatkan — replication, online backup, SQL, internal cache / buffer pool, monitoring, SHOW xxxx STATUS, dst.
  • Tidak perlu merubah MySQL : karena berupa plugin, sehingga langsung kompatibel dengan semua versi MySQL.
  • Kompatibel dengan semua engine database di MySQL.
  • Dll

Siapa sangka ternyata kita tidak perlu pindah ke software NoSQL untuk mendapatkan performa yang tinggi ? Terus gunakan saja MySQL + HandlerSocket plugin.


Penutup

Berbeda dengan mitos & khayalan yang lazim ada, MySQL sebetulnya mampu memberikan kinerja yang sangat tinggi, dengan tetap menjaga integritas data kita.

Dan di luar dugaan, ketakutan saya paska akuisisi MySQL oleh Oracle tidak terjadi. MySQL tidak dibunuh oleh Oracle – tetapi, malah dikembangkan dengan jauh lebih cepat & mengesankan.
MySQL 5.5.x & MySQL Cluster 7.2.x adalah produk-produk MySQL yang paling impresif yang pernah saya temui. InnoDB di MySQL 5.5.x sudah sangat advanced dibandingkan versi sebelumnya. Dan MySQL Cluster 7.2.x akhirnya bisa menyimpan data di disk. Dan banyak kemajuan signifikan lainnya.

Pengetahuan mengenai seluk-beluk MySQL akan memungkinkan kita untuk membuat performanya melesat jauh dari para kompetitornya.

Bahan bacaan lebih lanjut :

Seri Belajar Open Source Cara Copas (BOSCA) : Install MySQL Cluster (tanpa root)

Belum lama ini Oracle telah merilis versi terbaru dari MySQL Cluster, yaitu versi 7.2.x. Ada banyak kelebihan versi terbaru ini, namun yang paling signifikan adalah kemampuannya untuk menyimpan database di disk.

Ya, dulu MySQL Cluster hanya bisa menyimpan data di memory.
Memang ini jadi meningkatkan performa, namun di lain sisi, otomatis jadi sangat beresiko. Jika server mati mendadak, maka seluruh data akan lenyap.

MySQL Cluster versi 7.2.x sudah tidak memiliki limitasi ini lagi. Ditambah dengan berbagai enhancements lainnya, maka saya bisa merekomendasikan versi ini sebagai awal yang baik untuk mulai belajar / menggunakan MySQL Cluster.

Panduan ini akan memungkinkan Anda untuk memasang MySQL Cluster tanpa memerlukan user root. Ini berarti bahwa Anda jadi bisa untuk memasang bahkan banyak MySQL Cluster di satu komputer.
Ini akan sangat berguna misalnya untuk melakukan riset / ujicoba.

Seri BOSCA = Belajar Open Source Cara copAs (copy-paste) :: artikel ini saya tuliskan sedemikian rupa, sehingga Anda tinggal copas / copy-paste saja ke Terminal / Console.
Sehingga hasilnya langsung bisa dinikmati.

Saya percaya bahwa learning by doing adalah cara belajar yang terbaik. Pengetahuan & pemahaman akan otomatis didapatkan dengan langsung praktek / melakukan.
Seri artikel BOSCA bertujuan untuk membantu Anda agar dapat segera mulai melakukan praktek, dengan usaha yang seminimal mungkin.

Selamat menikmati :

### perlu install library AIO (Asynchronous I/O) di beberapa distro
sudo apt-get install libaio1

mkdir $HOME/mysql-cluster
cd  $HOME/mysql-cluster

### Download dari http://www.mysql.com/downloads/cluster/
### Pilih "Linux - Generic 2.6 (x86, 64-bit), Compressed TAR Archive"
wget -c http://mysql.ntu.edu.tw/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.5-linux2.6-x86_64.tar.gz

tar xzvf mysql-cluster-gpl-7.2.5-linux2.6-x86_64.tar.gz

ln -s mysql-cluster-gpl-7.2.5-linux2.6-x86_64 mysqlc
mkdir my_cluster my_cluster/ndb_data my_cluster/mysqld_data my_cluster/conf

### buat beberapa direktori untuk file PID, socket, dan log
mkdir $HOME/mysql-cluster/mysqlc/var
mkdir $HOME/mysql-cluster/mysqlc/var/log
mkdir $HOME/mysql-cluster/mysqlc/var/run
chown -R $USER:$USER $HOME/mysql-cluster/mysqlc/var

########## membuat file-file konfigurasi
### buat file $HOME/mysql-cluster/my_cluster/conf/my.cnf
echo "[mysqld]" >> $HOME/mysql-cluster/my_cluster/conf/my.cnf
echo "ndbcluster" >> $HOME/mysql-cluster/my_cluster/conf/my.cnf
echo "datadir=$HOME/mysql-cluster/my_cluster/mysqld_data" >> $HOME/mysql-cluster/my_cluster/conf/my.cnf
echo "basedir=$HOME/mysql-cluster/mysqlc" >> $HOME/mysql-cluster/my_cluster/conf/my.cnf
echo "port=5000" >> $HOME/mysql-cluster/my_cluster/conf/my.cnf

### buat file $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "[ndb_mgmd]" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "hostname=localhost" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "datadir=$HOME/mysql-cluster/my_cluster/ndb_data" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "NodeId=1" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "[ndbd default]" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "noofreplicas=2" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "datadir=$HOME/mysql-cluster/my_cluster/ndb_data" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "[ndbd]" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "hostname=localhost" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "NodeId=3" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "[ndbd]" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "hostname=localhost" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "NodeId=4" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "[mysqld]" >> $HOME/mysql-cluster/my_cluster/conf/config.ini
echo "NodeId=50" >> $HOME/mysql-cluster/my_cluster/conf/config.ini

################ inisialisasi
### Inisialisasi database
cd $HOME/mysql-cluster/mysqlc
$HOME/mysql-cluster/mysqlc/scripts/mysql_install_db --no-defaults --datadir=$HOME/mysql-cluster/my_cluster/mysqld_data/

### menjalankan MySQL Cluster untuk pertama kali
cd ../my_cluster/
$HOME/mysql-cluster/mysqlc/bin/ndb_mgmd -f $HOME/mysql-cluster/my_cluster/conf/config.ini --initial --configdir=$HOME/mysql-cluster/my_cluster/conf/

$HOME/mysql-cluster/mysqlc/bin/ndbd -c localhost:1186
$HOME/mysql-cluster/mysqlc/bin/ndbd -c localhost:1186

$HOME/mysql-cluster/mysqlc/bin/mysqld --defaults-file=$HOME/mysql-cluster/my_cluster/conf/my.cnf --socket=$HOME/mysql-cluster/mysqlc/var/run/mysql.sock --pid-file=$HOME/mysql-cluster/mysqlc/var/run/mysql.pid&

### tunggu sekitar 30 detik, MySQL CLuster sedang launch
### lalu kita bisa cek statusnya :
$HOME/mysql-cluster/mysqlc/bin/ndb_mgm -e show

### terlampir cara untuk membuat table dengan engine NDB / MySQL Cluster
$HOME/mysql-cluster/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root
####### perintah-perintah berikut ini di copy-paste di prompt mysql> #########
create database clusterdb;use clusterdb;
create table simples (id int not null primary key) engine=ndb;
insert into simples values (1),(2),(3),(4);
select * from simples;
exit

### shutdown
$HOME/mysql-cluster/mysqlc/bin/mysqladmin -u root -h 127.0.0.1 -P 5000 shutdown
$HOME/mysql-cluster/mysqlc/bin/ndb_mgm -e shutdown

### buat script startup
echo '#!/bin/bash' >> $HOME/mysql-cluster/startup-cluster.sh
echo "$HOME/mysql-cluster/mysqlc/bin/ndb_mgmd -f $HOME/mysql-cluster/my_cluster/conf/config.ini --initial --configdir=$HOME/mysql-cluster/my_cluster/conf/" >> $HOME/mysql-cluster/startup-cluster.sh

echo "$HOME/mysql-cluster/mysqlc/bin/ndbd -c localhost:1186" >> $HOME/mysql-cluster/startup-cluster.sh
echo "$HOME/mysql-cluster/mysqlc/bin/ndbd -c localhost:1186" >> $HOME/mysql-cluster/startup-cluster.sh

echo "$HOME/mysql-cluster/mysqlc/bin/mysqld --defaults-file=$HOME/mysql-cluster/my_cluster/conf/my.cnf --socket=$HOME/mysql-cluster/mysqlc/var/run/mysql.sock --pid-file=$HOME/mysql-cluster/mysqlc/var/run/mysql.pid&" >> $HOME/mysql-cluster/startup-cluster.sh

chmod 755 $HOME/mysql-cluster/startup-cluster.sh

### buat script shutdown
echo '#!/bin/bash' >> $HOME/mysql-cluster/shutdown-cluster.sh
echo "$HOME/mysql-cluster/mysqlc/bin/mysqladmin -u root -h 127.0.0.1 -P 5000 shutdown" >> $HOME/mysql-cluster/shutdown-cluster.sh
echo "$HOME/mysql-cluster/mysqlc/bin/ndb_mgm -e shutdown" >> $HOME/mysql-cluster/shutdown-cluster.sh
chmod 755  $HOME/mysql-cluster/shutdown-cluster.sh

### untuk startup / shutdown MySQL Cluster, cukup ketik :
$HOME/mysql-cluster/startup-cluster.sh
$HOME/mysql-cluster/shutdown-cluster.sh

### Enjoy !

Seri Belajar Open Source Cara Copas (BOSCA) : Install MySQL Server (tanpa root)

Panduan ini akan memungkinkan Anda untuk memasang MySQL Server tanpa memerlukan user root. Ini berarti bahwa Anda jadi bisa untuk memasang bahkan banyak MySQL Cluster di satu komputer. Ini akan sangat berguna misalnya untuk melakukan riset / ujicoba.

Memasang banyak MySQL Server di satu komputer juga berguna untuk meningkatkan concurrent throughput – pada jumlah koneksi / user yang banyak, kadang MySQL Server nya sendiri yang menjadi bottleneck.
Memasang banyak MySQL Server di komputer tersebut, dengan masing-masing listening di Port yang berbeda, bisa menjadi salah satu alternatif solusinya.

Seri BOSCA = Belajar Open Source Cara copAs (copy-paste) :: artikel ini saya tuliskan sedemikian rupa, sehingga Anda tinggal copas / copy-paste saja ke Terminal / Console.
Sehingga hasilnya langsung bisa dinikmati.

Saya percaya bahwa learning by doing adalah cara belajar yang terbaik. Pengetahuan & pemahaman akan otomatis didapatkan dengan langsung praktek / melakukan.
Seri artikel BOSCA bertujuan untuk membantu Anda agar dapat segera mulai melakukan praktek, dengan usaha yang seminimal mungkin.

Selamat menikmati :

### perlu install library AIO (Asynchronous I/O) di beberapa distro
sudo apt-get install libaio1

mkdir $HOME/mysql-cluster
mkdir $HOME/mysql-cluster/server1
cd  $HOME/mysql-cluster/server1

### Download dari http://www.mysql.com/downloads/mysql/
### Pilih "Linux - Generic 2.6 (x86, 64-bit), Compressed TAR Archive"
wget -c --timeout=10 --tries=0 http://ftp.ntu.edu.tw/pub2/MySQL/Downloads/MySQL-5.5/mysql-5.5.22-linux2.6-x86_64.tar.gz

tar xzvf mysql-5.5.22-linux2.6-x86_64.tar.gz
ln -s mysql-5.5.22-linux2.6-x86_64 mysql

### buat beberapa direktori untuk file PID, socket, dan log
mkdir $HOME/mysql-cluster/server1/mysql/etc
mkdir $HOME/mysql-cluster/server1/mysql/var
mkdir $HOME/mysql-cluster/server1/mysql/var/log
mkdir $HOME/mysql-cluster/server1/mysql/var/run
chown -R $USER:$USER $HOME/mysql-cluster/server1/mysql/var
chown -R $USER:$USER $HOME/mysql-cluster/server1/mysql/etc

################# menyiapkan file konfigurasi
cp $HOME/mysql-cluster/server1/mysql/support-files/config.medium.ini $HOME/mysql-cluster/server1/mysql/etc/my.cnf

################ inisialisasi database
cd $HOME/mysql-cluster/server1/mysql
$HOME/mysql-cluster/server1/mysql/scripts/mysql_install_db --user=$USER --defaults-file=$HOME/mysql-cluster/server1/mysql/etc/my.cnf --basedir=$HOME/mysql-cluster/server1/mysql/  --datadir=$HOME/mysql-cluster/server1/mysql/data/

###### start database
$HOME/mysql-cluster/server1/mysql/bin/mysqld_safe --defaults-file=$HOME/mysql-cluster/server1/mysql/etc/my.cnf  --user=$USER  --basedir=$HOME/mysql-cluster/server1/mysql/  --datadir=$HOME/mysql-cluster/server1/mysql/data/  --socket=$HOME/mysql-cluster/server1/mysql/var/run/mysql.sock --pid-file=$HOME/mysql-cluster/server1/mysql/var/run/mysql.pid --port=9001 &

##### akses database
$HOME/mysql-cluster/server1/mysql/bin/mysql -u root -h 127.0.0.1 -P 9001 

##### shutdown database
$HOME/mysql-cluster/server1/mysql/bin/mysqladmin -u root -h 127.0.0.1 -P 9001 shutdown

### buat script startup
echo '#!/bin/bash' >> $HOME/mysql-cluster/server1/startup-server1.sh
echo "$HOME/mysql-cluster/server1/mysql/bin/mysqld_safe --defaults-file=$HOME/mysql-cluster/server1/mysql/etc/my.cnf  --user=$USER  --basedir=$HOME/mysql-cluster/server1/mysql/  --datadir=$HOME/mysql-cluster/server1/mysql/data/  --socket=$HOME/mysql-cluster/server1/mysql/var/run/mysql.sock --pid-file=$HOME/mysql-cluster/server1/mysql/var/run/mysql.pid --port=9001 &" >> $HOME/mysql-cluster/server1/startup-server1.sh
chmod 755 $HOME/mysql-cluster/server1/startup-server1.sh

### buat script shutdown
echo '#!/bin/bash' >> $HOME/mysql-cluster/server1/shutdown-server1.sh
echo "$HOME/mysql-cluster/server1/mysql/bin/mysqladmin -u root -h 127.0.0.1 -P 9001 shutdown"  >> $HOME/mysql-cluster/server1/shutdown-server1.sh
chmod 755  $HOME/mysql-cluster/server1/shutdown-server1.sh

### untuk startup / shutdown MySQL Cluster, cukup ketik :
$HOME/mysql-cluster/server1/startup-server1.sh
$HOME/mysql-cluster/server1/shutdown-server1.sh

### Enjoy !

Father’s Prayer For His Children

Children are Creature of Light.
Born pure & innocent.
Bringer of joy.

As they grow however, darkness start to weigh upon them.
They began to know pain, hate, and lies.

I realize that just our love for them is not enough to protect them.
Lord Almighty, please grant us patience & knowledge, to teach & guide them.

Please give them strength to soar above the darkness
To not be engulfed by it.

Amen.

Archive-Backup Your Website

This is the #2 article in the backup topics, check out the first one : MySQL Archived Backup

Nowadays, nearly everyone / every company have a website of sorts. What most of us forgot is to back them up, in case of problems.
And as Murphy’s Law stated :

If it can go wrong, it will go wrong – in the worst possible time

Backup of your data can save you from such occasion.

An archived-backup can help you further – should you need to retrieve certain version of your data, then you can. Because it saves multiple copies of your data, each from certain point of time.

A way to do this is by using tools like the excellent rdiff-backup. In short – it’s like Apple’s Time Machine, but can be easily scripted & automated.

For other cases, you may need to create your own script for it.

Below is a script we use to backup our customer’s website.
It will backup both their MySQL database and the actual website itself.

Note that the backup script will archive for 2 weeks.
If you need diffent archive period, please feel free to modify the script, following the example in this article.

Here’s the script : backup-website.sh



#!/bin/bash

### Please change the variables below to suit you
sourcedir="/home/myuser/web"
targetdir="/home/myuser/mybackup"
targetfile="myname"
datestr="`date +%A`"
# 2 months archive
#datestr="`date +%d`"

tempdir="/tmp/$targetfile-$datestr"

dbuser="root"
dbpass="mypass"
database="mydb"

#################################
bmkdir="/bin/mkdir"
btar="/bin/tar"
bbzip2="/bin/bzip2"
bcp="/bin/cp"
bmysqldump="/usr/bin/mysqldump"

################################## start backup now

### create temporary space
$bmkdir $tempdir

### backup database
$bmysqldump -u $dbuser --password=$dbpass $database > $tempdir/$targetfile-$datestr.mysql
$bbzip2 $tempdir/$targetfile-$datestr.mysql

### backup website
$btar cvzf $tempdir/$targetfile-web-$datestr.tar.gz $sourcedir

### 2 weeks archive
$bcp $targetdir/$targetfile-$datestr.tar $targetdir/$targetfile-last-$datestr.tar

### backup website + mysql database
$btar cvf $targetdir/$targetfile-$datestr.tar $tempdir/*


Enjoy :)

MySQL Archived Backup

I regard backup as a very important matter. Because one of the certainties in life is this :

Computer WILL Fail

However, with so many computers in our care, we need a way to make it automatic. Otherwise, it will simply take too much time.

Thankfully, this is very easy to do in UNIX / Linux computers.

We have several kind of backup scripts. All of them are quite simple, but essential. Nobody should be without them.

Below you can find a backup script we use to backup MySQL database for our clients. Basically, this is how we use it :

  1. Modify the script to archive for the time range that we’d like.
    The script can archive the backup from 1 week to unlimited. Just remark out the time range that you don’t need (by putting the “#” character in the first column of the particular row).
  2. Make sure we can run mysqldump automatically / with no user intervention.
    This can be done easily by creating a file name ~/.my.cnf
  3. Setup the backup to run automatically via cron
  4. Routinely backup the backup to other servers.
    Yes, there is no such thing as “too much backup”.

Without further ado, here is the script : backup-archive-mysql.sh


#!/bin/bash

### Please change the variables below to suit you
targetdir="/home/myuser/mybackup"
targetfile="db-mydb"
targetsuffix=".mysql"

userdb="root"
database="mydb"

#################################
bcp="/bin/cp"
bmysqldump="/usr/bin/mysqldump"

################################## start backup now
### Archive : 1 week
$bmysqldump -u $userdb $database > $targetdir/$targetfile-`date +%A`$targetsuffix

### Archive : 2 weeks
$bcp $targetdir/$targetfile-`date +%A`$targetsuffix $targetdir/$targetfile-last-`date +%A`$targetsuffix
$bmysqldump -u $userdb $database > $targetdir/$targetfile-`date +%A`$targetsuffix

### Archive : 1 month
$bmysqldump -u $userdb $database > $targetdir/$targetfile-`date +%d`$targetsuffix

### Archive : 2 months
$bcp $targetdir/$targetfile-`date +%d`$targetsuffix $targetdir/$targetfile-last-`date +%d`$targetsuffix
$bmysqldump -u $userdb $database > $targetdir/$targetfile-`date +%d`$targetsuffix

### Archive : 1 year
$bmysqldump -u $userdb $database > $targetdir/$targetfile-`date +%m%d`$targetsuffix

### Archive : 2 years
$bcp $targetdir/$targetfile-`date +%m%d`$targetsuffix $targetdir/$targetfile-last-`date +%m%d`$targetsuffix
$bmysqldump -u $userdb $database > $targetdir/$targetfile-`date +%m%d`.mysql

### No Archive
### WARNING: always monitor your free disk space, or the following line may consume them all
$bmysqldump -u $userdb $database > $targetdir/$targetfile-`date +%Y%m%d`$targetsuffix

Here is a sample of ~/.my.cnf; if this file exist, then various MySQL tools & software will be able to run with no intervention.
Of course you’ll need to adjust its user & password :


[client]
user=root
password=mypassword

Hope you’ll find this useful.
I’ll post our other scripts here from time to time as well. Stay tuned.

Solution : Problem When Upgrading Samsung Galaxy Mini to Gingerbread 2.3.4

That was quite scary – I almost bricked (read: killed!) my phone this morning, when I tried to upgrade it to Gingerbread (Android version 2.3.x).

To cut long story short – tried to install / “flash” Gingerbread ROM into my Samsung Galaxy Mini. There are many excellent tutorials that shows how easy to do this, for example :

# Upgrade Samsung Galaxy Mini and Root to Android Gingerbread 2.3.3
#
Samsung Galaxy Mini S5570XXKPI Android 2.3.4 Gingerbread
# And many others.

However, in my case, the process got stuck at the following text :

<1> START!!!
<1> set download environment.
<1> big partition size!!
<1> big partition size!!
<1> big partition size!!
<1> big partition size!!
<1> big partition size!!
<1> big partition size!!
<1> mibib download..

I was quite rightly scared at this point, thinking “dang, that’s it – my phone is bricked”.

Thankfully, that was not the case :D after MUCH googling around, I was able to finally upgrade my Galaxy Mini by doing the following :

DISCLAIMER: I shared this info with the intention to help others. However, I offer NO guarantee whatsoever that it will work for you as well.
Be aware that there is always a chance that your phone will end up bricked. Flashing ROM is not yet a 100% safe operation.

Now let’s continue, shall we ?

(1) Find another computer which has NOT Kies installed in it. (Kies is the software provided along with Samsung phones).
Looks like somehow that Kies is interfering with Odin / flashing operation on our Galaxy Mini. NOT good. Bad, bad Kies !

(2) Install Samsung USB driver there. If you haven’t got it, you can download it from here : [ Samsung USB driver ] (18 MB)

(3) Now, start following one of the tutorials listed above.

Now my Galaxy Mini is running Gingerbread 2.3.4 :D yeah !

A bit more info – this is what you’ll get in Odin’s Message Box when everything’s going okay :

Download Start…
<0> Create File…
<1> StartThread Detected : 1
<2> StartThread Detected : 0
<3> StartThread Detected : 0
<4> StartThread Detected : 0
<5> StartThread Detected : 0
<6> StartThread Detected : 0
<7> StartThread Detected : 0
<8> StartThread Detected : 0
<1> setup connection…
<1> odin mode.. check plcatform verification.
<1> VerifyPlatform:V0, P0,R0
<1> START!!!
<1> set download environment.
<1> big partition size!!
<1> big partition size!!
<1> big partition size!!
<1> big partition size!!
<1> big partition size!!
<1> big partition size!!
<1> mibib download..
<1> 1/10 Finished.
<1> qcsbl download..
<1> 2/10 Finished.
<1> oemsbl download..
<1> 3/10 Finished.
<1> amss download..
<1> 4/10 Finished.
<1> arm11boot download..
<1> 5/10 Finished.
<1> boot.img download..
<1> 6/10 Finished.
<1> recovery.img download..
<1> 7/10 Finished.
<1> system.rfs download..
<1> 8/10 Finished.
<1> data.rfs download..
<1> 9/10 Finished.
<1> csc.rfs download..
<1> 10/10 Finished.
<1> reset pda..
<0> Started Timer
<1> Close serial port and wait until rebooting.
<1> PASS!!!
<0> Destroy instant..
<0> Killed timer

So that’s how I did it. Hopefully it’ll help someone else out there :)
Enjoy !

Turut Merayakan HUT RI 66 : AhadPOS Dirilis

Menyambut & merayakan kemerdekaan Republik Indonesia yang ke-66, dengan gembira kami mengumumkan bahwa AhadPOS kini telah resmi dirilis.

AhadPOS v1.2.0 ]
Kode nama rilis ini adalah : “Minangkabau”

Tentang AhadPOS :
http://ahadpos.com/about/

Fasilitas support :
http://ahadpos.com/support/

Dokumentasi ringkas :
http://ahadpos.com/docs/

Mengapa Fokus Ke UKM ?

Sektor Retail UKM adalah salah satu sektor yang sudah terbukti cukup tahan terhadap beberapa gelombang krisis ekonomi yang terjadi. Ketika berbagai perusahaan raksasa kolaps secara spektakuler, berbagai retail UKM terus hidup. Beberapa bahkan menemukan / membuat peluang-peluang baru, dan menjadi lebih besar paska krisis.

Sektor ini juga sangat padat karya dan menghidupi sangat banyak orang. Bantuan serta dukungan untuk sektor ini akan membantu masyarakat secara luas.

Berikut adalah beberapa fakta seputar pentingnya UKM di Indonesia :

(a) UMKM menyumbang 53,32% PDB (sumber)
(b) Lebih fantastis lagi adalah ketika kita melihat angka penyerapan tenaga kerja – di berbagai daerah, secara konsisten UMKM menyerap lebih dari 95% tenaga kerja.
Di Sukabumi, UMKM bahkan menyerap 99% dari semua tenaga kerja.
(sumber)

Informasi lebih menarik datang dari BPS, yaitu :

# UKM adalah 99,9% dari pelaku usaha usaha Nasional
# Padat Karya : Mempekerjakan 96,95% dari total tenaga kerja
# Padat Karya : Mempekerjakan 90 juta orang (Usaha Besar: hanya 2 juta)
# Menyumbang Pendapatan Nasional sebesar 2000+ Trilyun

(sumber: BPS 2008)

Bantuan kepada sektor ini akan berdampak sangat luas. Karena itu Rimbalinux.com berkomitmen untuk berusaha mendukung mereka.

Masalah & Solusi

Salah satu masalah terbesar pada retail UKM adalah proses penjualan & kontrol stok (inventory control). Kontrol stok amat penting untuk mencegah kehilangan. Dan pada jangka panjang, kontrol stok yang baik bisa sangat membantu untuk optimalisasi stok.
Stok yang terkontrol dan optimal akan sangat membantu kelancaran cashflow, dan meningkatkan keuntungan.

Masalahnya, pekerjaan ini (kontrol stok) cukup memakan waktu, sehingga para pebisnis UKM sering menjadi segan untuk melakukannya. Dan implementasinya secara manual juga rentan kesalahan, dan juga sulit untuk menelusuri sumber kesalahannya.

Semua masalah ini bisa diatasi dengan mudah oleh sebuah sistem POS (Point Of Sales) yang terintegrasi. Tidak hanya berupa layar kasir / transaksi, namun juga sudah mencakup modul kontrol stok.

Pada saat ini, ada banyak masalah dengan berbagai sistem POS, baik yang open source maupun yang proprietary, seperti :

1. Fitur tidak lengkap
2. Reliabilitas
3. Data lock-in
4. Tidak bisa dikembangkan
5. Harga

Software AhadPOS akan memecahkan semua masalah ini, karena dibuat dengan berdasarkan pengalaman langsung dari beberapa UKM di lapangan, dan tersedia dengan lisensi yang bebas (GPL).

Selamat menikmati, dan, Merdeka !!

Lampiran : foto-foto pameran AhadPOS, gedung JCC,
Acara PPKI (Pekan Produk Kreatif Indonesia), 23-27 Juni 2010

AhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, Jakarta AhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, Jakarta AhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, JakartaAhadPOS - shown on PPKI Expo June 2010 @ JCC, Jakarta

Pameran AhadPOS @ JCC, a set on Flickr.

Di PPKI (Pekan Produk Kreatif Indonesia), 23 – 27 Juni 2010

Jumat Pagi Bersama Ulil

Siapa yang tidak kenal dengan Ulil Abshar Abdalla ? Salah satu tokoh JIL ini sudah dikenal karena berbagai kegiatan & pernyataannya. Selain di media konvensional, saat ini Ulil juga cukup aktif di Internet, termasuk di berbagai situs social media.

Suatu hari saya membaca tweet berikut ini dari account Ulil :

Ulil: If Muslim dictators kill their people, Muslim tend to shut up. When the world tries to stop them kill, they shout: INTERVENTION! Gosh!

Saat itu adalah pagi hari Jumat, 25 Maret 2011. Suasananya adem & tenang, jadi menggugah saya untuk mendiskusikan pendapat tersebut diatas.
Ketika itu saya kira balasan saya tidak akan ditanggapi oleh Ulil, tapi tidak apa, yang penting saya sudah menyampaikan pendapat saya. Yaitu :

Saya: Sejahat2nya Saddam, dia tidak spt GW Bush yg bantai ratusan ribu orang & bikin jutaan lainnya jadi pengungsi. Hm ? Gosh !

(http://twitter.com/#!/hsuf/status/51059424663584768)

Saya: Intervensi langgar konsep kedaulatan / sovereignty. People have the right to sort out their own problems. Gosh !

(http://twitter.com/#!/hsuf/status/51060190732230656)

Lalu saya melanjutkan rutinitas pagi saya dengan santai, dan bersiap-siap untuk sarapan…. ketika kemudian saya sadar bahwa ternyata tweet saya dibalas oleh Ulil ! Ups :)

Ulil: But yes, you’re right, Muslim suffer from amnesia a lot. When Muslim dictators killed their people, they tend to shut up!

(http://twitter.com/#!/ulil/status/51066382632230912)

Pagi hari Jumat itu tiba-tiba menjadi jauh lebih menarik :)

Selama beberapa jam setelah itu, kami saling kirim mengirim tweet. Sampai saya luput sarapan :D dan terpaksa minta izin pamit dulu kepada Ulil :

Saya: Yeah, but you have had your muffin, and I haven’t mine (breakfast). Slow down ! :D

(http://twitter.com/#!/hsuf/status/51085648727257089)

Diskusi saling tukar pikiran kemudian terus berlanjut kembali dengan seru, sampai akhirnya kami sepakat untuk saling tidak setuju (agree to disagree) :)
No problem, tiap orang punya hak untuk punya pemikirannya sendiri-sendiri.

Terlampir adalah beberapa kutipan diskusi tersebut.
Selamat menikmati….


Ulil : If Muslim dictators kill their people, Muslim tend to shut up. When the world tries to stop them kill, they shout: INTERVENTION! Gosh!

Saya : Intervensi langgar konsep kedaulatan / sovereignty. People have the right to sort out their own problems. Gosh !

http://twitter.com/#!/hsuf/status/51060190732230656


Ulil : If Muslim dictators kill their people, Muslim tend to shut up. When the world tries to stop them kill, they shout: INTERVENTION! Gosh!

Saya : http://www.crethiplethi.com/islamic-union-students-protest-massacre-of-libyans-by-gaddafi-regime/islamic-countries/iran-islamic-countries/2011/

http://twitter.com/#!/hsuf/status/51075936921206784


Ulil : most people killed after the US invasion of Iraq was caused by civil war between warring groups of Syiah and Sunni.

Saya : Which would not happen if Saddam was not removed by USA, right ? Gosh !

http://twitter.com/#!/hsuf/status/51070936765579264


Ulil : Who says sovereingty is a sacred principle? It’s just a modern myth. It becomes a pretext used by dictators to kill their people!

Saya : Then why bother with countries at all ? Let’s invade everyone & create Earth nation ! That’s what Nazi tried anyway.

http://twitter.com/#!/hsuf/status/51075445055172608


Ulil : Who say Arab can take care of their own problem? Is sending troops by Saudis to Bahrain to kill protestors part of that care?

Saya : Don’t tell me you forgot about Egypt already :) And Tunisia.

http://twitter.com/#!/hsuf/status/51074644026998784


Ulil – Intervention is not ideal, but less evil than letting dictators killing their people or other kind of atrocities!

Saya : And who are you to #judge other people’s affairs? Principles, like sovereignty, are there for good reason.

http://twitter.com/#!/hsuf/status/51074205999050752


Ulil : No, Saddam invaded Kuwait without approval of anyone. It was only him going mad and delusional!

Saya : WikiLeaks begs to differ with you:
http://ramanan50.wordpress.com/2011/02/02/us-asked-saddam-to-invade-kuwaitwiki-leaks/

http://twitter.com/#!/hsuf/status/51073932345876480


Ulil : First of all, Saddam invaded his neighbor, Kuwait. Forgot this? Second, he killed his own people for years. Forgot this too?

Saya : Kuwait was invaded under approval of USA. Forgot this?

http://twitter.com/#!/hsuf/status/51070300678393856


Ulil : First of all, Saddam invaded his neighbor, Kuwait. Forgot this? Second, he killed his own people for years. Forgot this too?

Saya : USA should have principles like the “Prime Directive”. Arabs now have proven that they can take care their OWN problems, right ?

http://twitter.com/#!/hsuf/status/51071240332509184

Prime Directive :

The Prime Directive is not just a set of rules; it is a philosophy and a very correct one. History has proven again and again that whenever mankind interferes with a less developed civilization, no matter how well intentioned that interference may be, the results are invariably disastrous.” — Jean-Luc Picard


Ulil : US is not an angel but it’s the only country that has the best military prowess today. And that entails responsibility.

Saya : And have they acted responsibly? So far, the Palestinians would say no.

http://twitter.com/#!/hsuf/status/51081070107561984


Ulil : Palestine problem needs separate discussion. Don’t lump everything in one basket!

Saya : Nope, it’s an excellent example of how USA does #not wield their power responsibly, but by using #DoubleStandards instead.

http://twitter.com/#!/hsuf/status/51082583580213248


Ulil : All counries practice double standard, not only the US. Even Muslims use double or even multiple standards too in judging events.

Saya : That’s no justification to make it (#DoubleStandard) right :-)

http://twitter.com/#!/hsuf/status/51083659968643072


Ulil : You haven’t said your words about what’s the best way to stop genocide. Is intevention is not justified at all in such situation?

Saya : Only on #true cases of genocide, example: Nazi vs Jews. Intervention should be an #exception not the norm !

http://twitter.com/#!/hsuf/status/51084317903953920

Genocide :
any of the following acts committed with intent to destroy, in whole or in part, a national, ethnical, racial or religious group, as such: killing members of the group; causing serious bodily or mental harm to members of the group; deliberately inflicting on the group conditions of life, calculated to bring about its physical destruction in whole or in part; imposing measures intended to prevent births within the group; [and] forcibly transferring children of the group to another group.


Ulil : And what’s that other country with no big business interest behind it that have military ability and willingness to stop atrocities?

Saya : I thought that’s what The UN are for ? (but first we need to wean them off USA’s money though)

http://twitter.com/#!/hsuf/status/51089016136802304


Ulil : What if UN, due to its lack of capability, is unable to fulfill its mission to protect lives of people from their dictators?

Saya : Then its lack of capability is our fault, and we must rectify that – empower The UN more :)

http://twitter.com/#!/hsuf/status/51098199636717568


Ulil : Yes, because US has big power, it has big responsibility to stop atrocities in Libya. Right? Who else will be able to do?

Saya : Someone else with no Halliburton/Exxon/etc piggy-backing them, preferably :)

http://twitter.com/#!/hsuf/status/51085242269843456


Ulil : And what’s that other country with no big business interest behind it that have military ability and willingness to stop atrocities?

Saya : In case of inter-national affair, The UN is the #democratic institution which has most right to take on issues on this level.

http://twitter.com/#!/hsuf/status/51098930636800000


Ulil : Killing in Libya cannot wait for the fix of UN. The moral responsibility lies now on countries with best military power.

Saya : You believe on getting to the end, no matter how / the means. That’s fine. I believe in the process.

http://twitter.com/#!/hsuf/status/51104189643898881


Ulil : Anyway, I agree with coalition’s attack to stop Qadhafie from killing his own people. You may have diff. oponion, and that’s OKAY.

Saya : I fully agree as well that you full right to have your own opinions. Thanks.

http://twitter.com/#!/hsuf/status/51081279692738560

SOLUSI: Wifi lambat di Ubuntu Linux

Tadi pagi saya melakukan transfer file dari komputer server di rumah via Hotspot. Tapi, kecepatan transfer yang didapat hanya sekitar 100 KBps. Lho, kok parah sekali ya ? Hm…

Untungnya di Linux, kita bisa cari tahu sumber masalahnya dengan mudah.
Jadi, mari kita buka layar Terminal :) dan ketikkan perintah berikut ini di komputer server tersebut :

iwconfig wlan0

Maka kemudian muncul informasi berikut ini di layar Terminal di komputer :

$ iwconfig wlan0
wlan0 IEEE 802.11abg ESSID:"linksys007"
Mode:Managed Frequency:2.462 GHz Access Point: 00:1C:10:66:CC:44
Bit Rate=1 Mb/s Tx-Power=14 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=47/70 Signal level=-63 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Aha, langsung kelihatan ada informasi yang menarik disitu : Bit Rate=1 Mb/s, ternyata Wifi di komputer server kecepatannya saat ini hanya 1 Mbps = 128 KBps.
Pantesan lambat sekali :)

Solusinya mudah sekali, yaitu cukup ketik baris berikut ini di Terminal untuk set kecepatan Wifi server menjadi 54 Mbps :

sudo iwconfig wlan0 rate 54M

Selesai !
Setelah itu proses transfer file dari komputer server tersebut langsung ngebut tidak terkira :D sukses !

IPv6-ready : Yours Truly

Thanks to a new facility in Dreamhost.com, this blog is now IPv6-ready ! :)

(1) “What’s the meaning of that ?“. Well, basically now you can also access this blog via its IPv6 address, which is :

2607:F298:0001:0107:0000:0000:02FF:2B5A

(2) “Cool ! I’d like to do that too, how ?” – if your website is hosted in Dreamhost.com as well, then it’s really easy.

On the “Manage Domain” menu, find your domain name; then click “Add IP” link. See the screenshot on the right for example.

And that’s it :)

(3) “Why ?” – alright, this will take some time. Bear with me :)

This morning, I got news that IANA just handed it’s last IP blocks to APNIC. Now they have ZERO block available for further allocation.

It may sound nothing of importance, until you find out that the Internet runs on IP addresses :)

Imagine for a moment, if houses have no street names, and no number. How would Mr. Postman deliver the packages ?

Same thing with Internet – when new IP address / street names are no longer available, you can not build new streets. Therefore, we’ll be stuck with existing streets only.

The Internet will stop growing.

This may still sound like nothing of importance though – until you realize that, in the last few years, The Internet has been expanding like an exploded nuclear bomb. Suddenly, everyone and their pet got connected to the Internet – Facebook, Twitter, etc.
Suddenly, we can do everything on the Internet – do groceries, buy car (I know I did), revolt (hello Tunisians & Egyptians), shop for music, watch TV, do Xmas shopping, play games with friends, get involved in many communities, etc.

A sudden halt to all these can have a devastating impact to many. Especially businesses, big & small ones alike.

Thankfully, the clever people of The Internet has foresaw this, and devised the solution since 1996. Let us welcome The IPv6.
While IPv4 only has 4 billion of available addresses, IPv6 have 340 undecillion addresses.

“340 undecillion addresses” – to find out how many that is, try writing “34″ followed by 37 zeroes. No, I don’t feel like writing out THAT many zeroes :) so, you do that, heh.
Another way to imagine that kind of number is this – if IPv4 is the size of a golf ball, then IPv6 is the size of the Sun (and remember that 1 million Earths can be fit inside the Sun !)

Crazy, I know. But better to overkill rather than face this exhaustion problem again, right ? Right ?

Anyway, back to IPv4 — with the old addresses taken & gone with such speed, we need to start transition to IPv6, like, YEARS ago. But somehow many of us managed not to.
Sure, many of the foundations are ready & in places – the routers, Linux, etc. However, if the houses themselves continue to ignore IPv6, then we’ll risk a parallel Internet : A vast IPv6 world with nothing in it, and a small IPv4 world, crowded & jammed.

So I decided to chip in and do my bit – I’ve booked an IPv6 address for my blog. So when the world moved to IPv6, then this website is ready to welcome you.

Let’s start moving ! :)

Happy 10th Birthday !

How time flies ! I just realized that today marked the 10th birthday of this blog – yes folks, I’ve been blogging for 10 years now. Wow !

If this blog is a kid, he’d be on 5th grade now, he he.
If it’s a car though, then it’s probably time to change to a new one, oops :D just kidding, I have had so much fun here, no way I’d left this blog alone.

So I’d like to say THANK YOU, my loyal visitors, for making this blog as it is today. I’ve got an amazing amount of feedback, critiques, information, and even awesome stories, from YOU. Not even money would get me that, it’s so priceless.

Thank you again, and here’s hoping for an even brighter future for all of us.
Cheers !

Broken HardDisk ? Maybe Not :)

Have you ever got error messages in Windows / Linux, similar to these ?

ata1: soft resetting link
ata1: link is slow to respond, please be patient
Buffer I/O error on device sda, logical block 0
ata1: device not ready (errno=-16), forcing hardreset
[sda] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
end_request: I/O error, dev sdb, sector 0
ata1: SRST failed
ata1.00: exception Emask 0×0 SAct

Usually the first thing that came to my thought was “damn, the hard disk is toast” :)

Turned out, in many cases, it’s NOT so. The hard disk is actually is still okay.
It’s just not set up right !

Thankfully, we can fix this very easily in Linux.
One / several of the following kernel parameters listed below may fix the problem we encountered above :

  1. libata.dma=0
  2. acpi=off
  3. noapic
  4. nolapic
  5. irqpoll
  6. pci=nomsi

If you don’t know which is the right one, it should be quite safe to try them one by one.

In my most recent case, point #1 solved the problem.
Turned out the motherboard (not the hard disk) is not very reliable, so we need to turn off DMA. Usually, this can be done via the BIOS. Imagine my surprise when I found that the BIOS is very, Very sparse ! It’s almost impossible to set anything.

Thanks to Linux, I was still able to disable DMA, via said kernel parameter instead (libata.dma=0)
The computer is now performing flawlessly. :)

Waiiiiit a minute – how do I set the kernel parameter ??

Good question. Follow these steps if you’re using Ubuntu Linux :

  1. Open the Terminal (Application – Accessories – Terminal)
  2. type : sudo nano /etc/default/grub
  3. Look for the following line : GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
  4. Add the kernel parameter(s) that you may need. Example : GRUB_CMDLINE_LINUX_DEFAULT=”quiet libata.dma=0 splash”
  5. Press Ctrl – O to save the change, then press Ctrl – X to quit the nano editor.
  6. Now we need to update the boot manager. Type : sudo update-grub
  7. Done ! On the next restart, the kernel parameter will come into effect.

Still experiencing problems ?

Remember, the hard disk is just a component in the PC. Although the error messages came from the hard disk – the actual problem can reside elsewhere along the data pipeline.

For example, once I was troubleshooting an unreliable hard disk. Turned out the culprit was the IDE cable ! Once replaced, everything went alright.

So in case of hard disk related problems, here are some things that you can try first :

  1. Fasten the cables.
  2. Replace the cables.
  3. Try a different SATA / hard disk port on the motherboard.
  4. Make sure that the power supply actually provides enough power for all of the components in the PC.

Have tried all the above, but still experiencing problem with the hard disk ? Then you can be more certain that indeed now the culprit is the hard disk itself :) and not some other things instead.

Hope this post will have saved you a hard disk / SSD drive. Happy troubleshooting ! :)

Cara Mudah Mengingat Password

Akhir-akhir ini makin marak kasus pembobolan account di Internet. Ada pejabat yang account Facebooknya dibobol. Ada artis yang account Yahoo nya jebol, dan kemudian dipakai untuk menipu orang lain.
Dan banyak lagi berbagai kasus lainnya.

Salah satu hal yang bisa membantu mengurangi resiko terjadinya insiden ini adalah password yang aman. “Aman” disini maksudnya adalah bahwa password tersebut sulit untuk ditebak. Contoh: pejabat yang kebobolan account Facebooknya itu passwordnya ternyata adalah tanggal lahirnya :)

Sialnya, password yang aman itu cenderung susah diingat.
Contoh: j#as65mj – password ini bagus & aman. Tapi, siapa yang bisa mengingatnya ?

Dan, setiap account musti dilindungi oleh password yang berbeda. Jika tidak – maka ketika satu password tersebut ketahuan, tentu saja semua account kita di berbagai lokasi juga bisa dijebol.
Jadi, melindungi account-account kita dengan satu password, disebut juga “Master Key”, ternyata berbahaya ?

Jangan cemas. Sebenarnya, dengan sebuah trik sederhana, kita bisa membuat password-password yang aman, dan tetap mudah di ingat – dengan memanfaatkan sebuah software Open Source bernama sha1sum.

Caranya mudah sekali :

  1. Pilih sebuah Master Key. Contoh: guekeren2011 :D :P
  2. Nah, kini tinggal tambahkan nama account ybs ke Master Key tsb. Contoh: guekeren2011:yahoo.com
  3. Encode kalimat diatas dengan sha1sum
  4. Hasilnya adalah karakter yang sangat acak.
  5. Ambil 8 karakter awalnya saja sebagai password untuk account tsb (dalam contoh ini: yahoo.com)
  6. Selesai !

Jadi, Anda cuma perlu mengingat 1 Master Key saja ! :D

Tapi, cuma bicara saja mungkin masih belum jelas. Mari kita langsung lihat bagaimana sebetulnya ini bisa terjadi :

$ sha1sum
guekeren2011:yahoo.com
Ctrl-D Ctrl-D
dc3626448295e029232187c08296d4ffcc4c3308
$

Simpel ya ? Hanya dengan satu perintah sha1sum saja, kita dapatkan password yang bagus & aman untuk account kita di Yahoo.com – yaitu dc362644.

Mari kita coba lagi :

$ sha1sum
guekeren2011:gmail.com
Ctrl-D Ctrl-D
f0e0c52f36d90f29d2b3d22dacedc6b80a473ade
$

Nah, ternyata untuk gmail.com, sha1sum menghasilkan password f0e0c52f

Tentu saja, ini tidak terbatas hanya untuk website. Bisa juga misalnya untuk password brankas Anda :)
Atau, PIN rekening / ATM Bank. Dst, dst.

Contoh :

$ sha1sum
guekeren2011:BCA
Ctrl-D Ctrl-D
e9bdce348d445ffd8c36b9d0268011d7a17cf2e0 -
$

Untuk ATM Bank, kita perlu 6 angka (tidak bisa huruf), jadi kita ambil 6 angka pertama – dalam contoh ini berarti adalah 934844 :)

“Wow keren”, mungkin Anda akan bilang demikian. “Tapi ngomong2, program sha1sum ini bisa dapat dimana ya ??”

Pertanyaan yang bagus !

  1. Bagi pengguna Windows : sha1sum bisa didapatkan dari Website GNU Privacy Guard :http://tlk.lv/sha1sumForWindows
    ftp://ftp.gnupg.org/gcrypt/binary/sha1sum.exe
  2. Bagi pengguna Linux : sha1sum sudah ada built-in / disertakan :)
  3. Bagi pengguna Mac OS X : sha1sum tidak disertakan, dan instalasinya cukup sulit. Solusinya, ganti saja sha1sum dengan openssl dgst -sha1 di Terminal
  4. Pengguna Handphone / Smartphone / Nintendo DS / Sony PSP / malas download sha1sum ? Silakan gunakan situs ini :)

    http://tlk.lv/PasswordKeren
    http://www.ideaspace.net/misc/hash/

  5. (ketikkan <masterkey>:<account> di kolom dengan tulisan “Enter your email address here“, lalu klik tombol “SHA1″)
    (terimakasih Donny Kurnia, iang, dan Richard untuk infonya)

Jadi, mari kita mulai amankan password kita.
Pilih Master Key yang aman, mudah diingat – tapi, susah ditebak orang lain. Lalu selanjutnya biarkan sha1sum yang membantu Anda :)

Semoga bermanfaat !

Masalah Transportasi di Jakarta

Lagi blogwalking, tiba-tiba menemukan posting yang membahas mengenai masalah transportasi di Jakarta. Ketik komentar – lho, kok malah jadi seperti posting artikel blog ya :D panjang banget, hehe.

Terlampir adalah komentar saya tersebut, yang aslinya diposting disini .

Semoga bermanfaat.


Tahun 2002, New Delhi (India) sudah memiliki MRT (Mass Rapid Transport system) sebanyak 4 jalur.
Padahal, kotanya lebih lengang daripada Jakarta.

Jakarta ? Baru survei :(
Selesainya entah kapan, kalau tidak salah, 2020 untuk jalur pertama (Lebak Bulus – Kota)

Ya, sudah terlambat. Sudah terlanjur deadlock duluan.

Untuk perspektif :

NEGARA Malaysia : 28 juta penduduk
Kota Jakarta : 24 juta penduduk
(ref: Wikipedia)

Jakarta sudah SANGAT amat terlambat memiliki MRT. Seharusnya, kalau menilik contoh New Delhi, kita sudah memiliki MRT dari SEBELUM tahun 2000.

Menilik daftar Gubernur Jakarta selama ini (1), berarti ini eksklusif adalah kesalahan pasangan Sutiyoso & Fauzi Bowo.

Kenapa MRT ?

Karena hanya MRT yang mempunyai cukup kapasitas untuk memenuhi kebutuhan transportasi kota Megapolitan seperti Jakarta.

Per jalur MRT memiliki kapasitas 50.000 / penumpang / jam.
Jadi, setiap jalur MRT akan bisa melayani sekitar 500.000 penumpang / hari.

Ini JAUH diatas solusi lainnya. SELURUH jalur Busway yang ada baru hanya bisa melayani 200 ribu penumpang / hari (2). SANGAT sedikit dibawah kapasitas bahkan 1 jalur MRT.

Padahal, Singapura saja sudah memiliki 4 jalur MRT.

Dan, Busway memiliki banyak masalah yang tidak ditangani dengan benar. Kita sudah coba sendiri, seperti halte yang sangat tidak nyaman, sesak. Bis yang entah kapan muncul & selalu penuh, dst.
Masalah ini tidak ada pada MRT, seperti yang sudah saya coba di Singapura & London.

Solusi selain MRT – busway, monorail, dll – hanya akal-akalan & permainan saja; karena TIDAK akan mencukupi kebutuhan transportasi penduduk Megapolitan Jakarta, yaitu 17.500.000 penumpang / hari (2).

Setelah MRT

Setelah adanya MRT, yang didukung oleh jaringan transportasi publik yang baik & nyaman (Park & Ride, jalur transportasi dari kota-kota satelit, Hilangkan sistim Setoran, dst), maka otomatis pengguna mobil pribadi akan beralih ke transportasi publik.

Saya sendiri ketika sedang bekerja di luar negeri lebih sering menggunakan transportasi publik.
Karena nyaman, biayanya terjangkau, dan tepat waktu.
Sejak 2002, saya juga rutin ke kantor menggunakan sepeda, di jalur khusus sepeda yang disediakan di waterway Birmingham. Padahal, saya memiliki sebuah MPV / mobil ukuran cukup besar.

Jakarta butuh solusi transportasi PUBLIK yang MASSAL & berkapasitas besar. Bukan yang ecek-ecek / kecil-kecilan seperti Busway & Monorail.

Oh ya, beberapa hari yang lalu, ketika sedang terjebak macet di Mampang, saya lihat mobil HUMMER di sebelah saya plat nya adalah “B16 70SO”, dan ada stiker “Granat / Gerakan Anti Narkotika”

Apakah ini mobilnya Sutiyoso ? Jika ya, berarti dia sudah menikmati warisannya sendiri – macet total di Jakarta, bersama saya ketika itu :)

Maaf jadi panjang lebar disini :)

(1) http://id.wikipedia.org/wiki/Daftar_Gubernur_Jakarta

(2) http://www.ylki.or.id/Articles/view/smart-card-dan-pemiskinan-rakyat

Maksimalkan Potensi Twitter : Tips & Trik

(posting ini adalah bagian dari tantangan #blog31hari)

Nyaris semua orang kini tentunya sudah pernah mendengar Facebook. Atau Twitter. Bahkan mereka yang berada di kampung sekalipun – pembantu saya bercerita bahwa kawan-kawannya sudah memiliki account Facebook, berkat koneksi Internet dari handphone mereka.

Tapi yang sedang naik daun saat ini adalah Twitter. Siapa sangka situs yang sederhana ini ternyata bisa sedemikian suksesnya menyambungkan sekian puluh juta orang dengan yang lainnya.
Dan siapa sangka juga, ternyata Jakarta adalah ibukota Twitter di Asia – tidak ada kota di Asia lainnya dengan pengguna Twitter yang lebih banyak daripada Jakarta. Wow !

Nah, seperti biasa, saya selalu berusaha mencari manfaat dari setiap alat / fasilitas yang saya dapatkan. Sama juga dengan Twitter – selama beberapa waktu, saya berusaha mencari-cari manfaatnya. Dan yang saya temukan ternyata cukup menakjubkan !

Berikut ini adalah beberapa contohnya :

  • Informasi Lokal : dengan Twitter, kita jadi bisa menemukan informasi yang relevan di lokasi kita. Contoh: saat ini saya follow account @infobintaro. Dari sini, saya mendapatkan sangat banyak informasi seputar Bintaro. DAN saya bisa bertanya – yang lalu akan dijawab oleh para follower yang juga berada di daerah yang sama.

    Ini sangat bermanfaat — saya kemarin ini berhasil menemukan ahli service AC & laptop komputer yang bagus, berkat bantuan dari para follower @infobintaro ini.
    Juga informasi lainnya yang mungkin dirasa tidak penting – namun tetap bermanfaat ketika kita butuhkan; seperti: rekomendasi tukang nasi goreng yang enak :) dan info-info lainnya.

  • Kontak dengan Aparat negara : Ya, banyak aparatur negara yang sekarang juga sudah bisa diakses via Twitter :)

    Salah satu contoh terbaiknya adalah @TMCPoldaMetro. Ada beberapa pengalaman yang sangat menggembirakan dari rekan-rekan di account ini.

    Contoh: Suatu hari saya mengalami deadlock di suatu daerah di Jakarta Selatan. Deadlock adalah kemacetan dimana semua arus lalu-lintas saling terkunci, tidak ada satu pun yang bisa bergerak.
    Saya terjebak selama sekitar 1 jam di mobil saya. Sambil menunggu, terpikir oleh saya untuk menyampaikan ini. Maka saya mengkontak @TMCPoldaMetro, mengusulkan agar di simpang tersebut bisa diadakan lampu lalu lintas. Sehingga di masa depan tidak akan terjadi deadlock lagi di lokais tersebut.

    Tanpa disangka, dalam waktu singkat pesan saya tersebut langsung di reply – dan sudah ditindak lanjuti. Wow ! :D

    Walaupun realisasinya memang tidak bisa seketika – karena ternyata lampu lalu lintas itu pengadaannya dilakukan oleh Dinas Perhubungan; tapi ini adalah hal sangat menarik bagi saya. Kita bisa mengkontak aparat negara, dan komunikasi yang terjalin berlangsung dengan amat simpatik.
    Luar biasa.

    Satu lagi pengalaman saya adalah ketika terjebak kemacetan di simpang Pondok Indah – Pondok Pinang Center. Lampu merah di simpang tersebut yang ke arah Bintaro ternyata sangat lama merahnya, sementara hijaunya hanya beberapa detik. Padahal, pada peak-hours, arus lalin dari arah ini amat padat.
    Maka saya mengirimkan pesan kepada @TMCPoldaMetro mengabarkan situasi ini.

    Seperti biasa, pesan saya langsung di reply dengan simpatik.
    Yang LUAR BIASA – beberapa hari kemudian lampu merah di simpang tersebut sudah dibetulkan setting waktunya. WOW ! :D
    Kini kemacetan di lokasi tersebut sudah tidak separah sebelumnya lagi.

    Salut kita sampaikan kepada rekan-rekan kita aparat negara, yang sangat piawai memanfaatkan kemajuan informasi untuk kebaikan kita semua.

  • Komunikasi dengan Pejabat : Kita mungkin masih ingat beberapa waktu yang lalu ketika Presiden SBY memberikan nomor handphone nya kepada publik, sehingga kita bisa menghubungi ybs melalui nomor tersebut. Yang terjadi kemudian adalah banjir SMS ke nomor tersebut dengan sangat deras :) sehingga dalam waktu singkat handphone tersebut menjadi hang :D

    Nah, kini ternyata sudah ada beberapa pejabat tinggi negara yang memiliki account Twitter. Misalnya, Menkominfo, Tifatul Sembiring, di @tifsembiring.
    Dengan memanfaatkan Twitter, maka insiden tersebut diatas tidak bisa lagi terjadi.
    Dan komunikasi antara Pejabat dengan Rakyat bisa berlangsung dengan lebih lancar. Kini mereka jadi bisa mendapatkan informasi LANGSUNG dari rakyatnya – tanpa perantara yang mungkin akan membelokkan informasi yang sebenarnya.

    Tunggu apalagi? Mari kita manfaatkan :)

  • Informasi TERBARU : Di Internet, ada istilah basbang – BASi BANGet. Yaitu ketika suatu informasi yang disampaikan sebetulnya sudah, er, basi :)

    Dengan Twitter, ini tidak terjadi lagi. Berbagai kejadian terbaru kadang bisa langsung muncul di Twitter, jauh sebelum kemunculannya di media massa lainnya – TV, koran, dll
    Contoh: pada kasus bom Marriot, informasinya sudah lebih dulu muncul di Twitter, bahkan SEBELUM helikopter polisi / TV tiba di lokasi. Wow.

    Dengan Twitter, maka kita jadi bisa selalu up to date. Saya pribadi saat ini tidak memasang TV di rumah, dan tidak merasa rugi sama sekali. Terimakasih Twitter.

  • Informasi DISKON : Ingin belanja, tapi malas membayar mahal ? Dengan bantuan Twitter, maka kita jadi bisa selalu mendapatkan harga Diskon ! :D

    Caranya mudah saja, cukup follow @DiskonJakarta. Maka Anda akan selalu mendapatkan informasi diskon terbaru di kota Jakarta.
    Dan tidak hanya sembarang diskon – misalnya; siapa sangka ternyata diskon 100% itu ada ! :D

    Mari kita belanja dengan cerdas, follow @DiskonJakarta :D

Masih ada lagi, tapi mungkin untuk sementara itu dulu. Menarik sekali ya ?

Nah, bagaimana dengan Anda? Ada tips / trik untuk menggali manfaat dari Twitter juga ?
Silahkan berbagi dengan kita semua ! Thanks :)

Puisi Si Umar

(posting ini adalah bagian dari tantangan #blog31hari)

Beberapa minggu yang lalu saya membelikan Umar mainan Airsoft gun berbentuk Shotgun P288. Dia senang sekali, dan memainkannya dengan riang gembira.

Kemarin, dia sedang belajar B.Indonesia, dan salah satu materinya adalah Puisi. Saya katakan, coba lah membuat puisi, tentang apa saja. Lalu saya ajarkan bentuk-bentuk puisi sederhana.

Hasil kolaborasi Umar & saya adalah sbb :

SHOTGUN KU

Shotgun Umar baru
Sangat keren dan bau
Sampai dirumah hari Sabtu
Kupakai untuk menembak Papa ku

Lumayan…. :) :)

Uruguay Sukses Implementasi Program “One Laptop Per Child” (OLPC)

(posting ini adalah bagian dari tantangan #blog31hari)

Dari BBC :
http://news.bbc.co.uk/2/hi/technology/8309583.stm

Hebat ! Uruguay telah sukses mengimplementasi OLPC (One Laptop Per Child) programme. Laptopnya menggunakan Linux, tentu saja :)

Dikutip :

“The Uruguay programme has cost the state $260 (£159) per child, including maintenance costs, equipment repairs, training for the teachers and internet connection.

The total figure represents less than 5% of the country’s education budget.

Around 70% of the XO model laptops handed out by the government were given to children who did not have computers at home.”This is not simply the handing out of laptops or an education programme. It is a programme which seeks to reduce the gap between the digital world and the world of knowledge,” explained Miguel Brechner, director of the Technological Laboratory of Uruguay and in charge of Plan Ceibal.”

“Its a culture shock scenario – many countries are simply too scared to put it into practice Miguell Brechner, head of Plan Ceibal”

“Now that all the schoolchildren have their computers, the authorities say that they will endeavour keep the schools connected, particularly those in rural areas, where many still do not have internet access.”

Mudah-mudahan bisa ditiru oleh Indonesia. Misalnya; dimulai dari program PROTON (Program Realisasi One Teacher One Netbook) dulu.
Lalu kemudian baru dilanjutkan dengan implementasi yang lebih luas lagi.

Semoga bisa menjadi kenyataan. Mari bersama-sama kita usahakan :)

Awas ! Virus bisa meludeskan Harta & Karir Anda !

(posting ini adalah bagian dari tantangan #blog31hari)

Ini kisah sedih Michael Fiola – suatu hari laptopnya kena virus, dan lalu jadi mengunduh foto-foto paedophilia (child pornography) secara otomatis, tanpa dia ketahui sama sekali.

Tiba-tiba dia menjadi tersangka penjahat. Dia dipecat dari pekerjaannya. Orang-orang tak dikenal menganggapnya pedofil dan menteror dia beserta keluarganya. Kawan-kawannya menjauh darinya.
Dan dia diseret ke pengadilan…..

Dia menghabiskan US$ 250.000 (sekitar Rp 2,5 milyar) untuk membela dirinya.
Tabungannya ludes. Mobilnya terpaksa dijual. Rumahnya tergadai di Bank.

11 bulan kemudian, baru ketahuan ternyata foto-foto porno tersebut ada di laptopnya karena virus. Michael Fiola TIDAK bersalah !

Tapi sudah terlambat.

Kehidupan keluarga Michael Fiola sudah berantakan. Hancur.

Kemarin kejadian serupa menimpa beberapa kawan saya.
Password ke account Emailnya dicuri virus. Tentu mereka jadi amat kaget dibuatnya. Ada yang jadi tidak bisa lagi mengakses emailnya. Semua arsip emailnya menjadi lenyap tidak berbekas.

Ini MUNGKIN bisa dihindari dengan memasang Anti-Virus + Firewall + Anti-Spyware + Anti-Trojan. Mungkin.
Setelah melakukan ini semua pun, tetap saja virus masih bisa masuk ke komputer Anda.

Atau, gunakan Linux di komputer Anda.

Berbeda dengan dulu, Kini Linux sudah sangat mudah kita gunakan. Anak saya sejak umur 3 tahun sudah biasa menggunakannya sehari-hari. Di rumah kami tidak ada lagi komputer yang kena virus. Saya bebas pusing. Dan semua pun senang karena tidak lagi diganggu virus / spyware.

Semoga kita semua bisa selamat dari fitnah di dunia maya ini, Amin.

Berita selengkapnya :
http://www.opposingviews.com/i/how-pedophiles-can-infect-your-pc-with-child-porn

Read the rest of this entry »

            








SEObox: Web Hosting Murah Unlimited Komik Indonesia Homeschooling Indonesia
100mg viagra onlineBuying viagraGeneric phentermine without prescriptionTramadol overnight deliveryOrdering propecia onlineCheap soft viagraStreet value of tramadolViagra pills without prescriptionBuy generic viagra onlinePrescription xanax online