Red Hat: Bagaimana menginstall subversion

February 10, 2010


Bagi kalangan developer, subversion pastilah sudah menjadi suatu tools kebutuhan. Digunakan sebagai kontrol versi dari aplikasi yang mereka kembangkan. Kemarin, saya diminta untuk menyiapkan server subversion disalah satu mesin development. Sebelumnya saya blm pernah menginstall subversion. Namun sekali lagi, dengan dibantu paman google untuk menemukan site – site yang bisa saya gunakan sebagai referensi. Akhirnya setelah seharian ngoprek, selesai juga svn servernya. Whaat, seharian svn doang!! err.. amatir banget yah.. :oops:

And this is my note’s:

Step 1 ~
Install paket mod_dav_svn dan subversion.

[root@sandradewi ~]# yum install mod_dav_svn subversion

Step 2 ~
Menyiapkan direktori svn.

[root@sandradewi ~]# mkdir /var/www/svn
[root@sandradewi ~]# cd /var/www/svn
[root@sandradewi ~]# svnadmin create repos
[root@sandradewi ~]# chown -R apache.apache repos

Direktori /var/www/svn saya siapkan sebagai parent direktori dari project2 yang akan dibuat repositorynya. Sedangkan command svnadmin create repos digunakan untuk membuat project repositorynya dan akan membuat direktori repos didalam folder svn tersebut.

Step 3 ~
Konfigurasi subversion.conf. Ada 2 cara untuk mengakses subversion url nantinya. Dengan otentikasi atau tanpa otentikasi. Edit dan simpan file subversion.conf menjadi sebagai berikut.
Dengan otentikasi:

-- /etc/httpd/conf.d/subversion.conf --

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn/repos/>
DAV svn
SVNPath /var/www/svn/repos
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /etc/svn-auth-conf
Require valid-user

</Location>

-- eof --

Tanpa otentikasi:

-- /etc/httpd/conf.d/subversion.conf --

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn/repos/>
DAV svn
SVNPath /var/www/svn/repos
</Location>

-- eof --

Step 4 ~
Pada konfigurasi menggunakan otentikasi diatas terdapat baris AuthUserFile /etc/svn-auth-conf. File tersebut digunakan untuk menyimpan username dan password untuk mengakses svnnya. Sekarang, mari kita buat username dan password untuk login kesvn.

[root@sandradewi ~]# htpasswd -m /etc/svn-auth-conf onay
New password:
Re-type new password:
Adding password for user onay

[root@sandradewi ~]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

Options htpasswd -m digunakan pertamakali untuk membuat file svn-auth-conf nya. Selanjutnya kalau mau menambahkan user baru cukup gunakan perintah htpasswd /etc/svn-auth-conf newuser. Dan terakhir restart service httpdnya. Untuk mencobanya, arahkan browser ke ipservernya: http://ipsvnserver/svn/repos/ bila tidak ada yang salah maka anda akan menjumpai login screen, dan bila berhasil login akan tampil tampilan seperti ini:

Bila tampilannya tidak seperti diatas, tapi malah terlihat folder2 didalam direktori repos tersebut kemungkinan masih ada yang salah pada setting path di subversion.conf nya. Typo itu juga yang saya alami, dan jadi butuh seharian ngopreknya. :cry:
But, if you never get a mistakes then you don’t have a chance to learn deeper isn’t it? :wink:

Salam.

Ref: http://wiki.centos.org/HowTos/Subversion


My En Blog

February 8, 2010

Banyak blogger – blogger indonesia yang saya lihat punya blog berbahasa inggris sendiri. Bukan bermaksud untuk ikut – ikutan, akhirnya saya juga membuat blog berbahasa inggris saya sendiri. It’s will be my non technical blog. Cuma postingan ringan dari apa yang sedang terlintas dipikiran saya. Sedangkan blog ini adalah, catatan teknis pekerjaan saya sebagai seorang sysadmin. Saya tetap tulis menggunakan “Bahasa” karena tutorial yang saya tulis kebanyakan sudah melimpah ruah dalam bahasa inggris. Jadi, sedikit mubazir kalau saya tulis juga dalam bahasa inggris.

Anywho, ini dia my en blog..

http://endudulz.wordpress.com

Sedikit catatan, kalau anda adalah seorang english perfectionist maka sangat tidak disarankan untuk membacanya. Karena pasti anda akan banyak menemukan kesalahan grammar pada tulisan saya nanti. Dan saya juga akan sangat menghargai jika nanti ada yang mengoreksi grammar pada tulisan saya. :mrgreen:

Ok, then.. Happy monday.

Have a bloody work. :wink:


Apa itu umask?

February 5, 2010

Here we go. Another simply note’s.

Setiap pagi sebelum berangkat kerja saya suka mengobrol tentang linux dengan teman sekamar saya. Kebetulan beliau sedang semangat2nya belajar linux. Dan pagi itu dia bertanya tentang apa itu umask? Emmn.. Saya tidak bisa langsung menjelaskannya saat itu. Karena saya juga sudah lupa detail perhitungannya. Yang saya jelaskan adalah fungsi umask sebagai default permission disystem2 unix/linux.

So, buat teman saya. With a little googling, here’s the explanation about what you ask. Have a nice read.. :wink:

Umask:
Pernahkah terbayang, begitu kita membuat suatu file dilinux misal $ touch coba.tes maka hak aksesnya akan seperti bagaimana? Dan mengapa bisa hak aksesnya langsung seperti itu? Seperti contoh:

[onay@sandradewi ~]$ touch coba.tes
[onay@sandradewi ~]$ ll
total 0
-rw-rw-r-- 1 onay onay 0 Feb 5 20:48 coba.tes

Permission pada file coba.tes yang baru saya buat adalah -rw-rw-r-- atau bisa juga disebut 664. Yang jadi pertanyaan adalah, mengapa permissionnya bisa 644, kenapa bukan 755 atau yang lainnya?

Pada wikipedia dijelaskan Umask, singkatan dari (user mask) adalah sebuah command pada environment posix yang berfungsi untuk menset hak akses dari file yang akan dibuat oleh proses yang berjalan saat itu. Umask, memberi batasan hak akses untuk file dan direktori yang dibuat oleh suatu proses. Ketika shell atau program lain membuat suatu file atau direktori, umask memberikan permission tertentu.

Kembali kepertanyaan saya sebelumnya, jawabanya adalah karena sudah didefine default permissionnya dengan menggunakan umask. Pada mesin redhat yang saya gunakan untuk testing ini, settingan default permissionnya terdapat pada file /etc/bashrc. Pada file tersebut disetting umask 002 untuk user dan umask 022 untuk root. Nah, apa ini 002 atau 022?

Begini ceritanya.. :lol:

Ada dua macam cara pengoperasian umask. Yang pertama menggunakan symbolic umask dan yang kedua menggunakan nomer octal. Berikut saya berikan kedua contohnya:

Symbolic umask ~
Symbolic umask, menggunakan simbol huruf u=rwx,g=rwx dan o=rwx. Yang artinya u = user, g = group dan o = others. Sedangkan rwx adalah read, write dan execute. Sama seperti pada command chmod. Contohnya:

[onay@sandradewi ~]$ umask u=rwx,g=rwx,o=
[onay@sandradewi ~]$ mkdir co
[onay@sandradewi ~]$ touch ba
[onay@sandradewi ~]$ ll
total 4
-rw-rw---- 1 onay onay 0 Feb 5 23:27 ba
drwxrwx--- 2 onay onay 4096 Feb 5 23:27 co

Dengan perintah diatas, maka setiap file yang dibuat menjadi -rw-rw—- dan folder yang dibuat menjadi drwxrwx—. Yang jadi pertanyaan adalah, kenapa pada file menjadi -rw-rw—-, bukannya -rwxrwx—? Ternyata ada perlakuan berbeda pada umask untuk file dan folder. Untuk folder maksimal permissionnya adalah u=rwx, g=rwx, o=rwx atau 777 sedangkan pada file adalah u=rw, g=rw, o=rw atau 666. Jadi walaupun pada command diatas umask adalah rwx maka hasilnya akan menjadi rw untuk file dan baru rwx untuk folder.

Octal umask ~
Octal umask, menggunakan 4 digit bilangan octal. Tapi pada prosesnya hanya 3 digit yang dipakai. Untuk file, maksimal adalah 0666 dan 0777 untuk folder. Contohnya:

[onay@sandradewi ~]$ umask 000
[onay@sandradewi ~]$ mkdir co
[onay@sandradewi ~]$ touch ba
[onay@sandradewi ~]$ ll
total 4
-rw-rw-rw- 1 onay onay 0 Feb 6 01:19 ba
drwxrwxrwx 2 onay onay 4096 Feb 6 01:19 co

000 pada octal umask ini maksudnya adalah rw atau 666 untuk file dan rwx atau 777 untuk folder. Cara perhitungannya adalah:
Untuk file, maksimal adalah 666. Jadi bila octalnya 002 maka real permissionnya menjadi rw,rw,r atau 6-0,6-0,6-2 = 664. Untuk folder adalah 777, bila octalnya 022 maka real permissionnya menjadi rwx,rx,rx atau 7-0,7-2,7-2 = 755. Gampang kan? :cool:

Begitulah kira2. Bila masih kurang jelas bisa merujuk langsung referensi saya disini dan disini. Semoga mengerti dan semoga bermanfaat.

Have a nice weekend!!

Cheers. :P


Red Hat: Membuka port vsftp pada IPtables

February 3, 2010

Yes, it’s an another simply note’s.. :wink:

Default ftp server pada sitopi merah ini adalah vsftpd. Ftp server agak sedikit berbeda cara kerjanya. Ga cukup dengan cuma membuka port 20 dan 21. Ada dua modus kerja ftp, yaitu active dan pasive. Berikut link yang bagus dalam menjelaskan cara kerja ftp.

Setelah menginstall vsftpd, file2 konfigurasinya terdapat pada /etc/vsftpd. Ini link penjelasan isi file konfigurasinya. Untuk membuat vsftpd menerima pasive connection adalah dengan menambahkan 2 baris berikut pada /etc/vsftpd/vsftpd.conf

pasv_min_port=12000
pasv_max_port=12003

Default value pada pasv_min_port dan pasv_max_port ini adalah 0. Sehingga kita harus menentukan range port yang mau dipakai sendiri agar ftp server bisa melisten passive mode request dari ftp client.

Ok, sekarang tinggal melist port yang dibutuhkan, berarti semuanya adalah port tcp 20, 21, dan 12000-12003.

Ada cara mudah untuk mengallow port pada redhat. Redhat pada defaultnya sudah mempunyai rule iptables sendiri yang disimpan pada file /etc/sysconfig/iptables. Sebenarnya kita tidak harus mengerti detail command iptables, cukup gunakan contoh rule yang sudah ada. Dan trik inilah yang juga saya pakai pada ujian rhce kemarin. :wink:

Edit file /etc/sysconfig/iptables dan tambahkan seperti yang saya cetak tebal dibawah.

-- /etc/sysconfig/iptables --
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 12000:12003 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

Ok, sekarang tinggal restart service2nya.

# /etc/init.d/vsftpd restart
# /etc/init.d/iptables restart

That’s all. Ga susahkan. I think that everyone can be a sysadmin. What all you need is just google. :lol:

Good luck.


Red Hat: Bagaimana menginstall java dengan alternatives

February 1, 2010

Ok, another simply notes.

Seperti pepatah “banyak jalan menuju roma”, banyak jalan cara juga untuk menginstall java. :grin: Tapi kebanyakan intinya sama, yaitu extract, install dan setting path.

Sebenarnya ada cara lain yang lebih elegan juga, menurut saya. :cool: Yaitu menggunakan tool “alternatives”.

Perintah alternatives, yang saya kutip dari manualnya adalah:

NAME
alternatives – maintain symbolic links determining default commands

DESCRIPTION
alternatives creates, removes, maintains and displays information about the symbolic
links comprising the alternatives system. The alternatives system is a reimplementation
of the Debian alternatives system. It was rewritten primarily to remove the dependence
on perl; it is intended to be a drop in replacement for Debianâs update-dependencies
script. This man page is a slightly modified version of the man page from the Debian
project.

Ya, seperti itu lah.. *males translate :lol:
Tapi intinya dengan menggunakan alternatives ini kita dimudahkan untuk menswitch versi – versi aplikasi bila ada update nantinya dan tidak perlu setting2 path lagi. Ok, langsung aja tutorialnya, and this is how:

Notes:
Sebelumnya, pada fresh install Redhat linux ini sudah terinstall paket javanya.

[root@lunamaya ~]# rpm -qa | grep java
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

[root@lunamaya ~]# java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-46)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@lunamaya ~]# alternatives --display java
java - status is auto.
link currently points to /usr/java/default/bin/java
/usr/lib/jvm/jre-1.4.2-gcj/bin/java - priority 1420
slave keytool: /usr/lib/jvm/jre-1.4.2-gcj/bin/keytool
slave rmiregistry: /usr/lib/jvm/jre-1.4.2-gcj/bin/rmiregistry
slave jre_exports: /usr/lib/jvm-exports/jre-1.4.2-gcj
slave jre: /usr/lib/jvm/jre-1.4.2-gcj
Current `best' version is /usr/lib/jvm/jre-1.4.2-gcj/bin/java.

Step 1 ~
Download Java JRE here.
Ada dua versi untuk linux, pada catatan ini saya memakai versi rpm.

Step 2 ~
Tambahkan permission untuk eksekusi dan Install

[root@lunamaya ~]# chmod +x jre-6u18-linux-i586-rpm.bin
[root@lunamaya ~]# ./jre-6u18-linux-i586-rpm.bin

Verify apakah jre sudah terinstall:

[root@lunamaya ~]# rpm -qa | grep jre
jre-1.6.0_18-fcs

[root@lunamaya ~]# rpm -ql jre-1.6.0_18-fcs
--trunk output--
/usr/java/jre1.6.0_18
--trunk output--

[root@lunamaya ~]# ll /usr/java/
total 16
lrwxrwxrwx 1 root root 16 Jan 27 17:50 default -> /usr/java/latest
drwxr-xr-x 7 root root 4096 Jan 27 17:50 jre1.6.0_18
lrwxrwxrwx 1 root root 21 Jan 27 17:50 latest -> /usr/java/jre1.6.0_18

Java terinstall pada direktori /usr/java. Seperti yang kita lihat, pada direktori tersebut terdapat 3 folder, yaitu jre1.6.0_18, default dan latest. Folder installasi yang sebenarnya adalah jre1.6.0_18. Sedangkan folder default merupakan symlink ke /usr/java/latest dan latest merupakan symlink ke /usr/java/jre1.6.0_18. Dengan begitu memudahkan kita untuk mengupdate java nantinya. Semua path pada aplikasi yang membutuhkan java environment variables ($JAVA_HOME) cukup diarahkan ke /usr/java/default. Dan bila nanti kita akan menginstall java versi baru, cukup mengganti symlink /usr/java/latest ke folder java yang baru diinstall. Sehingga tidak perlu merubah java environment variablesnya lagi.

Step 3 ~
Konfigurasi alternatives:

[root@lunamaya ~]# alternatives --config java

There is 1 program that provides 'java'.

Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java

Enter to keep the current selection[+], or type selection number:

Sebelumnya pada alternatives sudah ada java defaultnya. Sekarang tinggal tambahkan java yang baru diinstall.

[root@lunamaya ~]# alternatives --install /usr/bin/java java /usr/java/default/bin/java 1430

Sintaks commandnya adalah alternatives --install link name path priority dimana priority diatas (1430) adalah priority number. Pada alternatives --display java diatas, terlihat priority numbernya adalah 1420. Jadi 1430 diatas saya ambil sesuka hati asalkan nomernya diatas dari 1420 yang artinya versi java yang diinstall adalah lebih baru dengan prioritas yang lebih tinggi. Hal ini berpengaruh jika kita ingin menset alternatives secara otomatis alternatives --auto java. Maka alternatives akan menggunakan java dengan nomer prioritas yang paling tinggi.

[root@lunamaya ~]# alternatives --auto java

Bila kita ingin mengganti java dengan alternatives secara manual:

[root@lunamaya ~]# alternatives --config java

There are 2 programs which provide 'java'.

Selection Command
-----------------------------------------------
1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
*+ 2 /usr/java/default/bin/java

Enter to keep the current selection[+], or type selection number: 2

[root@lunamaya ~]# java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)

Lakukan langkah diatas bila ingin menggunakan komponen java yang lain seperti javac, jar, etc.

Ok, sekarang java sudah terupdate. Tetapi terkadang ada aplikasi yang tetap membutuhkan java environment variables seperti $JAVA_HOME atau $JRE_HOME. Salah satunya adalah TOMCAT. Untuk itu perlu juga untuk membuat java environment variables ini.

Ada banyak cara untuk menbuat path pada linux. Bisa per user melalui .bash_profile pada masing2 user atau untuk semua user secara global seperti yang akan saya buat berikut:

[root@lunamaya ~]# vim /etc/profile.d/java.sh
#!/bin/sh
export JAVA_HOME=/usr/java/default
export JRE_HOME=$JAVA_HOME
export J2RE_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$J2RE_HOME/bin:$PATH

Ok, that’s all.. Pfuuiihh, sepertinya lebih banyak ngomongnya dari pada howto-nya. :lol:
Have a nice try.. Semoga berguna.

Salam.


Red Hat: Bagaimana mengganti hostname tanpa mereboot system

January 25, 2010

Just my another note’s

Karena perbedaan konfigurasi pada setiap distribusi linux. Maka pada judul setiap catatan saya akan saya bubuhi embel – embel nama distribusi linuxnya. Itu artinya catatan ini berlaku untuk distribusi linux tersebut. Kali ini sesuai dengan judulnya, catatan kecil saya tentang bagaimana caranya mengganti hostname pada linux redhat tanpa mereboot systemnya.

And this is how:

Hostname pada redhat linux konfigurasinya ada pada file /etc/hosts dan /etc/sysconfig/network.

[root@localhost ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

Edit dan tambahkan dengan hostname yang mau diganti sehingga menjadi:

[root@localhost ~]# vim /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost redhat-box.example.com redhat-box
192.168.0.1 redhat-box.example.com redhat-box

Pada file /etc/sysconfig/network :

[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain

Edit dan tambahkan dengan hostname yang mau diganti sehingga menjadi:

[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=redhat-box.example.com

Selanjutnya adalah mengaktifkannya dengan menjalankan command hostname:

[root@localhost ~]# hostname redhat-box.example.com

Lihat perubahannya dengan command:

[root@localhost ~]# hostname
redhat-box.example.com

Terakhir, restart service networknya:

[root@localhost ~]# service network restart

Oke, sekarang login kembali untuk melihat perubahannya:

[root@redhat-box ~] #

Sekarang hostname pada system sudah berubah.

That’s all.


Mengaktifkan mod_rewrite apache2 pada ubuntu-server

January 22, 2010

Beda distro, beda pula gaya konfigurasinya. Demikianlah yang terjadi dijagad perlinux’an. Dan itu pula yang kadang – kadang membuat orang enggan untuk mempelajari linux. Tapi, syukurlah dijagad internet saya selalu menemukan solusi terhadap masalah yang saya hadapi dilinux. Inilah yang disebut sebagai community support yang juga merupakan salah satu kelebihan bila kita menggunakan linux. Anda hanya perlu sedikit googling untuk menemukan solusi atas permasalahan anda.

Kembali kelaptop. Berikut adalah sedikit catatan saya tentang cara mengaktifkan mod_rewrite pada konfigurasi apache2 dan php diubuntu server.

Pada ubuntu server konfigurasi apache2 terletak pada direktori /etc/apache2 yang isinya adalah:

root@ubuntu-box:/etc/apache2# ls
apache2.conf envvars mods-available ports.conf sites-enabled
conf.d httpd.conf mods-enabled sites-available

Untuk mengaktifkan modul – modul apache, sebenarnya kita tinggal masukan modul yang terdapat dalam direktori mods-available kedalam direktori mods-enable dengan cara membuatkan softlinknya.

# ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enable

Selanjutnya tinggal mengaktifkan opsi AllowOverride menjadi All pada file konfigurasi /etc/apache2/sites-enabled/000-default

# vim 000-default


ServerAdmin webmaster@localhost

DocumentRoot /var/www/

Options FollowSymLinks
AllowOverride all


Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128

Ok, sekarang tinggal merestart service apache2 untuk mengaktifkan konfigurasi yang baru.

# /etc/init.d/apache2 restart

Nah, sekarang apache2 sudah bekerja menggunakan modul mod_rewrite.

Have a nice try.. :lol:


From shoeshine boy to PhD

January 19, 2010

Judul postingan ini saya kutip dari tweet @thejakartaglobe yang memberi link keartikelnya disitus http://thejakartaglobe.com dengan judul artikel “Pauper to Professor: Overcoming Adversity in the Education System”.

Apa yang menarik dari artikel tersebut adalah, kisah perjalanan seorang penyemir sepatu yang sekarang telah berhasil meraih gelar Doktornya. Bagi yang mau tau ceritanya, silahkan baca langsung pada artikelnya diatas. Karena yang mau saya tulis disini adalah curahan hati saya akan pendidikan yang terinspirasi dari semangat seorang Basuki Agus Suparno akan pendidikan.

Sebelum membaca berita diatas, saya adalah seorang pesimis yang memandang pendidikan adalah omong kosong dinegara nan korup ini. Saya pernah menjustifikasi bahwa hanya ada 2 orang yang mampu mencapai pendidikan tinggi di Indonesia. Pertama adalah orang yang “sangat pintar” sehingga dia bisa dapat beasiswa untuk pendidikannya. Dan yang kedua adalah “orang kaya” yang bisa membiayai sendiri pendidikannya. Sedangkan saya yang berada pada posisi “Tidak begitu pintar” dan “Tidak begitu kaya” adalah mimpi bisa melanjutkan kuliah sampai kejenjang master atau bahkan sampai ke doktoral.

Penyebabnya hanya satu. Biaya pendidikan yang terlalu mahal. Yang menyebabkan Impian saya untuk meneruskan kuliah sampai master adalah menjadi sangat berat untuk diraih. Butuh semangat yang tinggi dan kerja keras extra untuk bisa mewujudkan cita – cita saya. Bila tidak cita – cita saya akan padam seiring dengan waktu dan keadaan.

Siapa yang harus saya salahkan? Apakah para pemimpin bangsa yang tidak peduli akan pendidikan, nasib saya yang kurang beruntung lahir ditengah keluarga yang “Tidak begitu kaya”, atau menyalahkan diri sendiri karena saya “Tidak begitu pintar”? Yang jelas, saya tidak akan kalah oleh nasib, dan akan terus berusaha menjadi lebih pintar. Mudah – mudahan akan banyak sosok seperti Basuki Agus Suparno yang bisa memberi semangat saya ataupun orang lain yang mungkin bernasib sama seperti saya.

Atau andaikan Pemerintah kita mau sedikit saja peduli akan pendidikan. Seperti artikel yang saya baca tentang Kosta Rika yang membubarkan angkatan bersenjatanya dan berinvestasi dalam pendidikan. Semoga dimasa depan orang – orang yang “Tidak begitu pintar” dan “Tidak begitu kaya” ini tidak perlu lagi bekerja extra keras untuk mengejar cita – citanya akan pendidikan karena pendidikan yang akan memberikan kesempatan pada mereka sama seperti pendidikan memberi kesempatan pada mereka yang pintar dan kaya.

Semoga.


My First Webinar

January 15, 2010

Berawal dari email yang dikirim Red Hat ke inbox saya. Ternyata adalah undangan untuk menghadiri webinar. Sebelumnya saya juga sudah beberapa kali mendapat undangan webinar dan saya kurang tertarik mengikutinya. Tapi kali ini, saya melihat materi webminar yang cukup menarik untuk saya. Maka tidak ada salahnya kalau saya coba untuk ikut, sekalian mau tau juga bagaimana sih rasanya mengikuti webminar ini. :?:

Sebagai informasi, Webinar yang saya terjemahkan dari wikipedia, adalah Web conferencing yang biasanya digunakan untuk melakukan live meeting, training, atau presentasi via internet. Para peserta mengikutinya dengan cara menggunakan aplikasi desktop atau aplikasi web menggunakan browser dimana para peserta mengakses meeting tersebut dengan cara mengklik link yang didistribusikan melalui email ( meeting invitation ) untuk memasuki conference.

Begitu juga yang saya lakukan. Saya mendapat undangan via email, dan harus saya konfirmasi apakah saya mau ikut atau tidak. Setelah saya melakukan konfirmasi, maka akan ada email balasan yang isinya waktu pelaksanan, password login dan link untuk mengakses webinar tersebut.

Webinar yang saya ikuti kali ini adalah tentang cloud computing. Dengan judul webinarnya: Cluster To Cloud Evolving HPC Solutions Using Open Source Software & Industry-Standard Hardware. Red Hat dan Hewlett-Packard bekerjasama memenuhi kebutuhan teknologi cloud dan hpc dengan cara mengoptimasi open source software seperti kernel-based virtualization, Real Time Linux, AMQP messaging, dan grid workload management yang powerful pada modular hardware seperti HP BladeSystem.
Read the rest of this entry »


Bagaimana Mendapatkan Process ID pada Linux

January 13, 2010

Seperti yang kita ketahui, setiap process dilinux selalu ada Process ID atau yang biasa disebut PID. PID ini adalah berupa nomer atau suatu angka tertentu yang unik disetiap processnya. Jadi tidak ada process yang mempunyai PID yang sama.

PID berguna untuk menghentikan atau mengunci suatu process dari aplikasi atau service. Dengan PID ini kita bisa menghentikan atau kill suatu process dan juga bisa melakukan blocking process apabila aplikasi/service itu sudah running. Sehingga kita bisa membatasi suatu applikasi/service hanya berjalan dengan process yang kita tentukan ( tidak ada double process ). Dan juga masih banyak lagi kegunaan dari PID ini.

Dilinux, PID bisa kita lihat dengan menggunakan perintah "ps". Tapi perintah ps ini menampilkan semua proses pada linux. Jadi kita harus memfilter lagi output dari ps untuk mendapatkan PID dari service yang kita inginkan.

Ada beberapa cara yang bisa dilakukan untuk memfilter PID dari ps. Salah satunya dengan menggunakan "grep" dan "awk" untuk mendapatkan PID yang diinginkan.

Contohnya:

# ps -ef | grep -i "firefox" | grep -v grep | awk '{print $2}'

outputnya adalah PID number dari firefox.

Berikut adalah contoh script killing PID yang saya buat:

#!/bin/bash

#Ganti dengan nama aplikasi yang mau dikill
APP=firefox

CHECK=`ps -ef | grep -i "$APP" | grep -v grep | awk '{print $2}' | wc -l`
if [ $CHECK -eq 0 ]; then
echo "No Process"; exit
elif [ $CHECK -gt 1 ]; then
echo "Double name Process. Try again and be more specific."; exit
fi

PID=`ps -ef | grep -i "$APP" | grep -v grep | awk '{print $2}'`
echo "killing pid $PID"
kill $PID
exit 0

Script diatas bisa digunakan untuk mematikan process yang dimau. Tapi ada cara lain yang lebih mudah dan lebih elegan menurut saya. :cool:

Read the rest of this entry »