Instalasi Odoo 8 di Windows dengan PostgreSQL yang diinstall terpisah

Bismillah. Berikut ini pengalaman saya menginstall Odoo 8 di Windows dengan PostgreSQL yang diinstall terpisah.

Ketika diminta menginstallkan Odoo di laptop Windows milik seorang kawan, saya menemui kendala error “Unable to write inside TEMP environment path.” Setelah berusaha mematikan antivirus, mengganti registry untuk file .vbs, menggunakan scrip WSH, dll, semua gagal. Akhirnya berikut ini langkah-langkah yang berhasil menginstall Odoo di windows dengan database PostgreSQL yang diinstall terpisah.

Install PostgreSQL dari binary

Langkah-langkah instalasi Postgresql for Windows dari binary, saya modifikasi dari http://www.petrikainulainen.net/programming/tips-and-tricks/installing-postgresql-9-1-to-windows-7-from-the-binary-zip-distribution/, sebagai berikut:

  1. Download binary PostgreSQL untuk windows dari http://www.enterprisedb.com/products-services-training/pgbindownload. Unzip dan tempatkan di C:\postgresql. Buat folder data dan log di C:\postgresql. 
  2. Buka prompt cmd, lebih disukai menggunakan akses Administrator. Caranya klik logo Windows, ketik cmd, lalu klik kanan di ikon cmd dan Run as Administrator.
  3. Buat cluster database baru dengan perintah:

    C:\postgresql\bin\initdb.exe -U postgres E utf8 -W -D C:\postgresql\data

  4. Register postgresql menjadi service di Windows dengan perintah:

    C:\postgresql\bin\pg_ctl.exe register -N “postgresql” -U “NT AUTHORITY\NetworkService” -D “C:\postgresql\data” -w

    Setelah ini maka postgresql sudah bisa dijalankan dan dimatikan melalui Services

  5. Buat database baru, dengan perintah:

    c:\postgresql\pgsql\bin\createdb.exe -U postgres odoo

  6. Buat user baru untuk database yang baru dibuat di langkah 5, dengan perintah:

    c:\postgresql\pgsql\bin\psql.exe -U postgres -c “CREATE ROLE odoo SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;” odoo

Selesai persiapan di postgresql.

Instalasi Odoo for Windows

  1. Download Odoo for Windows terbaru dari http://nightly.odoo.com/8.0/nightly/exe/ 
  2. Jalankan instalasi, ketika ditanya menginstall apa saja, uncheck PostgreSQL 
  3. Lanjutkan instalasi sampai ke tahap mengisi akses database, isikan nama database: odoo, tanpa password 
  4. Selesaikan instalasi Odoo
  5. Buka file C:\Program Files\Odoo 8.0-20160611\server\openerp-server.conf dan editlah sbb:

    db_password =
    db_user = odoo
    pg_path = C:\postgresql\pgsql\bin

  6. Jalankan odoo dengan perintah c:\Program Files\Odoo 8.0-20160611\server>openerp-server.exe

Selesai!

Bukalah browser dengan alamat localhost:8069. Jika masih belum dapat berjalan, silakan cek C:\Program Files\Odoo 8.0-20160611\server\openerp-server.log, lebih bagus lagi kalau mengaktifkan mode debug di C:\Program Files\Odoo 8.0-20160611\server\openerp-server.conf sbb:

log_level = debug

Referensi lainnya:

http://stackoverflow.com/questions/5189026/how-to-add-a-user-to-postgresql-in-windows

Notes:

Error ketika mencoba menjalankan Odoo dengan akses user postgres di openerp-server.conf:

c:\Program Files\Odoo 8.0-20160611\server>openerp-server.exe
Using the database user ‘postgres’ is a security risk, aborting.

 

Cara Mencari Peraturan Turunan Undang-Undang di SJDIH Kemenkeu

Bismillah.

Tulisan berikut ini membahas cara mencari peraturan turunan Undang-Undang dengan memanfaatkan situs SJDIH Kemenkeu (Situs Jaringan Informasi dan Hukum) yang beralamat di www.sjdih.depkeu.go.id. Ada tiga alasan kenapa saya menggunakan situs tersebut: 1) karena saya bekerja di Kemenkeu, akses ke sjdih jauh lebih cepat daripada mengakses internet, 2) struktur SJDIH Kemenkeu sudah cukup baik dan runut dalam menata produk hukum mulai dari Undang-Undang sampai PMK dan KMK, 3) karena saya tidak punya software berbayar untuk mencari produk hukum Indonesia.

Fitur Bawaan SJDIH

SJDIH sudah menyediakan fitur status aturan hukum, yakni apakah masih berlaku atau tidak. Jika suatu peraturan sudah dicabut, maka muncul info peraturan tersebut telah dicabut oleh peraturan yang mana, bahkan lengkap dengan link ke peraturan yang mencabut tsb. Jika kita ikuti link cabut-mencabut ini, maka kita akan sampai pada peraturan terbaru yang masih berlaku. Sebaliknya, jika kita ikuti ke atas, maka akan sampai pada peraturan pertama/tertua di topik tersebut.

Status Aturan

Cara Mencari Peraturan Turunan Undang-Undang

Nah sekarang yang ingin saya lakukan adalah mencari peraturan turunan suatu UU. Fitur ini tidak disediakan oleh SJDIH Kemenkeu, sehingga saya harus memutar otak untuk mendapatkan informasi tersebut.

Ada beberapa hal yang saya manfaatkan untuk mempermudah pencarian saya:

  1. Konsideran Undang-Undang selalu muncul di setiap aturan, baik Perpu, PP, Perpres, Keppres, Inpres, PMK maupun KMK.
  2. Judul Peraturan selalu ditampilkan oleh SJDIH di title tag. Misal: <title>Peraturan Pemerintah bla bla bla Nomor sekian Tahun sekian</title>
  3. Berkas peraturan disimpan oleh SJDIH dalam folder sesuai tahun diundangkannya. Seperti ini: http://www.sjdih.depkeu.go.id/fulltext/2005/

Dari ketiga premis tersebut maka saya mencari seluruh PP turunan dari UU 33 tahun 2004, maka saya membuat query searching di Google sbb:

[su_button url=”https://www.google.com/search?sclient=psy-ab&biw=1600&bih=741&q=inurl:www.sjdih.depkeu.go.id%2FfullText%2F2005+intitle:%22Peraturan+Pemerintah%22+%22Undang-Undang+Nomor+33+Tahun+2004%22&oq=inurl:www.sjdih.depkeu.go.id%2FfullText%2F2005+intitle:%22Peraturan+Pemerintah%22+%22Undang-Undang+Nomor+33+Tahun+2004%22&gs_l=serp.3..0i71l4.1591268.1596121.16.1597130.6.6.0.0.0.0.0.0..0.0.msedr…6…1c.1.62.psy-ab..65.0.0.4FmYszN0EDg&pbx=1&bav=on.2,or.r_cp.&bvm=bv.88528373,d.c2E&ion=1&ech=1&psi=cYQPVfbHOoyQuAS9sYDAAg.1427080309346.31&ei=HocPVaX3JceTuQT8kYKwDw&emsg=NCSR&noj=1″]inurl:www.sjdih.depkeu.go.id/fullText/2010 intitle:”Peraturan Pemerintah” “Undang-Undang Nomor 33 Tahun 2004″[/su_button]

Kalau dijelaskan, maka kurang lebih sbb:

  1. Bagian inurl:www.sjdih.depkeu.go.id/fullText/2010 ini memerintahkan Google untuk mencari di folder 2010 saja. Jika tidak ingin spesifik tahun, maka buang saja tahunnya sehingga menjadi inurl:www.sjdih.depkeu.go.id/fullText/
  2. Bagian intitle:”Peraturan Pemerintah” ini memerintahkan Google untuk menampilkan halaman dengan title tag Peraturan Pemerintah saja, bukan yang lain.
  3. Bagian “Undang-Undang Nomor 33 Tahun 2004” ini diharapkan untuk memeriksa apakah PP yang dicari memiliki konsideran UU tsb.

Google Query untuk mencari PP turunan UU

Pencarian ini memanfaatkan operator pencarian seperti inurl, intitle, intext, dll.  Google Operator selengkapnya dapat dipelajari dari http://www.googleguide.com/advanced_operators_reference.html. Mudah-mudahan bermanfaat. Silakan tinggalkan komentar atau masukan untuk posting ini melalui kotak komentar di bawah ya..

Cara Membuat Ponsel Android sebagai Wireless Card

Bismillah.

Ini kejadian nyata di rumah saya. Ada 2 PC di rumah saya tetapi hanya ada 1 modem Bolt. Modem Bolt sendiri bisa memberikan koneksi internet melalui 1 koneksi kabel USB dan 8 device mobile melalui WiFi. Jadi, modem saya colokkan ke 1 PC dengan kabel USB. Sementara PC yang lain, saya koneksikan melalui WiFi menggunakan ponsel Android. Berikut skema ponsel Android sebagai Wireless Card.

Cara Membuat Ponsel Android sebagai Wireless Card

 

 

Ponsel Android saya set USB Tethering ke PC sebagai downlink. Uplink saya gunakan WiFi ke modem Bolt.

Lumayan, untuk solusi darurat sambil menunggu membeli Wireless Card. Maklum tertunda libur panjang tanggal merah.

Disklamasi (Disclaimer)

Tentu saja cara yang saya gunakan ini tidak membuat Android Anda benar-benar menjadi Wireless Card, karena Anda tidak dapat menggunakan perintah iwconfig ataupun menggunakan promusciuous mode yang biasa disyaratkan dalam aplikasi-aplikasi sniffing. Sekedar mendapatkan koneksi internet dari Wireless Access Point terdekat.

Bukan Tutorial JPOS (ISO 8583)

Bismillah.

Disklamasi

Sesuai judul posting, tulisan ini bukan tutorial JPOS, melainkan pengalaman saya menggunakan jpos (project log). Jadi jangan terlalu banyak berharap tulisan ini akan membantu Anda memecahkan masalah yang Anda hadapi. Untuk itulah Anda dibayar Boss Anda bukan? Wkwkwkw…

jpos

Pendahuluan

Menggunakan JPOS adalah salah satu tantangan terberat yang pernah saya hadapi di dunia perkodingan. Minimnya resource tentang JPOS (baik dalam bahasa Inggris maupun Indonesia) masih diperparah dengan kenyataan bahwa tutorial-tutorial JPOS yang tersedia hanya membahas satu tipe instalasi JPOS saja. Tutorial-tutorial tersebut masih belum menunjukkan kekuatan sebenarnya dari JPOS. Mungkin saja karena tutorial-tutorial tersebut ditulis ketika JPOS masih dalam versi awal. Untuk itulah tulisan ini ingin menunjukkan bahwa fitur yang ditawarkan JPOS sebenarnya sangat luar biasa. Kombinasinya bisa dikatakan endless.

Mengapa kita perlu mengetahui kelengkapan fitur JPOS? Ada dua alasan utama. Pertama, aplikasi ISo8583 diharapkan dapat mengantisipasi load yang tinggi. Tuning JPOS untuk mendapatkan TPS (Transaction per Second) yang tinggi, jelas tidak datang dari konfigurasi standar. Kedua, tidak setiap kondisi di mana JPOS digunakan, dapat dipecahkan dengan solusi konfigurasi yang standar. Pengalaman saya menggunakan JPOS untuk menghubungkan sebuah database korporasi dengan salah satu institusi keuangan, justru mengharuskan sebuah konfigurasi JPOS di luar konfigurasi umum.

Meskipun tulisan ini tidak merinci seluruh fitur-fitur kelengkapan JPOS (karena kombinasinya luar biasa banyaknya), tetapi tulisan ini ingin setidaknya mengenalkan logika dasar penggunaan JPOS. Untuk penyelesaian akhir aplikasi ISO8583 yang sedang Anda bangun, Anda bisa merujuk pada Guide yang disediakan JPOS ataupun melalui milis user jpos. Hati-hati! Jangan kaget bila ada senior-senior di milis yang akan membalas pertanyaan Anda dengan sinis dan nyinyir.

Berikut ini adalah susunan tulisan bukan tutorial JPOS ini:

  1. Lisensi
  2. ISO 8583
  3. Kompilasi JPOS
  4. JPOS sebagai Aplikasi
  5. JPOS sebagai Framework
  6. Packager
  7. Menghubungkan JPOS dengan Database
  8. Referensi Lain yang Menarik

Lisensi

Meskipun JPOS dirilis di bawah lisensi Open Source, tetapi (entah bagaimana, saya bukan orang hukum) penggunaan JPOS untuk kegiatan komersial diharuskan menggunakan lisensi komersial. Apakah ini jebakan betmen? Hehehe.. entahlah. Padahal sangat kecil kemungkinan (atau bahkan mustahil?) ada aplikasi ISO 8583 yang tidak bertujuan komersial.

Sisi baiknya, dengan lisensi JPOS yang Open Source itu , kita bisa menggunakan (baca: mengkonfigurasikan) JPOS terlebih dahulu, baru membeli lisensinya. Jadi kita tidak membeli kucing dalam karung seperti ketika membeli aplikasi komersial biasa. Bahkan JPOS jauh lebih baik dari aplikasi yang memberikan demo atau trial, karena JPOS sudah memberikan aplikasi full feature sejak awal. Kita bebas menggunakannya sampai pada titik ketika aplikasi tersebut berjalan secara komersial, kita disyaratkan untuk memiliki lisensi komersial dari JPOS.

ISO 8583

ISO 8583 adalah sebuah protokol komunikasi antarhost yang dirancang khusus untuk kebutuhan payment. Anda dapat mempelajari ISO 8583 dari berbagai sumber kemudian kembali ke halaman ini untuk melanjutkan (bukan) tutorial JPOS.

Berikut beberapa link yang mungkin bisa membantu:

  1. Wikipedia page ttg ISO 8583
  2. An Introduction to ISO 8583 oleh kuriositaet.de
  3. Ebook ttg ISO 8583 oleh mas amyunus
  4. Pengenalan ISO 8583 oleh Bayu Rimba

Kompilasi JPOS

Kode sumber JPOS selalu tersedia terbuka. Dulu kode sumber ini disediakan di sourceforge. Sejak versi xx, kode sumber JPOS disediakan di github. Untuk dapat menggunakan JPOS, kita harus meng-compile kode sumber ini menjadi sebuah file JAR. Ada berbagai cara mengkompilasi JPOS menjadi JAR. Untuk amannya, ikutilah petunjuk di file README.md di dalam JPOS.

  1. Kompilasi Quick and Dirty.
    Cara kompilasi ini bisa ditempuh dalam keadaan terdesak 😀 Caranya adalah dengan menzip direktori JPOS dan me-rename-nya menjadi JPOS.jar. Belum saya coba! Cuman denger dari temen master Java. (Untested)
  2. Kompilasi dengan Maven dan/atau Gradle
  3. Download saja dari saya
    Opsi terakhir, jika Anda merasa kerepotan dengan urusan kompail-mengompail ini, silakan unduh saja file JAR hasil kompilasian saya.

jpos-1.8.9-SNAPSHOT (796,6 Kb)

jpos-1.9.5-SNAPSHOT (825 Kb)

atau download sendiri nightly build dari http://jpos.org/maven/ (direktori: org/jpos/jpos/x.x.x-SNAPSHOT/)

 

JPOS sebagai Aplikasi

Oke, setelah memiliki file jar JPOS, selanjutnya kita akan mulai dengan skenario paling sederhana, yaitu langsung menggunakan JPOS sebagai aplikasi. Keuntungan metode ini adalah kita tidak perlu melakukan programmning, cukup dengan mengedit file konfigurasi saja. Di dalam coding aplikasi berbasis JPOS, bisa dikominasikan dengan konfigurasi QBean. Pembahasan lebih lanjut akan dituangkan dalam postingan terpisah.

Project Guide jpos terbaru justru menyarankan kita menggunakan metode ini.

JPOS sebagai Framework

Selain menggunakan JPOS sebagai aplikasi, kita juga bisa menggunakan JPOS sebagai framework. Keuntungan metode ini adalah kita dapat mensetting/memprogram aplikasi ISO 8583 dengan cara yang fleksibel sesuai dengan keinginan kita. Seluruh perilaku aplikasi bisa kita kendalikan sepenuhnya. Kita dapat mengkonfigurasi koneksi, logika pemrograman, ISO package, ISO message, dst. Hal ini sangat kita perlukan jika requirement dari user maupun lingkungan menuntut adanya fitur khusus dari aplikasi kita (haduh.. belibet bener bahasanya, mudah-mudahan yang baca ngerti ya). Pembahasan lebih lanjut akan dituangkan dalam postingan terpisah, Insya Allah.

Sebagai gambaran singkat, penggunaan jPOS sebagai ISO Server adalah solusi terpopuler. Tetapi saya pernah juga mendapati requirement dari bank agar jPOS sebagai pensuplai data ditempatkan sebagai client (nah lho!).

Packager

Jpos belum bisa berjalan tanpa konfigurasi packager data. Ada banyak Packager yang sudah preload di jpos, tinggal pilih. Yaitu:

  1. XML Packager
  2. ISO 87A Packager
  3. ISO 87A Packager BBitmap
  4. ISO 87B Packager
  5. ISO 93A Packager
  6. ISO 93B Packager

Kita juga bisa membuat Packager sendiri, jpos menyediakan class Generic Packager untuk menggunakan packager buatan sendiri.

Menghubungkan JPOS dengan Database

Agar JPOS dapat memberikan data yang diperlukan oleh host, maka kita perlu mengambil data yang diminta oleh host dari database kita. Nah ini urusannya agak panjang, karena database bisa bermacam-macam platform.

Pembahasan lebih lanjut akan dituangkan dalam postingan terpisah, Insya Allah. Namun secara singkat, saya banyak terbantu dengan adanya JDBC driver. Ada banyak database yang bisa diakses menggunakan JDBC, antara lain:

  1. MySQL (JDBC Driver),
  2. PostgreSQL (JDBC Driver),
  3. MS SQL Server (JDBC Driver),
  4. dan lain-lain.

Saya sendiri menggunakan Oracle JDBC Driver versi 6.

Referensi Lain yang Menarik

Uulasan di atas masih membicarakan seputar dasar-dasar jpos, masih ada banyak hal lain yang dapat dibangun menggunakan jpos. Beberapa sumber telah mengulas hal-hal menarik dan berguna seputar jpos.  Sementara ini saya list dulu saja yha..

  1. Membuat jPOS client dengan jpos-template
  2. Step-by-Step Membangun jPOS ISO Server dengan Netbeans
  3. jpos javadoc (Very Useful! Terutama ketika mencari method suatu Class jpos)
  4. Me-log message ISO 8583 dengan log4j

Jika Anda menemukan referensi jpos yang menarik, silakan tambahkan melalui kotak komentar ya!

Penutup

Apa yang ingin saya katakan di penutup tulisan ini mungkin tidak relevan dengan isi tulisan. Namun saya merasa hal tersebut cukup sangat penting untuk diketahui. Perlu diingat bahwa bank adalah sumber aktivitas ribawi, sebuah dosa yang tidak ditolerir di berbagai agama. Sebagai programmer jpos, saya harap kita dapat memilah mana bentuk kerja sama dengan bank yang terlarang dan mana yang masih dalam kategori diperbolehkan.

Mudah-mudahan tulisan ini bermanfaat.

Menghosting Aplikasi di server cloud Openshift

Openshift adalah sebuah layanan hosting aplikasi yang disediakan oleh Red Hat. Di sini, kita bisa meletakkan aplikasi-aplikasi kita di sebuah server dan dapat diakses dari mana pun. Singkat kata, Openshift adalah sebuah server cloud. Layanan disediakan sebagai Platform as a Service (PaaS), yeah whatever its mean, apa pun itu artinya, saya nggak ngerti 😀 yang saya tahu hanyalah Openshift saat ini tersedia GRATIS, entah sampai kapan, mudah-mudahan seterusnya 😀

 

Openshift saat ini mendukung Node.js, Ruby, Python, PHP, Perl, dan Java. Jika masih dirasa kurang, kita bisa menambah sendiri melalui fitur DIY (Do-It-Yourself). Tulisan ini adalah dokumentasi saya ketika menginstall Tomcat 7 di Openshift.

 

INSTALASI TOMCAT 7 DI OPENSHIFT

Saya mengikuti referensi dari blog Openshift dalam menginstall Tomcat di Openshift. Namun sedikit berbeda dari tutorial tersebut, saya menggunakan Tomcat 7.0.30. Berikut langkah-langkahnya:

1. Membuat Account Openshift

Ikuti saja link https://openshift.redhat.com/app/account/new dan isikan semua field yang dibutuhkan. Jangan lupa masukkan kode promo TOMCAT untuk mendapatkan akses gratos (mudah-mudahan masih berlaku saat Anda membaca tulisan ini :P). Kemudian, akan ada link aktivasi akun yang dikirim ke email Anda.

 2. Install RHC Client

Instal client RHC sesuai platform Anda, tersedia untuk Windows, Linux, dan Mac OS. Saya menggunakan Ubuntu 12.04. Untuk instalasi RHC Client di Ubuntu, saya lakukan:

sudo apt-get install ruby-full rubygems git-core

setelah Ruby terinstall, kita gunakan GEM (Ruby Installer) untuk menginstall RHC.

sudo gem install rhc

Setelah RHC terinstall kita sudah dapat membuat aplikasi.

3. Membuat Aplikasi di Openshift

rhc app create -a tomcat -t diy-0.1

jika ini adalah perintah RHC pertama Anda, maka akan ada beberapa konfigurasi yang perlu dilakukan, termasuk ketika menentukan namespace. Silahkan pilih namespace Anda sendiri.

Kita hanya perlu menginstall tomcat saja, karena Java sudah tersedia di server Openshift.

4. Disable Ruby Test

Supaya nyaman menggunakan Tomcat, kita akan men-disable Ruby Test.

cd tomcat/.openshift/action_hooks

Di direktori lokal ini terdapat beberapa skrip yang dijalankan otomatis ketika menjalankan aplikasi. Yang akan kita lakukan adalah  menghapus skrip ini karena di dalamnya ada perintah Ruby Test. Pertama-tama kita matikan dulu aplikasi tomcat.

$ rhc app stop -a tomcat

Lalu, hapus file start dan stop dan buat file kosong bernama start dan stop.

$ rm start

$ rm stop

$ touch start

$ touch stop

Sama saja dengan perintah $ echo /dev/null > start && echo /dev/null > stop

Kemudian kita commit penghapusan ini ke git.

$ git commit -a -m “Replaced start and stop scripts”

$ git push

5. Login SSH

Untuk mendapatkan login SSH ke server Openshift, lihat informasinya dengan perintah

$ rhc domain show

login SSH akan ditunjukkan di info URL git, bentuknya spt ini:

Login SSH dapat dilakukan dengan perintah

$ ssh 8d9cb8f32a15462da469fff7d80b48bf@NAMESPACE_ANDA.rhcloud.com

6. Download Tomcat 7

Pindah direktori ke space aplikasi yang sudah dibuat di Openshift:

$ cd tomcat/data

Unduhlah Tomcat versi terbaru

$ wget http://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.29/bin/apache-tomcat-7.0.30.tar.gz

$ tar zxf apache-tomcat-7.0.30.tar.gz

$ rm apache-tomcat-7.0.30.tar.gz

$ cd apache-tomcat-7.0.30/conf

$ env |grep INTERNAL_IP

 

 

 

Which should return something similar to this:

 

OPENSHIFT_INTERNAL_IP=127.6.99.1

 

We need to modify the server.xml file to respect this ip address as well as change the default ports that some of the services run on.

 

 

 

Old Connector:

 

<Connector port=”8080″ protocol=”HTTP/1.1″

 

connectionTimeout=”20000″

 

redirectPort=”8443″ />

 

 

 

New Connector:

 

<Connector port=”8080″ protocol=”HTTP/1.1″

 

connectionTimeout=”20000″

 

address=”127.6.99.1”

 

redirectPort=”15443″ />

 

 

 

Notice that we added an address tag to this connector.

 

 

 

We now need to change the following line for the Catalina Engine:

 

<Engine name=”Catalina” defaultHost=”localhost”>

 

to

 

<Engine name=”Catalina” defaultHost=”127.6.99.1″>

 

 

 

We also need to modify the host name section to point to our OpenShift host.

 

 

 

<Host name=”localhost” appBase=”webapps”

 

unpackWARs=”true” autoDeploy=”true”>

 

to

 

<Host name=”tomcat-yourdomain.rhcloud.com” appBase=”webapps”

 

unpackWARs=”true” autoDeploy=”true”>

 

 

 

The ports that are configured for others services will not work by default because OpenShift does not allow users to bind to any port below 15000 other than 8080. Because of this, we need to change the following configuration items:

 

 

 

<Server port=”8005″ shutdown=”SHUTDOWN”>

 

to

 

<Server port=”15005″ shutdown=”SHUTDOWN” address=”127.6.99.1”>

 

 

 

<Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″ />

 

to

<Connector port=”15009″ protocol=”AJP/1.3″ redirectPort=”8443″ address=”127.6.99.1”/>

 

Menambah user manager di file tomcat-user.xml

<role rolename=”manager-gui”/>

<user username=”tomcat” password=”openshift” roles=”manager-gui”/>

7. Menjalankan Tomcat

$ cd ../bin

$ sh startup.sh && tail -f ../logs/*

Buka alamat Openshift Anda di browser. Voila!

Membuat SMS Gateway pada Ubuntu 12.04 dengan Gammu 1.31.0

Hari ini adalah hari kedua saya mengikuti training SMS Gateway di kantor saya. Narasumbernya mas Rosihan Ari. Kemarin saya sudah berlatih menginstall gammu di Windows. Hari ini, saya berinisiatif menginstall gammu di Ubuntu 12.04.

Ada beberapa perbedaan memang antara instalasi gammu di Windows dan Linux. Di Windows, gammu adalah satu paket aplikasi yang terdiri dari beberapa file exe, yaitu: gammu.exe, gammu-smsd.exe, gammu-smsd-inject.exe. Sementara di Linux, untuk membuat SMS gateway kita harus menginstall dua aplikasi, yaitu gammu dan gammu-smsd. Cara installnya sbb:

sudo apt-get install gammu gammu-smsd

Perbedaan selanjutnya adalah penamaan port yang digunakan oleh modem SMS. Jika di Windows menggunakan istilah com3: maka di linux menggunakan /dev/ttyUSB0 atau /dev/ttyASM0.

Untuk urusanfile konfigurasi gammu, Windows dan Linux sepakat. Keduanya sama-masa menggunakan dua file konfigurasi yaitu gammurc dan smsdrc.

File konfigurasi gammurc berisi konfigurasi untuk device modem yang digunakan. Bila menggunakan lebih dari satu modem, maka file gammurc inilah yang akan menanganinya. Dalam satu file gammurc, kita bisa menempatkan lebih dari satu konfigurasi device.

Di Windows, letak gammurc berada di folder gammu/bin. Sementara di Linux lokasinya di ~/.gammurc

Isi gammurc saya sbb:

[gammu]
device = /dev/ttyUSB0
connection = at115200

File konfigurasi smsdrc berisi konfigurasi untuk daemon sms yang dijalankan. Isinya berupa konfigurasi akses ke database, waktu time out, dst. DI Windows letaknya di gammu/bin, sementara di Linux lokasi defaultnya di /etc/gammu-smsdrc.

Isi gammu-smsdc saya sbb:
beta@lappy:~$ cat /etc/gammu-smsdrc
# Configuration file for Gammu SMS Daemon

# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyUSB0
connection = at115200
# Debugging
#logformat = textall

# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = mysql
logfile = /var/log/smsdlog
# Increase for debugging information
debuglevel = 0
checksecurity = 0
phoneid = UbuntuPhone
user = root
password = yourpassword
pc = localhost
database = smsd

# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

Logikanya gammu sebagai service adalah, ia akan mengirimkan via sms, semua isi tabel outbox dalam database mysql. Perintahnya sbb:

sudo gammu-smsd-inject TEXT 08567074554 -text ‘dari commandline’

Dari windows:

gammu/bin/gammu-smsd-inject.exe TEXT 08567074554 -text ‘dari commandline’

Sementara begitu dulu catatan singkat saya ttg gammu. Sekedar catatan untuk pengingat di masa depan. Nantinya akan saya gunakan untuk aplikasi SMS Notifikasi yang sudah saya buat.

SMS Notifikasi untuk Status Dinas

Ada gunanya juga saya bergaul dengan kawan-kawan underground semacam neoteker dan kecoak elektronik. Cara berpikir ala hacker yang mereka anut, sedikit-sedikit nyangkut juga di otak saya. Saya bukan programmer profesional. Aplikasi-aplikasi kecil yang saya buat belum bisa disebut ‘aplikasi’ seperti yang dimaksud oleh orang-orang. Namun, saya selalu mencari jalan agar teknologi dapat membantu hidup saya menjadi lebih mudah.

Salah satu hasilnya adalah skrip yang saya buat hari ini. Berawal dari kejelian kegundahan saya melihat aplikasi perjalanan dinas di kantor saya yang saya rasa nilai informasinya akan lebih tinggi jika dikirimkan via SMS. Di kantor saya, surat tugas untuk perjalanan dinas akan diterbitkan sebelum hari H keberangkatan. Karena informasi yang kurang mengalir di antara pegawai kantor saya, seringkali saya baru mengetahui sedang ditugaskan dinas ketika pada hari H. Padahal saya juga tidak bisa setiap saat men-cek aplikasi SPPD hanya untuk melihat apakah saya akan dinas. Akibatnya, saya jadi kurang persiapan untuk melaksanakan dinas luar kantor.

Sejak seminggu lalu saya bertekad ingin membuat agar info perjalanan dinas di aplikasi SPPD dapat saya grab dan saya kirim via SMS ke ponsel saya. Tentu saja secara otomatis. Harapannya agar saya tidak perlu khawatir lagi kurang persiapan dalam menjalankan dinas luar.

Untuk mengambil data dari aplikasi SPPD berbasis web, saya menggunakan perl dengan library LWP dan HTML::TreeBuilder. Library LWP saya gunakan untuk mengakses platform web, jadi saya tidak perlu berpusing-pusing dengan pemrograman socket. Sementara library HTML::TreeBuilder saya gunakan untuk membaca tabel HTML yang terdapat pada halaman web SPPD.

Aplikasi SPPD

Untuk mempermudah penulisan skrip yang puaanjang bener, saya memilah-milah tahap penulisan menjadi (semacam) modul-modul kecil yang dapat bekerja sendiri-sendiri. Dalam proses penyelesaian skrip ini, saya membuat beberapa skrip pengujian, yaitu:

  1. Skrip untuk mengakses/membaca halaman web aplikasi SPPD.
  2. Skrip untuk memanipulasi teks dari halaman web menjadi sebaris pesan SMS.
  3. Skrip untuk mengirim SMS berisi pesan yang sudah disiapkan di skrip kedua.

Skrip Mini

SMS saya kirimkan melalui penyedia SMS gratis di web seperti http://www.sms-online.web.id/ dan http://smsgratis.web.id. Saya buat wrapper dengan perl. Sayangnya, penyedia SMS gratisan seperti ini masih kurang reliabel, kadang SMS terkirim dan kadang gagal. Tanpa ada report apa pun. Yah, namanya juga gratis, gak boleh protes. Jika memang perlu, nanti saya akan menggunakan ponsel yang dicolok ke PC sebagai basis pengiriman SMS. Sementara ini cukuplah menggunakan SMS gratisan.

Nah, setelah skrip-skrip mini itu teruji, baru saya rangkai menjadi sebuah skrip panjang yang menyelesaikan seluruh pekerjaan sesuai keinginan. Info yang dikirim via sms adalah tujuan dinas, tanggal dinas dan unit yang mengusulkan.

Skrip SMS Notifikasi DL

Hasilnya? SMS berisi info perjalanan dinas terbaru berhasil masuk ke ponsel. Alhamdulillah. Setelah berhasil, beberapa kawan juga tertarik turut merasakan aplikasi ini. Mudah-mudahan dengan aplikasi ini, saya bisa mengetahui jika dalam beberapa hari ke depan saya akan ditugaskan.

Ada yang mau ikutan?

Fleksibilitas Sintaks Command SMS

SMS
gambar dari funnycraigslistads.com

Hari gini, layanan mobile begitu banyaknya. Mulai dari perbankan, tagihan macem-macem, sampai nilai rapor, kelulusan ujian, nomor polisi, dst. Semua informasi ini bisa diakses dari ponsel. Layanan premium yang tidak bermanfaat juga bertebaran (walaupun sudah disemprit BRTI).

Masalahnya, saya menggunakan beberapa layanan tersebut. Tapi, saya merasakan kurangnya fleksibilitas sintaks command pada sms sehingga terasa kurang nyaman digunakan. Sintaks atau susunan perintah bisa dikatakan sangat rigid dan tidak memiliki fleksibilitas. Bahkan ketika mengaktivasi SIM card baru pun kita sudah berinteraksi dengan sintaks command SMS. Perhatikan saja format registrasi SIM Card via 4444 berikut ini:

Nama#No.Identitas (No.KTP/No.SIM)#Jenis identitas (KTP/SIM)#Alamat+kota#Tempat lahir#Tanggal lahir#Pekerjaan.

Bah! Saya harus bolak-balik membandingkan isian SMS saya dengan format yang ditentukan. What a pain! Berapa banyak waktu dan tenaga yang terbuang hanya agar memastikan isian saya akurat.

Bandingkan dengan syntax command line pada DOS atau GNU/Linux atau bahkan UNIX. Mereka menyertakan option, misalnya dengan -o output_file. Dengan fleksibilitas ini yang kita hafalkan adalah logika jalannya command tersebut, bukannya susunan.

Duh.. saya mengangankan ada content provider yang responsif terhadap hal ini.

Sedikit berteori (konspirasi pula), muncul pertanyaan: apakah dari ruang kesalahan ini justru content provider menangguk untung? Kalo memang demikian, hmm.. nggak bener ini.. Bagi content provider yang mengutamakan kepuasan pelanggan, memiliki moral corporate yang baik, saya yakin tidak akan menempuh jalan ini. Justru content provider yang memperbaiki ketidaknyamanan ini akan mendapatkan positioning yang baik dalam pencitraan persepsi kepada pelanggan.

Frustrating Mummy Texting

gambar dari estergoldberg.com

 

Contoh kasus, jika ingin mentransfer pulsa ESIA, sintaks yang digunakan adalah sbb:

TRANSFER 10000 0219998877

Setelah kata TRANSFER, diikuti besaran pulsa yang akan ditransfer baru kemudian nomor tujuan. Dalam logika dan persepsi saya, jika kita ingin mentransfer pulsa maka kita memberitahukan nomor tujuan dahulu baru besaran pulsa yang akan ditransfer (alur yang biasa digunakan di kios-kios pulsa). Akibatnya, saya sering keliru dengan sintaks berikut ini:

TRANSFER 0219998877 10000

 

Padahal jika menggunakan options seperti pada command line DOS atau Linux, kurang lebih seperti ini:

TRANSFER -N 0219998877  -P 10000

Perintah tersebut tidak ada bedanya dengan sintaks berikut ini:

TRANSFER -P 10000 -N 0219998877

Lebih simpel kan? Bagaimana menurut Anda?

Madinah Live Streaming

Alhamdulillah, setelah sebelumnya kita bisa menikmati live streaming ibadah haji 2011 dan live streaming dari kompleks Masjidil Haram, Makkah, berikut ini adalah link video live streaming dari Madinah. Dengan adanya posting ini, sudah 2 tempat dan 1 prosesi ibadah di tanah suci yang dapat kita tonton melalui internet. Dua tempat yang dapat dipantau secara online tersebut adalah Mekkah dan Madinah, sementara rangkaian prosesi ibadah yang tersiar secara online adalah ibadah Haji tahun 2011 yang lalu.

Video live streaming dari kompleks Masjid Nabawi, Madinah, dapat diakses melalui kanal youtube SaudiSunnahTv. Berikut ini tampilannya:

Dengan adanya live streaming ini, kita bisa mempelajari kondisi di Mekkah dan Madinah sebelum benar-benar menginjakkan kaki di sana. Itung-itung mengurangi shock culture ketika nanti dapat rejeki untuk umrah atau haji. Selain itu, praktik keagamaan di Saudi juga bisa diintip dari siaran ini.

Beberapa kali saya melihat pemandangan menarik dari live streaming ini. Misalnya, di depan makam Nabi banyak peziarah yang diusir Askar. Kalau di Indonesia pasti sudah dicap Wahabi tuh 😀 Sayangnya, saya belum pernah melihat siaran streaming ketika ada majelis ta’lim. Padahal konon di Masjid Nabawi kerap diselenggarakan taklim.

Selamat menikmati layanan live video streaming dari Madinah, kota Nabi.

Menjadi Pahlawan Devisa melalui Online Marketing

Ekspor tenaga kerja rupanya menjadi salah satu andalan Indonesia. Setiap tahunnya sekitar 400.000 orang dikirim ke luar negeri untuk bekerja sebagai TKI. Sayangnya, pasar tenaga kerja yang dibidik hanyalah tingkat low-end alias pekerja kasar.

Namun melihat sumbangan yang diberikan para TKI nampaknya kita perlu mengacungkan jempol. Menurut sumber dari BPK, sumbangan devisa dari TKI mencapai US$ 4,37 miliar atau Rp 39,3 triliun setiap tahun. Sumber lain menyebutkan bahwa remitansi TKI mencapai angka US$ 6,617 miliar yang membuatnya menjadi sumber devisa terbesar kedua setelah ekspor migas.

Demo TKI di Hongkong

Banyaknya orang yang mengadu nasib di luar negeri menjadi cermin kondisi lapangan kerja di dalam negeri. Indonesia yang tadinya dikenal sebagai salah satu negara dengan keunggulan low-cost labor ternyata tidak mampu mempertahankan keunggulan itu. Industri-industri asing berbasis tenaga kerja, sudah eksodus ke negara lain.

Apakah dengan demikian potensi bekerja bergaji tinggi hanya bisa ditemui di luar negeri? Ternyata tidak demikian. Berterimakasihlah pada teknologi internet. Saat ini industri online marketing sedang bangkit di Indonesia. Hal ini ditandai dengan munculnya komunitas-komunitas online marketing. Sebut saja forum adsense-id.com. Forum yang memiliki ribuan anggota ini, aktif berbagi ilmu dan informasi seputar online marketing. Para anggota forum saling membagikan ilmu dan membimbing anggota baru untuk dapat menghasilkan penghasilan.

Industri yang bergantung pada internet ini memungkinkan orang-orang Indonesia untuk bekerja mendatangkan devisa tanpa perlu meninggalkan tanah air. Waktu yang tersita pun tidak banyak. Anda masih bisa meluangkan waktu untuk dinikmati bersama keluarga dan teman karib.

Selain itu, pendapatan yang dihasilkan dari online marketing adalah fair untuk seluruh dunia. Tarif pendapatan memang dibuat secara global oleh para broker iklan. Hal ini tentu sangat menguntungkan dibandingkan bekerja pada pekerjaan multinasional yang memiliki kebijakan penggajian yang tidak adil. Contoh paling baru yang kita temui adalah ketidakadilan sistem penggajian Freeport yang memicu karyawan Indonesia untuk mogok kerja.

Sistem pentarifan pendapatan online marketing tidak memandang lokasi geografis, ras, agama, umur, jenis kelamin, ataupun atribut-atribut sosial lainnya. Para publisher iklan (demikian para pekerja online ini kerap disebut) hanya dinilai berdasarkan kinerjanya saja. Semakin baik ia membuat iklan mencapai targetnya, maka semakin besar pula ia menghasilkan pendapatan dari sana. Merit system seperti ini sangat baik diterapkan untuk dapat menjaring potensi SDM Indonesia. Lain halnya dengan sistem di birokrasi PNS atau sebagian perusahaan swasta yang cenderung feodal, sehingga dapat mematikan potensi anak-anak muda Indonesia. (Lebih parah lagi kalau justru mereka terkontaminasi watak dan budaya korupsi).

Untuk dapat menikmati itu semua, hanya ada satu syarat yang harus Anda miliki: Anda harus melek internet.

Berbagai skema penghasilan online marketing menawarkan pilihan dan fleksibilitas dalam mendatangkan penghasilan. Kita dapat memilih skema mana yang paling mungkin kita jalani.

Belum ada data mengenai berapa besar devisa yang dihasilkan dari usaha online marketing yang dijalani oleh anak-anak muda Indonesia. Namun sebagai gambaran kasar, sebuah polling di forum adsense-id.com ini dapat memberikan gambaran berapa besar devisa yang didatangkan dari para pejuang online ini.

Polling Earnings Adsense

Data polling tersebut mungkin saja tidak akurat. Namun sepanjang belum ada data lain yang lebih baik, kita dapat menggunakannya sebagai gambaran saja. Kalau masih tidak yakin, Anda dapat melakukan konfirmasi ke salah satu publisher iklan. Caranya, mampir saja ke forum adsense dan menanyakan ke salah seorang anggota di sana, berapa pendapatan per bulannya.

Katakanlah, 58 orang yang mengaku memiliki pendapatan di atas US$ 10,000 setiap bulan tidak kita masukkan dalam perhitungan. Kemudian, nilai yang digunakan adalah nilai tengah dari masing-masing rentang (untuk rentang $100-$200 kita gunakan $150). Total devisa yang didatangkan dari online marketing adalah:

440 x $ 50 = 22,000
128 x $ 150 = 19,200
135 x $ 250 = 33,750
90 x $ 750 = 67,500
72 x $ 1500 = 108,000
34 x $ 3000 = 102,000
27 x $ 7000 = 189,000
Total US$ 541,500 atau senilai Rp 4,76 miliar (kurs 8.800).

Nilai 4,76 miliar rupiah memang masih ribuan kali lebih kecil dibanding devisa dari TKI. Namun ingat, data tersebut baru berasal dari anggota satu forum saja. Selain itu, menjadi publisher iklan juga lebih terhormat, tidak berisiko kematian (sependek pengetahuan saya), berbasis kecerdasan bukan tenaga kasar semata, terhindar dari pungli, terhindar dari risiko pemerkosaan dan pelecehan, dll. Apalagi biaya koneksi internet di Indonesia sudah semakin murah dan kualitas koneksi yang makin baik.

Tertarik terjun menjalani online marketing dan menjadi pahlawan devisa bagi Indonesia? Mari sama-sama belajar dan berjuang.