Posted in Programming

NSIS (Nullsoft Scriptable Install System): Add Second License and Installation Page

Jadi, ceritanya sekitar 2 minggu yang lalu saya mendapatkan tugas baru lagi yang masih berkaitan dengan NSIS. Tulisan sebelumnya mengenai NSIS dapat dilihat di sini. Tugas kali ini ialah mengikutsertakan aplikasi NTP Server and Time Monitor  (selanjutnya saya sebut sebagai NTPS saja) ke dalam installer yang telah ada sebelumnya. Menambahkan 3rd-party apps sebenarnya merupakan hal yang mudah (cukup bertanya ke paman Google). Masalahnya ada di spesifikasi sang manajer: sebelum proses instalasi dimulai, user harus melihat license page baru terkait NTPS dan apabila user setuju, NTPS akan di-install sedangkan bila user tidak setuju, halaman instalasi akan langsung berpindah ke finish page.

Perlu diketahui, tipe instalasi ada dua macam, Silent Install dan Non-Silent Install. Untuk kasus ini, instalasi NTPS harus silent install dan license page yang ditampilkan bukanlah license page langsung dari NTPS, melainkan sebuah page baru yang akan menampilkan GNU General Public License (GNU GPL). Sewaktu saya diberi tugas pertama, semua contoh yang saya lihat hanya menggunakan satu license page dan satu install page. Saya pun bertanya-tanya apakah mungkin menggunakan lebih dari satu license dan install page. Jika tidak bisa, maka satu-satunya jalan adalah membuat custom page (caranya hampir serupa dengan membuat custom page untuk mengecek spesifikasi hardware).

Karena tidak menemukan apa yang saya cari di Google, saya pun melontarkan pertanyaan di sini. Ada satu jawaban yang mengatakan bahwa di dalam sebuah installer hanya dapat menggunakan satu page untuk setiap jenis page yang ada di NSIS MUI (Modern User Interface). Saat membaca komentar tersebut, saya pun akhirnya pasrah dan mulai membuat page custom. Tapi, tak lama kemudian, ada jawaban lain yang mengatakan boleh menggunakan multiple page dan itu pun disertai dengan contoh 😀

Continue reading “NSIS (Nullsoft Scriptable Install System): Add Second License and Installation Page”

Posted in Programming

NSIS (Nullsoft Scriptable Install System): Add a Function to Check Hardware Specification

Saya baru mulai berkenalan dengan NSIS di bulan Agustus. Di suatu hari yang cerah *literally cerah karena masih summer dan sedang panas-panasnya*, manajer datang dan berkata, “From now on, these installation scripts are yours. Please maintain it. It should be easy because it’s quite similar with Java.”

Saya, yang belum melihat bentuk kodenya seperti apa, cuma mengangguk saja. Kemudian mulailah saya melihat-lihat seperti apakah NSIS itu. Kesan pertama saya adalah “eh, kok seperti tugas orkom dulu ya? Dimana miripnya sama Java?”. Saya kembali berpikir jangan-jangan si manajer ini mengatakan NSIS mirip Java karena dibuka di Eclipse. Manajer pun datang lagi dan memberikan tugas pertama terkait NSIS, “Please add a function to check hardware specification before start installing this program.”

Karena sudah diberi tugas, saya pun mulai menggunakan kekuatan Google untuk memahami NSIS. Setelah menghabiskan beberapa saat dengan paman Google, saya pun membuat kesimpulan mengenai hal-hal yang harus saya lakukan untuk membuat fungsi ini:

  1. Instalasi plugin NSIS yang dibutuhkan
  2. Membuat custom page untuk menampilkan hardware specification
  3. Membuat fungsi untuk menonaktifkan tombol Next jika spesifikasi tidak memenuhi batas minimal

Saya pun mencari cara bagaimana membuat custom page dan menemukan NSIS Dialog Designer. Software tersebut sangat membantu dalam pembuatan custom page. Langsung saja beranjak ke bagian kode:

Continue reading “NSIS (Nullsoft Scriptable Install System): Add a Function to Check Hardware Specification”

Posted in Happy Writing, Spill Out

I Miss Programming

Yap, sesuai dengan judul cerita kali ini, saya merindukan kegiatan programming alias ngoding. Sungguh sindrom yang aneh. Sejujurnya kemampuan ngoding yang saya miliki biasa-biasa saja. Dulu sewaktu S1 jauh lebih banyak yang lebih “dewa” dari saya dalam hal ngoding. Ada yang super cepat mengerti konsepnya sementara saya membutuhkan waktu lebih lama – mungkin beberapa jam baru mengerti, ada pula yang tiba-tiba kodingannya uda jadi dan jauh lebih efisien dari kodingan yang saya buat, dan berbagai “kedewaan” lainnya. Tapi terlepas dari itu, saya tidak membenci kegiatan ngoding. Saya tidak bisa bilang kalau saya tidak suka dengan ngoding. Menurut saya, ngoding itu selalu memberikan pengalaman baru untuk saya. Selalu memberi sensasi baru.

Teman-teman yang sudah terbiasa ngoding dan stuck selama berjam-jam hingga berhari-hari pasti tau bagaimana rasanya ketika kita berhasil menyelesaikan permasalahan itu. Berbagai hal menarik bisa terjadi di proses ngoding dan debug. Contohnya:

  • Debug berjam-jam dan ternyata hanya kelupaan “titik koma” atau “kurung” rasanya ingin berteriak memarahi diri sendiri karena lupa dengan hal kecil 😛
  • Debug berjam-jam -> tidak menemukan hasilnya -> ketika tidur malah kebawa mimpi dan justru di mimpi itu kita menemukan solusinya. Saya sering mengalami hal yang satu ini. Salah satu contohnya sewaktu mengerjakan Tugas Besar 1 OOP. Ketika deadline menghadang, saya hanya tidur 2-3 jam. Sebelum tidur, saya menghabiskan waktu berjam-jam untuk debug bagian tertentu dan masih tidak menemukan bug-nya padahal teman sekelompok mengatakan algoritma itu sudah benar. Karena sudah suntuk dan sepertinya otak sudah tidak bisa dipakai berpikir, saya pun memutuskan tidur. Anehnya lagi, saya mimpi mengenai algoritma itu dan akhirnya malah mendapatkan solusinya di dalam mimpi. Ketika terbangun, saya langsung memberitahu teman kelompok saya (yang kebetulan menginap di tempat saya karena deadline itu). Teman kelompok saya yang masih baru bangun dan sepertinya nyawanya belum terkumpul tidak mengerti apa yang saya bicarakan. Akhirnya saya menuju desktop dan segera menuliskan apa yang ada di kepala saya sebelum saya lupa dan voila! ketika dicoba ternyata benar-benar berhasil 😀 😀 😀 Rasanya super senang 😀 Saya yakin teman-teman yang pernah mengalami hal seperti ini tau betapa bahagianya saya.

Continue reading “I Miss Programming”