28 Sep 2016

Setiap kali Anda menggunakan perintah sudo pada Ubuntu, terminal akan secara default meminta Anda untuk memasukkan password root anda. Hal
on 28 Sep 2016 05:33 AM

22 Sep 2016

WINE Is Not Emulator

Valve telah berhasil membuat Steam, sebuah platform yang berhasil menciptakan ekonomi mayanya sendiri. Di saat yang lain sedang berjuang menciptakan ekosistem, Yang Dipermuliakan Gaben mengundang seorang ekonom, Yanis Varoufakis, untuk membuat sebuah ekonomi maya di Steam. Yanis Varoufakis inilah yang saban hari menolong Yunani melewati masa-masa kelamnya ketika negara tersebut tengah terancam bangkrut.

[Jadi, jangan bilang saya tidak riset. Saya membuka Steam dalam rangka mempelajari ekonomi maya itu. uhuk ;-P]

Salah satu riset saya waktu itu adalah membeli beberapa permainan. Salah satu permainan itu adalah King of Fighters XIII edisi Steam. Ada sedikit pergumulan untuk memasang permainan ini di GNU/Linux karena dia harus menggunakan Wine.

Oh, iya, saya menggunakan KDE Neon, turunan Ubuntu 16.04 Xenial. Saya juga normalnya menggunakan Wine 1.9 yang memiliki Gallium Nine (DirectX 9 dengan Gallium Mesa 3D). Saya juga memilih untuk menjalankan Wine 32-bit.

export WINEARCH=wine32

Supaya kita satu visi, pastikan bahwa winetricks sudah terpasang. Saya lebih suka versi GIT. Tetapi, kalau tidak mau pusing, Anda bisa menggunakan yang versi paket Ubuntu.

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sudo mv winetricks /usr/local/sbin

Pasang Wine 1.6. Wine versi ini sangat diperlukan untuk memasang pustaka WMP9. Wine versi terbaru tidak bisa dipakai untuk memasang pustaka-pustaka.

sudo apt-get install wine1.6

Selanjutnya, pasang beberapa pustaka yang perlu.

WINEARCH=win32 winetricks wmp9
WINEARCH=win32 winetricks devenum
WINEARCH=win32 winetricks vcrun6

Sudah. Selanjutnya, kembali pasang Wine versi terbaru yang keren.

sudo apt-get install wine1.9

Selanjutnya, pada detik ini silakan langsung memasang Steam seperti biasa; unduh dari situsnya, pasang Steam, login, dan pasang KoF XIII. Kalau tidak ada apa-apa, KoF XIII bisa berjalan seperti biasa.

KoF XIII for Steam

King of Fighters XIII Steam edition, Mai Shiranui winning pose.

 

Bacaan Lebih Lanjut

on 22 Sep 2016 12:46 AM

01 Sep 2016

Instalasi ZFS di openSUSE Leap 42.1 Selamat!
on 01 Sep 2016 04:42 AM

31 Aug 2016

Anchor down!!!

Arif Syamsudin


make blogging beautiful. tagline-nya begitu. saya pun suka. namanya anchor-cms. bisa diunduh dari situsnya, https://anchorcms.com/.

saya kenal cms ini dari salah seorang rekan pengembang di Senayan Developers Community, mas eddy subratha. dia bilang, "coba ajah mas, bagus koq." saya pikir, bagus itu relatif. menu dan navigasinyanya sederhana. nggak seperti cms mainstream. masalahnya, pola pikir saya adalah pola pikir bekerja dengan cms mainstream. jadi, berharap dipermudah dengan menu ini, menu itu. tapi di anchor-cms ini, semuanya dibuat straight-to-the-point. sederhana.


gambar di atas adalah cuplikan dari menu administrasi anchor-cms. sederhana ya. bahkan untuk menampilkan gambar, pengguna harus meng-extend secara manual fungsi dari anchor-cms. nah, silahkan dicoba dhe. untuk memperkaya tampilan, pengguna bisa mengunduh dari laman https://anchorthemes.com/.

pembahasan pada tulisan ini adalah, ternyata tidak mudah untuk mengganti nama direktori instalasi anchor-cms ketika kita membutuhkan untuk mengganti nama direktori hasil instalasi. secara baku, direktori hasil instalasi adalah "anchor-cms". pada cms lain, drupal misalnya, ketika kita ingin mengganti nama direktori hasil instalasi drupal, kita cukup me-rename direktori drupal dengan nama yang kita inginkan untuk dimunculkan di internet. namun tidak demikian dengan anchor-cms. ada beberapa berkas yang harus kita ubah konfigurasinya agar kita tidak muncul pesan galat dikemudian ketika kita mengubah nama direktori hasil instalasi.

pertama, berkas yang harus kita ubah adalah berkas ".htaccess". di dalam berkas ini ada path yang harus diganti. baris yang harus diganti adalah baris RewriteBase. hasil baku instalasi, isi baris tersebut berisi "RewriteBase /anchor-cms." silahkan ubah "/anchor-cms" menjadi ubahan nama direktori yang kita inginkan. sebagai contoh, saya mau ubah nama direktorinya menjadi "web," jadi isinya menjadi, "RewriteBase /web." simpan berkas hasil perubahannya.

baiklah, itu yang pertama. kedua adalah, mengubah baris url yang ada di dalam berkas "app.php." berkas ini berada di dalam direktori anchor/config. baris yang perlu diubah adalah 'url' => '/anchor-cms'. silahkan ubah '/anchor-cms' menjadi ubahan nama direktori yang kita inginkan. sebagai contoh, saya mau ubah nama direktorinya menjadi "web", maka isinya adalah, 'url' => '/web'. simpan berkas hasil perubahannya.

setelah dirubah, maka waktunya membuktikan hasil modifikasi yang telah dilakukan.

nah demikian, semoga sukses ya. silahkan telusuri banyak hal tentang anchor-cms melalui mesin pencari :).
on 31 Aug 2016 12:31 PM

29 Aug 2016

Hari ini nemuin salah satu vm guest yang menggunakan os solaris 10 di vmware mengalami “intermittent” koneksinya, hal ini menyebabkan user yang akses mengalami akses yang sangat lambat dan putus-putus. Setelah dicermati, ternyata vm guest ini masih menggunakan tipe ethernet “e1000” pada settingannya. Solusinya adalah dengan mengganti tipe ethernet ini menggunakan “vmxnet3”. Cara menggantinya adalah: […]
on 29 Aug 2016 11:57 AM

26 Aug 2016

Kesan pertama kali menggunakan AnyDesk ringan dan mudah. Kesan ringan mungkin ujicobanya dilingkungan lokal. AnyDesk saat ini tersedia untuk sistem operasi MS Windows (XP, 7, 8x, 10), Mac OS, Linux (Debian/Ubuntu 32/64 Bit, dan FreeBSD. Untuk sistem operasi pada perangkat bergerak seperti iPad atau ponsel bersistem operasi Android masih dalam pengembangan.

Saya mencoba pada sistem operasi MS Windows dan LinuxMint. MS Windows tidak perlu ditanyakan lagi. Untuk mengunduh AnyDesk dapat dilihat pada http://anydesk.com/platforms. Saya memilih versi Debian/Ubuntu. Selesai mengunduh saya lanjutkan dengan installasi yang telah disesuaikan dengan arsitektur yang saya gunakan. Perintah installasi, sudo dpkg -i anydesk_2.3.6-1_amd64.deb dan untuk menyempurnakan proses installasi ketikan perintah sudo apt-get install -f.



on 26 Aug 2016 07:12 AM

18 Aug 2016

Bagaimana cara menginstall docker swarm?

Docker swarm default sudah dimasukkan kedalam versi 1.12, kebar baiknya adalah untuk konfigurasinya sangat mudah. Anda tidak perlu bersusah payah melakukan konfigurasi seperti di versi sebelum versi 1.12.

Kali ini saya akan mendemontrasikan betapa mudahnya melakukan setup docker swarm di versi 1.12, pada saat menulis ini saya menggunakan Ubuntu Xenial (16.04 LTS) dan menggunakan repository dari docker. dalam lab ini saya menggunakan lima server dengan dua sebagai manager dan tiga sebagai worker. Dalam penamaan node, sayamenggunakan nama manager-X dan worker-Y untuk menunjukkan fungsi dari node itu sendiri.

Untuk pengaturan IP, pada manager akan dibari IP 192.168.0.11 sampai dengan 192.168.0.99, dan worker akan mempunyai ip mulai dari 192.168.0.101 sampai dengan 192.168.0.254.

Sebelum melakukan konfigurasi docker swarm, silakan install docker dulu pada tulisan saya sebelumnya

Memastikan versi docker

Silakan pastikan bahwa docker anda mempunyai versi 1.12 atau lebih tinggi.

$ docker version
Docker version 1.12.1, build 23cf638

Dari hasil diatas menunjukkan bahwa docker saya adalah versi 1.12.1 sehingga pemasangan akan mudah.

atau jika anda belum memasang docker baik itu di manager maupun di worker, anda dapat menggunakan docker-machine untuk melakukan pemasangan docker-engine. Sebelumnya pastikan bahwa anda dapat login dengan seh key sehingga anda dapat melakukan login dengan passwordless

Untuk melakukan setup sshkey silakan ketik:

$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ubuntu/.ssh/id_ecdsa.
Your public key has been saved in /home/ubuntu/.ssh/id_ecdsa.pub.
The key fingerprint is:
20:96:c8:f6:5a:5c:cc:cd:8c:33:45:97:de:a3:55:61 ubuntu@localhost
The key's randomart image is:
+--[ECDSA  256]---+
|       .o ..  E. |
| . . + * ..  ..  |
|  + + O +. . .   |
| . + o +  . +    |
|    +   S  o .   |
|   o      .      |
|  .              |
|                 |
|                 |
+-----------------+

Selanjutnya silakan copy ssh key ke mesin manager dan worker dengan perintah berikut:

$ ssh-key-id 192.168.0.11

Anda akan dimintai password untuk login. silakan masukkan password dari user anda

Selanjutnya adalah melakukan pemasangan dengan docker-machine:

$ docker-machine create --driver generic --generic-ip-address=$IP-ADDPRESS \
 --generic-ssh-key ~/.ssh/$KEY --generic-ssh-user $USER manager-1

Contoh bila ingin menginstall manager-1 dengan user ubuntu dan ssh ecdsa contohnya adalah sebagai berikut:

$ docker-machine create --driver generic --generic-ip-address=192.168.0.11 \
 --generic-ssh-key ~/.ssh/id_ecdsa --generic-ssh-user ubuntu manager-1

Silakan ulangi pada manager-2 dan worker1 sampai worker-3, kemudian verifikasi dengan perintah berikut:

$ docker-machine ls
NAME		ACTIVE	DRIVER    	STATE     URL						SWARM	DOCKER    ERRORS
worker-1	-		generic		Running   tcp://192.168.0.101:2376			v1.12.1   
worker-2	-		generic		Running   tcp://192.168.0.102:2376			v1.12.1   
worker-3	-		generic		Running   tcp://192.168.0.103:2376			v1.12.1   
manager-2	-		generic		Running   tcp://192.168.0.12:2376			v1.12.1   
manager-1   *		generic		Running   tcp://192.168.0.11:2376			v1.12.1   

Memulai setup docker swarm

Untuk memulainya, silakan login di node yang bertugas sebiagai manager, dan ketikkan perintah dibawah ini:

$ docker swarm init --advertise-addr 192.168.0.11

Hasilnya:

Swarm initialized: current node (erk63hyz95hy7s1giwd0mjjmp) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-6b7ymr9y759fbtfggbh3dp2wst0vrezo2sw3dv6iz79otkdsc6-d9a8l921hjyql4mub3oh1117g \
    192.168.0.11:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

hanya itu? ya hanya itu, perintah diatas untuk membuat inisial dari docker swarm di manager.

Verifikasi dengan perintah docker info

$ docker info
Containers: 73
 Running: 0
 Paused: 0
 Stopped: 73
Images: 103
Server Version: 1.12.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 592
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null bridge overlay host
Swarm: active
 NodeID: erk63hyz95hy7s1giwd0mjjmp
 Is Manager: true
 ClusterID: 30ty62s2py73okcei9kmr95o5
 Managers: 1
 Nodes: 1

$ docker node ls
ID                           HOSTNAME            STATUS  AVAILABILITY  MANAGER STATUS
erk63hyz95hy7s1giwd0mjjmp *  manager-1			 Ready   Active        Leader

terlihat bahwa docker swarm sudah aktif meskipun hanya satu node yang aktif

Konfigurasi client

Silakan login ke manager-1 untuk mendapatkan toket manager:

$ docker swarm join-token manager
To add a manager to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-6b7ymr9y759fbtfggbh3dp2wst0vrezo2sw3dv6iz79otkdsc6-0ou18lotoo36mjq0e4s0apuo5 \
    192.168.0.11:2377

Silakan login ke manager-2 dan ketikkan perintah diatas:

$ docker swarm join \
    --token SWMTKN-1-6b7ymr9y759fbtfggbh3dp2wst0vrezo2sw3dv6iz79otkdsc6-0ou18lotoo36mjq0e4s0apuo5 \
    192.168.0.11:2377
This node joined a swarm as a manager.

Langkah selanjutnya adalah login ke worker-1 sampai dengan worker-3 dan ketikkan perintah yang didapat saat melakukan inisialisasi docker swarm

$ docker swarm join \
    --token SWMTKN-1-6b7ymr9y759fbtfggbh3dp2wst0vrezo2sw3dv6iz79otkdsc6-d9a8l921hjyql4mub3oh1117g \
    192.168.0.11:2377

Verifikasi swarm

Setelah melakukan testing dari semua manager dan node, silakan verifikasi dari manager dengan perintah berikut:

$ eval $(docker-machine env --swarm manager-1)
$ docker info
Containers: 6
 Running: 2
 Paused: 0
 Stopped: 4
Images: 31
Server Version: swarm/1.2.4
Role: primary
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint
Nodes: 5
 manager-2: 192.168.10.12:2376
  └ ID: 3KQB:C4DQ:AV46:NX7O:XN6Y:EP24:3XLH:UO4D:5N2R:SDAX:AJR6:CI3T
  └ Status: Healthy
  └ Containers: 1 (0 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 4
  └ Reserved Memory: 0 B / 8.185 GiB
  └ Labels: kernelversion=4.4.0-31-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T21:26:24Z
  └ ServerVersion: 1.12.1
 worker-1: 192.168.10.111:2376
  └ ID: VO22:NU4C:ODDV:R2TL:HVV2:2E4I:MKAW:SBRO:WWFD:T265:HPNY:JKZI
  └ Status: Healthy
  └ Containers: 1 (0 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 4
  └ Reserved Memory: 0 B / 8.185 GiB
  └ Labels: kernelversion=4.4.0-31-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T21:26:37Z
  └ ServerVersion: 1.12.1
 worker-2: 192.168.10.112:2376
  └ ID: AFYB:C2IM:Z276:RWMN:CODJ:SHKM:IFX6:POWT:VZKO:BHVS:UBAQ:QVJC
  └ Status: Healthy
  └ Containers: 1 (0 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 4
  └ Reserved Memory: 0 B / 8.185 GiB
  └ Labels: kernelversion=4.4.0-31-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T21:26:25Z
  └ ServerVersion: 1.12.1
 worker-3: 192.168.10.113:2376
  └ ID: PGC3:TJJR:GCRG:5RKA:Q4N3:LWHF:3TAO:FDD2:TY6F:DOUK:27WS:76MQ
  └ Status: Healthy
  └ Containers: 1 (0 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 4
  └ Reserved Memory: 0 B / 8.185 GiB
  └ Labels: kernelversion=4.4.0-31-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T20:18:37Z
  └ ServerVersion: 1.12.1
 manager-1: 192.168.10.11:2376
  └ ID: HEN3:HWX4:2XTZ:EL5B:YUK3:JUH2:YZ2N:XD77:OTPW:ZONP:UYVP:MYDG
  └ Status: Healthy
  └ Containers: 2 (2 Running, 0 Paused, 0 Stopped)
  └ Reserved CPUs: 0 / 8
  └ Reserved Memory: 0 B / 8.087 GiB
  └ Labels: kernelversion=4.4.0-21-generic, operatingsystem=Ubuntu 16.04.1 LTS, provider=generic, storagedriver=aufs
  └ UpdatedAt: 2016-08-18T21:26:45Z
  └ ServerVersion: 1.12.1
Plugins:
 Volume: 
 Network: 
Swarm: 
 NodeID: 
 Is Manager: false
 Node Address: 
Security Options:
Kernel Version: 4.4.0-21-generic
Operating System: linux
Architecture: amd64
CPUs: 24
Total Memory: 40.83 GiB
Name: 6f894401a6f4
Docker Root Dir: 
Debug Mode (client): false
Debug Mode (server): false
WARNING: No kernel memory limit support

Selamat docker-swarm telah terpasang!

Deploy service di swarm

Setelah membuat cluster swarm, kita akan mencoba membuat service di swarm. kita akan membuat nginx di cluster. Silakan login di manager-1

$ docker service create --replicas 3 --name nginx nginx

Berikut adalah hasil dari docker services diatas:

$ docker service ls
ID            NAME   REPLICAS  IMAGE  COMMAND
cp2er0hu010r  nginx  3/3       nginx  

$ docker service inspect nginx 
[
    {
        "ID": "cp2er0hu010rl0qbv0714t8pw",
        "Version": {
            "Index": 21053
        },
        "CreatedAt": "2016-08-18T22:28:01.748449495Z",
        "UpdatedAt": "2016-08-18T22:28:01.748449495Z",
        "Spec": {
            "Name": "nginx",
            "TaskTemplate": {
                "ContainerSpec": {
                    "Image": "nginx"
                },
                "Resources": {
                    "Limits": {},
                    "Reservations": {}
                },
                "RestartPolicy": {
                    "Condition": "any",
                    "MaxAttempts": 0
                },
                "Placement": {}
            },
            "Mode": {
                "Replicated": {
                    "Replicas": 3
                }
            },
            "UpdateConfig": {
                "Parallelism": 1,
                "FailureAction": "pause"
            },
            "EndpointSpec": {
                "Mode": "vip"
            }
        },
        "Endpoint": {
            "Spec": {}
        },
        "UpdateStatus": {
            "StartedAt": "0001-01-01T00:00:00Z",
            "CompletedAt": "0001-01-01T00:00:00Z"
        }
    }
]

$ docker service ps nginx
ID                         NAME     IMAGE  NODE			DESIRED STATE  CURRENT STATE          ERROR
8ihthj14i9qitl792vatmrqjj  nginx.1  nginx  worker-1		Running        Running 2 minutes ago  
48eq2nah2txv7yxthk5y3158m  nginx.2  nginx  worker-2		Running        Running 2 minutes ago  
8yv7z3bk25h7jf06yf6y9hivm  nginx.3  nginx  manager-1	Running        Running 3 minutes ago  

Nah mudah bukan? silakan dicoba

Bagaimana cara menginstall Docker-swarm was originally published by at mahyuddin on August 19, 2016.

on 18 Aug 2016 10:39 PM

16 Aug 2016

Memasang Docker di Linux

Mahyuddin Susanto

Bagaimana memasang docker engine di Linux?

Docker pada saat ini sedang naik daun dikarenakan docker sangat mudah dalam pengoperasiannya. Dalam tulisan ini akan dibahas bagaimana cara memasang Docker di Linux.

Persiapan:

  • Linux box, anda bebas menggunakan distro apa saja
  • Distro yang anda gunakan mensupport cgrups dan unionfs

Install perangkat lunak pendukung

Beberapa perangkat lunak yang perlu dipasang saat pemasangan adalah curl atau wget. untuk pemasangan, sialakan mengikuti prosedur pemasangan dari distro anda.

Contoh apabila menggunakan Debian base:

sudo apt-get update
sudo apt-get install -y curl wget

Contoh apabila menggunakan RedHat basei:

sudo yum install -y curl wget

Langkah selanjutnya adalah memasang docker, petunjuk lengkap dari pemasangan docker dapat dilihat di Dokumentasi Docker hanya saja saya jarang mengikuti prosedur tersebut karena bertele-tele :).

Untuk pemasangan docker, anda cukup mengetikkan perintah dibawah ini:

curl -sSL https://get.docker.com/ | sh

atau jika menggunakan wget

wget -qO- https://get.docker.com/ | sh

Pengaturan tambahan

Berikut adapah pengaturan tambahan untuk docker

Menambahkan account ke grup docker

Secara bawaanya, docker hanya bisa dieksekusi oleh root atau menggunakan sudo, untuk mengakalinya anda harus memasukkan account anda ke grup docker. Untuk menambahkan account anda ke grup docker silakan mengeksekusi perintah dibawah ini:

sudo groupadd docker
sudo usermod -aG docker $(whoami)

Kemudian silakan logout dan login kembali, untuk memastikan account anda silakan cek dengan perintah dibawah ini:

id $(whoami)

Penyesuaian pembatasan memory dan swap

Seringkali dalam menjalankan docker, akan menghasilkan pesan seperti dibawah ini:

WARNING: Your kernel does not support cgroup swap limit. WARNING: Your
kernel does not support swap limit capabilities. Limitation discarded.

Untuk mengatasi masalah tersebut, silakan sunting berkas /etc/default/grub dan update seperti dibawah ini

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

Bagaimana memasang docker-compose? (tambahan)

Docker compose adalah salah satu peralatan dari Docker yang saya suka. Berikut adalah cara measangan dari docker-compose

mkdir $HOME/bin
curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-$(uname -s)-$(uname -m) > $HOME/bin/docker-compose
chmod +x $HOME/bin/docker-compose

Alternatif lain

Python pip

Docker-compose dapat dipasang menggunakan python-pip, berikut adalah caranya

sudo apt-get install python-pip
pip install docker-compose

Sebagai Docker container

Docker-compose juga dapat dijalankan sebagai container. Untuk pemasangan compose, silakan ketik

mkdir $HOME/bin
curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > $HOME/bin/docker-compose
chmod +x $HOME/bin/docker-compose

Verifikasi

Berikut adalah cara verifikasi untuk meastikan versi Docker-compose

docker-compose -v
docker-compose version 1.7.1, build 6c29830

Bagaimana memasang docker-machine? (tambahan)

Seperti docker-compose, docker machine juga peralatan pendukung untuk docker. Docker machine sangat berguna bagi anda yang ingin melakukan memanajemen docker host dari tempat lain secara remote.

berikut adalah cara pemasangannya:

mkdir $HOME/bin
curl -L https://github.com/docker/machine/releases/download/v0.7.0/docker-machine-`uname -s`-`uname -m` > $HOME/bin/docker-machine
chmod +x $HOME/bin/docker-machine

it is done, next post saya akan menulis tentang memulai menggunakan docker

Memasang Docker di Linux was originally published by at mahyuddin on August 17, 2016.

on 16 Aug 2016 11:27 PM

when you run a business then it is very important to own a custom domain associated with your company and also have email that has a custom address so as to add business credence and proffesionalism to your marketing. and this is why email hosting comes into play.

there are 2 ways to send email, by using email provider like google apps, zoho mail and others or you can just get a server and install email software like zimbra in the server. although the latter requires you to have a sysadmin that will have to standby 24/7 in managing the email server. because if you don’t monitor the server then you might miss those important email from your client and this can be troublesome.

if you used email hosting from shared IP then there is a higher degree that your email IP address might get blacklisted due to spam. and hence will get blocked when you send the email to your client’s email address. so my advice is to use trusted email hosting like google apps or zoho. I had used both of this service and they are just good. although google apps gives you much more functionalities and ask you to pay first to use it.

no matter what, email is still an important tools in delivering messages across business partners and that’s why you should invest money in using better email hosting.

 


on 16 Aug 2016 06:25 AM

28 Jul 2016

Sama dengan tulisan sebelumnya, tulisan ini dibuat karena ada versi paket yang berubah. Untuk mengaktifkan fitur impor MARC, diperlukan dua paket yang dipasang saluran pemasangan pear. Adapun paket-paket tersebut adalah:

  1. structures_linkedlist
  2. file_marc
Untuk versi paket yang pertama, perintah pemasangannya tidak berbeda dengan perintah yang ada di tulisan sebelumnya, yaitu:
pear install channel://pear.php.net/structures_linkedlist-0.2.2
Sedangkan untuk paket kedua, sudah ada peningkatan versi. Versi paket yang tersedia di pear.php.net adalah versi 1.1.2. Jadi, untuk perintah pemasangannya adalah:
pear install channel://pear.php.net/file_marc-1.1.2
Selesai. Semoga bermanfaat :).
on 28 Jul 2016 03:46 PM
Sekedar pembaruan kecil. Kalau ditulisan sebelumnya, dibahas tentang pemasangan pustaka pada versi distribusi Ubuntu yang lama, tulisan ini lebih baru lagi, sebetulnya karena versi paket yang sudah berbeda sich.

Di GnU/Linux Ubuntu GNOME 16.04 ini, versi PHP yang digunakan sudahlah PHP7 secara baku. Permasalahan yang terjadi ditulisan sebelumnya, versi PHP yang digunakan adalah PHP5. Secara umum, paket-paket awal yang harus dipasang tidaklah berbeda. Pembedanya adalah ketika kita harus memasang paket YAZ dengan perintah:
# pecl install yaz
Apabila sistem mendeteksi kita belum memasang "phpize", maka proses pemasangan akan gagal. Untuk memasang phpize pada distribusi GnU/Linux yang menggunakan PHP7 secara baku, nama paket yang harus dipasang terlebih dahulu adalah:
# apt install php7.0-dev
Setelah paket tersebut dipasang, silahkan lanjutkan perintah pemasangan YAZ sesuai dengan urutan yang ada ditulisan sebelumnya.

Bon Appétit! 
 
on 28 Jul 2016 03:38 PM

27 Jul 2016

How to delete git branch local and remote?

To delete local branch:

git branch -d branch_name

To delete remote branch:

git push origin --delete branch_name

Note: origin is a remote name, please use remote name with yours

Then, in the other machine, you can sync it with remote with:

git fetch --all --prune

Bagaimana cara membuang branch di remote dan local?

Untuk membuang local branch:

git branch -d branch_name

Untuk membuang remote branch:

git push origin --delete branch_name

Kemudian, di mesin lain anda dapat melakukan sync dengan remote:

git fetch --all --prune

This is a post to remember myself when panic

Git, Delete branch Local dan Remote was originally published by at mahyuddin on July 28, 2016.

on 27 Jul 2016 10:47 PM
Awalnya, biasa saja. Tidak ada yang aneh-aneh dengan dual-boot di laptop yang saya gunakan. Laptop jadul yang saya gunakan ini memiliki dua sistem operasi, MS-Windows 10 (hasil pembaruan dari versi MS-Windows 7) dan GnU/Linux Ubuntu GNOME 16.04.

Sejak awal penggunaan, nggak ada masalah terutama tampilan waktu pada laptop. Tapi entah bagaimana, lantas masalah tampilan waktu ini terjadi. Begitu saja. Waktu yang ditampilkan oleh MS-Windows 10 berbeda dengan waktu yang ditampilkan oleh GnU/Linux Ubuntu GNOME 16.04. Waktu yang ditampilkan oleh MS-Windows 10 mundur 7 jam dari waktu yang ditampilkan oleh GnU/Linux Ubuntu GNOME 16.04.

Seperti biasanya, saya mencoba untuk mematikan sinkronisasi peladen waktu yang ada di sistem MS-Windows 10 supaya pengaturan waktunya dibuat menjadi manual saja, alih-alih otomatis. Saya berharap masalahnya bisa selesai. Ternyata tidak, sodara-sodari. WOW :D.

Nah ternyati, hasil dari mencari wangsit di sana dan di sini, ada satu tulisan yang mengulas bahwasanya, hal ini umum terjadi karena metode pengambilan data waktu yang berbeda. Katanya begini:

Windows uses your local time zone to set the time, but most other operating systems including OS X, Android, and many Linux distributions use Universal Time, or GMT to keep track of time and then convert that into your local time zone.

Paham ra son? Nah, begitulah. Kalo maksud dari kutipan di atas ada yang kurang tepat, langsung komplen ke yang nulis apa yang saya kutip ya :D. Masih dari artikel yang saya kutip, katanya, alih-alih mengubah masing-masing sistem operasi ke waktu lokal, yang lebih mudah adalah merubah konfigurasi pengambilan waktu yang ada di MS-Windows ke Universal Time.

Yuk kita mulai mengubah waktunya. Jangan lupa untuk masuk ke sistem operasi MS-Windows. Untuk melakukan perubahan, yang perlu kita lakukan adalah dengan merubah sedikit bagian dari registri sistem.

    1. Klik pada Start Menu
    2. Masukkan "regedit.exe" pada kotak pencarian
    3. Ketika jendela penyunting registri terbuka, arahkan ke HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
    4. Klik kanan pada panel sebelah kanan dan pilih "New"
    5. Lalu pilih DWORD (32-bit Value)
    6. Beri nama DWORD yang baru dibuat dengan nama "RealTimeIsUniversal" (tanpa tanda petik)
    7. Klik dua kali pada RealTimeIsUniversal kemudian ubah Value dari 0 menjadi 1
    8. Mula-ulang MS-Windows
Kalau apa yang kita lakukan sudah benar, seharusnya begitu masuk ke dalam MS-Windows, waktu yang ditunjukkan sudah tepat.

Akhirnya, memang terjawab sich, pertanyaan saya sejak lama, tentang bagaimana menyamakan waktu pada komputer dengan dual-boot. Metode yang dituliskan tadi langsung bisa menjawab penasaran saya. Alhamdulillah.

Bahan rujukan:

on 27 Jul 2016 03:27 PM

I created a planet feed then there is something wrong with its RSS feed that prevent me from posting the feed in my twitter account. below is the error

This page contains the following errors:

error on line 357 at column 40: xmlParseEntityRef: no name
Below is a rendering of the page up to the first error.

turns out the cause of the error is because one of the blogs that I aggregated into has a post title with (&) ampersand. now this ampersand symbol would be allright if it was put into a post body but if you put it into a post title then the above error would come up.

it’s a bit silly that a single ampersand could have fail the whole RSS feed in planetplanet. so yeah I hope you will not put ampersand in the title of your blog posting and just put it in the post body instead.

 


on 27 Jul 2016 12:42 PM

26 Jul 2016

Install RVM di Ubuntu

Mahyuddin Susanto

Install RVM di Ubuntu

Dalam keseharian, terkadang ada aplikasi yang memerlukan ruby versi tertentu. Sebagai contoh ketika kemarin saya melakukan migrasi dari wordpress ke jekyll saya memerlukan ruby minimal versi 2.0 untuk memasang jekyll. Server saya menggunakan Ubuntu 14.04 LTS, secara default Ubuntu 14.04 menggunakan ruby versi 1.9.1 sehingga saya tidak bisa menggunakan jekyll versi terakhir.

Solusi dari permasalahan ini adalah menggunakan RVM, RVM merupakan singkatan dari Ruby Version Manager yang bertugas untuk mengatur versi ruby di sebuah system, sehingga antar versi tidak salah tercampur. Hal ini mirip dengan python virtual environment.

Berikut adalah langkah-langkah cara pemasangan RVM di Ubuntu.

Persiapan

Pengaturan repository

Sebelum melakukan pemasangan, moghon pastikan jika ubuntu anda memiliki menggunakan repository yang benar. Pengaturan repository di Ubuntu dapat di cek di /etc/apt/sources.list, berikut adalah isi dari berkas /etc/apt/sources.list di system saya:

deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse

Upgrade paket ke versi terakhir

Sebelum melakukan pemasangan, alangkah baiknya bila kita melakukan update database paket dan upgrade paket ke versi terakhir, untuk itu silakan ketik perintah dibawah ini:

:~$ sudo apt-get update
:~$ sudo apt-get dist-upgrade -y

Install curl

Paket curl ini dibutuhkan nantinya untuk pemasangan RVM

:~$ sudo apt-get install curl -y

Pemasangan RVM

Setelah melakukan persiapan dasar, langkah selanjutnya adalah pemasangan RVM, pada pemasangan ini kita perlu mengimport kunci GPG dari developer RVM.

:~$ gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3

Output:

gpg: directory `/home/mahyuddin/.gnupg' created
gpg: new configuration file `/home/mahyuddin/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/mahyuddin/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/mahyuddin/.gnupg/secring.gpg' created
gpg: keyring `/home/mahyuddin/.gnupg/pubring.gpg' created
gpg: requesting key D39DC0E3 from hkp server keys.gnupg.net
gpg: /home/mahyuddin/.gnupg/trustdb.gpg: trustdb created
gpg: key D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Install RVM

Langkah selanjutnya adalah memasang RVM

:~$ curl -sSL https://get.rvm.io | bash -s stable

Output:

Downloading https://github.com/rvm/rvm/archive/1.27.0.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.27.0/1.27.0.tar.gz.asc
gpg: Signature made Tue 29 Mar 2016 01:49:47 PM UTC using RSA key ID BF04FF17
gpg: Good signature from "Michal Papis (RVM signing) <mpapis@gmail.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 409B 6B17 96C2 7546 2A17  0311 3804 BB82 D39D C0E3
     Subkey fingerprint: 62C9 E5F4 DA30 0D94 AC36  166B E206 C29F BF04 FF17
GPG verified '/home/mahyuddin/.rvm/archives/rvm-1.27.0.tgz'

Installing RVM to /home/mahyuddin/.rvm/
    Adding rvm PATH line to /home/mahyuddin/.profile /home/mahyuddin/.mkshrc /home/mahyuddin/.bashrc /home/mahyuddin/.zshrc.
    Adding rvm loading line to /home/mahyuddin/.profile /home/mahyuddin/.bash_profile /home/mahyuddin/.zlogin.
Installation of RVM in /home/mahyuddin/.rvm/ is almost complete:

  * To start using RVM you need to run `source /home/mahyuddin/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

# mahyuddin,
#
#   Thank you for using RVM!
#   We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.

In case of problems: https://rvm.io/help and https://twitter.com/rvm_io

Setup environment

Untuk melanjutkan setup RVM, kita perlu membuat RVM kedalam environment bash. Pada beberapa case tertentu, kita harus memuat RVM pada sesi shell sebagai function. Untuk itu pastikan bahwasanya pada berkas ~/.bashrc mengandung dua baris berikut:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Setelah itu, load berkas ~/.bashrc kedalam sesi sekarang dengan perintah sebegai berikut:

:~$ source ~/.bashrc

Install paket dependency ruby

Untuk memasang RVM, beberapa dependency juga perlu dipasang. Untuk pemasangan nya silakan lakukan perintah dibawah ini:

:~$ rvm requirements

Output:

Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system.......
Installing required packages: patch, gawk, g++, gcc, make, libc6-dev, patch, libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgmp-dev, libgdbm-dev, libncurses5-dev, automake, libtool, bison, pkg-config, libffi-dev................................
Requirements installation successful.
:~$

Memilih versi ruby

Untuk melakukan cek versi berapa saja versi ruby yang tersedia, kita dapat melakukan cek dengan perintah dibawah ini

:~$ rvm list known

Output:

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.8]
[ruby-]2.2[.4]
[ruby-]2.3[.0]
[ruby-]2.2-head
ruby-head

Pada kali ini kita akan meenggunakan ruby versi 2.3, jika anda menginkan versi lain, pastikan bahwa versi nya ada dalam daftar.

:~$ rvm install 2.3

Output:

Searching for binary rubies, this might take some time.
Found remote file https://rubies.travis-ci.org/ubuntu/14.04/x86_64/ruby-2.3.0.tar.bz2
Checking requirements for ubuntu.
Requirements installation successful.
ruby-2.3.0 - #configure
ruby-2.3.0 - #download
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 25.1M  100 25.1M    0     0  1373k      0  0:00:18  0:00:18 --:--:-- 3681k
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.3.0 - #validate archive
ruby-2.3.0 - #extract
ruby-2.3.0 - #validate binary
ruby-2.3.0 - #setup
ruby-2.3.0 - #gemset created /home/mahyuddin/.rvm/gems/ruby-2.3.0@global
ruby-2.3.0 - #importing gemset /home/mahyuddin/.rvm/gemsets/global.gems....................................
ruby-2.3.0 - #generating global wrappers........
ruby-2.3.0 - #gemset created /home/mahyuddin/.rvm/gems/ruby-2.3.0
ruby-2.3.0 - #importing gemsetfile /home/mahyuddin/.rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.3.0 - #generating default wrappers........

Langkah selanjutnya adalah memastikan ruby versi 2.3 digunakan sebagai versi ruby default untuk user. Untuk melakukannya, apat mengeksekusi perintah dibawah ini:

:~$ rvm use 2.3 --default
mahyuddin@ubuntu:~$ rvm use 2.3 --default
Using /home/mahyuddin/.rvm/gems/ruby-2.3.0

Cek versi ruby

Untuk melakukan pengecekkan versi ruby yang sedang digunakan oleh sesi user sekarang, silakan ketik perintah dibawah ini dan pastikan bahwasanya output dari kedua peintah mengandung versi 2.3

:~$ which ruby
:~$ ruby --version

Output

:~$ which ruby
/home/mahyuddin/.rvm/rubies/ruby-2.3.0/bin/ruby
:~$ ruby --version
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]

Hasil dari output diatas menunjukkan bahwa ruby yang digunakan sekarang adalah versi ruby 2.3

Manajemen ruby menggunakan RVM

Cek versi ruby yang terinstall

Untuk melakukan cek versi berapa saja ruby yang sudah dipasang, silakabn ketk perintah dibawah ini:

:~$ rvm list

Output

rvm rubies

   ruby-2.0.0-p648 [ x86_64 ]
   ruby-2.1.8 [ x86_64 ]
   ruby-2.2.4 [ x86_64 ]
=* ruby-2.3.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Switch ke versi ruby lain

Jika versi lain sudah terinstall, silakan gunakan perintah rvm use, contoh:

:~$ rvm use 2.2
Using /home/mahyuddin/.rvm/gems/ruby-2.2.4

:~$ which ruby
/home/mahyuddin/.rvm/rubies/ruby-2.2.4/bin/ruby

:~$ ruby --version
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]

Bash completion

Salah satu fitur dari RVM adalah adanya fitur tab completion untuk mengaktifkan tab completion, pastikan dalam berkas ~/.bashrc anda terdapat baris berikut:

[[ -r $HOME/.rvm/scripts/completion ]] && . $HOME/.rvm/scripts/completion

Silakan dicoba

Install RVM di Ubuntu was originally published by at mahyuddin on July 27, 2016.

on 26 Jul 2016 06:46 PM

22 Jul 2016

mysql
HA Proxy Galera

HA Proxy encapsulate a Galera cluster for High-Availability solution.

Ada banyak aplikasi PHP di luar sana yang secara naas belum bisa pindah dari MySQL ke PostgreSQL. Aplikasi seperti WordPress dan Magento. Untuk aplikasi-aplikasi kritikal tersebut, diperlukan adanya redundansi untuk menjamin data. Untungnya, sekarang sudah ada produk Galera Cluster yang bisa mencapai itu. Produk ini menjadikan serangkaian MySQL Server untuk memiliki replikasi data yang sama.

Eh, tapi kayaknya kalau nanti PHP7 sudah resmi, mereka bakal dipaksa menggunakan ADODB, deh. Abstraksi ADODB memungkinkan SQL yang portabel. Hmm… sepertinya alasan ini nantinya bakal tidak ada.

Atau, mungkin Anda tertarik mengetahui bagaimana layanan MySQL Object (DBaaS) pada AWS dibuat? Atau, bagaimana layanan DBaaS pada OpenStack dibuat?

Ah, sudahlah, apa pun alasan supaya artikel ini ditulis supaya menjaga semangat ngeblog. Sejujurnya, saya menulis tutorial ini karena mood lagi naik akibat mendapatkan banyak Pokémon unik tadi siang di Perpustakaan Pusat UI.

Konfigurasi Peladen

Supaya tidak pusing, saya jelaskan dalam contoh kali ini ada 4 peladen. Satu peladen untuk HAProxy (harusnya dua, tapi saya malas). Lalu, tiga peladen menjadi peladen MySQL. Saya memilih untuk menggunakan MariaDB karena gratis dan mudah konfigurasi Galera-nya.

Peladen HAPROXY (selanjutnya dalam artikel akan saya sebut HAProxy)

  • IP 1: 192.168.1.12
  • IP 2: 192.168.101.1

IP 1 adalah IP eksternal yang digunakan untuk berhubungan dengan aplikasi. IP 2 adalah IP internal dalam jaringan lokal basisdata. Perhatikan baik-baik! Implementasi pusat data yang baik seharusnya memisahkan antara jaringan aplikasi, jaringan basisdata, jaringan administrasi, dan jaringan lainnya. Walau pun keempat peladen ini dijalankan pada VirtualBox sekalipun, tetap saya pisahkan untuk menunjukkan arsitektur yang benar.

Ada tiga peladen yang akan digunakan sebagai peladen basisdata. Saya akan namakan MariaDB1 (192.168.101.10), MariaDB2 (192.168.101.11), dan MariaDB3 (192.168.101.12). Walau pun nantinya setiap peladen bisa ditulisi, saya akan menggunakan peladen MariaDB1 sebagai awalan.

Berhubung saya malas, saya akan kurang detail menjelaskan. Silakan tinggalkan komentar bila kurang jelas. Saya menggunakan Debian Jessie sebagai sistem operasi dasar. Lalu, saya memilih menggunakan MariaDB 10.1 karena dia sudah mendukung langsung Galera Cluster.

Memasang MariaDB

Lakukan ini pada setiap peladen MariaDB: MariaDB1, MariaDB2, dan MariaDB3. Pokoknya, identik!

Memasang Peladen MariaDB

Aktifkan repositori MariaDB. Sebagai contoh dengan menggunakan Perkakas Konfigurasi Repositori kali ini saya ambil cermin Biznet karena yang sebelumnya Kartolo. Buatlah berkas /etc/apt/sources.list.d/mariadb.list yang berisi:

# MariaDB 10.1 repository list - created 2016-07-22 08:52 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb [arch=amd64,i386] http://mariadb.biz.net.id/repo/10.1/debian jessie main
deb-src http://mariadb.biz.net.id/repo/10.1/debian jessie main

Atau cara lainnya:

sudo apt-get install software-properties-common
sudo add-apt-repository 'deb [arch=amd64,i386] http://mariadb.biz.net.id/repo/10.1/debian jessie main'

Setelah itu, impor kunci publik repositori MariaDB:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

MariaDB versi 10.1 sudah memasang Galera secara baku. Jadi, perintah pemasangan menjadi lebih mudah, cukup:

sudo apt-get install mariadb-server

Setelah itu, matikan layanan MariaDB:

sudo systemctl stop mysql

Atau, kalau Anda nyentrik atau punya alasan idealisme lainnya sehingga tidak menggunakan SystemD:

sudo service mysql stop

Setelah ini, konfigurasi Galera.

Berkas yang Identik

Debian Jessie menggunakan konfigurasi /etc/mysql/debian.cnf untuk menyediakan pengguna internalnya. Pengguna internal ini yang digunakan oleh Debian dalam mengonfigurasi peladen MySQL. Salin berkas tersebut dari MariaDB1 ke MariaDB2 dan MariaDB3 sehingga ketiganya memiliki /etc/mysql/debian.cnf yang identik.

Hanya berkas ini yang tidak identik karena dibuat secara otomatis oleh Debian pada saat pemasangan. Tetapi, kita perlu ketiga peladen memiliki konfigurasi yang identik. Itu sebabnya, satu berkas yang berbeda ini yang perlu disamakan.

Buat Konfigurasi untuk Kluster Galera

Pada ketiga peladen (MariaDB1, MariaDB2, MariaDB3) buat konfigurasi /etc/mysql/conf.d/galera.cnf

[mysqld]
#mysql settings
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0

#galera settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name="apakek_cluster"
wsrep_cluster_address=gcomm://192.168.101.10,192.168.101.11,192.168.101.12
wsrep_sst_method=rsync

Silakan ganti nama berkas galera.cnf dengan nama lain kalau Anda mau. Silakan ganti “apakek_cluster” sesuai selera Anda untuk mendapatkan nama kluster yang jauh lebih baik.

Aktifkan Salah Satu Peladen Terlebih Dahulu

Lakukan langkah ini di salah satu peladen yang akan dimulai pertama kali. Bisa jadi karena pemasangan baru seperti saat ini. Atau, bisa jadi ada mati lampu sehingga menyebabkan seluruh kluster mati. Atau, laptop Anda baru dinyalakan kembali. Intinya, lakukan langkah ini pada saat tidak ada satu pun peladen yang menyala dan kluster ini baru mau dinyalakan dulu.

Bila pada kasus mati lampu atau peladen mati mendadak (crash), periksa berkas /var/lib/mysql/grastate.dat pada masing-masing peladen untuk memilih mana peladen dengan data terbaru. Sehingga, peladen tersebutlah yang dimulai pertama kali.

Bila Anda menggunakan SystemD, gunakan skrip ini:

sudo /usr/bin/galera_new_cluster

Atau, demi alasan idealisme atau apa pun sehingga Anda membuang SystemD dan menggunakan sistem init lainnya:

sudo service mysql start --wsrep-new-cluster

Pada saat ini seharusnya sudah berjalan:

$ sudo mysql --defaults-file=/etc/mysql/debian.cnf -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'
+--------------+
| cluster size |
+--------------+
| 1            |
+--------------+

Kalau 0, berarti Anda ada salah konfigurasi di suatu tempat.

Jalankan Peladen MariaDB Sisanya

Pada dua peladen sisanya, MariaDB dijalankan dengan cara normal:

sudo systemctl start mysql

Atau

sudo service mysql start

Seharusnya, apabila tidak ada kerusakan, pada akhirnya akan ada tiga peladen.

$ sudo mysql --defaults-file=/etc/mysql/debian.cnf -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'
+--------------+
| cluster size |
+--------------+
| 3            |
+--------------+

Sampai saat ini, Galera sudah selesai dibuat. Anda lakukan operasi SQL pada salah satu peladen mana pun hasilnya akan sama.

BONUS TUGAS

Terakhir, untuk tugas. Silakan buat satu pengguna Admin Super yang bisa membuat basis data dan penggunanya. Pengguna ini harus bisa mengakses dari luar.

Konfigurasi HAProxy

Pada salah satu peladen MariaDB (MariaDB1/MariaDB2/MariaDB3), buat sebuah pengguna HAProxy di basisdata. Pengguna ini akan mengkueri basisdata untuk mengecek keberlangsungan masing-masing peladen.

sudo mysql --defaults-file=/etc/mysql/debian.cnf -e "CREATE USER 'haproxy'@'192.168.101.1'"

Ganti nama pengguna haproxy dengan sesuatu yang lebih kreatif. Demi keamanan, jangan cuma copas saja di sini!

Lalu, masuk pada peladen HAProxy dan pasang HAProxy di sana:

sudo apt-get install haproxy

Lalu, buat konfigurasi HAProxy. Caranya, tambahkan baris-baris ini pada berkas konfigurasi /etc/haproxy/haproxy.cfg

# Load Balancing for Galera Cluster
listen galera 192.168.1.12:3306
     balance source
     mode tcp
     option tcpka
     option mysql-check user haproxy
     server node1 192.168.101.10:3306 check weight 1
     server node2 192.168.101.11:3306 check weight 1
     server node2 192.168.101.12:3306 check weight 1

Ganti nama pengguna haproxy dengan sesuatu yang lebih kreatif. Demi keamanan, jangan cuma copas saja di sini!

Lalu, jalankan ulang HAProxy. (Pada titik ini saya sudah malas membuat dua versi)

sudo service haproxy restart

Selesai.

Optimasi

Bonus untuk landasan pemikiran. Berikut arsitektur-arsitektur alternatif yang bisa dibuat untuk memenuhi kebutuhan.

  1. Ganti HAProxy dengan perangkat keras router atau load-balancer.
  2. Pasang HAProxy pada setiap peladen aplikasi agar menghilangkan bottleneck jaringan. Jadi, hubungan antara aplikasi dan basisdata menjadi M:N. Kalau pakai ini, HAProxy lebih baik bind ke localhost jangan ke IP. Jadi, akses per aplikasi langsung ke localhost. Ini pondasi arsitektur layanan mikro (microservice architecture).
    HAProxy per apps

    HAProxy per apps

  3. Partisi peladen-peladen aplikasi untuk mengakses hanya salah peladen dalam kluster.
  4. Tambah jumlah peladen dalam kluster.

Jumlah kluster 3 itu adalah demi memenuhi konsep kuorum.

Optimasi Lebih Lanjut yang Belum Sempat Ditulis Karena Saya Ingin Mencari Pokémon Lagi Riset Lebih Lanjut

Ada riset lanjutan yang dapat membuat arsitektur aplikasi lebih terskalakan. Yakni, membuat sebuah peladen obyek penyimpan (storage object) semacam Amazon S3 dengan menggunakan OpenStack Swift dengan menggunakan CEPH. Atau, implementasi sederhana dengan GlusterFS atau NFS. Silakan kembangkan lebih lanjut agar aplikasi Anda lebih terskalakan.

Gunakan Puppet, Ansible, Chef, atau konfigurator apa pun yang lebih baik. Kalau arsitektur sudah skala besar seperti ini, mengubah peladen satu persatu itu sudah mustahil bila tanpa ada kesalahan. Buat tutorial ini menjadi cookbook/rule yang bisa secara dinamis di-deploy.

Semoga bermanfaat.

Bacaan Lebih Lanjut

on 22 Jul 2016 12:44 PM

20 Jul 2016

Migrasi Ke Jekyll

Mahyuddin Susanto

Migrasi ke Jekyll

Sudah lama saya menggunakan wordpress, dan saat ini saya memutuskan untuk menggunakan jekyll. Saya memilih jekyll karena jekyll sangat cepat (karena static) dan support markdown (bahasa yang saya suka). Beberapa pertimbangan lain yang ada adalah hosting situs ini menggunakan shared hosting, jadi sangat rentan apabila menggunakan wordpress, seperti yang kita tahu wordpress adalah salah satu cms favorit untuk dijadikan target serangan. Walau sebenarnya kita bisa melakukan pencegahan, tapi saya hanya ingin pengaturan minimal untuk situs ini. CMIIW

Untuk migrasi ke dari wordpress ke jekyll pun sangat mudah dan tidak membutuhkan proses yang bertele-tele dan panjang, saya menggunakan exitwp untuk melakukan export post dan halaman ke format markdown. Kebetulan saya menggunakan Ubuntu untuk melakukan proses migrasi ini jadi tinggal mengikuti prosedur yang ada.

Migrasi Ke Jekyll was originally published by at mahyuddin on July 21, 2016.

on 20 Jul 2016 08:58 PM

17 Jul 2016

There few methods available that you can find in the Internet but the method that I like to share it’s bit different. May be, it will suitable for you.

What is the benefit of OFFLINE installation?
You don’t have to connect to the Internet when you install new application and you can distribute it easily.

In this tutorial, I use Ubuntu 14.04.

Below are the steps:

1.Clean the folder /var/cache/apt/archives
Open your linux terminal then type the command below:
$sudo apt-get clean

This command will clean all .deb file in folder /var/cache/apt/archives.
Clean the folder is important otherwise it will mixed up with the previous download application files.
For folder /var/cache/apt/archives/partial is only temporary place before files moved to archieves, so it will automatically cleaned.

2.Update the source list.
Connect to the Internet and update your package list because sometimes your application it’s not the list yet.
$sudo apt-get update

3.Download the application.
For example, you want to download nmap. Type the command below. This command only download the .deb files of the application in folder /var/cache/apt/archives, NOT install it. $sudo apt-get install -d nmap
(d = –download-only)

darklinux@darklinux:~$ nmap
The program ‘nmap’ is currently not installed. You can install it by typing:
sudo apt-get install nmap
darklinux@darklinux:~$ sudo apt-get install -d nmap
[sudo] password for darklinux:
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
libblas3 liblinear-tools liblinear1
Suggested packages:
libsvm-tools liblinear-dev
The following NEW packages will be installed:
libblas3 liblinear-tools liblinear1 nmap
0 upgraded, 4 newly installed, 0 to remove and 500 not upgraded.
Need to get 4.102 kB of archives.
After this operation, 18,3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://id.archive.ubuntu.com/ubuntu/ trusty/main libblas3 i386 1.2.20110419-7 [183 kB]
Get:2 http://id.archive.ubuntu.com/ubuntu/ trusty/main liblinear1 i386 1.8+dfsg-1ubuntu1 [32,0 kB]
Get:3 http://id.archive.ubuntu.com/ubuntu/ trusty/main liblinear-tools i386 1.8+dfsg-1ubuntu1 [18,1 kB]
Get:4 http://id.archive.ubuntu.com/ubuntu/ trusty/main nmap i386 6.40-0.2ubuntu1 [3.869 kB]
Fetched 4.102 kB in 28s (144 kB/s)
Download complete and in download only mode
darklinux@darklinux:~$
offline installation

4.Create a folder and copy all the .deb files in it.
Goto /var/cache/apt/archives folder, copy all the .deb files to your nmap folder.
Below is the example of my applications collection.offline installation2

5.Goto nmap folder and install the package.
I suggest to install the application using dpkg (package manager for debian). From Linux Terminal, goto to your nmap folder then type the command below.
$sudo dpkg -i *.deb

darklinux@darklinux:/media/darklinux/Data300GB/01_LINUX/08-DEB COLLECTIONS for Ubuntu 14.04/nmap$ sudo dpkg -i *.deb
[sudo] password for darklinux:
(Reading database … 167847 files and directories currently installed.)
Preparing to unpack libblas3_1.2.20110419-7_i386.deb …
Unpacking libblas3 (1.2.20110419-7) over (1.2.20110419-7) …
Preparing to unpack liblinear1_1.8+dfsg-1ubuntu1_i386.deb …
Unpacking liblinear1 (1.8+dfsg-1ubuntu1) over (1.8+dfsg-1ubuntu1) …
Preparing to unpack liblinear-tools_1.8+dfsg-1ubuntu1_i386.deb …
Unpacking liblinear-tools (1.8+dfsg-1ubuntu1) over (1.8+dfsg-1ubuntu1) …
Selecting previously unselected package nmap.
Preparing to unpack nmap_6.40-0.2ubuntu1_i386.deb …
Unpacking nmap (6.40-0.2ubuntu1) …
Setting up libblas3 (1.2.20110419-7) …
Setting up liblinear1 (1.8+dfsg-1ubuntu1) …
Setting up liblinear-tools (1.8+dfsg-1ubuntu1) …
Setting up nmap (6.40-0.2ubuntu1) …
Processing triggers for man-db (2.6.7.1-1ubuntu1) …
Processing triggers for libc-bin (2.19-0ubuntu6.5) …
darklinux@darklinux:/media/darklinux/Data300GB/01_LINUX/08-DEB COLLECTIONS for Ubuntu 14.04/nmap$

Test the application:
darklinux@darklinux:/media/darklinux/Data300GB/01_LINUX/08-DEB COLLECTIONS for Ubuntu 14.04/nmap$ nmap localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2016-07-17 19:33 WIB
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00063s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
631/tcp open ipp
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
darklinux@darklinux:/media/darklinux/Data300GB/01_LINUX/08-DEB COLLECTIONS for Ubuntu 14.04/nmap$

Happy trying.


on 17 Jul 2016 12:53 PM

15 Jul 2016

Pokémon GO

Jan Peter

mad-scientist

Pokémon GO adalah sebuah permainan baru yang memiliki fitur AR (Augmented Reality). Teknologi AR ini memberikan efek bahwa lingkungan sekitar kita ada hal-hal yang lain. Dalam hal ini, ada Pokémon yang sedang bermain di atas meja contohnya.

Setidaknya di UI banyak orang berkumpul bermain permainan ini. Tempat yang paling sering dikunjungi adalah Perpustakaan UI, terutama yang mendekati danau. Kalau waktu malam, Parkiran FIB, Halte Sepeda Fasilkom, dan Perpustakaan UI.

Pokémon GO dikembangkan oleh Niantic, perusahaan yang mengembangkan permainan serupa, INGRESS. Data spasial Pokémon GO ini memang diambil dari INGRESS. Jangan heran oleh sebab itu di Indonesia banyak situs yang bisa dikunjungi untuk mendapatkan Pokémon langka. Bahkan, kalau mau lebih lanjut, kita bisa menebak Pokémon langka dari permainan INGRESS.

Demikian. Mengenai isu privasi dan dampak sosial, saya akan tuliskan lebih lanjut apabila kemalasan menghilang. Sekian.

on 15 Jul 2016 04:48 PM

using ubuntu

Yakob

I had to go back to using ubuntu again in my computer desktop as my windows had been acting up. the problem started when my old graphics card died and I had to use the new one and the problem was that this new graphic card that is GT630 has a problem with its driver so when I installed the driver in windows 7 or windows XP, it just won’t work and the display is just worsened and not very smooth. even in windows 7 the screen always shows blue screen of death everytime I installed the drivers.

so yeah, in conclusion I had to let go of everything windows and now use ubuntu and as it turns out ubuntu can handle this graphic cards really well and the display is smooth and stable. I just need to learn all the command line and install necessary software for making my experience with ubuntu a lot better. beside I am also planning to use VPS in the coming days so having ubuntu will smoother the experience in managing a server as I need to adapt in using command line.

 

 


on 15 Jul 2016 06:53 AM

12 Jul 2016

KDE Neon 5.7

Fakhrul Rijal

Baru nyoba KDE Neon 5.7 yang ternyata dibangun dari Ubuntu 16.04 Xenial.
Pasang di VirtualBox dengan jatah RAM 2048megabytes.
Ternyata ruingan buangeet... 
Joss KDE.
on 12 Jul 2016 06:29 PM

11 Jul 2016

Yang perlu dipertegas dan disampaikan sebelum membuat penafsiran yang salah tentang sebuah ilustrasi dari gambar pada tulisan ini, antara lain: Mohon maaf kepada Arya Permana (10) telah meminjam fotonya; Mohon maaf kepda Orang Tua Arya Permana karena fotonya dipakai pada tulisan ini; Terima kasih pada Kompas Online atas beritanya, telah menginspirasi saya untuk berpikir dan […]
on 11 Jul 2016 06:03 PM

04 Jul 2016

have you ever wonder why indexes always start at  0 but not at 1 ?

animals = ['bear', 'tiger', 'penguin', 'zebra']
bear = animals[0]
tiger = animals[1]

You take a list of animals, and then you get the first (1st) one using 0?! How does that work? Because of the way math works, Python and other progamming languages starts its lists at 0 rather than 1.

The best way to explain why this is happening is by showing you the difference between how you use numbers and how programmers use numbers.

Imagine you are watching the four animals in our list (['bear', 'tiger', 'penguin', 'zebra']) run in a race. They cross the finish line in the order we have them in this list. The race was really exciting because the animals didn’t eat each other and somehow managed to run a race. Your friend shows up late and wants to know who won. Does your friend say, “Hey, who came in zeroth?” No, he says, “Hey, who came in first?”

This is because the order of the animals is important. You can’t have the second animal without the first (1st) animal, and you can’t have the third without the second. It’s also impossible to have a “zeroth” animal since zero means nothing. How can you have a nothing win a race? It just doesn’t make sense. We call these kinds of numbers “ordinal” numbers, because they indicate an ordering of things.

Programmers, however, can’t think this way because they can pick any element out of a list at any point. To programmers, the list of animals is more like a deck of cards. If they want the tiger, they grab it. If they want the zebra, they can take it too. This need to pull elements out of lists at random means that they need a way to indicate elements consistently by an address, or an “index,” and the best way to do that is to start the indices at 0. Trust me on this: the math is way easier for these kinds of accesses. This kind of number is a “cardinal” number and means you can pick at random, so there needs to be a 0 element.

Remember: ordinal == ordered, 1st; cardinal == cards at random, 0.


on 04 Jul 2016 04:24 PM

01 Jul 2016

KDE GIT

Pada KDE5, para pengguna GIT akan selalu disedihkan dengan pertanyaan seperti ini:

$ git pull
Username for 'https://git.repository.com': me
Password for 'https://me@git.repository.com': xxxxx

Mengapa hanya KDE5? Karena GIT menyediakan integrasi dengan GNOME Keyring. Ya, bisa saja memasang GNOME Keyring. Tapi, itu bukanlah KDE5 yang kita cintai! ;-(

Untungnya, ada integrasi dengan mekanisme SSHASKPASS.

Pertama-tama, pasang implementasi KDE5 untuk SSHASKPASS.

sudo apt-get install ksshaskpass

Buat ksshaskpass sebagai penyimpan sandi.

git config --global core.askpass /usr/bin/ksshaskpass

Selanjutnya, Anda harus membuat keputusan.

Memasukkan Login per Repositori GIT

Kalau Anda hanyalah pengguna dari sebuah repositori tunggal, Anda cukup menyimpan login di lokal saja. Ini dilakukan di setiap direktori GIT.

git config --local credential.https://git.repository.com.username "me"

Kemungkinan besar, Anda adalah seorang leecher seperti saya pengembang yang mengakses lebih dari satu repositori dalam sebuah situs GIT. Untuk itu, bisa dibuatkan repositorinya.

git config --global credential.https://git.repository.com.username "me"

Sampai sini, Anda sudah selesai.

Terakhir

Apa yang terjadi?

Bacaan Lebih Lanjut

on 01 Jul 2016 02:23 PM

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
Wily Broke The Window

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

17 Jun 2016

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

09 Jun 2016

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

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

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

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