28 Jun 2016

the problem was that since telkom blocked reddit, netflix and god-knows-what-else-did-they-blocked. I need to find a way to circumvent this issues head on. turns out that telkom only blocked the keywords but not the ip address of the server’s website so when you open netflix.com then you’d get into a page of internetpositif which is basically telkom way of telling you that you can’t open this website.

one way to bypass this is to put this line of code in your ‘/etc/hosts’. and if you use windows then you can open the file in C:\Windows\System32\drivers\etc and input the following line using text editor.

127.0.0.1       localhost
::1             localhost
127.0.0.1 cfs.u-ad.info
127.0.0.1 adscenter.u-ad.info
127.0.0.1 u-ad.info
127.0.0.1 cfs2.uzone.id

198.41.209.141 reddit.com
198.41.209.141 www.reddit.com
75.101.139.66 netflix.com
75.101.139.66 www.netflix.com

there you have it, so everytime you encountered blocked website then you should just find the server ip address and put the ip address in hosts file and update it and you can open the blocked website without the need to use vpn.

simple solution for censorship.


on 28 Jun 2016 10:28 AM

Saya punya problema KMail2 yang saya pasang di KDE semenjak KDE SC 4 sering crash. Bahkan, saya terpaksa menghapus ulang seluruh konfigurasi KDE demi bisa memasang ulang KMail2. Memang, saya bisa saja memasang Thunderbird. Tapi, saya jatuh cinta dengan cara pakai di KMail2.

Setelah pemasangan KDE Neon, distro baru berdasarkan Kubuntu LTS 16.04, saya menemukan bahwa saya tidak bisa menggunakan KMail2! Usut punya usut, ternyata karena sistem saya menggunakan Oracle MySQL 5.7. Ada sintaks SQL yang tidak lagi cocok dengan versi teranyar itu. Saya pun harus memilih pindah ke MariaDB 10.x.

Saya temukan lebih lanjut, ternyata pustaka Akonadi yang dipakai oleh KMail2 menggunakan abstraksi Qt SQL. Lah, ‘kan, Qt SQL mendukung banyak basisdata! Saya pun memilih untuk dari pada pindah ke MariaDB, pindah ke PostgreSQL.

Sedikit Noktah dalam Pemasangan

Saya memasang PostgreSQL seperti yang saya telah tulis sebelumnya. Oh, iya, bakal ada pesan kesalahan pada saat pemasangan paket Debian PostgreSQL pada Kubuntu 16.04 dan turunannya kalau menggunakan cara tersebut. Hal ini karena versi BASH yang disediakan memiliki aturan yang lebih ketat untuk mode ketat.

Solusinya adalah mengganti setiap “$1” menjadi “${1:-}” pada berkas /usr/share/postgresql-common/supported-versions. Pada ViM, regex yang dipakai:

:%s/\$1/\$\{1\:-\}/g

Baru, ulangi kembali pemasangan PostgreSQL.

sudo apt-get -f install

Mungkin Anda akan lebih beruntung dari saya dengan memasang paket dari Kubuntu. Tapi, setahu saya, sih, tidak bisa.

Kalau Anda tidak menggunakan PostgreSQL pada sistem Anda, matikan saja instan PostgreSQL yang berjalan di sistem.

sudo systemctl stop postgresql && sudo systemctl disable postgresql

Lumayan menghemat beberapa mega memori dan proses CPU.

Konfigurasi Akonadi Sebelum Dipasang

Pertama-tama, mari buat direktori konfigurasi Akonadi:

mkdir -p ~/.config/akonadi/

Lalu, buat berkas konfigurasi untuk Akonadi menggunakan PostgreSQL:

cat >> ~/.config/akonadi/akonadiserverrc << EOF
[Debug]
Tracer=null

[%General]
Driver=QPSQL

[QPSQL]
Host=/tmp/akonadi-jp.RqiEZ0
InitDbPath=/usr/lib/postgresql/9.5/bin/initdb
Name=akonadi
Options=
ServerPath=/usr/lib/postgresql/9.5/bin/pg_ctl
StartServer=true
EOF

Ganti 9.5 dengan versi PostgreSQL yang Anda pakai.

Pemasangan KMail2

Selanjutnya, tinggal pasang saja:

sudo apt-get install akonadi-backend-postgresql kmail

Bila sudah sampai sini, seharusnya pemasangan lancar. Begitu menjalankan KMail2, Akonadi akan mengonfigurasi dirinya untuk menjalankan instan PostgreSQL khusus.

Terakhir

Saya sering memakai laptop sampai baterai kosong. Komputer saya kadang kena mati lampu. Sampai detik ini, keduanya masih stabil dan saya sampai detik ini belum pernah menghapus ulang KMail2.

Semoga beruntung, silakan bertanya.

on 28 Jun 2016 08:38 AM

25 Jun 2016

MDDHosting

Yakob

if you read my previous post, then you should know that I host my site at namecheap, while my experience in namecheap is good as they had great promise in server uptime. I also want to try some other host so as to experience what it’s like. you know the phrase “don’t put your eggs in one basket”, and this principle is also why this blog is hosted at wordpress.com and not at my hosting. as wordpress.com is much more reliable in blogging and lasts forever.

so when I visited MDDhosting, I was surprised that they initiate the chat eventhough I am not logging in, it must be they had installed some kind of chat function. so here’s how the chat went down.

Details:
     Date: 6/25/2016 12:33:36 PM
     Operator: No operator
     Initial Page: https://www.mddhosting.com/hosting.php
     Referer: https://www.facebook.com/
     Rating: No Rating
     Phone Number:
     Email: 

[6/25/2016 12:33:36 PM] Visitor joined the chat

[6/25/2016 12:33:36 PM] Michael Denney joined the chat

[6/25/2016 12:33:43 PM] Michael Denney said:
Hello! I'm here to help if you have any questions or need any assistance.

[6/25/2016 12:35:41 PM] Visitor said:
well I am from indonesia and from what I read you don't support indonesia user right?

[6/25/2016 12:36:25 PM] Michael Denney said:
We have seen high levels of fraud from Indonesia so we would likely verify your order.

[6/25/2016 12:37:09 PM] Michael Denney said:
That said we do accept orders and customers from Indonesia. 

[6/25/2016 12:37:26 PM] Visitor said:
verify by using my passport?

[6/25/2016 12:38:27 PM] Michael Denney said:
You could. Or if paying via a credit card just show us the front and cover the middle 8 numbers so we can be sure you have it in your possession. Or pay via PayPal and use the same email address to sign up as your PayPal account. 

[6/25/2016 12:38:53 PM] Michael Denney said:
We don't want your credit card or PayPal account to be used without your permission. 😉

[6/25/2016 12:39:01 PM] Visitor said:
I understand

[6/25/2016 12:39:15 PM] Michael Denney said:
Is there anything else I can assist you with today?

[6/25/2016 12:39:32 PM] Visitor said:
no thanks. I got what I need.

[6/25/2016 12:39:37 PM] Michael Denney said:
Thank you for using the MDDHosting Live chat!  Have a wonderful day.

[6/25/2016 12:39:41 PM] Michael Denney left the chat

[6/25/2016 12:39:41 PM] Visitor left the chat

based on the review that I read in forum, mddhosting seems to have many great impression but they do make it harder for people from indonesia to register. I mean in namecheap, I had to used other’s people paypal account to pay for the invoice due to my paypal is still not verified because of the credit card issue.

so in conclusion, for great hosting then yeah namecheap is still the best for me. suitable for web developers to build application.


on 25 Jun 2016 05:28 PM

24 Jun 2016

Sass, or Syntactically Awesome StyleSheets, is an extension language for CSS. With Sass, you can write clean, sustainable CSS code and solve the common repetition and maintenance challenges present in traditional CSS.

to see Sass example then just go here

In addition to being a valuable skill for any front-end developer, transitioning from CSS to Sass is pretty smooth due to the familiar syntax. Sass can’t be directly interpreted by your browser, so it must first be converted, or compiled, to CSS before the browser can directly understand it. and you can use this link to do just that.

Compiling refers to converting code to lower level code so that it can be executed. By compiling SCSS to CSS, it can be interpreted by your browser and the results will appear on a webpage.

this is only introduction, for more complex example will be presented in another post.

 

 


on 24 Jun 2016 06:20 PM

23 Jun 2016

if you read my previous post then you already know that I had installed planetplanet in my site. so basically I can now aggregate many blogpost into one site and to do this you need to learn a bit of python programming and also access to your hosting ssh. because if you want to use python then you need SSH access or else it won’t work.

it was easy though creating it, you just need to download the packet of planetplanet and put in your public_html then extract it by using ssh by typing this

$ python planet.py pathto/config.ini

basically if you read config.ini you can set how many blogpost items to display, and also to put rss feeds links so that planet can publish it. it’s all self-explanatory.

then after you had compiled planet.py then another file would be created called index.html this is the file that you will serve to user visiting your site. and if you want to edit the look and feel of your planet then you should do it in index.html.tmpl

remember that index.html will always reset itself everytime the python scripts run, so you have to use index.html.tmpl to edit the content by using bootstrap or css just like I had done with my planet. and don’t forget to put the script command as a cron job in cpanel. just put it once in a day as blogpost tends to be slow in update.

 


on 23 Jun 2016 05:24 PM

22 Jun 2016

So I always visit planet ubuntu and planet terasi to see interesting article but then I thought to myself, why don’t I create my own planet? then I did just that. I created my own planet in here

so yeah, I know lots of people don’t do blogging anymore due to facebook dominance but blogging is great for community as it’s much more open. but there is still a problem with the planet that I made, the problem is that it can’t import feeds from https website as it can only imports from http only. so to circumvent this issue then I created another wordpress site with aggregator plugin and then my planet import all the feeds from this aggregator wordpress.

I know the workaround isn’t optimal but I am still learning by doing here.

cheers !!!


on 22 Jun 2016 11:32 PM

17 Jun 2016

Steam

Ubuntu akhirnya memasukkan Steam ke repositori Multiverse-nya. Hal ini yang menyebabkan paket Debian Steam dari situs Steam Valve tidak lagi kompatibel dengan Ubuntu teranyar ini. Paket Steam pada repositori Ubuntu disebut steam. Sedangkan versi Valve nama yang dipakai adalah steam-launcher.

Kalau Anda menggunakan turunan Ubuntu, bukan Ubuntu asli — saya sendiri KDE Neon 5.6 — Anda mungkin harus memasang software-properties-common agar ada perintah add-apt-repository yang akan dipakai untuk memasang repositori. Supaya kita ada di satu halaman yang sama, maka mari pasang perkakas itu.

sudo apt-get install software-properties-common ppa-purge

Sekarang kita bisa lanjut.

Pemasangan Mula-mula

Seperti biasa, aktifkan arsitektur 32-bita.

sudo dpkg --add-architecture i386
sudo apt-get update

Buang pustaka S3 Texture Compression baku. INGAT! Ini mungkin ilegal di negara lain, terutama negara dengan paten perangkat lunak, uhuk AS uhuk.

sudo apt-get remove --purge libtxc-dxtn-s2tc0

Unduh libtxc-dxtn0 dari repositori xorg-edger. INGAT! Bukan dari Debian Multimedia seperti pada Tambora.

wget https://launchpad.net/~xorg-edgers/+archive/ubuntu/ppa/+files/libtxc-dxtn0_1.0.1-0.3ubuntu0sarvatt+raring_amd64.deb
wget https://launchpad.net/~xorg-edgers/+archive/ubuntu/ppa/+files/libtxc-dxtn0_1.0.1-0.3ubuntu0sarvatt+raring_i386.deb
sudo gdebi libtxc-dxtn0_1.0.1-0.3ubuntu0sarvatt+raring_amd64.deb 
sudo gdebi libtxc-dxtn0_1.0.1-0.3ubuntu0sarvatt+raring_i386.deb

Anehnya, Steam akan menjadi cerewet kalau versi 64-bita tidak dipasang. Makanya, kedua paket dipasang bersamaan.

Selanjutnya, aktifkan repositori Multiverse.

sudo add-apt-repository multiverse
sudo apt-get update

Pasang Steam!

sudo apt-get install steam
steam # RUNNING THIS SHOULD BE ERROR!

Kalau Anda jalankan perintah steam, kemungkinan Steam akan gagal dijalankan. Hal ini karena Steam memaketkan pustaka C++ dan versi GCC-nya sendiri!

Matikan Steam yang gagal berjalan sempurna itu. Lalu, hapus semua pustaka C++ dan GCC bawaan Steam.

find .steam/ -name *stdc++* -exec rm -rf {} \;
find .steam/ -name *gcc* -exec rm -rf {} \;

Beberapa orang, termasuk tadinya saya, menyarankan untuk menghapus pustaka dinamis saja. Namun, setelah berjibaku, saya menemukan bahwa Steam menggunakan pustaka statik juga untuk pustaka C++ dan GCC.

Selesai.

Akhir Kata

Mengapa saya menyarankan untuk menggunakan Steam versi Ubuntu, bukan yang dari Valve? Sebenarnya, sih, bisa saja. Asalkan Anda mau menerima pesan kesalahan bahwa paket Steam usang. Saya, sih, tidak mau.

false alarm about outdated version

Steam warns us that our version is outdated

Bacaan Lebih Lanjut

on 17 Jun 2016 01:56 PM

Blog Otomotif Bandung

Rolly Maulana Awangga

IMG_20160528_070648 (1)

Kurang lebih saya punya mobil sudah hampir 6 bulan kayaknya, eh lebih deng 8 bulan. Dari bulan november 2015 tahun kemaren sampe saat ini. Uniknya mobil saya ini jarang yang punya dan jarang yang bisa pakai karena berbeda cara nyetirnya. saya bilangnya ini adalah mobil mister bean, hihihi lucu sih soalnya. Karena saya orangnya ngirit saya coba perbaiki sendiri dan log aktifitas saya saya dokumentasikan di Blog Otomotif Bandung. Blog Otomotif Bandung ini adalah blog yang juga berisi video yang jelas untuk servis sendiri dirumah. Bagi siapa saja yang memiliki mobil bisa mampir ke Blog Otomotif Bandung yang saya panggil dengan nama Astrajing.ga

Oh iya. dalam berbagai kesempatan mengendarai kendaraan saya memang ada banyak hal yang saya lalui dan saya dapati semenjak menunggai bulao ini. Eh iya, nama mobil saya ini bulao ya. Karena memang warnanya biru sebiru persib lho…. Pas banget dengan Bandung sebagai markas besarnya persib. Back to the topik. Di blog ini saya mencurahkan pengalaman saya untuk membeli spare part murah yang bisa kita dapatkan dari toko online di luar negeri. Ya meskipun menunggu selama 1 bulan, saya cukup puas dengan harga dan kualitasnya lah.. tapi harga yang puas, bisa beda 10 kali lipat gituh kalo saya beli di bengkel biasa.

Blog Otomotif Bandung beroperasi kurang lebih baru sekitar 1 bulan ya, akan tetapi secara domain sudah lama sejak tahun kemaren. eh dua tahun kemaren kalo tidak salah. iya sejal 2014 domain tersebut saya miliki. Domain astrajing.ga. Domain ini artinya adalah cepot. Iya cepot, tokoh wayang golek jawa barat yang lucu itu lho.. ternyata nama aslinya si cepot itu astrajing.ga lucu ya. Okeh ga usah basa basi langsung saja ya kunjungi Blog Otomotif Bandung Buatan saya ya.


on 17 Jun 2016 09:34 AM

14 Jun 2016

Hallo all, ternyata sudah lebih dari 2 tahun saya sudah tidak pernah menulis di blog ini :(, oleh karena itu sebelum memulai post pertama saya setelah 2 tahun, maka pertama-tama saya mau minta maaf atas semua kesalahan saya, baik yang sengaja atau tidak di sengaja khususnya di bulan baik ini (Ramadan) dan mengucapkan selamat menjalankan ibadah puasa Ramadan dengan baik dan istiqomah. elearnsecurity eMAPT dengan kursusnya Mobile Application Security and Penetration Testing (MASPTv1) ini...
on 14 Jun 2016 09:53 AM
Jadi, ketika baru selesai masang GnU/Linux Debian, kebetulan memasang Debian 8, biasanya untuk akses super user, saya menggunakan perintah "su" yang langsung ke root. Lancar-lancar ajah sich kalo akses root mah. Nah, yang bermasalahnya ketika kita mencoba akses super user dengan menggunakan perintah "sudo". Pesan galat yang keluar adalah:
is not in the sudoers file.  This incident will be reported. 
Tenang, tenang, banyak jalan menuju roma. Salah satu hal yang dilakukan untuk memasukkan nama pengguna ke dalam berkas sudoers adalah dengan cara, memeriksa apakah kita sudah memasang paket "sudo". Paket ini, berdasarkan pengamatan, sejatinya sudah dipasangkan otomatis oleh sistem. Jadi hasilnya, ketika kita memeriksa, akan muncul pesan:
sudo is already the newest version
Selanjutnya, kita akan memasukkan nama pengguna kita ke dalam grup sudo. caranya adalah:
adduser user_name sudo
Berikutnya adalah menyunting berkas "sudoers" yang berada di dalam direktori /etc/
# nano /etc/sudoers
Silahkan sunting dengan penyunting berkas kesukaan Anda. Nano merupakan salah satu contoh penyunting berkas yang saya gunakan.

Di dalam berkas sudoers, cari baris yang berisi "%sudo ALL=(ALL:ALL) ALL". Nah, di bawah baris ini, silahkan masukkan:
user_name ALL=(ALL:ALL) ALL
Selesai. Silahkan simpan berkas yang sudah disunting. Apabila sudah disimpan, langkah selanjutnya silahkan coba akses menggunakan perintah sudo. Cara di atas bersifat cespleng untuk kasus saya. Semoga demikian untuk kasus Anda :). Semoga membantu.

Bahan bacaan:

  1. https://www.privateinternetaccess.com/forum/discussion/18063/debian-8-1-0-jessie-sudo-fix-not-installed-by-default 

 
 
on 14 Jun 2016 02:44 AM

12 Jun 2016

Sedikit dokumentasi tangkapan foto, dari kegiatan rekan-rekan KPLI Balikpapan dalam mengisi waktu luang... 
Bertempat di DiLo Telkom, sambil mengadakan rilis parti sederhana Ubuntu 16.04 kepada pelajar SMK di Kota Balikpapan. 

on 12 Jun 2016 01:25 PM

10 Jun 2016

dev droid

Mari gunakan hasil karya terdahulu yang sudah modular.

wget https://github.com/jpmrblood/percuma/archive/v2.zip -qO- | jar xvf /dev/stdin && cd percuma-2

Saat ini saya akan menggunakan metode decoupling berdasarkan tujuan (goal-based) versi yang telah disederhanakan. Tentu tidak akan serumit reverse engineering pada tulisan saya. Tulisan (Yu et al., 2005, 363--372) yang saya bahas itu rasanya terlalu rumit untuk dikembangkan di tulisan ini. Oke, sejujurnya saya juga sedang malas menggambar diagram.

Saya mengambil teknik Extract Method dari (Martin Fowler, 1999, 89--91) yang digunakan di awal metodologi itu. Agar sederhana, saya modifikasi metodologi agar menerjemahkan menjadi cerita (user story), bukan notasi ilmiah.

Contoh Metodologi Reverse Engineering Goal Based of JP, Abridge Version

Mari lihat kembali kelas yang telah dibuat sebelumnya.

package aja.jp.percuma;
 
class TestMain {
  public static void main (String ... args) {
    java.util.logging.Logger.getLogger(TestMain.class.getName()).info("Hello, world!");
  }
}

Apa yang dilakukan? Mari kita ceritakan dalam kalimat cerita:

Program ini mencetak ke terminal tulisan “Hello, world!”.

Dari cerita ini, ternyata ada dua tujuan yang terlihat jelas:

  1. Mencetak ke terminal.
  2. Tulisan “Hello, world!”.

Mencetak ke terminal (1) adalah sebuah tujuan yang bisa dibuat umum. Ada banyak hal yang bisa dilakukan dengan fungsi (1) ini. Fungsi ini bisa diekstraksi dan dijadikan sebuah fungsi terpisah agar bisa dimanfaatkan yang lainnya. Maka direkomendasikan agar (1) dijadikan fungsi terpisah.

Tulisan “Hello, world!” (2) adalah sebuah tujuan yang spesifik. Dia tidak bisa dipakai untuk yang lain. Maka, direkomendasikan untuk tetap untuk di sana.

Wow, Kisanak mungkin berpikir. Gampang juga, yah. Ternyata hanya begitu saja!

Kisanak salah! Ilmu ini masih versi disederhanakan (abridge version). Mari saya bukakan sedikit tentang tujuan tersirat (soft goal). Pada metodologi Reverse Engineering Goal Based of JP, salah satu yang diperhitungkan adalah tujuan tersirat (soft goal)!

Ada banyak tujuan tersirat yang kalau pada bahasa SDLC disebut sebagai non-functional requirement. Seandainya proyek ini ditentukan tujuannya (bahasa lainnya: Scrum Goal, non-functional requirement pada Waterfall, dan lain sebagainya tergantung paguyuban tempat Kisanak berguru). Pada iterasi selanjutnya, (2) dapat dikembangkan lebih lanjut, misalnya dengan menambahkan tujuan tersirat:

  1. Ingin menyapa bukan hanya dunia. Nama yang hendak disapa dapat diperoleh melalui STDIN (nama kerennya terminal). Rekomendasi: dibuatkan sebuah variabel dengan nilai baku “Hello, %s!”. Lalu, tangkap nama melalui STDIN. Masukkan nama ke senarai yang telah dibuat itu. Terakhir, cetak.
  2. Ingin agar ini dapat dimengerti hampir semua orang. Rekomendasi: dibuatkan variabel berisi “Hello” yang dianotasi dengan i18n. Gunakan framework lokalisasi.

Jangan lupa, bahwa bahkan pengumpulan kebutuhan dapat diiterasikan agar lebih jelas. Contohnya untuk tujuan tersirat (1). Diiterasikan kembali bahwa keamanan merupakan fitur utama. Tujuan tersirat (1), ditambahkan fungsi pengecekan Regex sebagai validasi sebelum memroses (1.1). Agar menarik, maka dibuatkan pemformat yang dapat menghasilkan keluaran yang cantik ke terminal (1.2).

Kisanak tentu bertanya, bagaimana cara menentukan tujuan tersirat ini? Sampai sedalam mana iterasi ini? Bisa jadi aplikasi menjadi besar dan bahkan untuk fungsi sederhana menjadi sulit. Itu sebabnya, biasanya tujuan tersirat biasanya dibuat di awal proyek dan berlaku global atau setidaknya dalam sebuah cakupan submodul. Beberapa perguruan silat membuat itu menjadi standar baku. Inilah yang dimaksud dengan Design Pattern bukan hanya berbicara kode, tetapi standar baku di sebuah perusahaan.

Astaga, sampai mana saya tadi?

Oh, iya, intinya, sudah saya jelaskan bahwa fungsi menulis ke terminal bisa diekstraksi ke fungsi lainnya. Karena dia bisa dipakai untuk yang lain, maka dia bisa dijadikan sebuah modul tersendiri. Pada proses penentuan modul, Kisanak dapat bisa mengenali apakah fungsi cetak ke terminal ini dijadikan proyek tersendiri sehingga bisa dimanfaatkan oleh proyek-proyek yang lainnya. Apalagi, dia tidak sesuai dengan tujuan proyek ini, membuat aplikasi percuma/sia-sia. Dia sudah sangat berguna sehingga tidak masuk lagi hitungan. Ha… ha… ha….

Mari Implementasikan ke Gradle

Setelah makanan bagi jiwa, sekarang saatnya ke Gradle. Pada direktori dasar proyek, mari buat submodul:

mkdir percuma-libs

Seperti biasa, masukkan percuma-libs ke proyek utama.

echo "include 'percuma-libs'" >> settings.gradle

Kalau benar, maka akan muncul sebagai submodul proyek percuma.

$ ./gradlew -q projects

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'percuma'
+--- Project ':percuma-app'
\--- Project ':percuma-libs'

To see a list of the tasks of a project, run gradlew <project-path>:tasks
For example, try running gradlew :percuma-app:tasks

Buat konfigurasi untuk mengompilasi percuma-libs.

cat >> percuma-libs/build.gradle << EOF
apply plugin: 'java'
EOF

Sekarang, mari buat sebuah kelas Java.

mkdir -p percuma-libs/src/main/java/aja/jp/percuma/lib
cat >> percuma-libs/src/main/java/aja/jp/percuma/lib/PrintLib.java << EOF 
package aja.jp.percuma.lib;

public class PrintLib {
  public void log(Object o, String m) {
    java.util.logging.Logger.getLogger(o.getClass().getName()).info(m);
  }
}
EOF

Setelah membuat submodul ini, mari tambahkan submodul percuma-libs sebagai salah satu pustaka yang dibutuhkan oleh percuma-apps.

cat >> percuma-apps/build.gradle << EOF
dependencies {
  compile project(':percuma-libs')
}
EOF

Mari ubah kelas TestMain untuk menggunakan pustaka yang sudah kita masukkan. Ubah baris:

java.util.logging.Logger.getLogger(TestMain.class.getName()).info("Hello, world!");

menjadi:

new aja.jp.percuma.lib.PrintLib().log(new TestMain(),"Hello, world!");

Atau kalau dari terminal:

sed -i.bak "/java.util.logging.Logger/c\    new aja.jp.percuma.lib.PrintLib().log(new TestMain(),\"Hello, world\!\");" percuma-app/src/main/java/aja/jp/percuma/TestMain.java

Selesai sudah.

Judul Cuma untuk Pembatas Saja dan Saya Bingung Apa Namanya Karena Artikel Ini Bukan Artikel Terakhir Karena Entah Mengapa Kalau Saya Beri Nama Penutup Artikel Selanjutnya Tidak Pernah Jadi

Sampai sini, Kisanak bisa langsung menjalankan “./gradlew run” seperti biasa. Seharusnya, sih, keluarannya sama.

Sampai sini saya juga berpikir, apakah saya perlu mengubah gaya menulis saya? Saya biasanya menggunakan frasa, “silakan gunakan penyunting kesukaan Anda.” Kali ini saya paksakan semua kita menggunakan penyunting saya, terminal GNU/Linux.

Semuanya bisa langsung dicobakan di terminal pada sistem operasi GNU/Linux. Mohon beritahu saya kalau ada yang tidak jalan.

Selanjutnya

Kisanak berpikir setelah menguasai modularitas dengan Gradle dan metodologi cetek Reverse Engineering of JP, Abridge Version, Kisanak merasa sudah elit?

Sayang sekali, Kisanak. Kalau Kisanak sadar, cara penamaan paket saya kacau! Mana benar itu penulisan “aja.jp.percuma”? Seharusnya “edu.ui.jp.percuma” sesuai dengan organisasi yang jam kerjanya saya ambil untuk menulis ini atau “jp.percuma” karena “aja” bukanlah top level domain yang lazim. Pokoknya, konvensi penamaan ini penting.

Ah, Pak JP, apakah ada yang perlu saya pelajari? Mohon ajari, bila berkenan.

Saya suka sikap Kisanak! Nama paket akan sangat berpengaruh terhadap Artifak. Artifak adalah obyek-obyek hasil kultivasi yang banyak dipakai orang. Misalnya, menggunakan Maven dalam POM yang ada di JCenter atau Maven Repository.

Tergantung mood saya, saya akan membahas cara membuat peladen artifak lokal (bonus kalau saya lagi mood) dan  membuat artifak dengan Gradle dan mengimpor artifak dengan Gradle. Atau, mungkin hanya di sekitar artifak saja. Entahlah…. Film apa yang bagus untuk mood saya, ya?

Daftar Pustaka

Martin Fowler (1999). Refactoring: Improving the Design of Existing Code. Boston: Addison-Wesley Professional. doi: 0201485672 9780201485677. Retrieved from Addison-Wesley Professional: www.worldcat.org/isbn/0201485672.^
Yu, Yijun and Wang, Yiqiao and Mylopoulos, J. and Liaskos, S. and Lapouchnian, A. and Leite (2005, August). Reverse engineering goal models from legacy code 13th IEEE International Conference on Requirements Engineering (RE'05), [NO VOLUME]([NO ISSUE]), 363--372. doi: 10.1109/RE.2005.61.^
on 10 Jun 2016 11:09 AM
dev droid

Kisanak pikir setelah mengerti jurus Kunyuk Melempar Pisang, Kisanak sudah bisa menguasai dunia persilatan? Kisanak harus mawas diri dan mengerti bahwa di atas langit masih ada langit lagi. Jurus itu mungkin bisa membuat Anda selamat di dunia persilatan. Camkan ini:

Di atas langit masih ada langit; ilmu yang dikuasai hanyalah setitik dari samudera.

Ketika aplikasi yang dibuat hanya sederhana, ilmu jurus Kunyuk Melempar Pisang sudah cukup. Masalah baru ketahuan setelah Kisanak naik level dengan aplikasi yang besar dan kompleksitas tinggi. Niscaya Kisanak akan menemukan bahwa Kisanak hanyalah jawara kampung.

Untuk dapat merajai dunia persilatan, ada konsep lain yang Kisanak mesti pahami: modularitas.

Kisanak harus bisa memilah. Mana yang kekhususannya untuk menghadapi basisdata. Mana yang kekhususannya menampilkan dan memroses laman web. Mana kekhususannya mengurusi logaritma. Dan berbagai kekhususan lainnya. Dengan memahami kekhususan ini, Kisanak bisa melakukan dua konsep ini: reuse dan melacak ketergantungan.

Reuse, adalah konsep sakral pemrograman. Seperti pemeo berkata, “do not invent the wheels.” Kode yang baik adalah yang bisa memisahkan dengan baik fungsi-fungsi dalam berkas/proyek terpisah sehingga dapat dimanfaatkan oleh banyak pihak. Proses untuk mengubah dari kode yang kompleks dan rumit menjadi terpecah-pecah dan modular ini disebut proses decoupling.

Decoupling adalah sebuah Dao yang mendalam. Banyak yang berusaha menemukan misteri dibaliknya. Sedikit yang dapat menguasai Dao ini. Mereka yang telah mencapai pencerahan, merekalah sesungguhnya yang merajai dunia persilatan!

Di dunia persilatan, ada beberapa ilmu kanuragan untuk decoupling. Ada yang memiliki karma tinggi sehingga bisa mampu menguasai level tinggi menggunakan ilmu Pemrograman Dinamis (Dynamic Programming), ilmu Kalkulus Lambda (Lambda Programming), dan lain-lain. Banyak juga orang yang tergabung dalam sekte-sekte yang memiliki repositori Dao mendalam. Mereka ini banyak mengkultivasi ilmu Design Pattern. Pernah ada legenda bahwa sebuah ilmu ilmu legendaris yang sepertinya hilang ditelan bumi seperti KAOS bisa menguasai penuh Dao ini.

Sayangnya, untuk orang-orang biasa, yang paling banyak dikultivasi orang adalah variasi ilmu Tebak-tebak Berhadiah. Ilmu ini mudah dikuasai, namun ia takkan mampu memberikan pencerahan sampai menguasai seluruh Dao. Itu sebabnya, bagi orang-orang kebanyakan, mukadimah ini semua tidak berguna.

Mereka akan mengira bahwa apa yang ditulis ini hanyalah mengisi luang supaya entri ini banyak. Camkanlah satu rahasia langit ini, Kisanak: tutorial ini hanyalah gerbang menuju Dao decoupling. Yang perlu dipahami selanjutnya adalah melatih pikiran.

Melatih jiwa, melatih raga. Melatih roh, melatih kode. Lepas dari Samsara, lepas dari debug tak berakhir.

Pindah ke Gradle Modular

Mari dapatkan proyek yang telah dibuat sebelumnya:

wget https://github.com/jpmrblood/percuma/archive/v1.zip -qO- | jar xvf /dev/stdin && cd percuma-1

Setelah masuk ke direktori proyek terdahulu, mari ubah menjadi modular.

Buat direktori untuk menjadi sebuah submodul dan pindahkan berkas build.gradle dan seluruh kode sumber.

mkdir percuma-app
mv build.gradle src percuma-app

Ingat, build.gradle adalah seperti Makefile. Isinya adalah aturan yang diperlukan untuk mengompilasi.

Selanjutnya, beritahu percuma bahwa dia memiliki submodul percuma-app.

echo "include 'percuma-app'" >> settings.gradle

Terakhir, tambahkan modul percuma-app sebagai syarat yang dibutuhkan oleh percuma.

cat >> build.gradle << EOF
apply plugin: 'java'

dependencies {
  compile ':percuma-app'
}
EOF

Karena kita mau mengompilasi proyek ini, maka jangan lupa tambahkan plugin java pada aturan Gradle. Secara otomatis Gradle akan menjalankan perintah-perintah yang dijalankan pada proyek utama pada submodulnya nanti. Kalau tidak percaya, silakan saja coba:

./gradlew -q run

Hasilnya harusnya sama, sih.

on 10 Jun 2016 07:21 AM

09 Jun 2016

Ternyata, komputer yang saya gunakan ini sering sekali diakses oleh rekan kerja karena berbagai data yang ada dibutuhkan untuk lintas pekerjaan. Menjadi repot ketika saya tidak sedang di kantor pada saat dibutuhkan. Belum lagi kata kunci yang tidak melulu diketahui oleh rekan kerja. Salah satu cara membagi berkas pekerjaan adalah dengan menggunakan samba. Ini karena sistem operasi yang saya gunakan adalah GnU/Linux Debian sedangkan rekan kerja menggunakan sistem operasi MS Windows.

Konfigurasi berkas mutlak diperlukan. Supaya memudahkan, biasanya saya menyimpan konfigurasi berkas yang sukses telah berjalan untuk jaga-jaga. Berikut adalah konfigurasi smb.conf yang saya gunakan:

[nama direktori 1]
path = /pola/direktori/1
comment = silahkan isi sesuka hati readonly = no
public = yes
browseable = yes
guest ok = no
valid users = @nama_user_1, @nama_user_2
[nama direktori 2]
path = /pola/direktori/2
comment = silahkan isi sesuka hati readonly = no
public = yes
browseable = yes
        guest ok = no
valid users = @nama_user_1, @nama_user_2

Tinggal disesuaikan, berapa direktori yang ingin Anda bagikan. Dalam kasus saya, ada dua direktori kerja yang saya bagi-pakai. Jadinya, dua setelan tersebut di atas.

Langkah selanjutnya adalah dengan membuat akun pengguna sesuai "valid users" yang sudah didefinisikan. Perintah yang digunakan adalah:

# adduser nama_user_1

Silahkan sesuaikan isinya berdasarkan pertanyaan yang diberikan oleh sistem. Utamanya sich, nama pengguna dan kata kunci. Bagian lainnya bisa dikosongkan. Tambahkan banyaknya pengguna, sesuai dengan jumlah pengguna yang sudah dimasukkan dalam konfigurasi tadi.

Berikutnya adalah memasukkan kata kunci sama untuk masing-masing pengguna yang sudah ditambahkan tadi. Yang perlu dilakukan adalah, masukkan perintah ini:

# smbpasswd -a nama_user_1

Silahkan masukkan kata kunci yang sama seperti kata kunci saat pembuatan pengguna atau boleh berbeda. Kata kunci ini digunakan ketika pengguna akan mengakses berkas/direktori yang dibagi. Tambahkan kata kunci samba sebanyak pengguna yang dibuat dalam konfigurasi tadi.

Setelah proses di atas selesai dilakukan, langkah terakhir adalah dengan memula-ulang layanan samba dengan perintah:

# /etc/init.d/samba restart

atau

# systemctl restart smbd

Silahkan nikmati berbagi menggunakan samba untuk lintas sistem operasi :). Semoga bermanfaat.

nb.
itu "readonly = no" diturunkan satu paragraf ya. jadi posisinya di bawah "comment".

Bahan bacaan:
on 09 Jun 2016 10:10 AM

Clash Royale : How to get Prince

Rolly Maulana Awangga

This epic card is most powerfull to destroy the castle, imagine that. But not every player get this card in this default arena. The default arena of Prince is Training Camp. So, i want a Prince so bad, please watch Clash Royale How To Get Prince Video , and may the force be with you:).


on 09 Jun 2016 05:19 AM

08 Jun 2016

[Sumber: imgur.com]
Ini meme yang paling pas menggambarkan situasi bagaimana orang-orang berkomentar di internet sekarang.

Dulu orang-orang dengan identitas online (pseudonim) saja yang berkomentar sadis di internet. Maksud saya di sini komentar yang mem-bully orang lain, ujaran kebencian SARA, ataupun pernyataan jahat (misal: ngaku pengen membunuh orang lain). Kini orang-orang dengan identitas asli (di Facebook, Path, Twitter, Linkedin, dll) gampang saja berkomentar sadis di internet. Sebagian bahkan bangga.

Walaupun saya pernah baca yang terjadi di internet itu hanya mewakili tak sampai 5% yang ada di dunia nyata, tapi 5% dari 100 juta orang itu juga banyak sih.

on 08 Jun 2016 11:38 PM
dev droid

Seperti judul blog ini, yang saya tuliskan ini adalah sesuatu yang sia-sia. Anda bisa langsung menggunakan aplikasi seperti IntelliJ atau Eclipse. Dengan penyunting itu, Anda tinggal membuat “New Project” dan semuanya sudah terkonfigurasi.

Tapi, mungkin Anda salah satu elitis yang lebih suka menggunakan terminal. Atau, Anda ingin tahu cara kerja Gradle sehingga Anda dapat setidaknya sedikit paham kalau ada masalah. Kalau saya, saya hanya sedang iseng sebelum menunggu waktunya tiba untuk menonton Warcraft di bioskop.

Proyek hanya Sejauh Direktori Kosong

Mari buat proyek baru. Caranya, buat direktori kosong dan dua buah berkas Gradle: build.gradle dan settings.gradle.

mkdir percuma && cd percuma
touch build.gradle settings.gradle

Mari namakan proyek kita ini “proyekPercuma”.

echo "rootProject.name = 'percuma'" >> settings.gradle

Secara umum, ini sudah siap. Tapi tunggu dulu, Kisanak! Kisanak tidak akan pernah lengkap ilmu bila tanpa jurus Monyet Membungkus Pisang!

Proyek hanya Sejauh Pembungkus

Java adalah sebuah pustaka yang sering kali berdiri sendiri. Hal ini karena sering kali distribusi menggunakan versi yang lawas. Bayangkan, Kisanak! Ini sudah 2016, namun Kubuntu Xenial (16.04) yang saya pakai masih menggunakan Gradle versi 2.10.

sudo apt-get install -y gradle && gradle -v

Hasilnya:

------------------------------------------------------------
Gradle 2.10
------------------------------------------------------------

Build time:   2016-01-26 15:17:49 UTC
Build number: none
Revision:     UNKNOWN

Groovy:       2.4.5
Ant:          Apache Ant(TM) version 1.9.6 compiled on July 8 2015
JVM:          1.8.0_91 (Oracle Corporation 25.91-b14)
OS:           Linux 4.4.0-22-generic amd64

Astaga! Padahal, versi terbaru sudah ada lama sebelum Xenial. Belum lagi, beberapa pustaka terbaru memanfaatkan Gradle versi terbaru.

Supaya kita menggunakan Gradle terbaru, mari buat skrip pembungkus Gradle. Saat penulisan Gradle terbaru versi 2.13.

gradle wrapper --gradle-version 2.13

Anda bisa lakukan ini untuk memperbaharui Gradle pada proyek yang lama ke versi yang terbaru. Sekarang lihat versinya:

$ ./gradlew -v

------------------------------------------------------------
Gradle 2.13
------------------------------------------------------------

Build time:   2016-04-25 04:10:10 UTC
Build number: none
Revision:     3b427b1481e46232107303c90be7b05079b05b1c

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_91 (Oracle Corporation 25.91-b14)
OS:           Linux 4.4.0-22-generic amd64

Selesai, deh.

Tunggu Dulu, Kisanak!

Mari buat sebuah proyek Java sederhana.

cat >> build.gradle << EOF
buildscript {
  repositories {
    jcenter()
  }
}

apply plugin: 'java'
apply plugin: 'application'
EOF

Lalu buat struktur direktori Java (kode sumber dan sumber daya):

mkdir -p src/main/java/ && mkdir -p src/main/resources

Sebagai pemrogram Java yang baik, seharusnya kita menaruh berkas Java pada paket-paket. Mari buat direktori paket Java.

mkdir -p src/main/java/aja/jp/percuma

Buat sebuah kelas sederhana.

cat > src/main/java/aja/jp/percuma/TestMain.java << EOF
package aja.jp.percuma;

class TestMain {
  public static void main (String ... args) {
    java.util.logging.Logger.getLogger(TestMain.class.getName()).info("Hello, world!");
  }
}
EOF

Tambahkan berkas Java ini sebagai kelas utama dalam proyek percuma.

echo "mainClassName = 'aja.jp.percuma.TestMain'" >> build.gradle

Sekarang tinggal dicoba jalankan:

./gradlew -q run

Saya sengaja tambahkan “-q” agar keluaran dari Gradle tidak keluar. Sehingga, hasilnya langsung keluaran dari aplikasi, yakni:

Jun 08, 2016 5:20:53 PM aja.jp.percuma.TestMain main
INFO: Hello, world!

Kalau tanpa “-q” dia akan berisik seperti ini:

:compileJava
:processResources UP-TO-DATE
:classes
:run
Jun 08, 2016 5:23:40 PM aja.jp.percuma.TestMain main
INFO: Hello, world!

BUILD SUCCESSFUL

Total time: 8.079 secs

This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.13/userguide/gradle_daemon.html

Bersih-bersih

Kadang kalau proyek sudah besar dan kompleks, kita perlu membersihkan hasil kompilasi secara manual:

./gradlew clean

Mau buat distribusi supaya keren?

./gradlew installDist

Sehingga, kita jalankan dengan:

./build/install/percuma/bin/percuma

Ada .bat juga di situ untuk menjalankan di sistem terlarang.

Mau publikasikan hasil pekerjaan?

./gradlew distZip

Berkasnya ada di ./build/distributions/percuma.zip

Mau tahu perintah Gradle yang lain?

./gradlew tasks

Selebihnya terserah Anda. Gampang, ‘kan?

Bacaan Lebih Lanjut

on 08 Jun 2016 10:34 AM

07 Jun 2016

SLiMS 7 Portabel

Arif Syamsudin


SLiMS versi portabel (SLiMS, Apache, MySQL, dan PHP terbundel) merupakan salah satu distribusi SLiMS yang diperuntukkan bagi pengguna sistem operasi MS Windows. Versi terbaru dari SLiMS portabel adalah SLiMS Portabel versi 8 yang tersedia untuk 2 (dua) sistem arsitektur, 32bit dan 64bit. Terkait beberapa masalah keamanan terkait SLiMS, kode sumber SLiMS sudah dioptimalisasi untuk menghindari kejadian serupa di kemudian hari.

Versi portabel yang mengalami pembaruan paling mutakhir adalah, SLiMS 7 Portabel yang dapat diunduh via laman slims.web.id/goslims. Kenapa SLiMS 7? Karena versi ini merupakan salah satu versi stabil, belum jauh masa pengembangannya dengan SLiMS 8 Akasia, dan versi paling banyak digunakan oleh pengguna SLiMS saat ini.

Pembaruan terkini dari SLiMS 7 Portabel versi terkini adalah perubahan porta Apache dan MySQL sehingga ketika digunakan, tidak akan mengalami kendala pada saat mesin host sudah terpasang peladen web dan MySQL yang secara baku menggunakan porta 80 dan 3306. Pada SLiMS 7 Portabel versi terkini, porta yang digunakan adalah 8089 untuk Apache dan 3307 untuk MySQL. Selain itu, kode sumber yang digunakan pada versi terkini adalah kode sumber yang ada di repositori SLiMS pada GitHub yang mana sudah mengalami pengoptimalisasian kode sumber.

Kendala yang ditemui pada saat menggunakan versi terbaru ini adalah, pengguna tidak akan bisa masuk ke dalam pangkalan data yang digunakan, utamanya ketika menggunakan PHPMyAdmin ketika akan mengakses pangkalan data. Ketika menggunakan PHPMyAdmin, pengguna tidak bisa masuk menggunakan kredensial yang seperti biasanya. Hal ini terjadi bukan karena adanya perubahan pada pangkalan data. Diperlukan sedikit perubahan konfigurasi pada kode sumber sehingga pengguna bisa mengakses kembali pangkalan data menggunakan PHPMyAdmin.

Konfigurasi yang perlu ditambahkan adalah dengan mengubah berkas config.inc.php yang berada di dalam direktori /htdocs/pma. Setelah dibuka, silahkan menuju baris 30 tempat server parameters berada. Barisnya terlihat seperti ini:
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
Setelah itu, pengguna harus menambahkan perintah baru agar akses ke pangkalan data menggunakan PHPMyAdmin pulih kembali. Baris yang harus ditambahkan adalah:
 $cfg['Servers'][$i]['port'] = '3307';
Sehingga hasil akhirnya seperti ini:
 /* Server parameters */
 $cfg['Servers'][$i]['host'] = 'localhost';
 $cfg['Servers'][$i]['port'] = '3307';
 $cfg['Servers'][$i]['connect_type'] = 'tcp';
 $cfg['Servers'][$i]['compress'] = false;
Setelah baris tersebut ditambahkan, silahkan dimulai kembali sesi Apache dan MySQL yang digunakan dan coba akses pangkalan data menggunakan PHPMyAdmin menggunakan pma.

Demikian, semoga bermanfaat :).

nb.
tulisan ini diinspirasi oleh rekan SDC, ido.alit ;).
on 07 Jun 2016 04:25 PM

05 Jun 2016

Surah Al-Baqara, Verse 177: لَّيْسَ الْبِرَّ أَن تُوَلُّوا وُجُوهَكُمْ قِبَلَ الْمَشْرِقِ وَالْمَغْرِبِ وَلَٰكِنَّ الْبِرَّ مَنْ آمَنَ بِاللَّهِ وَالْيَوْمِ الْآخِرِ وَالْمَلَائِكَةِ وَالْكِتَابِ وَالنَّبِيِّينَ وَآتَى الْمَالَ عَلَىٰ حُبِّهِ ذَوِي الْقُرْبَىٰ وَالْيَتَامَىٰ وَالْمَسَاكِينَ وَابْنَ السَّبِيلِ وَالسَّائِلِينَ وَفِي الرِّقَابِ وَأَقَامَ الصَّلَاةَ وَآتَى الزَّكَاةَ وَالْمُوفُونَ بِعَهْدِهِمْ إِذَا عَاهَدُوا وَالصَّابِرِينَ فِي الْبَأْسَاءِ وَالضَّرَّاءِ وَحِينَ الْبَأْسِ أُولَٰئِكَ الَّذِينَ صَدَقُوا وَأُولَٰئِكَ هُمُ الْمُتَّقُونَ […]
on 05 Jun 2016 09:37 PM

01 Jun 2016

Kabar gembira bagi pecinta game Tomb Raider kini game yang dirilis sejak tahun 2013 di sistem operasi Windows, PS3 and Xbox
on 01 Jun 2016 08:34 AM

25 May 2016

Sebenarnya sedang malas menulis. Biarkan poster berbicara, jika ada pertanyaan bisa mention ke @ubuntu_id atau periksa informasi lebih lanjut di http://loco.ubuntu.com/events/ubuntu-id/3377-xenial-release-party-jogja/.

on 25 May 2016 01:36 PM

24 May 2016

Siapa yang nggak tau libreoffice? Mesti udah cukup familiar sama perangkat lunak yang satu ini ya. Libreoffice merupakan salah satu aplikasi perkantoran yang lengkap, seperti halnya Microsoft Office. Libreoffice menyediakan aplikasi lengkap untuk pengolah kata (libreoffice writer), pengolah lembar sebar (libreoffice spreadsheet), pengolah presentasi (libreoffice presentation), serta pengolah gambar (libreoffice drawing). Tidak seperti Microsoft Office, semua produk Libreoffice seperti yang sudah disebutkan sebelumnya, bebas untuk diunduh dan disebarluaskan. Pengguna tidak perlu dikhawatirkan dengan lisensi yang mengikat seperti Microsoft Office.

Nah, terkait libreoffice, yang mau saya tulis kali ini sebetulnya adalah, bagaimana mengganti jajaran ikon baku, seperti yang terlihat pada gambar di bawah:


menjadi lebih keren. Ya, relatif sich, keren menurut saya, tampilan ikonnya ngga' begitu2 ajah :D. Biar lebih kelihatan eye-catchy. Entah kenapa, baru kepikiran sekarang. Namun akhirnya kesampean jugak untuk mengganti ikon baku pada Libreoffice.

Bagaimana caranya? Mudah. Pastikan kita sudah memasang berkas libreoffice-style untuk bisa memunculkan jenis-jenis ikon yang berbeda. Oia, sebelum lanjut lebih jauh, saya menggunakan distru GnU/Linux UbuntuGNOME 16.04 Xenial Xerus. Selanjutnya, libreoffice-style yang akan dipasang adalah, SEMUANYA!!! Xixixi, ya semuanya yang bisa didapatkan di dalam repositori :D. Itu sich saya ya, kalo mau pasang satu atau dua ajah, silahkan. 


Gambar di atas adalah libreoffice-style yang saya dapatkan. Cara pasangnya:

# apt install libreoffice-style*
nah, cukup sudah. Lanta bagaimana cara melihatnya? Langkah pertama yang perlu dilakukan adalah, membuka aplikasi Libreoffice-nya donq. Kalau sudah?

Kalau sudah, akses pengubah gaya ikon di Tools > Options > Libreoffice > View. Tampilannya kek gini:


Hasil pemasangan libreoffice-style yang kita lakukan tadi akan muncul seperti ini:


Pada komputer yang saya gunakan, tampilan perubahannya jadi seperti ini. Saya menggunakan gaya breeze. Tapi, gaya sifr keren jugak loh. silahkan dicoba-coba yang sesuai dengan selera.


Semoga tulisan ini bisa membuat ikon Libreoffice yang digunakan lebih berwarna :).

 

on 24 May 2016 06:21 AM

15 May 2016

Belakangan saya lebih banyak menulis di LABANA.id ketimbang di blog ini. Sudah lama memang saya kepingin memisahkan tulisan yang memang personal dengan tulisan yang rada serius. Setahun lalu, proyek eksperimen itu dimulai. Sempat berhenti, tahun ini eksperimennya berlanjut kembali. Belum tahu sampai kapan.

Dalam beberapa minggu saya bolak – balik mengubah desain blog LABANA ini (sambil tetap menulis tentunya). Tujuan akhir desain blog ini cuma 3:

  • Agar membaca blog ini (UI/UX-nya) nyaman, tidak terganggu elemen-elemen yang tidak penting.
  • Desainnya gak jelek-jelek amat.
  • Berlaku di desktop maupun di ponsel (kalau bisa tablet juga).

Hasilnya sementara ini seperti ini:

Halaman depan

Halaman detail artikel

Beberapa waktu ke depan, seiring bertambahnya konten, desain ini kemungkinan besar akan mengalami perubahan pula. Jangan kaget ya.

Oh iya, kalau ada yang sering baca tulisan saya yang rada-rada serius di sini dan masih kepengen baca tulisan lainnya, silahkan kunjungi LABANA aja.

Ini beberapa contoh tulisan saya di LABANA yang mungkin bisa dibilang rada-rada serius itu:

Selamat membaca.

on 15 May 2016 10:10 PM

12 May 2016

Sedikit pengenalan, GNU/Linux UbuntuGNOME 16.04 merupakan distribusi resmi turunan dari GNU/Linux Ubuntu 16.04 dengan kode nama Xenial Xersus dengan rasa Gnome. Ya, karena turunan yang ini menggunakan Gnome, sebagai salah satu lingkungan destop yang ada di GNU/Linux, sebagai lingkungan destop bakunya.

GNU/Linux UbuntuGNOME pertama kali dikenal dengan nama Ubuntu GNOME Remix. Versi ngga' resminya dibuat berdasarkan versi GNU/Linux Ubuntu 12.10, yang kemudian disusul dengan versi resmi yang diracik berdasarkan versi GNU/Linux Ubuntu 13.04.

Untuk mempelajari lebih jauh dan juga mengunduh GNU/Linux UbuntuGNOME, Anda dapat mengunjungi laman http://ubuntugnome.org/.

Tentang UbuntuGNOME yang saya gunakan saat ini, sudah sedikit banyak saya rubah, tentunya untuk menyesuaikan dengan selera saya. Namun, siapa tau, kita punya selera yang sama, jadi Anda jugak dapat menikmati apa yang saya nikmati, di destop atau laptop Anda.

Ini dia!
















Untuk gambar pada destop, saya menggunakan wallpaper punya GNU/Linux BlankOn X Tambora yang bisa diunduh di:

http://arsip.blankonlinux.or.id/blankon/pool/main/b/blankon-wallpapers/blankon-wallpapers-tambora_0.10.7_all.deb

Gambar pada layar terkunci jugak menggunakan gambar yang disediakan oleh BlankOn X Tambora:


Selanjutnya, untuk tampilan seperti GTK+ dan ikon, seperti yang tertulis via tweak tool, saya menggunakan paket dari Numix Project yang saya unduh via ppa di:

https://launchpad.net/~numix/+archive/ubuntu/ppa

Silahkan tambahkan repositori Numix Project ke dalam daftar repositori Anda untuk bisa memasang paket ikon yang disediakan oleh Numix. Untuk GTK+ saya menggunakan tema Numix sedangkan ikon, saya menggunakan Numix-Light.

Untuk ekstensi pada Gnome, saya menggunakan beberapa ekstensi lagi untuk menghasilkan tampilan seperti gambar pertama:

  1. https://extensions.gnome.org/extension/307/dash-to-dock/
  2. https://extensions.gnome.org/extension/55/media-player-indicator/
  3. https://extensions.gnome.org/extension/750/openweather/
  4. https://extensions.gnome.org/extension/857/transparent-top-bar/
Dari ekstensi-ekstensi tersebut, tinggal disesuaikan dengan keinginan, konfigurasinya.

Kiranya bisa menjadi inspirasi bagi yang menginginkan :). Selamat ngoprek!!!














on 12 May 2016 01:07 PM

11 May 2016

Satu hal yang harus diingat, startup itu bukan “overnight success”, butuh pengorbanan waktu dan passion terhadap product tersebut.

Banyak startup yang baru dibuat (hanya bermodalkan) business plan, (lalu) “digoreng” -jual ke investor, jual lagi ke investor lebih besar, again… and again. It works and some startup doing it. Tapi gak semua bisa beruntung mendapatkan investor. Akhirnya startup yang tidak beruntung dan gagal harus gulung tikar. Dan (ini akhirnya) membuat kepercayaan terhadap industri startup kurang bagus.

~Andrew Darwis (founder Kaskus) menanggapi situasi startup di Indonesia belakangan ini.

Sumber: Techinasia

on 11 May 2016 06:47 PM

02 May 2016

Beberapa diskusi tentang flashing Android sering muncul pertanyaan tentang minimum alat bantu flashing yang berjalan di Linux padahal Android juga bagian Linux. Mungkin yang dimaksud pertanyaan ini adalah kurangnya alat bantu yang berbasis GUI seperti yang berjalan di sistem operasi Windows. Walaupun sebenarnya alat bantu seperti berbasis teks sudah cukup.

Pemilik ponsel bersistem Android dengan processor MediaTek atau biasa disebut MTK bisa terbantu dengan alat bantu flashing yang berbasis Linux. Nama aplikasi tersebut adalah SP Flash Tool. Tidak hanya berjalan di sistem operasi, alat bantu ini juga berjalan di sistem operasi Windows. Sebagai catatan SP Flash Tool yang berjalan di sistem operasi Linux berarsitektur 64Bit.

Sama seperti kemudahan yang ditemukan di sistem operasi Windows, SP Flash Tool yang berjalan di sistem operasi Linux sangat mudah digunakan. Anda cukup unduh, ekstrak dan jalankan flash_tool dengan dobel klik. Saya hanya sukses menjalankan SP Flash Tool di LinuxMint karena tidak ada ponsel ber-processor MTK untuk di-ulik. Informasi lebih lanjut dapat dilihat pada http://spflashtool.com/.
SP flash tool is an application which is mainly help you to flash Stock ROM, Custom recovery and fixing in some extreme cases ( firmware update, Flash recovery, unbrick bricked android device etc.).  SmartPhone FlashTool is working with MediaTek Android smartphones (MTK based) You can Download SPFlashTool from our download section. You need to load scatter file for MTK based device for functioning
on 02 May 2016 12:13 AM

27 Apr 2016

Kabarnya, kita akan bisa menjalankan native bash ubuntu di windows, artinya apa?, emm, terus terang saya juga masih berspekulasi karena belum bisa nyoba sendiri. Tapi dari screenshot-screenshotnya, kita bisa menjalankan perintah-perintah linux pada native windows, seperti sudo, apt-get, dan lain sebagainya. Hal ini tentu saja memudahkan kita dalam melakukan hal-hal yang biasanya hanya bisa dilakukan di linux misalnya debugging program, menjalankan command-command yang biasanya hanya untuk linux, sekarang bisa dijalankan di windows 10.

1_bash

Menjalankan perintah-perintah linux yang memang sangat powerful akan sangat membantu kita yang sudah terbiasa dengan console linux, misalnya perintah python, awk, bash, git, rm, vim dll. Bagi programmer yang sering berkutat dengan server, mungkin ini akan memudahkan.

2_bash

Sepertinya model bisnis microsoft dengan windows 10-nya akan pelan-pelan berubah seperti android. Yaitu dengan “menggratiskan” windows 10 tapi berjualan software dengan adanya windows store. Kita lihat saja nanti kelanjutannya.


on 27 Apr 2016 01:02 PM

19 Apr 2016

Mungkin sebagian dari kalian sudah familiar dengan cerita klasik Nikola vs Thomas Edison? Singkatnya banyak yang bilang penemuan-penemuan yang “diklaim” ciptaan Edison itu sebenarnya adalah hasil karya Tesla.

Larry Page (pendiri Google) sangat terinspirasi oleh cerita hidup Tesla. Ia sampai menangis ketika selesai membaca buku kisah hidupnya. Tesla adalah seorang penemu sejati. Tapi karena terlalu fokus pada teknologi, akhirnya “hanya dimanfaatkan” oleh Edison. Edison yang membuat temuan-temuan Tesla menjadi bisnis raksasa. Sementara itu Tesla akhirnya harus meninggal dunia dalam kondisi melarat. Konon itulah sebabnya Larry Page selalu berusaha memastikan Google (sekarang Alphabet) tetap besar sebagai bisnis sehingga Ia dan Sergey Brin bisa terus berinovasi dengan teknologi.

Lalu bagaimana dengan Linus Torvalds? Saya pribadi (tadinya) menyamakan dia seperti Tesla (minus melarat). Dia menciptakan sistem operasi Linux, yang digunakan di ratusan juta mesin-mesin server (termasuk yang digunakan Google, Yahoo, Facebook, dll), yang diberikan secara cuma-cuma. Tapi dalam sebuah acara wawancara TED Talks, Torvalds justru menyatakan (kurang lebih) “yang menemukan memang Tesla, tapi yang mengubah dunia ya Edison.” Dan dia menyatakan bahwa dirinya pada dasarnya lebih condong ke Edison. Mengejutkan buat saya.

Simak videonya di sini.

Tapi walau begitu Torvalds tetap pribadi yang sederhana. Satu lagi yang membuat saya kagum dengan kepribadian Torvalds, dia ternyata seorang “geek” abis. Selalu bekerja sendirian. Mengakui bahwa dia bukan “people person”, tidak nyaman berinteraksi dengan orang-orang banyak, apalagi tampil di depan publik. Dan yang paling mengejutkan dia mengakui bahwa dirinya bukan seorang visioner.

Banyak orang-orang yang melihat ke langit di atas sana, dan berpikir apa yang bisa dicapai di masa depan di angkasa sana, orang-orang visioner. Tapi Linus adalah orang yang melihat jalanan yang sedang diinjaknya, melihat jika ada lubang di jalan, apa yang bisa dia perbaiki agar jalan itu bisa mulus kembali dan bisa nyaman digunakan orang banyak.

Dunia ini memang semakin cepat bergerak “maju” karena banyak orang-orang visioner yang berpikiran jauh ke masa depan. Tapi dunia ini juga perlu orang seperti Torvalds, yang menyelesaikan masalah yang nyata yang kita hadapi saat ini, di sekitar kita.

Anda mau jadi seperti siapa? Tesla, Edison, Larry atau Torvalds?

on 19 Apr 2016 03:09 PM

18 Apr 2016

Kemarin malam saya berada di Ratu Plaza, daerah Senayan. Saya hendak ke suatu tempat di daerah Cidodol. Karena males kena macet, saya pesan lah Go-Jek. Setelah pesan saya tidak perhatikan lagi aplikasinya. Sibuk mengunyah makanan.

Tak lama saya mendapatkan panggilan telpon. Ternyata pengemudi Go-Jek. Saya belum cek lagi aplikasinya. Dia bilang paling lama 10 menit baru nyampe. Saya menduga dia di sekitar Senayan, tapi terjebak macet. Ya sudahlah.

5 menit kemudian, baru saya cek aplikasinya. Posisi si pengemudi di daerah Cidodol. Lah?? Itu tujuan saya toh. Saya mau batalkan kok kasihan juga dia sudah datang jauh-jauh.

Lebih dari 15 menit, pengemudi Go-Jek nya baru sampai. Dan dia mengkonfirmasi, benar dia tadi Cidodol. Duh.

Saya enggak ngerti logika aplikasi di Go-Jek ini. Seringkali saya melihat di depan mata saya paling tidak ada 10 orang pengemudi Go-Jek yang sibuk memperhatikan ponselnya, siap menunggu orderan. Tetapi ketika saya memesan jasa Go-Jek, yang mendapatkan pesanan malah berjarak 2 km dari lokasi saya.

Inilah sebabnya terkadang saya terpaksa membatalkan pesanan saya, dan coba pesan lagi. Apesnya, jika membatalkan pesanan sampai 5x dalam sehari, akun kita akan dibekukan sementara. Dan ini tanpa pemberitahuan. Saya sendiri pernah mengalami. Karena komplain via telponlah saya baru tahu penyebabnya.

Gak ngerti deh gimana sebenarnya algoritma yang digunakan Go-Jek. Semoga pengemudi UberMotor cepat bertambah banyak. Saya (dan mungkin banyak orang lainnya) butuh alternatif.

*Kenapa gak pakai GrabBike? Karena GrabBike harus dibayar tunai langsung. Saya malas berhadapan dengan “modus tidak ada kembalian”. Sekali dua kali tidak apa-apa, kalau berpuluh kali ya nyesek juga.

on 18 Apr 2016 07:39 AM

14 Apr 2016

Korean version of Spotify and iTunes

Putu Wiramaswara Widya

If you are music lover who used with music service like Spotify (for streaming) or iTunes Music (for buying MP3) and planning to live in Korea for extended amount of time, here is a bad news for you: Both service is yet available in Korea, which is understandable considering their “protectionist” policy on foreign internet service (Even Google are not so useful here, a lot of information can only be gathered via Naver/Daum).

Of course you are still able to use those service if you still paying using home issued credit card or connecting thorugh VPN (As for April 2016, you do not need any VPN to use premium Spotify or iTunes Music Store, just stick with your own language on the setting). But otherwise, if you curious enough to know what do Korean uses for this purpose, and want to use the service (which can be cheaper and payable in KRW) this article will show you some of their home-grown service.

At first, I want to list the service that I know offer both Music Download and Streaming:

Here are some common fact about those service:

  • They are only available in Korean. But if you can read some Hangeul, and learn some common terminology (I would show you later here), it is not as cryptic as you would expect.
  • They offer both music download and streaming service.
  • They offer several plan from the cheapest streaming only plan (무제한 감성) for as cheap as 5000KRW to 100-150 MP3 Download plan (MP3 저장) which cheaper than buying each music separately (usually 600-700KRW per music). Furthermore, they always offer 3 months of discounted price which you can take advantage on)
  • They offer several client from web based to smartphone.
  • They offer virtually same collection. If you like Korean music, you will find their service offer more collection than any other international service. For the foreign/non-Korean music, they offer fair amount of music that issued by top major labels and I never find any trouble finding popular American Pop or even Eurodance track with some exception of those come from independent labels.
  • They accept payment in same kind of payment method usually used in Korean website, you know, with Active-X stuff and thing.

Then if you are curious enough to start this service, given that you already familiar with Korean payment system, then you can start using one of those service. Not for purpose for endorsing a particular brand, but I would recommend you to use 멜론 as a first time trial for some reasons: They have a very good Windows based client which play the music along with its lyric like in Karaoke music video, albeit a bit pricier than other service.

Here are some terminology that you need to be familiar with if you want to use those services:

  • 이용권구매: The first time you open those website, look at this particular text (usually on upper right corner) and click on it to see what kind of plan do they offer.
  • 3개월 특가: Special price for 3 months, as mentioned earlier.
  • 전체 이용권: If you want to pay “separately” on each month, then you can use this plan although it is more expensive than using automatic payment (자동결제/정기결제)
  • 무제한 듣기: Unlimited listening / streaming
  • 구매: Order, 선물: Gift
  • 회원가입: New user registration
  • 결제방법: Payment method, this can be: 신용카드 (Credit Card/Check Card), 계촤이제 (Money Transfer), 휴대폰결제 (Mobile payment).
  • 전제이용권: Current plan
  • 차트: Chart / Music Chart
  • 최신음악: New song
  • 인기음악: Popular song
  • 장르: Genre
  • 가요/국내음악: Korean Music
  • 해외음악: International Music
  • 가사: Lyric
  • And the rest of terminology are mostly using Konglish.

on 14 Apr 2016 04:25 AM

If you are the one who struggle to install Python Theano (tensor based numerical computation library) with CUDA-based computation capability on modern Microsoft Windows operating system, this very article might helped you. Here is some steps I already tried in my freshly installed Windows 10 x64. The procedure here are based from this poorly written documentation.

First, I would assume you already install the Python library itself. To make it more convinient, I recommend to install pre-packaged Python library which already included some basic necesities (numpy, scipy, etc) like Anaconda. The next procedure will assume you already installed the Anaconda.

The second thing you need to install are:

  • LibPython MinGW library (use this command: conda install mingw libpython),
  • Visual C++ no later than version 2013 (I would recommend instaling Visual Studio Express 2012 which still can be grabbed freely)
  • CUDA toolkit from nVIDIA. In my case I use version 7.5.

After all of three software installed, then create a new file on %USERPROFILE%/.theanorc.txt with content as explained in http://deeplearning.net/software/theano/install_windows.html#configure-theano-for-gpu-use (change the –cl-version according to what version of Visual C++ you already installed).

The last step before compile a Theano code is to include “cl.exe” into your PATH environment system variable by adding “C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64″ in it (Google for how to do this).

To compile a Thenao code, make sure you run c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat x86_amd64 script PRIOR to opening Python intrepreter. For the testing purpose, you can try a code given from the original tutorial: http://deeplearning.net/software/theano/install_windows.html#configuring-theano.

Hope this article will help you. If any case of error still ocurring after following those step above, please read carefully the error given by C++ compiler during code compilation process (The way Theano works is by compiling the Python code into C++ before doing the calculation).

on 14 Apr 2016 03:45 AM

12 Apr 2016

Akhir bulan lalu, 30 Maret 2016 Spotify mulai beroperasi di Indonesia. Tidak tanggung-tanggung pihak Soptify mengundang Menkominfo, Chief RA dalam peluncurannya. Banyaknya sliweran beberapa judul berita tentang Spotify tidak membuat saya tertarik untuk menginstal.

Justru dari sebuah grup Telegram yang membuat saya menjadi penasaran karena Spotify mendukung sistem operasi yang saya gunakan yaitu LinuxMint yang masih turunan Ubuntu dan Android. Mendengar konektifitasnya saya jadi pengen mencicipinya. Akhirnya pun membuka halaman web https://www.spotify.com/id/ dan mendaftarkan akun.

Langkah pertama instal terlebih dahulu di ponsel dan login sesuai akun yang didaftarkan. Selanjutnya menginstal sesuai petunjuk yang terdapat di https://www.spotify.com/id/download/linux/. Jadi pas banget Spotify sudah tersedia di Linux.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list
sudo apt-get update
sudo apt-get install spotify-client

Ternyata memang benar konektifitasnya antara ponsel dan komputer sangat menarik. Lagu yang diputar di komputer bisa di-pause kemudian dapat didengarkan atau dilanjutkan di ponsel. Bisa juga dijadikan sebagai remote.


 
on 12 Apr 2016 09:42 AM

10 Apr 2016

Iseng utak-atik video dengan lightworks di ubuntu, menurutku lumayan nyaman, walaupun fiturnya tidak selengkap adobe premiere.

Cara install lightworks juga mudah:

sudo apt-get install gdebi
wget ftp.us.debian.org/debian/pool/main/t/tiff3/libtiff4_3.9.6-11_amd64.deb
wget www.lwks.com/dmpub/lwks-11.5.1-amd64.deb
sudo gdebi libtiff4_3.9.6-11_amd64.deb
sudo gdebi lwks-11.5.1-amd64.deb

on 10 Apr 2016 01:30 PM

04 Apr 2016

Rekreasi Murah Meriah

Mukhlis Amien

Kadang piknik tidak perlu mahal dan jauh-jauh, sebelah rumah saja sudah cukup.


on 04 Apr 2016 01:59 AM

01 Mar 2016

SIAK 5.x adalah aplikasi Sistem Informasi Administrasi Kependudukan berbasis web yang dibangun oleh Kementerian Dalam Negeri Republik Indonesia.

Pada versi2 sebelumnya, SIAK mengharuskan client menggunakan Internet Explorer. Namun, pada versi kali ini mengharuskan client menggunakan Firefox dg tambahan Adobe Acrobat Reader, Adobe Flash Player, dan Java. Aplikasi2 pendukung ini sudah disedikan pengembang, namun hanya untuk OS Windows saja.

Untuk pengguna OS Ubuntu 15.10, seperti saya, aplikasi2 pendukung harus dicari sendiri. Setelah gogling kesana-kemari akhirnya bisa juga.

  1. Adobe Acrobat Reader dan plugin-nya
    Lihat di sana dan di sono….
  2. Adobe Flash Player plugin
    sudo apt-get install adobe-flashplugin
  3. Java
    sudo apt-get install icedtea-7-plugin

Sudah!

Screenshot from 2016-03-01 21-20-52

Lalu apa fungsi aplikasi2 tersebut dalam aplikasi SIAK?

  1. Adobe Acrobat Reader plugin; untuk proses pencetakan (penampakan PDF). Padahal, tanpa aplikasi ini pun Firefox dapat menampilkan PDF secara mandiri. Namun jika aplikasi gagal mendeteksi keberadaannya maka tampilan PDF tidak akan ditampilkan.
  2. Adobe Flash Player plugin; Entah!😀
  3. Java; untuk proses pengarsipan.

Mari bekerja….


Filed under: Batam, Linux, Ubuntu, Umum Tagged: HowTo, SIAK, Ubuntu
on 01 Mar 2016 02:50 PM

18 Feb 2016

Belajar Ansible

Ramadoni

Setelah di tutorial sebelumnya kita sudah belajar melakukan instalasi Ansible versi 2.x, saatnya saat ini mengexplore beberapa percobaan dasar menggunakan Ansible. Sebelumnya kita telah membuat list server yang akan kita manage, kita beri nama “testing”. Kita juga sudah membuat folder /etc/ansible untuk melakukan semua pekerjaan yang berkaitan dengan Ansible. 1. Buat user dan password Untuk membuat […]
on 18 Feb 2016 08:31 AM

12 Feb 2016

Osden Jokonya dari Universitas Afrika Selatan dalam karya ilmiahnya yang dipresentasikan pada Hawaii International Conference on System Sciences menyampaikan keuntungan pemanfaatan piranti lunak dengan kode terbuka atau biasa disebut open source software. Dalam tulisan tersebut Osden membagi sektor publik menjadi 4, yaitu politik, ekonomi, sosial dan teknikal.

Berikut keuntungan pemanfaatan open source software pada setiap sektornya.
1. Politik
- Mengurangi pembajakan software
- Bebas dari vendor
- Keamanan
- Kustomisasi
2. Ekonomi
- Menghemat biaya
- Membangun industri lokal
- Menciptakan kondisi yang kompetitif
3. Sosial
- Pemberdayaan keahlian masyarakat lokal
- Menciptakan lapangan pekerjaan
- Mengurangi kesenjangan digital
4. Teknikal
- Implementasi standar terbuka
- Interoperabilitas

Tulisan lengkap Osden dapat diunduh melalui http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7070082.
on 12 Feb 2016 09:02 AM

11 Feb 2016

Dijual borongan perangkat Keras dan Lunak Server, Storage, Network, VMWare dll masih garansi sampai 2017. HP BLc7000 1 HP 6 PS 10 Fan 16 IC Plat ENCL (1 Unit) HP BLKe Nomor HP User ProfileGB Svr 2X300 GB 6G SAS 10K 2.5 inch SC ENT HDD (3 Unit) HP Store Easy 3830 GW Storage Blade (1 […]
on 11 Feb 2016 05:15 AM

08 Feb 2016

In this tutorial, I will show you how to send email via gmail server using openssl. Before you can use telnet to do it. But since Google implement TLS-encrypted connection, you can’t do that anymore unless you upgrade your telnet with ssl capability.

OpenSSL version that I use is OpenSSL 1.0.1f 6 Jan 2014. You can check your version using command openssl version -a.
darklinux@darklinux:~$ openssl version -a OpenSSL 1.0.1f 6 Jan 2014 built on: Thu Jun 11 15:26:18 UTC 2015 platform: debian-i386 options: bn(64,32) rc4(8x,mmx) des(ptr,risc1,16,long) blowfish(idx) compiler: cc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector –param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,–noexecstack -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM OPENSSLDIR: “/usr/lib/ssl” darklinux@darklinux:~$

Before we start, I will give you a prove that we can’t use telnet to connect to gmail server.
darklinux@darklinux:~$ telnet smtp.gmail.com 587
Trying 74.125.200.108…
Connected to gmail-smtp-msa.l.google.com.
Escape character is ‘^]’.
220 smtp.gmail.com ESMTP p8sm40810771pfi.34 – gsmtp
helo
250 smtp.gmail.com at your service
mail from: <taufanlinux@gmail.com>
530 5.7.0 Must issue a STARTTLS command first. p8sm40810771pfi.34 – gsmtp

darklinux@darklinux:~$ telnet smtp.gmail.com 465
Trying 74.125.68.108…
Connected to gmail-smtp-msa.l.google.com.
Escape character is ‘^]’.
helo
#####FConnection closed by foreign host.
darklinux@darklinux:~$

As you see above, both connection are rejected. Gmail server request for STARTTLS.
STARTTLS is an extension to plain text communication protocols, which offers a way to upgrade a plain text connection to an encrypted TLS (Trasnport Layer Security) or SSL (Secure Socket Layer) connection instead of using a separate port for encrypted communication.

What is openssl?
Before we start, I will explain a bit about OpenSSL. OpenSSL is general purpose cryptography library that provide open source implementation of TLS and SSL protocols. It was developed in 1998 and become widely used. In 2014 two thirds of all web servers use OpenSSL. Version are available for Linux, Solaris, Mac OS, BSD, OvenVMS and windows.

In order to connect to gmail server, you need to provide the user id and password. This user id and password must be convert to base64 encryption format because gmail server use this cipher encryption.
The format is: \000your_gmail\000your_password.
If my gmail user id is taufanlinux@gmail.com and my password is type123456, the format will be:
\000taufanlinux@gmail.com\000type123456.

You can use python to convert it to base64.
darklinux@darklinux:~$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import base64
>>> authplain = base64.b64encode(‘\000taufanlinux@gmail.com\000type123456’)
>>> authplain
AHRhdWZhbmxpbnV4QGdtYWlsLmNvbQB0eXBlMTIzNDU2
>>>
AHRhdWZhbmxpbnV4QGdtYWlsLmNvbQB0eXBlMTIzNDU2 is my authentication code.
openssl03

Below are the steps:
Step 1. Connect to gmail server.
After you get the authentication code, then you can connect to gmail server. Type openssl s_client -connect smtp.gmail.com:465 -crlf.
s_client option will tell openssl to establish TLS/SSL client a transparent connection to a remote server.
connect is command to connect to
smtp.gmail.com is the remote server
465 is the smtp server port.
crlf (create line feed enter). Make sure to add this option otherwise you can’t send the email after you finish the email content with .(dot).

darklinux@darklinux:~$ openssl s_client -connect smtp.gmail.com:465 -crlf
CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
verify return:0

Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
i:/C=US/O=Google Inc/CN=Google Internet Authority G2
1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority

Server certificate
—–BEGIN CERTIFICATE—–
MIIEgDCCA2igAwIBAgIITzzp9mJ728kwDQYJKoZIhvcNAQELBQAwSTELMAkGA1UE
BhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxJTAjBgNVBAMTHEdvb2dsZSBJbnRl
cm5ldCBBdXRob3JpdHkgRzIwHhcNMTYwMTI3MTMxNTU5WhcNMTYwNDI2MDAwMDAw
WjBoMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN
TW91bnRhaW4gVmlldzETMBEGA1UECgwKR29vZ2xlIEluYzEXMBUGA1UEAwwOc210
cC5nbWFpbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCX9nfK
WcIh8WVTpu31NGmHFkdWlFkizVNCGf8nJtAQ4k6Q3ok38ZLs+AcXROLuGdcliqJ4
AXlpf1sE3dhLkmJ/Ge9f+AMAO0yf0yibHcSXK0oy546T6D381hfB9o+vCkQLaWjk
Eyodumtlb1025i2+3h72Aax0AqRYetDsmlEu6HUdT/KOmDRhRq8mfeFtZ0Kdtnq/
q6x5pMlZfvAHYt21nCp+lLHCbppPu/fcMgbs9s39BEH9pY65M+AsLz0wNoLgyusX
L+gL3ZgO1bZsaOP6CsNF4ZzTEJC79v51RhaX2xu35dUN8Q/VjMHRrErH8sovLuXw
63/bCG7j1Jw+VVmtAgMBAAGjggFLMIIBRzAdBgNVHSUEFjAUBggrBgEFBQcDAQYI
KwYBBQUHAwIwGQYDVR0RBBIwEIIOc210cC5nbWFpbC5jb20waAYIKwYBBQUHAQEE
XDBaMCsGCCsGAQUFBzAChh9odHRwOi8vcGtpLmdvb2dsZS5jb20vR0lBRzIuY3J0
MCsGCCsGAQUFBzABhh9odHRwOi8vY2xpZW50czEuZ29vZ2xlLmNvbS9vY3NwMB0G
A1UdDgQWBBSegxW81AyX1CL9DItwhfN+UNFFazAMBgNVHRMBAf8EAjAAMB8GA1Ud
IwQYMBaAFErdBhYbvPZotXb1gba7Yhq6WoEvMCEGA1UdIAQaMBgwDAYKKwYBBAHW
eQIFATAIBgZngQwBAgIwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3BraS5nb29n
bGUuY29tL0dJQUcyLmNybDANBgkqhkiG9w0BAQsFAAOCAQEAWzUFgHwcZK64kH9P
UJuhr+huE1+vEWQ+xJivjUqMg2Jm1KEX9QX8JCV8d9lvcxj2G7iqDowoJc55kEpP
m2HezvsLdfDrwMMPnAG1cmcmOZ67zHY+i64S/Xl0J56y1DTVPq7Oy1ZsqSNdpanv
rpilxEXy9Syu9AwWjABwkANcEYEir9FrowXjPCgzB6wdvO6R60wqdIBC+/7qNhtI
+AjTSoMypHx5dfHK7vNI0UEGktRF4VFOX70vrCdOGZ5l7LUHMlpL8BexcwcGj4pK
UAfn0RdHdtQ3mn0Ybgv2JZ8ayMVlZ4gVE+FYEIr+0CAfVR4l/odv2GRKzpTrNeWE
VhTzbg==
—–END CERTIFICATE—–
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
issuer=/C=US/O=Google Inc/CN=Google Internet Authority G2

No client certificate CA names sent

SSL handshake has read 3727 bytes and written 421 bytes

New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
Session-ID: 96046DE5F3B84FD91F77CC0F426737A5525F9A8D24D97C79A2E81920C4883235
Session-ID-ctx:
Master-Key: 026F4D4E1AF8C445AF39AA99DB3C40EE916901102B4BC4CFA7A29B06F85EFA5D2E052BDD33F5DFD56CE63C71BCE7C3EA
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 100800 (seconds)
TLS session ticket:
0000 – 81 3f 63 38 6f 95 ba bb-63 8d f5 8c 7c ba cd 47 .?c8o…c…|..G
0010 – ce 38 c2 d2 3e ef 7c 04-13 cf 14 a9 8f a1 6f d8 .8..>.|…….o.
0020 – e9 c6 52 0b 14 1c c7 04-4c c9 02 b4 fc 1f 4d 53 ..R…..L…..MS
0030 – 50 73 a3 b9 92 3d 3e e8-02 38 6d b5 a3 22 db 89 Ps…=>..8m..”..
0040 – 24 19 04 22 00 54 3a 45-04 8e db f0 c7 60 4d 0a $..”.T:E…..`M.
0050 – da 4b 63 cb 6b 71 66 c5-8d 4a a8 d0 37 67 79 7e .Kc.kqf..J..7gy~
0060 – 20 10 35 89 aa 34 c2 63-d4 a9 a0 39 7c 25 b6 4a .5..4.c…9|%.J
0070 – 80 ad 78 ca 66 02 44 66-75 07 d4 71 88 a0 30 37 ..x.f.Dfu..q..07
0080 – 0a 51 c8 98 d4 03 fa e9-05 86 d3 64 af e9 fa 20 .Q………d…
0090 – 55 fc d5 22 cb 60 d4 95-c9 18 1f ce b5 1d 5c 2b U..”.`……..\+
00a0 – 9e d4 1d 7e …~
Start Time: 1454911916
Timeout : 300 (sec)
Verify return code: 20 (unable to get local issuer certificate)

220 smtp.gmail.com ESMTP xz6sm40211442pab.42 – gsmtp
openssl01
openssl02

Step 2.Say Hello to smtp server.
Some smtp server use ‘helo‘ some use ‘ehlo (extended helo)’. No need to put word after it.
You will get commands available is the smtp server is ready for your service.

ehlo
250-smtp.gmail.com at your service, [180.252.140.219]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8

Step 3. Login to the server
You can use Auth Login or Auth Plain. In this tutorial I use auth plain.
Put your attentication code after auth plain. You will get 235 2.7.0 Accepted if your user id and password are correct.

auth plain AHRhdWZhbmxpbnV4QGdtYWlsLmNvbQB0eXBlMTIzNDU2
235 2.7.0 Accepted

Step 4. Set your destination email and send it.
There are few data that you need to set.
mail from: <your gmail address> → your email address
rcpt to: <your destination email> → recipient address or your destination email address.
data → to set your email content.
-. (dot) → to end your email content and send it.

mail from: <taufanlinux@gmail.com>
250 2.1.0 OK xz6sm40211442pab.42 – gsmtp
rcpt to: <taufanlinux@gmail.com>
250 2.1.5 OK xz6sm40211442pab.42 – gsmtp
data
354 Go ahead xz6sm40211442pab.42 – gsmtp
this is a test.
.
250 2.0.0 OK 1454912007 xz6sm40211442pab.42 – gsmtp
If you get 250 2.0.0 OK,it mean your email has already sent.
openssl04


on 08 Feb 2016 11:02 AM

06 Feb 2016

Hair Tonic Mirip Debian

Dedy Hariyadi

Tak sengaja sewaktu belanja di suatu perbelanjaan sekitar Seturan melihat produk-produk untuk rambut melihat suatu logo yang tidak asing. Logo yang digunakan hair tonic merk mylea mirip sekali dengan logo Debian. Sebagai pengguna sistem operasi turunan Debian tentu tidak asing dengan logonya. Saya pikir Debian memiliki perusahaan dengan produk hair tonic. Coba Anda perhatikan logo Debian yang tercantum di https://www.debian.org/logos dengan foto dibawah ini.

on 06 Feb 2016 10:51 AM