Server rumah dengan IP publik

Sebagian orang ingin menghosting sendiri berbagai hal di rumah (atau kantor kecil), baik itu web, email, maupun layanan lain. Biasanya koneksi ISP tidak akan memberikan IP publik yang statik tanpa membayar ekstra (biasanya mahal), jadi biasanya banyak trik digunakan supaya server rumah bisa diakses dari luar.

Sebagai catatan sebelum menggunakan trik yang ada di sini: pertimbangkan memakai VPS atau dedicated server. Membuat server di rumah punya banyak kelemahan jika ANda tidak mengerti apa yang Anda lakukan:

  • Koneksi internet dan pasokan listirk di rumah biasanya kurang reliable dibanding data center
  • Jika salah konfigurasi, hacker bisa lebih mudah masuk ke jaringan rumah
  • Mengkonfigurasi semuanya sendiri cukup melelahkan/membuang banyak waktu

Dynamic DNS

Beberapa layanan tertentu seperti web cukup memakai dynamic DNS dan tidak perlu server eksternal tambahan. Artinya sebuah nama domain selalu diupdate IP-nya dengan IP terbaru saat ini. Untuk mengupdate ini bisa digunakan berbagai layanan Dynamic DNS dan server di rumah perlu diinstall software untuk mengupdate pemetaan nama ke IP.

Gambarannya kira-kira seperti ini:

Masalah dengan pendekatan ini adalah: akan ada jeda ketika ada update nama ke IP. Jeda ini karena DNS server akan mengcache informasi IP. TTL terkecil yang bisa diset biasanya 30 detik dan berbagai layanan DNS biasanya mengeset waktu minimumnya 1 menit. Jadi ketika ada pergantian IP, sekitar 1 menit kemudian kita baru bisa mengakses nama tersebut dengan IP baru.

Continue reading “Server rumah dengan IP publik”

VPN dengan Tinc

Saat ini ada banyak sekali solusi VPN yang tersedia dengan segala kelebihan dan keterbatasannya. Beberapa contoh solusi yang populer dan gratis adalah OpenVPN, strongSwan, WireGuard, berbagai implementasi PPTP, tinc, dan VPN via SSH. Posting ini akan membahas mengenai tinc yang memiliki fitur mesh networking.

Beberapa perbedaan dari berbagai solusi VPN ini adalah:

  • Support platformnya. Contoh: saat ini wireguard tidak memiliki client di Windows, jadi kalau Anda memakai Windows, ini jelas tidak akan dipertimbangkan.
  • Kemudahan instalasinya (contoh: VPN melalui SSH cukup rumit setupnya, terutama di Windows)
  • Kecepatannya (ini biasanya hanya jika Anda memakai link dengan kecepatan tinggi) dan CPU usagenya (jika memiliki komputer dengan spesifikasi rendah)
  • Keamanannya, walau secara praktis serangan terhadap berbagai protokol VPN ini jarang/sulit dilakukan kecuali pada protokol kuno seperti PPTP.

Selain berbagai perbedaan teknis, pertimbangan lain memilih VPN adalah: apakah protokol VPN tertentu atau port tertentu diblok oleh ISP. Contohnya di ISP saya saat ini VPN dengan PPTP diblok, jadi harus menggunakan yang lain.

Continue reading “VPN dengan Tinc”

SSD 1 TB

Ini sekedar catatan kapan saya mulai memakai SSD 1 TB dan bagaimana prosesnya memindahkan Windows ke SSD baru. Bulan April 2017 saya membeli SSD 480 GB merk Sandisk untuk desktop utama saya dengan harga 5390 baht dari JIB, dan kemarin saya mengganti SSD ini dengan yang kapasitasnya 1 TB merk Crucial dengan harga 4690 baht (plus 42 baht ongkos kirim) dari invadeIT.

SSD 480 GB-nya masih akan saya pakai di komputer lain karena sebenarnya masih bagus, hanya saja kapasitasnya sudah kurang untuk berbagai pekerjaan yang perlu saya lakukan. Setiap kali SSD mendekati penuh, saya jadi “sibuk” yang tidak berguna. Setiap beberapa minggu saya perlu memindahkan data ke yang sudah jarang dipakai harddisk dan memindahkan data yang saat ini sedang dipakai ke SSD .

Continue reading “SSD 1 TB”

Download video Youtube

Dulu waktu kami sampai di Chiang Mai, kecepatan internet kami hanya 1 MBPs dan waktu itu kebetulan karena faktor tertentu Youtube sedang diblokir di Thailand. Setelah ada Youtube kami bisa streaming dengan lancar dan waktu itu belum pernah butuh download video dari Youtube.

Tapi kemudian ternyata ada banyak alasan kenapa kami jadi butuh download video Youtube. Di jaman kami memakai tablet Blackberry Playbook, Youtube hanya bisa dimainkan jika terhubung ke Internet via WIFI jadi mau tidak mau harus mendownload video agar bisa dibuka offline ketika sedang jalan di luar.

Dulu ada beberapa video yang disukai Jonathan dan videonya tiba-tiba diremove dari Youtube. Pelajaran berikutnya: jika memang ada video yang dirasa “penting”, maka sebaiknya perlu didownload. Ini juga berguna jika internet mati sementara (walau cukup jarang).

Sekarang Youtube mobile sudah memiliki fitur untuk mendownload video tertentu (tidak semua video bisa didownload). Fitur ini cukup berguna, terutama jika ingin bepergian tanpa akses Internet sementara (misalnya dalam penerbangan), tapi secara umum kurang berguna untuk sehari-hari.

Mendownload video dari Youtube juga berguna karena video bisa dimainkan bebas iklan setelah download. Di browser jika kita memakai uBlock Origin kita bisa memblok iklan dari Youtube, tapi di Android/iOS kita tidak bisa memakai ini. Sebenarnya ada berbagai cara untuk melihat video youtube tanpa iklan, tapi ini main kucing-kucingan dengan Google dan sekarang lebih sering gagal. Jadi download video adalah cara paling efektif menonton bebas iklan untuk video panjang.

Dulu saya sempat memakai berbagai website dan extension untuk membantu mendownload video youtube, tapi semuanya tidak tahan lama. Video downloader yang saya pakai selama beberapa tahun terakhir ini adalah: youtube-dl. Ini berbasis command line, walau ada juga yang membuatkan interfacenya. Selain bisa dipkai mendownload video Youtube, youtube-dl juga bisa digunakan mendownload video dari berbagai situs video lainnya.

Perlu diperhatikan bahwa mendownload video ini tidak sepenuhnya legal, jadi sebaiknya jangan diupload lagi ke situs lain. Hasil download video tidak saya bagikan ke orang lain dan hanya untuk keperluan sendiri.

Bisa bahasa pemrograman apa?

Sering ada yang bertanya ke saya: pak, bisa bahasa pemrograman apa aja sih? Biasanya hanya saya jawab: banyak (karena memang banyak). Tapi di posting ini saya ingin cerita lebih lengkap tentang bahasa-bahasa yang pernah saya pakai. Karena sudah lebih dari 25 tahun sejak saya belajar bahasa pemrograman pertama sudah banyak yang saya coba.

Sumber: TIOBE Index

Saya pertama kali belajar sendiri bahasa BASIC di IBM PC dan juga di Apple II/e ketika masih SMP. Karena belajar sendiri jadinya kurang terstruktur, tapi BASIC sangat berkesan buat saya. Saya sekarang tetap ingat bagaimana memprogram dalam BASIC (dan sempat mengajari juga dasar-dasarnya ke Jonathan). Beberapa tahun lalu saya pernah iseng membuat interpreter BASIC dalam JavaScript, dan sampai saat ini masih berfungsi. Saya bahkan sempat membeli AppGameKit, sebuah tool untuk membuat game dengan bahasa BASIC modern

Continue reading “Bisa bahasa pemrograman apa?”

Membaca Buku Digital

Posting ini sekedar mengupdate bagaimana sekarang saya membaca buku elektronik. Tahun 2012 saya sudah mulai memakai Kindle dengan eink, dan mulai membeli konten dari Amazon. Sekarang sudah 7 tahun sejak Kindle pertama yang saya beli.

Kindle pertama sudah rusak (terinjak waktu menggendong Jonathan), lalu sudah beli lagi Kindle keyboard 3G dan Kindle paperwhite. Sekarang keduanya masih ada dan kadang masih dipakai untuk membaca jika ada cerita fiksi yang sedang saya sukai.

Continue reading “Membaca Buku Digital”

Tools untuk persoalan matematika

Sebenarnya tidak terlalu banyak persoalan matematika yang saya hadapi tiap hari, tapi jika ketemu biasanya saya akan menggunakan berbagai tool yang saya tahu. Untuk penjumlahan, perkalian biasa saya biasanya memakai Python karena sudah bisa langsung menangani big number.

Untuk persoalan tertentu, Wolfram Alpha di Raspberry Pi (versi gratis) atau Mathematica (desktop, saya tidak punya ini) bisa sangat membantu. Contohnya ketika ada yang mengirimkan teka-teki ini, saya memakai wolfram.

Terjemahan soalnya ke Wolfram sangat langsung

Beberapa kali saya juga menyelesaikan soal CTF dengan Wolfram, misalnya ini (persamaan linear), ini (persamaan modular) dan ini (visualisasi point 3d).

Continue reading “Tools untuk persoalan matematika”