Senin, 30 Desember 2013

Kilas 2013 dan Rencana 2014

Hmm, tahun 2013 beberapa jam lagi akan berakhir. Beberapa hal ada yang sudah dicapai :metal, tapi ada juga yang belum :nangis, Ya mungkin kalau dilihat lagi, lebih banyak yang gak dicapai.
Beberapa yang gak kecapai
- Posting lebih dari 50 tulisan di blog. Tahun ini buruk sekali dalam menulis, malah masih mending tahun lalu. Target gw nulis 48 tulisan kecapai, dan malah lebih. sekarang lebih buruk.
- Banyak project kantor yang gantung. Padahal target tahun ini pengen nyelesain paling enggak 6. Ya mungkin situasi bisnis sekarang seperti orang ingusan, "naik-turun" :hammer
- Program diet. Kalau yang satu ini kayaknya susah banget :nohope. Mungkin mesti nyari referensi lagi :malu
- Belum bisa berkorban pas hari idul adha. Kalau yang ini insyaallah tahun depan, uda diniatin :senyum.
 - Belajar java server. Gw juga bingung kapan harus memulai :hammer.
- Gak mudik. Tahun ini gak bisa mudik ke rumah Mbah, karena jakarta kena banjir :nangis  

Minggu, 08 Desember 2013

AES CMAC

Hi..hi..melanjutkan postingan yang dulu tentang CMAC menggunakan TDEA. Kali ini kita mau nulis yang AES. Prosesnya hampir sama dengan yang TDEA, hanya bedanya adalah panjang dan enkripsinya. Kira-kira seperti gambar di bawah ini.

Berhubung kodenya sudah ada. Nih silahkan kalau ada yang minat di link ini.
Wassalam. :senyum

Sabtu, 23 November 2013

Kegiatan Minggu Nov 24 2013

Hoooamm...pagiiii!!!. Masih ngantuk karna abis begadang. Hari ini mau nulis apa ya? Bingung juga :hammer. Mungkin kedepannya mau tulis tentang serial communication di java :senyum. Ya masih ecek-ecek sih. Btw ini postingan isinya bukan tentang hal teknis ya. Ini murni mau curcol :hammer.
Hari ini mungkin seharian tidur aja, karena mau ngoprek NFC dan tulis tentang serial communication itu masih malas :capede 

Senin, 11 November 2013

ORA-27121: unable to determine size of shared memory segment

Hari ini mau tulis mengenai error yang di oracle. Error di atas pernah saya dapat ketika menginstall oracle xe pada ubuntu 13.04. Waktu itu nginstall oracle-xe-universal dan oracle-xe-client. Lalu ketika menjalani "sqlplus sys as sysdba", muncul error seperti yang dijudul.
Lebih tepatnya seperti di bawah ini

Lalu untuk mengatasinya dengan step - step di bawah ini
- cd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin
- chmod 6751 oracle

Jika tidak ada masalah, maka error tadi tidak akan muncul. Lalu setelah menjalankan perintah 
sqlplus sys as sysdba
(jika tidak ada error, akan masuk mode sql)
SQL> 

Error di atas kemungkinan terjadi saat share library client dan server tercampur. Dulu pengalaman install oracle tidak ada masalah (saat itu pakai ubuntu 9.10).
Kalau ada yang kurang mengerti, bisa langsung ke link berikut.
Sekian dan wassalam :senyum

Load hibernate.cfg.xml Dari Folder Lain

Malam ini mau tulis tentang load hibernate.cfg.xml pada folder / package yang berbeda. Terkadang pada saat run aplikasi yang menggunakan framework hibernate, kita mungkin dapat error "hibernate.cfg.xml not found". Kemungkinan, ketika menjalankan fungsi configure(), file hibernate.cfg.xml tidak terbaca pathnya.
Nah caranya cukup mudah, misalnya kita punya struktur seperti gambar di bawah ini


Install Oracle XE 10g

Sore ini dapat kerjaan install Oracle XE 10g di ubuntu. Kali ini saya lakukan pada ubuntu 13.04. Download terlebih dahulu oracle-xe-universal_10.2.0.1-1.0_i386.deb.
Langkah - langkahnya :
- sudo dpkg -i oracle-xe-universal_10.2.0.1-1.0_i386.deb
- sudo /etc/init.d/oracle-xe configure
- Setelah itu akan muncul pertanyaan
   * input valid http port oracle expres (default 8080)
   * set port oracle (default 1521)
   * input password untuk sys dan system administrasi user account (password sys)
- Seting path oracle, sehingga kita bisa langsung mengaksesnya via terminal
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_SID=XE
export PATH=${PATH}:${ORACLE_HOME}/bin
- Setelah itu test :
   sqlplus sys as sysdba
Enter password yang tadi diinput pada saat install. Jika berhasil akan masuk mode seperti di bawah ini
SQL>
Sudah deh, cukup mudah bukan. Kalau ada yang kurang mengerti bisa langsung lihat di link ini
Sekian dulu. Wassalam :senyum

Minggu, 10 November 2013

Hibernate di Eclipse

Di postingan sebelumnya sudah dibahas mengenai hibernate di netbeans. Kali ini kita akan mencoba memakai hibernate di eclipse. Bahan yang perlu dipersiapkan adalah;
- Eclipse (saya menggunakan eclipse juno) 
- Hibernate versi 3.6 bisa didownload di link ini
- Jdk-1.6
Setelah mendownload library hibernate, kita seting path user librarynya di eclipse. Library yang diset antara lain;
- hibernate3.jar
- antlr-2.7.6.jar
- commons-collections-3.1.jar
- dom4j-1.6.jar
- javassist-3.12.0.GA.jar
- jta-1.1.jar
- slf4-api-1.6.1.jar
- hibernate-jpa-2.0-api-1.0.1.Final.jar

Jumat, 08 November 2013

[Ubuntu] Kill Port dan Kill Remote Login

Sore ini mau tulis hal-hal dasar mengenai linux admin. Kali ini mau tulis tentang kill remote login dan kill port.
A) Kill Port
Biasanya kita pernah menemukan port yang terbuka (listen), tapi kita tidak tahu aplikasi mana yang membuka port tersebut. Nah cara mematikannya 
- Lihat proses id nya
  sudo netstat -tulpn

- Kalau sudah terlihat, kita kill PID nya. Misalnya pada gambar di atas kita mau kill port 8976, nah kita kill pid 18263
  sudo kill 18263
Pemakaian sudo tergantung service apa yang dijalankan. Untuk port di atas, yang menjalankan adalah root. Jadi untuk mematikannya pakai sudo.

B) Kill Remote Login
Selanjutnya untuk mematikan user login yang double artinya dalam satu server bisa lebih dari satu user yang login dengan user yang sama. Caranya
- Lihat proses id nya
   ps -fu username
- Kalau sudah terlihat PID, bisa langsung
   kill -HUP PID

Kalau ada yang kurang mengerti bisa langsung ke link ini.

Sorry kalau untuk bagian kill remote login tidak disertain gambar. Sekian dulu postingannya.
Wassalam :senyum

Senin, 04 November 2013

Cron di Java

Pagi ini mau tulis tentang penjadwalan di java. Untuk itu kita menggunakan library cron4j. Langsung aja kita ke kode ya.

import it.sauronsoftware.cron4j.Scheduler;

public class Quickstart {

    public static void main(String[] args) {
        // Creates a Scheduler instance.
        Scheduler s = new Scheduler();
        // Schedule a once-a-minute task.
        s.schedule("* * * * *", new Runnable() {
            public void run() {
                System.out.println("Another minute ticked away...");
            }
        });
        // Starts the scheduler.
        s.start();
        // Will run for ten minutes.
        try {
            Thread.sleep(1000L * 60L * 10L);
        } catch (InterruptedException e) {
            ;
        }
        // Stops the scheduler.
        s.stop();
    }

}

Sabtu, 02 November 2013

Slide Show di Desktop Ubuntu

Hari ini mau tulis mengenai slide show pada ubuntu desktop. Oprekan kali ini saya coba di ubuntu 13.04 dan menggunakan aplikasi wallch. Langsung aja ya ;
- Install wallch
     sudo apt-get install wallch
- Open wallch

Jumat, 01 November 2013

Konfig hibernate.cfg

Sedikit catatan untuk koneksi database via hibernate. Jika kita mempunyai aplikasi server yang terpisah dengan database server, lalu aplikasi servernya menggunakan framework hibernate untuk mengurus databasenya maka konfigurasinya seperti ini.
<session-factory>
   <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
   <property name="hibernate.connection.url">jdbc:postgresql://22.12.123.xx:5432/thetable</property>
  
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
  
<property name="hibernate.connection.username">postgres</property>
  
<property name="hibernate.connection.password">postgres123</property>
  
<property name="hibernate.show_sql">true</property>
  
<property name="hibernate.format_sql">true</property>
</session-factory>
Kalau database dan aplikasinya disatuin dalam satu server, mungkin pada bagian hibernate.connection.url hanya seperti ini:
 <property name="hibernate.connection.url">jdbc:postgresql:thetable</property>
Kita langsung menuliskan databasenya saja. Oke begitu saja. Kalau tidak paham bisa cari di google. Karena ini untuk nambah catatan saya aja :hammer
Sekian dan wassalam :senyum

Remote Akses Database Postgresql

Hari ini mau tulis tentang remote akses postgresql, misalnya kita ingin konek ke server database dari pc rumah ke server database kantor. Untuk postgresql memang ada sedikit konfig pada file pg_hba.conf dan postgresql.conf, karena postgresql sedikit lebih secure untuk masalah koneksi ke database. Langsung aja;
Buka file pg_hba.conf :
         sudo vim /etc/postgresql/9.1/main/pg_hba.conf
Tambah line berikut
         host    all     all       202.129.xxx.0/24       trust
Buka file postgresql.conf :
         sudo vim /etc/postgresql/9.1/main/postgresql.conf
Uncoment line berikut :
        # listen_addresses = '*'
                 jadi
        listen_addresses = '*'
                 atau
        listen_addresses = '192.168.8.1 192.168.8.4'
Setelah itu disimpan, lalu restart server postgresqlnya
        sudo /etc/init.d/postgresql restart

Jalankan perintah
        psql -h 202.129.xxx.xx0 -d dbname -U ardi

Kalau tidak ada masalah, pasti langsung masuk ke databasenya. Mudah bukan. Sekian dari saya, kalau ada yang kurang paham bisa lihat di sini.
Sekian. Wassalam :senyum

Rabu, 30 Oktober 2013

[JavaMail] Kirim Attachment File

Hari ini mau tulis tentang javamail, yakni mengirim file menggunakan javamail. Oke di postingan kemarin sudah dibahas sedikit mengenai javamail. Dan postingan kali ini dengan tambahan file yang akan dikirim. Langsung saja ke kode.

import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource; 
import javax.mail.Authenticator; 
import javax.mail.BodyPart; 
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session; 
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

/**
 *
 * @author user
 */

public class SendFileEmail {

    public static void main(String[] args) {
         SendFileEmail sf = new SendFileEmail();
         sf.excute();
    }

Senin, 28 Oktober 2013

[JavaMail] Kirim Email di Java

Hari ini mau tulis tentang kirim email di java. Hal - hal yang perlu diketahui dalam mengirim email menggunakan javamail adalah :
- Download javaxmail
- Seting propertis 
- Menambahkan certificate ke keystore yang kita punya
Oke langsung aja kita kode ya

Jumat, 18 Oktober 2013

Install Proftpd di Ubuntu 13.04

Hari ini mau tulis yang ecek-ecek dulu, yakni install proftpd yang akan digunakan sebagai ftp server. Spesifikasinya,
1. Ada folder upload & download
2. Hanya satu user saja yang bisa upload
3. Login hanya bisa dilakukan oleh orang yang boleh akses

Senin, 14 Oktober 2013

Oktober Kebingungan

Sampai saat ini tertanggal 14 Oktober 2013, saya masih bingung untuk menulis apa, mau ngoprek apa, mau membahas apa, karena hampir semua oprekan yang saya kerjakan mengalami kebuntuan.

Ya Tuhan beri petunjukMu, sedikit aja pada masing-masing oprekan
Saya janji akan menulis semuanya pada blog ini...

Hormat
- Ardi -

Senin, 30 September 2013

[Delegate] Gateway Antara Non-SSL(Client) dan SSL (Server)

Hi, siang ini mau lanjutin oprekan yang kemarin, yakni tentang delegate. Kali ini saya mau oprek koneksi non-ssl lalu berubah menjadi koneksi ssl. Agak ribet ya, langsung aja lihat gambar di bawah ini
 Bisa dilihat pada gambar di atas, paket data yang dikirim dari client berupa non-ssl (plain) format. Lalu setelah masuk ke Server Proxy, paket-paket data tadi diubah menjadi ssl format (encrypted) ke server utama. Walaupun konfigurasi pada gambar di atas tidak umum untuk digunakan, karena bisa saja data yang dikirim dari client menuju Server Proxy sudah diubah di tengah.
Untuk perintah delegatenya yakni
./delegated -P8100 SERVER=tcprelay://212.329.xxx.x11:8976 STLS=fsv
 Penjelasan ;
* -P8100, itu yang masuk Server Proxy melalui port 8100
* SERVER, server proxy
* tcprelay, protokol yang digunakan. Jenisnya bisa apa saja (http, https, ftp, telnet, dll)
* STLS=fsv, yakni menggunakan ssl dengan server
Untuk bisa menjalankan perintah delegated, bisa melihat postingan sebelumnya. Sudah deh begitu aja kayaknya. Sekian dari saya, wassalam :senyum

Sabtu, 28 September 2013

Reverse Proxy Menggunakan Delegate

Hari ini mau tulis tentang reverse proxy ssl menggunakan delegate. Sedikit penjelasan tentang reverse proxy, yakni mengambil sumber daya atas nama client ke server. Lalu mengembalikan lagi ke client seolah-olah itu dari server. Dan biasanya sebagian data yang diambil dari server itu disimpan di cache, untuk selanjutnya digunakan jika ada client yang merequest resource yang sama, sehingga mengurangi beban server utama. Sedangkan delegate yakni aplikasi level gateway untuk beberapa tujuan, atau proxy server yang dapat berjalan di beberapa platform (Unix, Windows, MacOS, OS/2).

Sabtu, 21 September 2013

Pengertian dan perintah tcpdump

Hari ini mau tulis sedikit tentang tcpdump dan beberapa perintahnya. Tcpdump adalah alat (tool) yang digunakan untuk menganalisa jaringan komputer, contoh lain alat analisa jaringan adalah wireshark yang memiliki gui.
Ketika menggunkan alat untuk menganalisa jaringan yang menghasilkan data mentah, beban analisa lebih ke manusia dibanding pada aplikasi. Pendekatan ini membutuhkan pemahaman tentang protokol TCP/IP, dan untuk alasan ini saya sarankan untuk menggunakan tcpdump, dibanding tools yg lain.
Di sini saya tidak menjelaskan detil tentang option command yang ada pada tcpdump. Jadi langsung aja ke step dasar penggunaan.

Jumat, 20 September 2013

Contoh-contoh iptables

Bagi yang menggunakan linux pasti sudah tau atau minimal pernah denger tentang iptables. Selanjutnya saya akan tulis beberapa contoh iptables
- Lihat Daftar iptables - 
Lihat daftar chain INPUT, FORWARD, OUTPUT, perintah : 
     sudo iptables -L --line-number
Output :
Lihat daftar chain PREROUTING, INPUT, OUTPUT, POSTROUTING, perintah  :
      sudo iptables -L -t nat --line-number
Output :

Rabu, 18 September 2013

Reset Password via LiveCD

Hari ini mau tulis catatan pendek, pengen tulis cara reset password via livecd. Perlu diketahui kalau untuk menggunakan cara ini, antara pc yg terinstall dan OS harus sama. Di sini saya menggunakan ubuntu 12.04 64bit.
Step 1 : Lihat file system yang tersedia
    sudo fdisk -l
 Step 2 : Mount file system
    sudo mkdir mount
    sudo mount /dev/sdaX  mount/
    #note : sdaX itu tergantung file system, contohnya : sda1, sda2, dll
Step 3 : Ganti root direktori
    sudo chroot mount/
    #Selanjutnya nanti akan masuk sebagai root dari file system yg dimount.
Step 4 : Ubah password
    sudo passwd user
    #Masukan password baru

Sudah deh, kalau step - step di atas tidak ada error, maka kalian bisa restart. Oh ya dalam kasus saya, ada file - file bin yg terpisah dari file system yang dimount. Penting untuk dilihat folder bin yang ada di folder usr. Karena semua command untuk ganti password ada di folder tersebut.
Sekian :senyum

Senin, 16 September 2013

Install SSL di Ubuntu dan Mengaktifkan HTTPS

Hari ini mau tulis tentang cara install ssl di ubuntu dan mengaktifkan httpsnya. Ini saya lakukan di ubuntu 13.04, menggunakan web server apache2.
Oke langsung aja ya, 
Langkah 1 ; Install openssl, kalau belum diinstall
     sudo apt-get install openssl
Langkah 2 ; Generate private key
    openssl genrsa -des3 -out server.key 1024 (Setelah enter maka akan disuruh input pass phrase min 4 digit)
Langkah 3 ; Generate CSR (Certificate Signing Request)
    openssl req  -new -key server.key -out server.csr (Setelah enter maka akan disuruh input pass phrase yg tadi diinput saat buat private key)
Pada langkah ketiga akan ditanya :
- Country Name (CN)
- State or Province Name
- Locality Name (city)
- Organization Name (company)
- Organization Unit Name (section)
- Common Name (IP server or FQDN)
- Email address
- Challange Password
- Company name

Kamis, 05 September 2013

[Postgres] Cara Mengetahui Lamanya Data Diambil

Sore ini mau tulis catatan kecil bagaimana mengukur lamanya data diambil dari tabel pada database postgresql. Contohnya saya mempunya tabel teminal, bisa dilihat pada gambar di bawah ini.


Untuk mengetahui berapa lama waktu retrieve data. Pake command explain analyze sebelum command select. Bisa langsung lihat pada gambar di bawah ini.


Bisa dilihat Total runtime : 0.029 ms, cepat sekali bukan. Tapi kalau dicoba pada tabel yang besar recordnya kemungkinan tidak segitu :nyengir. Sekian dari saya, jika ada yang tidak paham. Bisa langsung liat di sini.
Wassalam :senyum

Selasa, 03 September 2013

[Postgres] Matching Pattern

Sorry, if the tittle is english but the content in bahasa. Pagi-pagi gini mau tulis tentang matching pattern di postgresql. Ada tiga macam matching pattern di postgresql, yakni :
- like
- similar to
- Posix regular expression
Dan yang ingin saya tulis di sini, hanya dua aja ya :nyengir

Jumat, 30 Agustus 2013

[Oprek Nagios] Installasi Nagios Bag-1

Hari ini mau tulis dokumentasi tentang cara install Nagios di linux ubuntu 13.04. Sebelum menginstall saya pengen beri sedikit info tentang apa itu nagios dan beberapa fiturnya.
Nagios adalah alat (tools) yang digunakan untuk memonitor network dalam suatu sistem. Awalnya nagios hanya berjalan pada sistem operasi linux, namun sekarang hampir sudah bisa berjalan di semua sistem operasi unix.

Jumat, 23 Agustus 2013

[Postgresql] Tambah Primary key Tabel & Renam Tabel

Hai - hai,,, hari ini mau tulis hal-hal simpel tentang cara nama ulang (rename) tabel dan menambahkan primary key pada tabel yang sudah dibuat.
Langsung ke commandnya aja
Rename Table
ALTER TABLE old_name RENAME TO new_name;

Add Primary Key pada tabel yang sudah kita buat. Misalnya kita sudah membuat tbl_A dengan attributnya id & attr_a.
 ALTER TABLE tbl_A ADD PRIMARY KEY (id);

Sudah deh begitu aja. Sekian dari saya.
Wassalam

Kamis, 22 Agustus 2013

Install Hibernate di Eclipse

Hari ini mau tulis catatan tentang cara install hibernate di eclipse. Bahan-bahan yang diperlukan; eclipse (dalam hal ini saya menggunakan eclipse juno), hibernate, dan koneksi internet :senyum.
Step - stepnya :
- Buka eclipse juno
- Pilih menu Help --> Install New Software --> Add -> Input Jboss Tools pada name dan link berikut pada location http://download.jboss.org/jbosstools/updates/stable/juno/ bisa dilihat pada gambar di bawah ini.

Senin, 12 Agustus 2013

[Perl] Introduction Perl

Malam ini mau tulis sedikit pengenalan tentang perl. Sebelum menulis code tentang perl, kita terlebih dahulu menginstal perl. Dalam hal ini saya menggunakan ubuntu 13.04.
Oke langsung aja.

- Buat file vim intro.pl -> extensionnya *.pl
- Isinya :
     print "Hello Perl" ;

run ; perl intro.pl

outputnya :
        Hello Perl

Minggu, 11 Agustus 2013

Download Youtube via Command Line

Hari ini pengen tulis cara download video di youtube lewat terminal atau command line. Ada beberapa tools yang bisa dipake, namun kali ini tools yang akan saya gunakan adalah youtube-dl. Oh ya sebelumnya, saya menggunakan OS Ubuntu 13.04.
Hal pertama yang kita lakukan adalah install youtube-dl
sudo apt-get install youtube-dl

Sabtu, 15 Juni 2013

[Postgresql] Restore dan Dump Database

Malam ini mau tulis cara dump & restore pada database postgresql. Mungkin uda banyak ya, tutorial mengenai cara ini tapi karena hari ini gw pusing nyari-nyari di internet, mending gw tulis aja ya :nyengir.
Commandnya gampang, lihat aja di bawah ini.
Restore : psql -U {user-name} -d {desintation_db}-f {dumpfilename.sql}
Backup  : pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}

Command di atas dapat digunakan dan tidak akan error jika config pada pg_hba.conf, seperti dibawah ini
# Database administrative login by Unix domain socket
local   all             postgres                                peer    # I comment this line
#local   all             postgres                                md5
local   all             postgres                                trust
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
#local   all             all                                     peer

local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
 
Sekian tulisan dari gw, kalau ga ngerti bisa liat di link ini

Rabu, 22 Mei 2013

[Android] eclipse gagal generated R.java

Hi, hi.. hari ini mau tulis kenapa file R.java yang biasanya digenerate eclipse tidak digenerate. Ini biasa terjadi pada project android, yang tiba-tiba error dikarenakan keyword-keyword yang ada pada file xml tidak tergenerate.
Untuk mengatasinya ada yang menyarankan untuk clean project, yakni ada di menu
Project -> Clean... -> <<Pilih project yang akan diclean>>  -> Ok

Tapi kadang ini tidak berhasil, lalu secara tidak sengaja saya menemukan caranya yakni menghapus folder .metadata yang ada pada folder workspace.
Setelah dihapus, buka eclipsenya kembali. Dan akhirnya bisa :senyum.

Oh ya ini saya ketemu dengan sendirinya, jadi gak bisa nunjukin link sumbernya ya. Kalau ada yang salah mohon dikoreksi. 
Salam bloger. Wassalam

Senin, 20 Mei 2013

[Ubuntu] php5 di public html

Hari ini mau tulis tentang setting php5 di pubic html. Ini gw coba pada ubuntu terbaru yakni 13.04. Awalnya agak terkejut, karena biasanya jika kita sudah install php5, apache2, lalu setting public_html, tidak ada masalah. Tapi ini aneh karena, terkesan file php yang ditaruh di public_html tidak di render oleh browser.
Akhirnya tanya mbah google, ketemu link mantep. Install php5, lalu jalankan command seperti di bawah ini.
sudo  a2enmod php5
sudo vim /etc/apache2/mods-available/php5.conf

Selasa, 14 Mei 2013

[Ubuntu] Kirim email melalui terminal

Hi, hi,,, uda lama banget ya gak ngoprek-ngoprek. Hari ini mau tulis cara kirim email melalui terminal. Mungkin terdengar norak sih, tp ini biasa dilakukan para admin, untuk mengetahui apakah server mereka down, atau terjadi hal-hal yang tidak inginkan. 
Oh, iya ini saya lakukan pada os linux ubuntu ya. Hal yang pertama kali kita lakukan adalah install aplikasinya, yakni ssmtp.
sudo apt-get install ssmtp
Lalu kita edit file ssmtp.conf, ada di folder /etc/ssmtp/
root=ardiagung@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=ardiagung
AuthPass=password
FromLineOverride=YES
UseTLS=YES

Kamis, 18 April 2013

[android] Scroll horizontal dan vertical

Hi, hari ini mau tulis scroll horizontal dan vertical di android. Lansung aja ke code ya. Pertama - tama kita buat dulu custom scroll untuk yang vertical (VScroll.java) dan horizontal (HScroll.java).

package ardi.fisika6.util;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.HorizontalScrollView;


Kamis, 11 April 2013

Push Code ke Github

Hari ini mau tulis cara push code ke github. Langkah awal pastinya harus punya account di github dulu ya :senyum. Buat repo dulu di github, lalu dipush dari client.
Langkah - langkah pembuatan repo di github
1. Klik new repository, lalu akan muncul form seperti gambar dibawah ini.

2. Setelah dibuat akan muncul window seperti dibawah ini, nah pilih ssh. Karna sampe sekarang gw belum bisa push via https :hammer.

Senin, 08 April 2013

Foreignkey postgresql

Sore ini mau tulis hal yang simple tapi kadang bisa terlupa, yakni foreignkey di postgresql. Prinsipnya sama dengan yang lain.

Misalnya kita buat 2 table (a_table & b_table). Jadi b_table punya column yang jadi reference ke table a_table.

CREATE TABLE a_table (id bigint primary key, name varchar(20));
Hasilnya seperti gambar di bawah ini

CREATE TABLE b_table (id bigint primary key, name varchar(20), id_a bigint references a_table(id));
Hasilnya seperti gambar di bawah ini

Jumat, 05 April 2013

Cipher based MAC (CMAC) C code

Hari ini mau tulis tentang CMAC dan sekalian share codenya jg :senyum. CMAC digunakan untuk menjamin data yang masuk itu tidak ada yang berubah, dalam artian tidak ada orang yang mengubah paket data dalam trafik jaringan.

Algoritma CMAC pada prinsipnya merupakan variasi dari CBC-MAC, bisa dilihat di wiki atau di e-book SP_800-38B.pdf. Dan kali ini saya hanya akan memberikan CMAC menggunakan enkripsi TDEA(Triple Data Encryption Algorithm)

Untuk membuat checksum menggunakan CMAC metode TDEA, terlebih dahulu kita harus tahu variabel apa saja yang diperlukan
- Key (K), yakni master key yang diperlukan untuk mengenerate subkey K1 dan K2.
- K1 & K2, yakni subkey yang dibutuhkan untuk XOR message (M) di 8 byte terakhir.
- Message (M), yakni data yang digunakan untuk menghasilkan checksum
- Initial Value (IV), digunakan untuk pada enkripsi CBC-TDEA.
Dan hal pertama yang kita lakukan adalah generate subkey (K1 & K2) dari K. Step - step untuk generate subkey;
1. L = CIPHK(0b) ; dengan b = 8 byte, sehingga 08 = 00000000, CIPHK() menggunakan algoritma TDEA enkripsi. (a*)
2. If MSB1(L) = 0, then K1 = L << 1 Else K1 = (L << 1) ⊕ Rb; Jika MSB (Most Significant Bit) 1 paling kiri dari L adalah 0, maka geser 1 bit ke kiri pada array L. Jika tidak maka geser 1 bit pada array L , lalu xor dengan Rb .
3. If MSB1(K1) = 0, then K2 = L << 1 Else K2 = (K1 << 1) ⊕ Rb; Jika MSB (Most Significant Bit) 1 paling kiri dari L adalah 0, maka geser 1 bit ke kiri pada array L. Jika tidak maka geser 1 bit pada array L , lalu xor dengan Rb .

Selasa, 02 April 2013

Clone VDI Virtualbox di Ubuntu

Hi, hari ini mau tulis cara clone vdi di ubuntu. Biasanya kita kalau uda install os di virtualbox terus pengen pake lagi, tp pengen yang fresh install itu kan tinggal copy aja vdi yang belum diinstall apa2 kan ya. Ternyata kita gak bisa melakukan hanya dengan copy paste aja. Kalau kita hanya melakukan copy paste aja, pasti akan muncul window error seperti di bawah ini deh.

Selasa, 26 Maret 2013

Ubah String Binary ke hexa

Hari ini mau tulis snipet code kecil yakni untuk mengubah string biner ke hexa.
Contohnya "1000" => 0x08
Langsung liat ke kode di bawah ini :

unsigned char gethexa(unsigned char *strhex) {
    int i;
    unsigned char arrbin[16][5]= {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
    unsigned char byte[16] = {0x0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F};

    for(i = 0; i < 16; i++)
       if(strcmp(strhex, arrbin[i]) == 0) return byte[i];

    return 0x0;
}
/************************************************
* Change string biner to hexa.
* e.x : "1000" => 0x08
* Params :
* - binstr   = string biner
* - binhex = hexa biner
*
*/
int strbin2hex(unsigned char *binstr, unsigned char *binhex) {
        int i, j = 0, len;

        unsigned char bintmp[5];
        unsigned char hextmp;

        memset(bintmp, 0x0, sizeof(bintmp));

        for(i = 0; i < strlen(binstr); i+=8) {
                memcpy(bintmp, &binstr[i], 4);
                hextmp = gethexa(bintmp);
                hextmp <<= 4;

                memcpy(bintmp, &binstr[i+4], 4);
                hextmp |= gethexa(bintmp);
                binhex[j] = hextmp;
                printf("binhex[%d] %x\n", j, binhex[j]);
                len = ++j;
        }
        return len ;
}

Selasa, 19 Maret 2013

Ubah Long Long Int ke String dan sebaliknya

Sore ini mau tulis kode cara convert string ke long long int dan sebaliknya. Kenapa menggunakan long long int itu karena pada kasus saya, saya membutuhkan 8 byte.
Langsung aja ke kode

/*******************************************************************
* Convert unsigned long long int to string.
* Params :
* - in : varible unsigned long long int that wil be converted [INPUT]
* - oBuff : buffer array [OUTPUT]
* - len_byte : length of buffer array [INPUT]
* return 
* - len as length of buffer array
*       
*/              
int ullint2str(unsigned long long int in, unsigned char *oBuff, int len_byte) {
        int len, i;
        unsigned long long int tmp = 0x0L;
        
        len = len_byte;
        tmp = in;

        for (i = len - 1; i >= 0; i--) {
                oBuff[i] = tmp;
                if (i != 0) tmp >>= 8;
        }

        return len;
}       

Sabtu, 26 Januari 2013

Pengalaman Interview :P

Jadi teringat pertama kali diwawancara oleh seorang VP.
vp : km ngelamar kemari sebagai apa ?
gw : programer java pak :senyum
vp : km sepertinya suka dengan itu. kenapa km suka ?
gw: umm,,dia itu sedikit berbeda pak, lebih manusiawi, elegan, pesonanya itu mengalihkan saya dari bahasa - bahasa yang lain
vp : !@#$%^&*..... (mulai dengan pandangan aneh, mungkin dia pikir gw gila :gila)
gw: ......(stay cheese :senyum)
vp: sebelum ngelamar kemari, sudah berapa kali km melamar ?
gw: kira - kira 5 kali pak.
vp: 5 kali ? km tau kenapa km ditolak ?.... (mulai sotoy :nohope)
gw: selama saya ngelamar saya blom pernah ditolak pak
vp : Hoo!!..Oke untuk hari ini selesai dulu, nanti km akan panggil bapak lagi :senyum
gw : terima kasih pak :senyum

Dan itu pertama kali gw lamaran gw ditolak dari perusahaan. Mungkin takdir tidak menghedaki gw berada di saingan perusahaan gw yang sekarang :senyum