Selasa, 05 Agustus 2014

Script Ruby Untuk Download Form C1 KPU Pilpres 2014

Script ini digunakan untuk download form C1 Pemilu Presiden 2014 versi komplit dengan format zip. Untuk beberapa hasilnya dapat dilihat di Google Drive.

Script versi Gist: https://gist.github.com/kuntoaji/c2886b227f6cdf888cea
#!/usr/bin/env ruby
require 'open-uri'

user_agent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36"
saved_url_list = "saved_list.txt"
accessed_urls = []

accessed_urls = File.readlines(saved_url_list) if File.exists?(saved_url_list)

# tps terbanyak 149
# source: http://kpukotacimahi.com/joomla-overview/40-berita-depan/135-kelurahan-melong-memiliki-tps-terbanyak-dikota-cimahi
# jumlah tps, bisa dimodifikasi
(1..149).each do |tps|

  # id kelurahan, bisa dimodifikasi
  (1..100_000).each do |kel_id|
    url = "http://pilpres2014.kpu.go.id/c1.php?cmd=download&tps=#{tps}&kel_id=#{kel_id}"

    # saved_url_list.txt add \n as new line
    unless accessed_urls.include?("#{url}\n")
      begin
        puts "Accessing #{url}"
        content = open(url, "User-Agent" => user_agent).read
      rescue
        puts "Retrying..."
        retry
      end

      file_name = "#{kel_id}_#{tps}.zip"
      unless File.exists?(file_name)
        if content.size > 7000
          File.open(file_name, 'w') {|f| f.write(content) }
          saved_file = File.open(saved_url_list, "a")
          saved_file.puts url
          saved_file.close
          puts "#{file_name} is successfully saved"

          sleep_in_seconds = Random.rand(10..15)
          puts "sleeping for #{sleep_in_seconds} seconds.."
          sleep sleep_in_seconds
        else
          puts "Empty"
        end
      else
        puts "#{file_name} is exist"
      end
    end
  end
end

puts "done"

Minggu, 02 Februari 2014

Konfigurasi Nginx Untuk Optimasi Static Assets Files

Selain sebagai load balancer, Nginx juga memiliki performansi yang sangat baik response time atau request per second saat melayani request assets files seperti css, javascript, html, pdf, image atau static files lain.

Sabtu, 01 Februari 2014

CSS Modal Overlay

Salah satu contoh CSS Modal Overlay ditambah dengan jQuery untuk menghitung posisi center secara dinamis saat on load. Untuk hasilnya dapat dilihat melalui http://jsfiddle.net/kuntoaji/y8UQw/

Gist: https://gist.github.com/kuntoaji/8763949

Jumat, 31 Januari 2014

Cara Konfigurasi Nginx Sebagai Load Balancer

                            +--------------------+
                            | Nginx Load Balancer|
                            +----------+---------+
                                       |
                                       |
                +----------------------+---------------------+
                |                      |                     |
                |                      |                     |
                v                      v                     v
         +---------------+     +---------------+     +---------------+
         | Backend App 1 |     | Backend App 2 |     | Backend App 3 |
         +------+--------+     +-------+-------+     +-------+-------+
                |                      |                     |
                |                      |                     |
                |                      |                     |
                |                      v                     |
                |              +---------------+             |
                +------------> |Database Server|<------------+
                               +---------------+
Nginx selain sudah terkenal sebagai web server, saat ini juga terkenal sebagai load balancer dengan performance yang sangat baik. Berikut ini adalah cara konfigurasi Nginx versi 1.4.4 pada Linux Debian 6 dengan asumsi Nginx telah terinstall pada direktori standar Linux Debian.

Minggu, 12 Januari 2014

Tip Cara Mengubah Default Normal Shell Menjadi Login Shell pada Linux Slackware

Berdasarkan pengalaman pribadi setelah melakukan upgrade Linux Slackware khususnya KDE, konsole atau terminal yang dibuka dimana biasanya menampilkan username@hostname akan menjadi normal shell seperti dibawah ini.
bash-4.2$
Karakter "$" diatas menunjukkan user selain root, apabila root maka tanda "$" akan menjadi "#". Berikut adalah tips untuk mengubah normal shell diatas menjadi login shell dimana menampilkan username@hostname pada Linux Slackware 14.

1. Buka console / terminal.
2. lalu buka Settings > Manage Profiles > Edit Profile > General.
3. Kemudian dibagian Command, ubah bash menjadi bash -l

Selesai. :)