Socialabel

Tuesday, October 22, 2013

HTML character codes

Code   Entity         Hex Character Description
------ -------------- --- --------- -----------------------------------
 �                              Unused
                 %01           Unused
                 %02           Unused
                 %03           Unused
                 %04           Unused
                 %05           Unused
                 %06           Unused
                 %07           Unused
                 %08           Unused
 	                %09           Horizontal tab
 
                %0A           Line feed
                 %0B           Unused
                 %0C           Unused
 
                %0D           Carriage return
                 %0E           Unused
                 %0F           Unused
                 %10           Unused
                 %11           Unused
                 %12           Unused
                 %13           Unused
                 %14           Unused
                 %15           Unused
                 %16           Unused
                 %17           Unused
                 %18           Unused
                 %19           Unused
                 %1A           Unused
                 %1B           Unused
                 %1C           Unused
                 %1D           Unused
                 %1E           Unused
                 %1F           Unused
                  %20           Space

Parsing hasil query Search Engine Yahoo

Parsing hasil query Search Engine Yahoo

 import urllib2  
 import re  
 from BeautifulSoup import BeautifulSoup  

 opener = urllib2.build_opener()  
 opener.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0')]  

 query="menjadi pribadi yang terbaik"  
 query=query.replace(' ','+')  
 #url = "http://www.google.com/search?q="  # ok bisa  
 #url = "http://www.bing.com/search?q="    # ok bisa  
 #url = "http://www.ask.com/web?q="        # ok bisa  
 url = "http://search.yahoo.com/search?p=" # ok bisa  
 urlfull=url+query  

 page = opener.open(urlfull)  
 soup = BeautifulSoup(page)  

 ###yahoo, Only  
 for tag in soup.findAll('a', id=True):  
     haha= tag.get('href')  
     ok=haha.split('**')  
     if len(ok)>1:  
       print ok[1].replace("%3a",":")  
Keyword: parsing, yahoo, query, search engine, python

Monday, October 21, 2013

[Solved] TypeError: expected string or buffer

Python Craw Engine
 import requests  
 from bs4 import BeautifulSoup  
 query = "Kata Kunci"  
 url = "http://www.google.com/search?q=%s"  
 respon = requests.get(url % query)  
 soup = BeautifulSoup(respon)  

Compile Error!!
  bla bal bal bal bal bal bal .....................
  File "/usr/lib/python2.7/site-packages/bs4/dammit.py", line 203, in __init__  
   self._detectEncoding(markup, is_html)  
  File "/usr/lib/python2.7/site-packages/bs4/dammit.py", line 373, in _detectEncoding  
   xml_encoding_match = xml_encoding_re.match(xml_data)  
 TypeError: expected string or buffer  

Ganti menjadi
 import requests  
 from bs4 import BeautifulSoup  
 query = "Kata Kunci"  
 url = "http://www.google.com/search?q=%s"  
 respon = requests.get(url % query)  
 soup = BeautifulSoup(respon.content)  #  BeautifulSoup(respon.text)

 print soup

Keyword: SEO, Search Engine, Python, Expected String or buffer

Sunday, October 20, 2013

Remove Tag Html Python

Menghapus Tag Html dengan Regex

 import re  
 re.sub('<[^<]+?>', '', text)  

Keyword: hapus, tag, html, remove

Saturday, October 19, 2013

Multimedia Pack Portable untuk openSUse 12.3 [offline]

Pada postingan sebelumnya tentang codec audio-video pada opensuse, pada postingan tersebut codec yang digunakan diperoleh secara on line dari server repositori, bagi koneksi internet belum memadai tentu menjadi kendala tersendiri apalagi server repositori codec tersebut juga tidak memiliki akses internet yang kencang.

Untuk mengatasi kejenuhan dalam menginstall codec, user dappat menggunakan MMP codec yang dapat digunakan/diinstall secara offline. terlebih dahulu silahkan di download ke komputer lokal.

Selanjutnya Ekstrak file arsip tersebut di derektori yang bisa di tulis kemudian, gunakan software manager seperti RPM untuk menginstall codec-codec yang dibutuhkan dengan catatan setiap depedensi dari codec telah terinstall lebih dahulu.

Namun jika tidak mau dipusingkan dengan depedensi dari codec dapat menggunakan Yast, buka yast dan tambahkan direktori tersebut sebagai repo lokal bagi opensuse

Install Hadoop Pada Kluster Komputer


Untuk Instalasi Hadoop pada kluster dilakukan pada sistem operasi Linux OpenSuse 12.3. Software-software supporter yang diperlukan untuk instalasi Hadoop adalah
1. Java (JRE/JDK)
2. Framework Hadoop (Hadoop 1.2.0)
3. SSH

[Lakukan Pada semua host]
[Master/Node1/Node2/Node3/Node4].

Tahapan pertama silahkan konfigurasi jaringan, pastikan semua host sudah saling terhubung, silahkan gunakan aplikasi ping sebagai tester. jika ada respon dari host tujuan tahap pertama selesai, jika tidak silahkan cek konfigurasi fisik dan logik serta firewall.

Asumsi network yang saya gunakan adalah 192.168.10.0/24 dengan rincian sebagai berikut
 1. master : 192.168.10.2/24  
 2. node1  : 192.168.10.10/24  
 3. node2  : 192.168.10.11/24  
 4. node3  : 192.168.10.12/24  
 5. node4  : 192.168.10.13/24  


Silahkan edit file hosts (root level) pada masing-masing host dengan kriteria sebagai berikut:
 master:/home/Hery # vim /etc/hosts  
 ########### /etc/hosts #############  
 192.168.10.1  master  
 192.168.10.10 node1  
 192.168.10.11 node2  
 192.168.10.12 node3  
 192.168.10.13 node4  

Jika sudah reboot semua komputer master hingga node4, agar konfigurasi hosts file dapat diload kembali.

Friday, October 18, 2013

Hadoop Mode

Dalam pengoperasian sebuah engine hadoop ada beberapa mode yang dapat digunakan untuk memeksplorasi kemampuan dari tools tersebut. Secara umum ada 2 mode yaitu local dan distributed. Namun banyak yang berpendapat dengan membagi mode tersebut menjadi 3 dimana terdapat metode tambahan yang merupakan middle dari 2 metode dasar.

1. Standalone (local) mode:
Mode ini adalah default ketika hadoop pertama kali di ekstrak dan dijalankan tanpa melakukan konfigurasi apapun. FNameNode, DataNode, JobTracker dan TaskTracker berjalan pada proses tunggal file java yang diekseskusi.

2. Pseudo-distributed (middle) mode:
Mode ini adalah mode dimana hadoop telah dilakukan konfigurasi dengan menerapkan beberapa opsi namun tetap menggunakan single host dengan menerapkan mini cluster.

3. Fully distributed mode :
Mode ini adalah mode dimana hadoop berinsteraksi dengan banyak host dalam memproses data, dengan menggunakan JobTracker dan TaskTracker yang berjalan dibanyak komputer.

Saturday, October 12, 2013

Codec Multimedia OpenSuse 12.3

Ketika pertama kali menginstall linux openSuse, biasanya file audio-video tidak dapat diputar melalui media player, karena distribusi linux tersebut tidak menyediakan codec untuk file-file multimedia yang umum digunakan pada file audio-video untuk didistribusikan, hal ini terjadi karena idealisme egois pengembang openSuse dan kendala lisensi yang menaungi codec tersebut.

Sehingga perlu dibutuhkan codec dari pihak ketiga, silahkan  download file *.ymp di attach dibawah tulisan ini dan buka dengan Yast-1 Click,

Ilustrasi seperti pada gambar dibawah ini:


Add repo dan Install Codec


Download Codec OpenSUSE


Delay pada Qt: sleep, msleep, dan usleep

Dalam berbagai teknik pemrograman, peran dari sebuah delay sangat banyak dalam algoritma sekuensial ataupun paralel. Delay dalam artian menunda beberapa saat (satuan waktu) sebuah proses yang akan dilakukan oleh program komputer. 

Secara khusus penulis belum menemukan sebuah class pada Qt untuk memanggil metod delay, sehingga user perlu membuat class tersebut secara manual yang selanjutnya dapat disisipkan kedalam threat ataupun iterasi biasanya.

 #include <QtCore/QCoreApplication>  
 #include <QtDebug>  
 #include <QThread>  

 class SleepProses : public QThread
 {  
    Q_OBJECT  
    void run (){}  
    
    public :  
    static void usleep(long delay1)
    {  QThread::usleep(delay1); }  
    static void msleep(long delay1)
    {  QThread::msleep(delay1);  }      
    static void sleep(long delay1)
    {  QThread::sleep(delay1);  }  
 };  

 int main(int argc, char *argv[])  
 {  
    QCoreApplication a(argc, argv);  
    for(int i=0;i<10;i++)  
    {  
       qDebug()<<"Counter test ke-"<<i;  
       SleepProses::sleep(2);  
       //SleepProses::msleep(1);  
       //SleepProses::usleep(1);  
    }  
    return a.exec();  
 }  

Tuesday, October 8, 2013

Inisialisasi Matrix Gambar: cvZero dan cvSet

Dalam rekayasa sebuah gambar, sangat penting untuk melakukan inisialisasi sebuah matrix citra yang baru terbentuk. Salah satunya adalah untuk merekontruksi citra ke dalam citra yg lain.

Ada 2 cara yang biasa penulis lakukan yaitu dengan menggunakan cvZero dan cvSet,

Example:
 cvZero(calonGambar) //R=0 G=0 B=0  

 //cvSet(calonGambar, cvScalar(R,G,B));  
 cvSet(calonGambar, cvScalar(0,0,0));  

Perbedaannya mendasar dari metod tersebut adalah cvZero hanya punya akses untuk membuat sebuah matrix citra menjadi bernilai R=0, G=0, B=0 sedangkan cvSet dapat diatur nilai dari matrix citra tersebut.

Saturday, October 5, 2013

Set Multiple Inputs Hadoop Map Job

Pada mapreduce job disedikan 2 metode untuk memberikan inputan kepada program map, yaitu single input dan multiple input. Single input digunakan ketika sebuah program hanya membutuhkan 1 inputan baik itu folder/file. Sedangkan multiple input adalah program disetting menerima beberapa folder/file dalam prosesnya.

Dasar Input path pada Hadoop Map Job
Example Single input:
 FileInputFormat.addInputPath(job, InputPath);  

Multiple Input File/Folder pada Hadoop Map Job
Example Multiple Input:
 Path masukanPertama = new Path(args[1]);  
 Path masukanKedua = new Path(args[2]);  
 Path keluaran = new Path(args[3]);  
 MultipleInputs.addInputPath(job, masukanPertama, TextInputFormat.class, Mapper1.class);  
 MultipleInputs.addInputPath(job, masukanKedua, TextInputFormat.class, Mapper2.class);  
 FileOutputFormat.setOutputPath(job, keluaran);  

Tuesday, October 1, 2013

Set ROI openCV

Pada komputer vision, adakalahnya ketika ingin mengkluster sebuah objek dibutuhkan ROI (Region of Interest), dengan ROI pekerjaan pemrosesan citra/video menjadi lebih ringan dan komputasi lebih singkat. RoI sering penulis gunakanpada proses segmentasi, contoh sederhana dalam membuat roi secara manual.

 #include <QtCore/QCoreApplication>  
 #include<stdio.h>  
 #include<opencv/cv.h>  
 #include<opencv/highgui.h>  
 #include<math.h>  
 int main(int argc, char *argv[])  
 {  
   cv::Mat imageROI, gambar;  
   char *gbr="/windows/D/[X]~BIOMETRIK/iris.jpg";  
   gambar=cv::imread(gbr);  
   cv::imshow("Gambar", gambar);  
   //cv::Rect roi=cv::Rect(x,y,w,h);  
   cv::Rect roi=cv::Rect(100,200,300,300);  
   imageROI=gambar(roi);  
   cv::imshow("ROI",imageROI);  
   cvWaitKey(0);  
   return 0;  
 }  

Walaupun code diatas RoI secara manual, dengan pengembangan code lebih lanjut, RoI dapat dibuat secara otomatis  dengan mendeteksi objek-objek tertentu pada citra/video.