Senin, 21 April 2014

Setup sudo tanpa password di Linux

Mekanisme melakukan sudo tanpa password memudahkan kita saat menggunakan IT automation tools e.g Ansible, distributed database HBase, dan hal lain yang hampir sama.

Berikut step by step cara melakukannya:
  1. Buat group baru dimana user yang ada di group ini melakukan sudo tanpa password, buka terminal masuk ke root, ketik perintah 'addgroup <nama group>', contoh 'addgroup nopass'.
  2. Edit file sudoers menggunakan perintah visudo, tambahkan baris berikut ini '%nopass ALL=(ALL) NOPASSWD: ALL'.
  3. Langkah terakhir tambahkan user yang ingin sudo tanpa password ke group 'nopass'. Invoke perintah 'usermod -a -G nopass <nama user>'.
Sebelum anda menikmati sudo tanpa password silahkan logout terlebih dahulu. :)

Kamis, 01 Agustus 2013

Posting pertama via mobile

Postingan pertama via mobile (nexus 7/ 4.3).

Fitur baru android 4.3 built in photo editor



Create new post

Kamis, 07 Maret 2013

Parsing Pesan ISO 8583 dengan Python

Berikut langkah-langkah sederhana untuk melakukan parsing pesan ISO 8583 menggunakan Python.
Instalasi modul ISO8583.

$ pip install https://pypi.python.org/packages/source/I/ISO8583%20Module/ISO8583%20Module-1.2.zip

test_parse_8583.py

# test_parse_8583.py
from ISO8583.ISO8583 import ISO8583


if __name__ == '__main__':
    iso = '0800d010800000000000000000002000000001200000000000400001200170299'

    msg = ISO8583()
    msg.setIsoContent(iso)

    print 'Tipe pesan: %s' % msg.getMTI()
    # iterasi field / kolom
    for field in msg.getBitsAndValues():
        print 'Kolom %s [%s] : %s' % (field['bit'],
                field['type'], field['value'])


Output

Tipe pesan: 0800
Kolom 2 [LL] : 012
Kolom 4 [N] : 000000000004
Kolom 12 [N] : 000012
Kolom 17 [N] : 0017
Kolom 99 [LL] : 0299

Sabtu, 14 Juli 2012

Enkripsi Public Key di Python

Public key memungkinkan orang mengirim pesan terenkripsi tanpa mengetahui kunci yang digunakan untuk dekripsi. Hal ini dikarenakan kunci yang digunakan asymetric, dimana kunci yang digunakan dekripsi berbeda dengan yang digunakan untuk enkripsi.

Terdapat modul Python PyCrypto yang menyediakan fungsi enkripsi public key. Untuk menginstall modul ini gunakan pip atau download module binary yang sudah tersedia

$ pip install PyCrypto

Untuk melakukan enkripsi dan dekripsi diperlukan kunci, PyCrypto menyediakan fungsi untuk membuat kunci dengan beberapa pilihan algoritma.
  • DSA
  • RSA
  • ElGamal
  • qNEW

Pembuatan Kunci

Dalam proses pembuatan kunci dibutuhkan data random dan panjang kunci yang akan dibuat (dalam kelipatan 256 dan lebih dari 1024). Data random dihasilkan oleh class Random yang menyediakan random number generation.

Jumat, 27 April 2012

Menjalankan apache2 web server standalone

Mungkin judulnya kurang tepat,  menjalankan apache2 web server standalone untuk direktori tertentu ke nomor port tertentu tanpa menjadi root terlebih dahulu.

Akhir-akhir ini sering membuat halaman web statis (html, css, dan javascript) yaitu berupa dokumentasi proyek, slide presentasi, dan mockup ui. Untuk sharing lebih enak kalo setup webserver untuk serving file-file tersebut daripada copy-paste lewat flashdisk.

Sabtu, 21 April 2012

Statistik ukuran file HTML di Wikipedia Indonesia offline

Let's do an experiment. Ada mirror Wikipedia bahasa indonesia lokal (entah kapan downloadnya).

$ cd wikipedia_id
$ du . -sh
4.1G .
Total ukurannya 4.1 Gigabyte termasuk file gambar, html dan file pendukung lain. Langkah pertama generate data ukuran file hanya yang bertipe html, gunakan du, grep dan cut.

$ du . -ab | grep \.html$ | cut -f 1 > /tmp/stats.txt
$ head /tmp/stats.txt
7519
8254
8910
8907
8560
8834
10463
8776
9558
10196
$ wc -l /tmp/stats.txt
277899 /tmp/stats.txt
Ada sekitar 277.899 file html dengan informasi ukuran dalam byte tersimpan pada file stats.txt. Untuk pembuatan graph histogram statistik, saya menggunakan Python modul matplotlib.

#!/usr/bin/env python
# generate_hist.py

import matplotlib.pyplot as plt

data = open('/tmp/stats.txt').readlines()

data = map(int, data)

plt.hist(data, 50)

plt.title('Histogram ukuran file HTML Wikipedia ID offline')
plt.xlabel('Ukuran file (byte)')
plt.ylabel('Jumlah file')

plt.savefig('hist1.png')

hist1.png
Wah, ternyata tampilannya kurang informatif, data terlalu mengelompok pada tiga pertama bins. Sekarang coba plot ukuran file dari yang terkecil sampai terbesar.

Kamis, 19 April 2012