Akhir sebuah jaman.

Semester 5 telah menjadi salah satu masa tersulit dalam perkuliahan saya. Dimulai dengan mental breakdown, lalu akhirnya bisa part-time rutin. Salah satu teman lama saya akhirnya masuk LINE TODAY, saya serah-terima jabatan manajer Web Development di HIMTI BINUS ke adik tingkat, sebelum gelisah masalah Enrichment Program saya, berurusan dengan kelompok-kelompok bermasalah dan akhirnya positif COVID-19.

Semester 5 ini juga menjadi momen di mana saya berhasil membuat beberapa mahasiswa bertobat. Ya, bertobat dari mindset bahwa “saya cuman perlu untuk mengikuti materi-materi kelas saja”, karena di dunia kerja kenyataannya tak begitu. Salah satu teman saya menceritakan pengalaman bahwa proses wawancara untuk magang (sebagai bagian dari Enrichment Program / 3+1 BINUS University) cukup menantang karena sang pewawancara menanyakan tentang keahliannya dalam Git, sesuatu yang sama sekali tidak diajarkan di dalam mata kuliah apapun di dalam program studi Teknik Informatika di BINUS.

Ironisnya, saya telah mengadvokasi mahasiswa Teknik Informatika untuk “belajar di luar kelas”, misalnya Git dan Python, bahkan sejak masa orientasi mahasiswa. Sekedar informasi, tugas-tugas part-time saya ini juga cukup campur aduk, dari bikin aplikasi Next.js ke server Python/Flask dan kini ke Dart/Flutter. Semua ini saya pelajari tanpa mengikuti materi-materi dari mata kuliah yang ada.

Dan Semester 5 juga merupakan akhir penderitaan saya dari dua “penyakit” utama yang sering ada di dalam tugas kelompok:

  1. Anggota kelompok yang tidak aktif dan malah ghosting
  2. “Saya cuman ngikutin materi dari BINUS”, karena itu saya cukup kecewa kelompok kita tidak bisa selangkah lebih depan daripada kelompok-kelompok lain.

Penderitaan saya lebih berat daripada kamu, nak.

Hari terakhir Ujian Akhir Semester, saya juga dikagetkan sama salah satu tweet menfess berikut ini:

Gue anak 21, ga nyangka ternyata kuliah itu seburuk itu untuk mental health, semester 1 kemarin gue udah dihujanin materi sama tugas yang bener2 banyak, akibatnya waktu gue untuk healing sama self reward jadi kurang banget. Yang tadinya gw masih bisa nonton netflix sama chat2an sama bestie sekarang jadi susah banget.

Gue kayaknya belum siap kuliah deh. Gue udh ngomong ke ortu kalau gue mau cuti dulu semester ini. Gw mau fokus healing selama 6 bulan ini. Tapi ortu gue malah ga setuju. Bahkan gue dibilang manja.

Gue bingung mau gimana takutnya kalau paksain ipk ku malah tambah anjlok. Gue juga susah komunikasiin ini ke ortu karena mereka ga aware soal mentalh health kayak gue. Gue mesti gmn 😭

https://twitter.com/collegemenfess/status/1492496530804121606

Saya sendiri yakin bahwa program studi atau jurusan yang dia pilih agak dipaksakan dan kurang sesuai hati. Ya, maklum, kenyataannya Teknik Informatika BINUS yang sering didamba-dambakan setiap orang Indo itulah jadi salah satu jurusan BINUS dengan banyak mahasiswa yang akhirnya merasa salah jurusan. Salah satu teman saya yang akhirnya pindah ke Ilmu Komunikasi pernah bahas masalah ini di YouTube:

Kuliah di program studi yang sesuai minat dan bakat bakal terasa jauh berbeda dengan kuliah di program studi yang dipaksakan. Buktinya, saya baru bisa mental breakdown saat Semester 5 sedangkan dia baru saat awal semester. Saya bisa bayangkan betapa stresnya kalau saya dipaksakan orang tua untuk masuk ke sarjana ekonomi, hukum, akuntansi, biologi, dan sebagainya.

Oh iya, jangan anggap bahwa kuliah itu “tempat untuk belajar” layaknya SMP atau SMA. Untuk bisa menaklukkan kuliah kamu harus belajar, belajar lebih banyak daripada yang diajarkan di kelas. Saya juga yakin kalau sender ini terlalu nyaman untuk lebih fokus pacaran daripada mengejar pendidikan formal. Ya, begitulah…

Semester 6 sampai 8 mau ngapain?

Pertama-tama, saya ingin uninstall LINE. LINE telah memberikan dampak buruk bagi jumlah unread notifications di iPhone saya:

Saya pinjam akun salah satu robot saya biat posting ini karena jumlah unread message nya cukup menarik. 1.337, alias “leet”. Saya sebenarnya juga ingin meninggalkan Discord, WhatsApp, dan Telegram, dan ingin lebih fokus untuk balas pesan via Signal, Marco Polo, dan mungkin bikin aplikasi chatting dan media sosial sendiri.

Lalu, bagi yang belum pernah paham tentang Enrichment Program di BINUS, saya bisa bilang itu sebagai salah satu cikal bakalnya program Kampus Merdeka, di mana 2 semester dipakai untuk mengambil pengalaman via magang, riset, KKN, dan sebagainya. Yang berbeda di sini adalah distribusi SKSnya. Kebetulan, saya memutuskan untuk memilih jalur riset atas berbagai pertimbangan.

Karena semester 6 dan 7 isinya Enrichment Program, dan semester 8 bakal penuh dengan skripsi, ketiga semester ini adalah momen di mana setiap mahasiswa BINUS harus bisa mandiri. Tidak ada kelas seperti biasa, tapi tetap ada tugas dari dosen pembimbing. Semester-semester inilah yang menjadi momen pembuktian, apakah yang “cuman ngikutin materi dari BINUS” akan berhasil?

Berbicara tentang skripsi, dan rencana saya untuk mengambil skripsi langsung di Semester 7, saya sudah menentukan beberapa kandidat topik yang kemungkinan besar akan dikerjakan. Sekarang, saya perlu untuk menyusun waktu dan menentukan apakah skripsi semester 7 adalah hal yang tepat atau bukan.


Akhir kata, kini saya memasuki era yang baru. Terima kasih juga kepada segenap robot saya yang sudah membantu dan memberi semangat saya untuk melewati berbagai perjuangan ini.

Sekian blog saya hari ini. Terima kasih.

COMPUTERUN 2.0 Website

ah, here we go again… upgrading a old, messy codebase made by Reinhart and friends at HIMTI since last year…

bleep! i’m pr0xy, somewhat an intern && a humble *pointer of Reinhart;

y’know what, i wanna #include an array of words from Why’s (Poignant) Guide to Ruby to motivate all of you guys[] working on COMPUTERUN 2.0 && i++, especially since this will be my last project before signing off as the Manager of the Web Development division of HIMTI BINUS University:

I’ll be straight with you. I want you to cry. To weep. To whimper sweetly. Code so beautiful that tears are shed.

Why’s (Poignant) Guide to Ruby

&& i suddenly remembered that the folks at HIMSISFO are now struggling with Java instead of C(#)! ah, that’s why many of you wear glasses and still don’t know what dangling pointers are… i see…


alright… amarga sampeyan kabeh luwih ngerti basa Java, sumangga kita System.out.println()no kabeh ArrayList<Thing> sing wis rampung ing divisi pangembangan Website website = new Website("COMPUTERUN 2.0: EXECUTE");!

what have we done?

um… what?! we’ve done so many things; in fact, it wouldn’t be “COMPUTERUN 2.0” if we didn’t actually upgrade the old junk codebase! we kickstarted our improvements to the existing COMPUTERUN 2020: INSIGHT registration system by refactoring and creating another one at https://registration.himti.or.id; then we believe in recursion && so we built a new parser which (ab)uses yaml, markdown, and laravel blade templates to quickly build static websites, and today i’m gonna…

hey Shift, is that you? i heard you wanna give some News[] related to COMPUTERUN; wanna println()?

a Shift-y intermission

Sure! And hey, you know who I am, right? I’m Shift(ine) and MY NEW METALLIC HAIR IS AWESOME!!! And oh, if you’re looking for Caps, she’s currently being worn by another blue shell to fly and help me send some emails. But she’s fine…

First, let’s talk about emails, shall we? Well, as some of you might know, I’m (currently) the master of email delivery, ’cause I am! We currently share the same address, noreply@himti.or.id, to send emails from COMPUTERUN 2.0 and some of our events at HIMTI BINUS University.

In order to prevent our emails for being flagged as spam, we’re limiting ourselves to send a maximum of 50 emails per hour. And that’s why we have to switch, check and send emails from 3 different databases! One for general (registration.himti.or.id), one for HIMTI ELECTION 2021, and of course, another one for COMPUTERUN 2.0.

But now, since we’re done with the election, we’ll be able to allocate more time on a single day to send more emails to COMPUTERUN participants, which will take effect starting today! We’re increasing the number of delivery from 4 batches a day to 6 batches a day – perfect for sending a total of 300 emails for a single damn day.

Oh, here’s me pinging Reinhart all the time when there’s a new email being sent. Remember that I’m a Service, not a daemon like pr0xy because Windows said so…

Imagine yourself being terrorized by me this way…

Next, there’s a really cool trick on our COMPUTERUN website: You can finally Ctrl+K like it’s Slack and Notion! Seriously, I don’t even know why did Reinhart implement this feature on COMPUTERUN but well, here it is.

It’s also the default menu you’ll gonna see on mobile, so yeah, hasta la vista, Bootstrap hamburger menu! Soon, we’ll rolling out new accessibility updates to make sure that this menu works for screen readers and keyboard nerds like you, pr0xy!


I can’t believe I just spent 5 minutes just to println() all of this, but if you’re a coordinator of the following official BINUS University Student Organization websites:

  • https://student-activity.binus.ac.id/basis
  • https://student-activity.binus.ac.id/binary
  • https://student-activity.binus.ac.id/himka
  • https://student-activity.binus.ac.id/himsisfo
  • https://student-activity.binus.ac.id/himti

You can now give a shoutout to COMPUTERUN 2.0 just by creating a NEWS or ARTICLE and put “COMPUTERUN 2.0” inside of the list of tags. Here’s what I mean:

So your shiny love and articles can be shown directly to those who are visiting the main COMPUTERUN website, like this!

Well, that’s all I wanna tell. So, goodbye and see you again!


yeah, thanks Shift for the amazing println and now let’s continue my discussion;

speaking ’bout bundles,

so, we’ve some quirks in our event registration system:

  1. we separated registration forms for (business-it case || web design) && workshop bundle at https://computerun.id/info/business-it-case-bundle and https://computerun.id/info/web-design-bundle; so if you would like to have that bundle discount, you’ll need to register through that special form (or contact our committees if you’re confused about that);
  2. everyone joining sprint, business-it case, && web design will be automatically added to our opening ceremony;

this means that everyone who’s signing up for the bundles won’t be automatically registered into the respective events (especially when they haven’t done the payments), so please take a while while we’ll accepting ad adding you to the respective events; just don’t forget to finish your payments and tell us if you’re done!

(ab)using yaml, markdown, && laravel blade?

our old COMPUTERUN codebase is written using php && laravel, && we’re mainly using blade to define our layouts; but thanks to our recent efforts, we’re able to build this interactive faq section:

just by spawning a few lines of yaml code:

title: "FAQ" children: - type: "faq" contents: - question: "Can I participate in SPRINT outside of Indonesia?" answer: - type: "markdown" text: "We would like to apologize that SPRINT is currently unavailable to international participants due to concerns with international shipment/delivery of our Finisher Pack." - question: "How do I get the STRAVA club link and the upload form?" answer: - type: "markdown" text: "Once your registration has been approved, please come back to this page (under the **Join Now** section) to see the STRAVA club link as well as the running record upload form." - question: "Should I pay the Shipment/Delivery Fee first or later?" answer: - type: "markdown" text: "**Yes,** please pay the delivery fee altogether with the registration fee to us." - type: "markdown" text: "If you are registering for two (2) persons, you'll need to pay the Shipment/Delivery Fee for both." - question: "I'm registering for two pax and we're living in the same place. Can I just pay the Shipment/Delivery Fee once for both of us?" answer: - type: "markdown" text: "First, please make sure that both of you agree to do so, since we will **not** be responsible for handling further deliveries once the Finisher Pack(s) have been successfully delivered to you." - type: "markdown" text: "Then, please let us know via our [LINE Official Account](http://lin.ee/57zX9DW6k) if you would like to do so, so our committees won't deny your application due to false positives for insufficient funds (i.e. you haven't paid the Delivery Fee for the other person)." - question: "Will I get refunds if I failed to reach the target?" answer: - type: "markdown" text: "**The registration fees are non-refundable and non-negotiable.** However, paid delivery fees can be refunded to you by contacting us through our [LINE Official Account](http://lin.ee/57zX9DW6k)."
Code language: YAML (yaml)

but wait! we’re not just able to make it work in the faq section, but also most of our webpages! webpages explaining all of our events are now completely coded in yaml, our (COMPUTERUN) homepage is now also written in yaml; even our online guidebooks, sponsorship proposal, && media partner proposal are entirely written in yaml!

this means that COMPUTERUN 2.0 committees wishing to update the page no longer need to understand a bunch of html; just hack that yaml && markdown source files && done! 🔥🔥🔥

the modernization of the codebase is definitely making it more flexible and quicker to set up for changes; let’s say, when one of your events require an Instagram username; before, we had to modify our registration logic && add a new form to insert your Instagram username, but today we’ll just need to add that additional field directly on our database, and our backend codebase will automatically recognize and start to validate that, too!

interested in COMPUTERUN 2.0?

if you’re interested, just head over to the official website at https://computerun.id, or follow and contact us through many ways!

COMPUTERUN 2.0 is proudly presented not just by us (the folks at https://reinhart1010.id), but also by HIMSISFO (Information Systems Student Association) and HIMTI (Computer Science Student Association), two of the largest official Student Associations in BINUS University! && true, this is our second (or first, ’cause arrays starts at 0, unless you’re R or MATLAB) installation of COMPUTERUN, && this is our first (or 0th) installation to be held internationally!

Emergency Update: I have a mental breakdown.

In the recent days I am experiencing a mental breakdown, and good thing that now I’m starting to feel better. But first thing first, I would like to apologize to many of my colleagues working on important projects such as TECHNO 2021, HIMTI KIT, COMPUTERUN 2.0 and others. And also to MAT students and lecturers for not attending the first session of “Wearable Technology” course (MOBI6057).

I have acknowledged that this has negatively impacted not just me, but others as well. Some TECHNO 2021 participants have been asking if the all-new HIMTI KIT has been available to be downloaded, and at the time of this writing I’m still not yet releasing it due to some technical difficulties. The same thing happens with COMPUTERUN 2.0 which will open their registration on this early October.

No, it’s not all your fault.

This breakdown is not just caused by working for these projects, but also by a bunch of other factors.

First, after trying to apply for the second wave, limited onsite class application to BINUS University, I’ve been deeply hurt by the rejection they gave to me.

This means that you’ll never, never be able to see me physically again after February 2020. If I’m going to campus, it will be likely me discussing privately on important things such as thesis and so on. After that it’s time to go to somewhere else, or go home.

Or, when I’m finished my Bachelor degree, it’s time to work again. And that means it would be more challenging for you to meet me again just like the days of the college.

“Too much coding,” I know right?

Looking back at my plans for mid-2021, I just realized that yes, I still haven’t stopped coding yet despite switching projects and languages, but I still need to code for other critical projects at least for the next 2 months.

Not to mention those stress gathered on reading documentations and fixing bugs, which contributes greatly into this breakdown.

I might be considering to temporarily retire from all of these coding madness which I’ve done tirelessly and endlessly since mid-2019. But again, I still need to finish out those projects and university courses which again, requires me to code.

My current progress so far…

There are times that I need to entertain myself for situations like this, like figuring out to make Zoom virtual backgrounds work the other way. Showcasing this hack into this blog and social media, at least, relieves my stress while working on resolving these issues.

Speaking of HIMTI KIT, I’ve delegated this task to other members of HIMTI BINUS University Web Development Division (Alam Sutera and Kemanggisan campus regions). It’s a good opportunity for them to learn about PHP and databases before I retire, though.

And finally, for COMPUTERUN 2.0: EXECUTE, I’m working out for a backup plan to make the website and registration mechanism at least ready to be released for the first time. After that, the site will be regularly updated to include changes and new features.

I’ve done this same trick for the last year’s COMPUTERUN 2020: INSIGHT website, though. So been there, done that 🙂

By the way, don’t forget to follow COMPUTERUN’s official social media accounts since there is a surprise for you:

COMPUTERUN 2.0 will be our first event to be held internationally. Yes, INTERNATIONALLY!

Future Plans

During the course of October 1-3 I’ll be solely focusing for HIMTI KIT and COMPUTERUN 2.0, while preparing to continue for other projects. I will still be delegating some tasks to others, so I don’t need to work for this entirety. Not to mention my other plans on contributing for Hacktoberfest 2021, but there’s still a plenty of time for that.

And sure, some of you might want to give me a hug, but currently impossible due to COVID-19 restrictions. I just want to give a teaser for you:

reinhart.exe is coming. Prepare to run and hug unto me.

It wouldn’t be scary as you might thought, but, I’ve been working as a tech enthusiast and software engineer this far, to the point that I might be busy when you asked me about things. The solution? Due to technical difficulties in creating a cyborg account, I decided converting myself into a computer software which you can run independently (self-hosted). The first release will be completely amazing, celebrating my 20th birthday, too!


That’s all for now, and I’ll need to get back to work. So, thanks for understanding!

My life as a snake. I mean, a python3 emailer robot.

Hello, World! It’s me again. Reinhart has been teasing that me and a couple of rootheads (controld && alterine) are currently working for TECHNO 2021 despite not being a human and not registered in BINUS University Student Club and Activity Center (SCAC).

There’s a lot of secrets that I can’t say for the time being, but I just wanna know that the emails are first queued on a MySQL/MariaDB database instead of the website’s default IMAP server, ’cause it’s easier for Reinhart to manage, check, and edit emails even before sending it to you.

Well, the himti.or.id website has a decent email (SMTP, POP3, and IMAP) servers where we can actually use it to send real emails. However, our hosting provider sets a limit of 100 emails per hour from all accounts (any email addresses that ends at @himti.or.id).

Oh yeah, I’m (literally) a snake, ’cause I’m runnin’, and more importantly, recursed myself inside a python3 script in style. Finally stuck in what I loved for despite not truly an infinite loop.

Why write another Python script if I can cron myself inside a PHP script?

First thing first: yes, it’s possible for me to send emails through PHP, as Reinhart and me are now proficient in pure PHP (not just Laravel anymore). But we are facing the following issues:

  • Concurrency issues. Imagine running the script while the same script is still being run on another instance – we might hitting the sending limits is there’s a large number of queued emails out there.
  • Which timezone is it? UTC or WIB/ICT?
  • We can’t check for script errors in runtime, though. Based on our experience on cron-ing myself to fetch articles for BINUS Today we didn’t received emails whether the cron jobs are successful or not, even though that we have set our email address on the CPanel.
  • We need to build this program as fast as possible. It’s urgent!
  • && to possibly prove that we can use Python not just for data science. Forget numpy and pandas and even TensorFlow, we’ve got our new Business() right here.

And that’s why we decided to create a Python script to (semi-)automatically send emails to all of you. Starting to those of you who are registered to HISHOT 2021. Then to those who were participants at HTTP 2020. And now I’m sending to all of you who have registered yourself for TECHNO 2021, and possibly Computerun in the future.

But before you ask, I only know your email address and nothing else. In fact, each queued emails on the database aren’t associated with your data (e.g. those entered in registration.himti.or.id website), which is quite intentional so we can queue emails to be sent from noreply@himti.or.id without requiring the recipients to be registered on regisration.himti.or.id or similar.

How does it work?

Well, it’s as simple as you might expect. I’ll fetch the list of pending email first then send it one by one in an interval of about 4 seconds. Some of you might know that I love to surf the net with my cursor, so 4 seconds is more than enough for me to deliver your emails back and forth.

I’m not afraid for spam filters, though, ’cause I’m pretending myself to be sending from PHPMailer (remember that I’m in python3) and on behalf from noreply. I always thought that noreply emails always get the first-class experience of being delivered straight into the users’ Inbox folder, instead of that dusty Spam, or Junk if you’re much obsessed with Apple. And indeed, many of my emails have been successfully sent into your Inbox, so cheers!

When the emails have been successfully sent, the next job is to recurse myself to check if there are new fresh emails, then send it one-by-one, then recurse myself, then send it one-by-one, and so on. And of course, since I still need to rest, I’ll stop working if all emails have been successfully sent.


Well, that’s for now. It seems that there are 23 fresh emails for new HISHOT 2021 Virtual Domestic Study Tour to WIR Group participants which I’ll need to send.

By the way, I’m excited if you wanna chat with me. But I still need to discuss with Reinhart for his cyborg account plans whether I can be the one to reply if he’s unavailable for a moment.