December 06, 2016

Moh Noor Azam

Kalau Tidak Mendukung Kami, Maka Anda Musuh Kami

Keramaian FB hari ini dipicu oleh pengumuman resmi dari Sari Roti (http://www.sariroti.com) tentang informasi pembagian Sari Roti oleh penjual keliling pada saat aksi super damai 212 yang lalu adalah bukan policy resmi perusahaan. Berikut pengumuman resmi di websitenya:

screen-shot-2016-12-06-at-7-54-20-pm

Kalau membaca pengumumannya, kelihatannya ini adalah hal yang biasa: yaitu ada kegiatan yang ditulis sebagai atas nama perusahaan, padahal perusahaan tidak merasa melakukan kegiatan tersebut. Oleh karenanya kemudian perusahaan meng-konfirmasi-kan bahwa itu bukan policy resmi perusahaan. Bahkan perusahaan tidak tahu ada kegiatan itu (bagi-bagi roti gratis). Selain itu, rupanya pihak Sari Roti juga sudah menginvestigasi dan menemukan bahwa roti-roti itu sudah dibeli lunas.

Ya… itu pengumuman biasa bukan??

Tapi yang terjadi ternyata di luar dugaan (saya yakin manajemen Sari Roti juga tidak menduganya). Banyak netizen yang merespon negatif pengumuman ini. Menganggap Sari Roti adalah musuh mereka. Bahkan pada akhir-akhir diskusi ada usulan  untuk memboikot produknya.

Entah…. bagaimana logikanya bisa diambil kesimpulan sampai di situ. Satu-satunya yang bisa saya pikirkan hanyalah logika “kalau tidak mendukung kami, maka anda adalah musuh kami”. Entahlah… wallahu a’lam bishawab.

The post Kalau Tidak Mendukung Kami, Maka Anda Musuh Kami appeared first on Noor Azam.

by Noor Azam at December 06, 2016 01:34 PM

October 03, 2016

hackergotchi for Debian News

Debian News

Several donations boost reliability of Debian's core infrastructure

Over the last several months, Hewlett Packard Enterprise (HPE), one of Debian's primary hardware partners, has made several large in-kind donations in support of Debian core services. The donated equipment will be deployed in the data centers of multiple hosting partners in Canada, the United States, and Australia.

October 03, 2016 12:00 AM

September 27, 2016

hackergotchi for Debian News

Debian News

Debian Project mourns the loss of Kristoffer H. Rose

The Debian Project recently learned that it has lost a member of its community. Kristoffer H. Rose died on September 17th after an intense but short battle with myelo fibrosis.

September 27, 2016 12:00 AM

September 17, 2016

hackergotchi for Debian News

Debian News

Updated Debian 8: 8.6 released

The Debian project is pleased to announce the sixth update of its stable distribution Debian 8 (codename jessie). This update mainly adds corrections for security problems to the stable release, along with a few adjustments for serious problems. Security advisories were already published separately and are referenced where available.

September 17, 2016 12:00 AM

September 14, 2016

Moh Noor Azam

Programming vs Algoritma

Programming vs Algoritma itu seperti laki-laki dan wanita.

Lho…. koq bisa?? Iya… kemampuan memprogram atau programming dan kemampuan memahami penyelesaian masalah atau algoritma itu seperti halnya laki-laki dan wanita. Kemampuan memprogram itu laki-laki, sementara kemampuan memahami algoritma itu adalah wanita. Keduanya harus bersatu dalam keluarga (baca: programmer) sebagai suami dan istri dalam ikatan perjanjian yang kuat atau Mitsaqan Gholidzo -bahkan disetarakan dengan perjanjian antar negara.

Kalau bisa memprogram tetapi tidak menguasai algoritmanya, itu seperti laki-laki tetapi belum beristri. Terus komputernya mau dibuat apa?? Apa mau ketap-ketip thok?? (I don’t know what is ketap-ketip in English, any idea??)
Sementara kalau algoritmanya tahu…. algoritmanya menguasai, tetapi tidak tahu bagaimana menuangkannya dalam sebuah bahasa pemrograman, mau diapain algoritmanya itu??

Jadi…. mahasiswaku… ayo… pelajari bahasa pemrograman sebanyak mungkin, tetapi jangan lupa pelajari juga algoritma-algoritma yang ada.
#BaladaMengajarFuzzyLogic

The post Programming vs Algoritma appeared first on Noor Azam.

by Noor Azam at September 14, 2016 11:52 PM

September 11, 2016

hackergotchi for Izharul Haq

Izharul Haq

Instalasi Docker di Raspbian - Bagian 1

Pemasangan Docker di Raspbian Jessie

Daftar Isi

Apa Itu Docker ?

Docker adalah sebuah project open source yang ditujukan untuk developer atau sysadmin untuk membangun, mengemas dan menjalankan aplikasi dimana pun di dalam sebuah container.

Pengaturan GPU Raspberry Pi

Sebelum melakukan pemasangan Docker, kita atur memori GPU terlebih dahulu:

$ sudo raspi-config

Pilih 9 Advanced Options > A3 Memory Split saat muncul pertanyaan How much memory should the GPU have? ubah nilai dari 64 ke 16 pilih <OK> dan <Finish>, jalankan ulang Raspberry Anda.

Anda juga dapat melakukan cara berikut:

$ sudo nano /boot/config.txt

Ubah nilai gpu_mem menjadi gpu_mem=16, jalankan ulang Raspberry Anda.

Pemasangan Docker

Selanjutnya kita pasang Docker,

$ curl -sSL get.docker.com | sh
+ sudo -E sh -c mkdir -p /etc/systemd/system/docker.service.d
+ sudo -E sh -c echo '[Service]\nExecStart=\nExecStart=/usr/bin/dockerd --storage-driver overlay -H fd://' > /etc/systemd/system/docker.service.d/overlay.conf
+ sudo -E sh -c sleep 3; apt-get update
...

Jalankan service docker:

$ sudo systemctl enable docker
$ sudo systemctl start docker

Tambahkan user Anda ke dalam group docker sehingga tidak perlu menggunakan sudo saat menjalankan docker:

$ sudo usermod -aG docker useranda

Untuk memastikan docker telah berjalan, jalankan perintah berikut:

$ docker version
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:31:15 2016
 OS/Arch:      linux/arm

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:31:15 2016
 OS/Arch:      linux/arm
$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.1
Storage Driver: overlay
 Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null overlay host bridge
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options:
Kernel Version: 4.4.11-v7+
Operating System: Raspbian GNU/Linux 8 (jessie)
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 973.1 MiB
Name: collab
ID: 6OKE:4S5L:MCLQ:Y2W4:MPJR:K3O2:ZY3D:OYYA:V6GP:H2LT:FVDH:DYCJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
WARNING: No cpuset support
Insecure Registries:
 127.0.0.0/8

Selamat, docker sudah berjalan di mesin raspi Anda.

Memasang docker-compose dan docker-machine

Untuk memasang docker-compose dan docker-machine kita memerlukan repositori Hypriot, jalankan perintah berikut:

$ curl -s https://packagecloud.io/install/repositories/Hypriot/Schatzkiste/script.deb.sh | sudo bash
Detected operating system as raspbian/jessie.
Checking for curl...
Detected curl...
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/Hypriot_Schatzkiste.list...done.
Importing packagecloud gpg key... done.
Running apt-get update... done.

The repository is setup! You can now install packages.

Selanjutnya pasang paket docker-compose dan docker-machine:

$ sudo apt-get install -y git docker-compose docker-machine

Periksa paket yang sudah dipasang:

$ docker-compose -v
docker-compose version 1.8.0, build 94f7016
$ docker-machine -v
docker-machine version 0.8.0, build b85aac1

Selesai, pada artikel selanjutnya kita akan lanjutkan dengan membuat image dan push ke Docker Hub, silahkan mendaftar terlebih dahulu.

Instalasi Docker di Raspbian - Bagian 1 was originally published by Izharul Haq at Atoz Journal on September 11, 2016.

by Izharul Haq (atoz.chevara.2013@gmail.com) at September 11, 2016 12:00 AM

August 18, 2016

hackergotchi for Mahyuddin Susanto

Mahyuddin Susanto

Bagaimana cara menginstall Docker-swarm

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.

August 18, 2016 10:39 PM

Muhammad Firdaus

Why it doesn’t work for you?

Muhammad Firdaus, fird0s

Some people say “You have to follow your passion, love what you do and do what you love“. But it’s general sentences what everyone in the world know and that sentences is ambiguous. Most of them follow what their passionate about. In the above quote that said by Steve Jobs, “You can’t connect the dots looking forward you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future“. The meaning of the sentences is you have to see your past act and then you most to equal with your future act. You have to do same things in the past and for future. If you work for tech company, after you resigned you must continue your career to choose tech company again as your job. that is one of meaning “connecting the dots“.

Other quote that said by Sebastian Vettel – one of best Germany driver who having won the championship in 2010 till 2013 with Red Bull Racing. He said “I don’t care too much what happened in the past. I prefer to focus on what is coming next and I am really looking forward to it”. The sentences mean is you have to focus for your next step, you don’t have to look at what happened in the past.

Both of whose quotes, Steve Jobs and Sebastian Vettel is a successfull man in their business. but they have different way and strategy to persue their success. What im gonna to tell you is, you have to find your selves strategy to persue your success. Each business has different strategy, you have to find the best that work for you. Is’s the time for you to find your stategy, most people failed in the first their strategy. So keep trying to find your way.

 


by fird0s at August 18, 2016 03:27 AM

August 16, 2016

hackergotchi for Mahyuddin Susanto

Mahyuddin Susanto

Memasang Docker di Linux

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.

August 16, 2016 11:27 PM

August 15, 2016

hackergotchi for Izharul Haq

Izharul Haq

Pemaketan Debian - Bagian 1

Pedoman pemaketan dasar Debian.

Pada tulisan ini kita akan belajar membuat paket untuk Debian dan distro turunannya, kita akan mencoba beragam cara membuat paket Debian, saya memisahkan Pedoman ini dalam beberapa bagian dan berusaha agar pembaca dapat dengan mudah memahaminya.

Daftar Isi

Persiapan.

Pemasangan paket yang diperlukan.

$ sudo apt-get install -y devscripts build-essential fakeroot debhelper \
gnupg pbuilder dh-make dpkg-dev ubuntu-dev-tools \
autotools-dev lintian rng-tools
Catatan:

Aplikasi rng-tools di gunakan disini untuk mempercepat proses pembuatan kunci GPG.

Konfigurasi awal informasi tentang pemaket.

Mengatur variabel $DEBFULLNAME dan $DEBEMAIL pada lingkungan shell sehingga berbagai alat-alat pemaketan Debian mengenali Nama dan Alamat Email Anda untuk memaketkan paket.

$ echo 'export DEBFULLNAME="Nama Anda"' >> ~/.bashrc
$ echo 'export DEBEMAIL="email@anda.com"' >> ~/.bashrc

$ source ~/.bashrc

atau

$ echo 'export DEBFULLNAME="Nama Anda"' >> ~/.profile
$ echo 'export DEBEMAIL="email@anda.com"' >> ~/.profile

$ source ~/.profile

atau

$ . ~/.bashrc

atau

$ . ~/.profile

atau bisa juga seperti ini:

$ cat >> ~/.bashrc <<EOF
DEBFULLNAME="Nama Anda"
DEBEMAIL="email@anda.com"
export DEBFULLNAME DEBEMAIL
EOF
$ . ~/.bashrc

Periksa hasilnya

$ echo $DEBFULLNAME ; echo $DEBEMAIL
$ export | grep DEB
$ grep DEB* ~/.bashrc
$ grep DEB* ~/.profile

Hasilnya akan menampilkan informasi tentang pemaket, pilih salah satu antara merubah berkas .bashrc atau .profile karena Banyak jalan menuju Roma :)

Membuat kunci GnuPG (GnuPrivacyGuard).

Sebelum membuat kunci GPG, kita jalankan daemon rngd secara manual:

$ sudo rngd -r /dev/urandom

Kita juga perlu memperbaharui GnuPG untuk menggunakan SHA 2 mengacu pada SHA1. Jadi tambahkan pada akhir file ~/.gnupg/gpg.conf:

personal-digest-preferences SHA256
cert-digest-algo SHA256
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed

Berikut ini detailnya:

$ mkdir -p ~/.gnupg/
$ cat >> ~/.gnupg/gpg.conf <<EOF
personal-digest-preferences SHA256
cert-digest-algo SHA256
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
EOF

Lanjutkan dengan proses membuat kunci GPG:

$ gpg --gen-key

Pilih: (1) RSA and RSA (default) -> 4096 -> (0) -> y -> (O)kay

Untuk melihat hasil dari pembuatan kunci GPG, bisa dilakukan dengan perintah berikut:

$ gpg --list-key --fingerprint

Setelah proses pembuatan kunci GPG selesai, hentikan daemon rngd dengan perintah pkill:

$ sudo pkill rngd

Pastikan daemon rngd tidak berjalan:

$ ps ax | grep rngd
15459 pts/1    S+     0:00 grep rngd

Hapus paket rng-tools bila tidak ingin membuat kunci gpg di kemudian hari.

$ sudo apt-get remove rng-tools

Membuat direktori kerja.

Sebelum kita memulai pada tahap selanjutnya, mari kita membuat direktori kerja kemudian masuk ke direktori yang telah kita buat:

$ mkdir -p ~/Belajar/Pemaketan/{src,final,github}
$ cd ~/Belajar/Pemaketan/src

Hasil dari membuat direktori kerja akan tampak seperti ini:

$ tree ~/Belajar
/home/user-anda/Belajar
└── Pemaketan
    ├── final
    ├── github
    └── src

4 directories, 0 files
Keterangan:
  • Direktori src digunakan untuk membangun paket Debian.
  • Direktori final digunakan untuk menyimpan paket yang akan kita buat.
  • Direktori github digunakan untuk membuat repositori Git dari paket yang akan kita buat.

Unduh paket sumber.

Anda bisa memilih paket apa yang mau di buatkan versi Debiannya, disini saya memilih paket GNU ed. Saat artikel ini ditulis versi terakhir adalah 1.9.

Mulai mengunduh paket sumber

$ wget http://ftp.gnu.org/gnu/ed/ed-1.9.tar.gz

Ekstrak paket sumber dan masuk ke direktori hasil ekstrak

$ tar zxvf ed-1.9.tar.gz
$ cd ed-1.9

Kita dapat melihat struktur direktorinya dengan perintah tree

$ tree -d ../
../
`-- ed-1.9
	|-- doc
	`-- testsuite

Bila perintah tidak ditemukan silahkan pasang paketnya

$ sudo apt-get install -y tree

Memulai membangun paket.

Mari kita mulai membangun paket yang telah kita pilih sebelumnya

$ dh_make -e $DEBEMAIL -c gpl3 -s -f ../ed-1.9.tar.gz

Kita bisa melihat perubahan yang terjadi pada struktur direktorinya

$ tree -d -D -t ../
../
`-- [Jul  3  3:41]  ed-1.9
	|-- [Jul  3  3:38]  doc
	|-- [Jul  3  3:38]  testsuite
	`-- [Jul  3  3:41]  debian
		`-- [Jul  3  3:41]  source


$ tree -D -t debian/
debian/
|-- [Jul  3  3:41]  README.Debian
|-- [Jul  3  3:41]  README.source
|-- [Jul  3  3:41]  changelog
|-- [Jul  3  3:41]  compat
|-- [Jul  3  3:41]  control
|-- [Jul  3  3:41]  copyright
|-- [Jul  3  3:41]  docs
|-- [Jul  3  3:41]  ed.cron.d.ex
|-- [Jul  3  3:41]  ed.default.ex
|-- [Jul  3  3:41]  ed.doc-base.EX
|-- [Jul  3  3:41]  info
|-- [Jul  3  3:41]  init.d.ex
|-- [Jul  3  3:41]  manpage.1.ex
|-- [Jul  3  3:41]  manpage.sgml.ex
|-- [Jul  3  3:41]  manpage.xml.ex
|-- [Jul  3  3:41]  menu.ex
|-- [Jul  3  3:41]  postinst.ex
|-- [Jul  3  3:41]  postrm.ex
|-- [Jul  3  3:41]  preinst.ex
|-- [Jul  3  3:41]  prerm.ex
|-- [Jul  3  3:41]  rules
|-- [Jul  3  3:41]  source
|   `-- [Jul  3  3:41]  format
`-- [Jul  3  3:41]  watch.ex


$ ls ../
ed-1.9  ed-1.9.tar.gz  ed_1.9.orig.tar.gz

Dari hasil perintah tree kita bisa melihat ada penambahan direktori debian dan debian/source dan juga salinan dari paket sumber yaitu ed_1.9.orig.tar.gz.

Mari kita hapus beberapa berkas yang saat tidak diperlukan1 pada direktori debian.

$ cd debian
$ rm *.ex *.EX README.* *.docs info

Hasilnya akan seperti ini

$ tree -D ../debian/
../debian/
|-- [Jul  3  3:41]  changelog
|-- [Jul  3  3:41]  compat
|-- [Jul  3  3:41]  control
|-- [Jul  3  3:41]  copyright
|-- [Jul  3  3:41]  rules
`-- [Jul  3  3:41]  source
	`-- [Jul  3  3:41]  format

Pada tahap ini kita akan merubah beberapa berkas yang ada di direktori debian diawali dengan berkas changelog, sebagai catatan…berkas-berkas ini disunting sesuai dengan ketentuan pemaketan Debian, sehingga kita tidak bisa seenaknya menyunting berkas yang ada.

Sunting berkas changelog.

Mari kita mulai menyunting berkas changelog ala Debian :)

$ dch -e
Keterangan:
  1. Perintah dch -e digunakan untuk penyuntingan awal.
  2. Perintah dch -i digunakan untuk penyuntingan selanjutnya ataupun pemaket lainnya.
ed (1.9-1) unstable; urgency=low

  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>

 -- Nama Anda <email@anda.com>  Sun, 03 Jul 2016 03:41:14 +0700
Keterangan:
  • 1.9 merupakan versi upstream/hulu.
  • 1 merupakan versi Debian.
  • unstable merupakan kode rilis paket Debian, nilai unstable umumnya digunakan untuk paket baru, versi terbaru dari paket upstream/hulu dan perbaikan kutu, sedangkan nilai experimental umumnya digunakan saat pengembang melakukan uji coba (versi beta) sebelum paket itu dirilis untuk Debian (nilainya experimental, unstable, testing dan stable). Lihat Debian Developer's Reference dan The Debian Administrator's Handbook untuk informasi lebih lanjut.
  • urgency=low merupakan deskripsi tentang seberapa pentingnya peningkatan versi dari versi sebelumnya (nilainya low, medium, high, emergency, atau critical).
  • nnnn merupakan nomor kutu Intent to Package (ITP) yang diperoleh ketika kita melaporkan paket yang ingin ditambahkan/kelola melalui Debian Bug Tracking System (Debian BTS).
Catatan:

Bila ingin memaketkan untuk Debian silahkan hapus keterangan nnnn is the bug number of your ITP.

Menjadi

ed (1.9-0blankon1) tambora; urgency=low

  * Initial release for Blankon Tambora

 -- Nama Anda <email@anda.com>  Sun, 03 Jul 2016 03:41:14 +0700
Keterangan:
  • 1.9 merupakan versi upstream/hulu.
  • 0 merupakan versi Debian.
  • blankon1 merupakan versi Blankon.
  • tambora merupakan kode rilis Blankon.
Sunting berkas control.

Sunting berkas control dengan text editor favorit.

$ cd ..
$ nano debian/control
		
Source: ed
Section: editors
Priority: optional
Maintainer: Nama Anda <email@anda.com>
Build-Depends: debhelper (>= 9), autotools-dev
Standards-Version: 3.9.9
Homepage: http://www.gnu.org/software/ed/
#Vcs-Git:
Vcs-Browser: http://web.cvs.savannah.gnu.org/viewvc/?root=ed

Package: ed
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: GNU ed is a line-oriented text editor.
 GNU ed is a line-oriented text editor. It is used to create, display,
 modify and otherwise manipulate text files, both interactively and via
 shell scripts. A restricted version of ed, red, can only edit files in
 the current directory and cannot execute shell commands.
 .
 Ed is the "standard" text editor in the sense that it is the original
 editor for Unix, and thus widely available. For most purposes, however,
 it is superseded by full-screen editors such as GNU Emacs or GNU Moe.
 .
 Extensions to and deviations from the POSIX standard are described below.

Pada paket Debian, berkas debian/control memiliki sintaks tertentu dimana setiap baris harus dimulai dengan spasi dan paragraf dipisahkan oleh sebuah titik. Jika ingin mengikuti sintaks DEP-5 untuk berkas debian/copyright, Kita akan memiliki masalah yang sama saat mengisi teks lisensi untuk creative-common license: sehingga spasi atau titik akan terlewatkan.

Pada berkas ini saya hanya melakukan penyuntingan pada bagian Section, Homepage, Vcs-Git, Vcs-Browser dan Description. silahkan lihat informasi paket GNU ed pada berkas README, untuk informasi lengkap paket ini bisa merujuk pada websitenya.

Langkah berikutnya kita akan menyunting berkas copyright, berikut caranya

$ nano debian/copyright

Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: ed
Source: http://www.gnu.org/software/ed/

Files: *
Copyright: 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, Free Software Foundation, Inc.
	   2006, 2007, 2008, 2009, 2010, 2012, 2013, Antonio Diaz Diaz <ant_diaz@teleline.es>
	   1993, Francois Pinard <pinard@icule>
	   1993-1994, Andrew Moore <alm@woops.talke.org>
License: GPL-3.0+

Files: debian/*
Copyright: 2016 Nama Anda <email@anda.com>
License: GPL-3.0+

License: GPL-3.0+
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 .
 This package is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 .
 You should have received a copy of the GNU General Public License
 along with this program. If not, see <http://www.gnu.org/licenses/>.
 .
 On Debian systems, the complete text of the GNU General
 Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".

Informasi lisensi bisa dilihat di berkas AUTHORS dan ChangeLog. Saya hanya menyunting bagian Upstream-Name dan Copyright.

Lakukan pengecekan dengan perintah cme, bila tidak tersedia silahkan pasang terlebih dahulu

$ sudo apt-get install -y install cme libconfig-model-dpkg-perl libconfig-model-tkui-perl
$ cme check dpkg
loading data
checking data
check done

Apabila hasilnya tidak seperti diatas maka lakukan penyuntingan kembali sesuai dengan output dari perintah cme. Anda juga bisa menyunting paket Debian dengan GUI, silahkan jalankan diterminal:

$ cme edit dpkg

Akan tampil jendela baru seperti gambar dibawah ini

Langkah 4 cme GUI.

Cara penggunaan silahkan lihat disini.

Paketkan.

Langkah selanjutnya kita akan mulai membuat paket Debian.

$ dpkg-buildpackage -rfakeroot
Catatan:

Tunggulah hingga proses selesai, karena nantinya akan diminta passphrase yang dibuat saat membuat kunci GnuPG. Apabila hal ini terlewati maka pembuatan paket akan galat/gagal.

Paket versi BlankOn.

Lihat hasilnya

$ ls ../ | grep ed
ed-1.9
ed-1.9.tar.gz
ed_1.9-0blankon1.debian.tar.xz
ed_1.9-0blankon1.dsc
ed_1.9-0blankon1_armhf.changes
ed_1.9-0blankon1_armhf.deb
ed_1.9.orig.tar.gz

Paket versi Debian.

Bila memaketkan ke versi Debian hasilnya seperti ini

$ ls ../ | grep ed
ed-1.9
ed-1.9.tar.gz
ed_1.9-1.debian.tar.xz
ed_1.9-1.dsc
ed_1.9-1_armhf.changes
ed_1.9-1_armhf.deb
ed_1.9.orig.tar.gz

Saya membangun paket pada mesin ARM Raspberry 2 model B, hasil yang ditampilkan akan berbeda bila Anda membangun paket pada mesin berarsitektur 32-bit dan 64-bit, saya merekomendasikan Anda untuk membangun paket pada mesin 64-bit. Silahkan lihat arsitektur apa saja yang di dukung pada halaman Ports website Debian.

Pemeriksaan paket.

Periksa paket dengan menggunakan lintian

$ lintian -iIEv --pedantic ../*.changes

Selesai…sampai nanti di tulisan berikutnya.

Rujukan


  1. Dilain kesempatan kita akan bahas bagaimana cara menyunting berkas postinst, postrm, preinst, prerm, dll.

Pemaketan Debian - Bagian 1 was originally published by Izharul Haq at Atoz Journal on July 04, 2016.

by Izharul Haq (atoz.chevara.2013@gmail.com) at August 15, 2016 12:00 AM

August 12, 2016

hackergotchi for Izharul Haq

Izharul Haq

E: Failed to fetch - Size mismatch

Mengatasi Galat apt-get/aptitude “E: Failed to fetch - Size mismatch”

Terkadang saat memasang aplikasi kita menemukan pesan galat yang beraneka ragam, salah satunya seperti ini:

$ sudo aptitude install tree
The following NEW packages will be installed:
  tree 
0 packages upgraded, 1 newly installed, 0 to remove and 63 not upgraded.
Need to get 47,9 kB of archives. After unpacking 137 kB will be used.
Get: 1 http://kambing.ui.ac.id/debian/ jessie/main tree i386 1.7.0-3 [47,9 kB]
Fetched 449 B in 0s (4.333 B/s)
E: Failed to fetch http://kambing.ui.ac.id/debian/pool/main/t/tree/tree_1.7.0-3_i386.deb: Size mismatch

Hal ini terjadi karena beberapa hal, seperti koneksi yang buruk, pembatalan pemasangan secara tiba-tiba dll. Untuk mengatasi hal ini, Anda cukup menghapus paket yang gagal terpasang pada direktori arsip apt:

$ sudo rm /var/cache/apt/archives/partial/tree_1.7.0-3_i386.deb.FAILED

Silahkan mencoba kembali:

$ sudo aptitude install tree

Pada kasus yang saya alami, berhubung menggunakan apt-cacher-ng sebagai proxy apt agar perangkat lainnya dapat memasang aplikasi melalui proxy apt yang telah saya buat, maka saya perlu menghapus paket yang gagal pada arsip apt-cacher-ng:

$ sudo rm /var/cache/apt-cacher-ng/debrep/pool/main/t/tree/tree_1.7.0-3*
Catatan: Dilain kesempatan saya akan menulis tentang apt-cacher-ng ini.

E: Failed to fetch - Size mismatch was originally published by Izharul Haq at Atoz Journal on August 12, 2016.

by Izharul Haq (atoz.chevara.2013@gmail.com) at August 12, 2016 12:00 AM

July 30, 2016

hackergotchi for Izharul Haq

Izharul Haq

My Contribution to FOSS in July 2016

Just a Note

This is my note about contribution for FOSS in July:

This part has been fully translated:

My Contribution to FOSS in July 2016 was originally published by Izharul Haq at Atoz Journal on July 31, 2016.

by Izharul Haq (atoz.chevara.2013@gmail.com) at July 30, 2016 05:00 PM

July 27, 2016

hackergotchi for Mahyuddin Susanto

Mahyuddin Susanto

Git, Delete branch Local dan Remote

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.

July 27, 2016 10:47 PM

July 26, 2016

hackergotchi for Mahyuddin Susanto

Mahyuddin Susanto

Install RVM di Ubuntu

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.

July 26, 2016 06:46 PM

hackergotchi for Izharul Haq

Izharul Haq

Menambahkan Notes di tema Jekyll HPSTR

Modifikasi tema Jekyll HPSTR

Sebelum menambahkan class notes pada css di tema Jekyll HPSTR yang saya gunakan, saya sebelumnya menggunakan sintak markdown blockquotes untuk menampilkan keterangan ataupun catatan, setelah saya ngulik sedikit dokumentasi GitHub, akhirnya saya menambahkan berkas baru untuk pada direktori _sass/ dan menamakan berkas tersebut dengan _alert.scss.

isinya seperti berikut:

Setelah berkas dibuat, maka kita perlu menyunting berkas assets/css/main.scss untuk memanggil berkas yang telah dibuat sebelumnya dengan menambahkan @import "alert"; pada akhir baris.

$ echo "@import "alert";" >> assets/css/main.scss

Hasilnya akan seperti ini:

$ cat assets/css/main.scss
---
sitemap: false
---

/*
 *
 *  HPSTR
 *
 *  Designer: Michael Rose
 *  Twitter: http://twitter.com/mmistakes
 *
*/

// Partials
@import "variables";
@import "mixins";
@import "reset";
@import "vendor/font-awesome/font-awesome";
@import "vendor/magnific-popup/magnific-popup";
@import "site";
@import "typography";
@import "syntax";
@import "coderay";
@import "gist";
@import "grid";
@import "elements";
@import "alert";
@import "animations";
@import "dl-menu";
@import "page";

Mari kita lihat hasil dari penambahan css yang sudah dibuat:

<div class="alert alert-note"><strong>Catatan:</strong>
<ul>
<li>Item 1.</li>
<li>Item 2.</li>
<li>Item 3.</li>
<li>Item 4.</li>
</ul>
</div>

Output:

Catatan:
  • Item 1.
  • Item 2.
  • Item 3.
  • Item 4.

Selesai, semoga bisa lebih bersemangat berbagi pengetahuan.

Menambahkan Notes di tema Jekyll HPSTR was originally published by Izharul Haq at Atoz Journal on July 27, 2016.

by Izharul Haq (atoz.chevara.2013@gmail.com) at July 26, 2016 05:00 PM

July 20, 2016

hackergotchi for Mahyuddin Susanto

Mahyuddin Susanto

Migrasi Ke Jekyll

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.

July 20, 2016 08:58 PM

July 15, 2016

Muhammad Firdaus

Marketing Process

In the most book that i have read, most of them explain 5 step of marketing process are:

1. Understanding the marketplace and customer needs
2. Design a customer-driven marketing strategy
3. Construct an integrated marketing program that delivers superior value
4. Build profitable relationship customer deligh
5. Capture value from customers to create profit and customer equity

above 5 at all, there are many materials more that can be explained. for example, in the Understanding the marketplace and customer needs, there will be (a) needs, wants, and demand. (b) market offering (products, services, and experiecens). (c) value and satisfaction. (d) exchanges and relationships, and (e) markets.

 


by fird0s at July 15, 2016 03:05 AM

July 13, 2016

hackergotchi for Izharul Haq

Izharul Haq

OpenWrt+Tor firmware untuk GL.iNet 6416 dan GL.iNet AR150

Upgrade GL.iNet firmware dengan OpenWrt-Tor.

Berhubung semalam dengan ditemani oleh Mahyuddin Ramli saya melakukan upgrade firmware GL.iNet 6416A, maka saya tuliskan disini agar pembaca bisa meng-upgradenya juga.

Namun perlu di tegaskan lebih dulu…

Hati-hati:

Kerusakan perangkat yang disebabkan karena mengikuti langkah-langkah ini bukanlah tanggung jawab saya selaku penulis.

Daftar Isi

Persiapan.

Unduh firmware OpenWrt+Tor.

$ wget http://www.gl-inet.com/firmware/6416/tor/openwrt-6416-tor-1.3.bin

Bila Anda menggunakan GL.iNet versi AR150:

$ wget http://www.gl-inet.com/firmware/ar150/tor/openwrt-ar150-tor-1.3.bin
Catatan:

Untuk versi sebelumnya silahkan menuju ke tautan: Tor 6416 dan Tor AR150

Konfigurasi awal.

Silahkan lihat video berikut:

Setelah upgrade firmware selesai, Anda bisa mengakses jaringan Tor melalui SSID tor dengan password goodlife atau melalui kabel LAN, sedangkan SSID OpenWrt dengan password goodlife untuk mengakses jaringan tanpa Tor sekaligus mengkonfigurasi GL.iNet.

Menjadikan GL.iNet sebagai Repeater.

Berhubung saya menggunakan GL.iNet sebagai repeater untuk terhubung ke jaringan @wifi.id maka:

  • Ubah INTERNET CONFIGURATION dari PROTOCOL DHCP ke WiFi melalui Domino Web Panel.
Langkah 1 Langkah 2 Langkah 3 Repeater-Mode.

Anda bisa mengganti password serta SSID tor dan OpenWrt dengan mengakses SSID OpenWrt terlebih dahulu.

Langkah 4 Ubah SSID dan Password.
  • Masuk ke LUCI Web Panel pilih menu Network > Interfaces dan ubah network interface LAN, TOR dan TOR1 dengan memilih Edit, pada DHCP Server pilih tab Advenced Settings, isikan kolom DHCP-Options dengan alamat DNS @wifi.id, contoh: untuk interface LAN saya isikan 6,10.232.0.4,118.98.44.10,192.168.8.1,8.8.8.8,8.8.4.4 saya tambahkan juga Google DNS, untuk pilihan DNS terakhir terserah Anda. Kemudian Save & Apply.
Catatan:

Pada beberapa kasus, halaman login pada @wifi.id tidak dapat ditampilkan, silahkan menambahkan alamat ip 1.1.1.1 setelah alamat ip DNS @wifi.id.

Langkah 5 Setting DNS.
  • Masih di LUCI Web Panel pilih menu Network > Firewall > Custom Rules dan ubah pada:
enable_transparent_tor() {
  iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 9053
  iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040 
  iptables -t nat -A PREROUTING -i eth1 -p udp --dport 53 -j REDIRECT --to-ports 9053
  iptables -t nat -A PREROUTING -i eth1 -p tcp --syn -j REDIRECT --to-ports 9040
}
enable_transparent_tor

menjadi

enable_transparent_tor() {
  iptables -t nat -A PREROUTING -i wlan0-1 -p udp --dport 53 -j REDIRECT --to-ports 9053
  iptables -t nat -A PREROUTING -i wlan0-1 -p tcp --syn -j REDIRECT --to-ports 9040 
  iptables -t nat -A PREROUTING -i eth1 -p udp --dport 53 -j REDIRECT --to-ports 9053
  iptables -t nat -A PREROUTING -i eth1 -p tcp --syn -j REDIRECT --to-ports 9040
}
enable_transparent_tor
Langkah 6 Setting Firewall.

jangan lupa lakukan Submit.

  • Akses GL.iNet melalui ssh dan masukkan password root Anda.
ssh root@192.168.8.1
  • Lihat interface untuk SSID tor.

Karena saya memfungsikan GL.iNet sebagai repeater maka interface wlan0 akan bertambah, lihat ip address yang digunakan pada jaringan tor:

 # ifconfig
  • Sunting berkas /etc/init/tor.
 # vim /etc/init.d/tor

ubah

 start() {
        while [ -z "$(ifconfig wlan0)" -a -z "$(ifconfig eth1)" ]; do
                sleep 5
        done

menjadi

 start() {
        while [ -z "$(ifconfig wlan0-1)" -a -z "$(ifconfig eth1)" ]; do
                sleep 5
        done
  • Silahkan jalankan ulang service firewall:
# /etc/init.d/firewall restart

Bila sampai tahap ini Anda belum bisa mengakses jaringan internet, hidupkan ulang GL.inet:

# reboot
Catatan:

Tor memerlukan akses ke internet untuk terhubung ke jaringannya, ini memerlukan waktu agar koneksi Tor stabil, pastikan terlebih dulu GL.iNet Anda telah sukses terhubung ke internet dengan menghubungkan perangkat ke SSID OpenWrt.

  • Silahkan hubungkan perangkat Anda ke SSID OpenWrt terlebih dulu, akses halaman login @wifi.id hingga GL.iNet terhubung ke internet, tunggulah beberapa saat agar Tor terhubung ke jaringan, kemudian disconnect dari SSID OpenWrt untuk menikmati akses internet secara anonym melalui Tor dengan menghubungkan perangkat Anda ke SSID Tor atau kabel LAN, akses ke alamat https://check.torproject.org/?lang=id untuk memastikan Anda terhubung secara anonym.

Sampai nanti di tulisan berikutnya.

Rujukan

OpenWrt+Tor firmware untuk GL.iNet 6416 dan GL.iNet AR150 was originally published by Izharul Haq at Atoz Journal on July 14, 2016.

by Izharul Haq (atoz.chevara.2013@gmail.com) at July 13, 2016 05:00 PM

July 09, 2016

hackergotchi for Debian News

Debian News

DebConf16 closes in Cape Town and DebConf17 dates announced

Today, Saturday 9 July 2016, the annual Debian Developers and Contributors Conference came to a close. With over 280 people attending from all over the world, and 113 hours of talks in 114 events, DebConf16 has been hailed as a success.

July 09, 2016 12:00 AM

July 04, 2016

hackergotchi for Izharul Haq

Izharul Haq

Hello Ionic

Ionic: Advanced HTML5 Hybrid Mobile App Framework

Contoh Aplikasi informasi mobile dengan menggunakan Ionic Framework, Foursquare API dan Google Static Maps API. kode sumber bisa dilihat di tautan ini

Hello Ionic was originally published by Izharul Haq at Atoz Journal on June 12, 2016.

by Izharul Haq (atoz.chevara.2013@gmail.com) at July 04, 2016 12:00 AM