Reinhart Previano K.

Do you love to Ctrl-K, Ctrl-/, or / ? Now you can do three of them (>_ )!

No results so far...

Blog posts from BINUS University (#binus-university)

2024-07-07 01:26:26

[EMERGENCY]: Stopping our Site Status website and BINUSMAYA Down services.

Our official Site Status website, where you can monitor for down services, is ironically down. And same with BINUSMAYA Down, used to monitor for BINUS University's downtime, but we have to temporarily shut it down. These products are powered by Upptime and GitHub Actions, but since Upptime used an aging Node.js version that's no longer supported by GitHub Actions, we received over 500 emails from GitHub that those automated services are down. That said, the original Upptime team is currently working to fix it, which should be automatically applied as an update to our services. For more information, visit

2023-02-09 14:42:21

Pernyataan resmi tentang kelanjutan Skripsi saya.

Sesuai dengan tema tahunan saya untuk 2023 (yaitu, "menjadi pribadi yang apa adanya"), saya percaya keterbukaan informasi adalah salah satu faktor penting agar saya dapat berhasil di dalam kelulusan ini. Dan setelah melihat dan mempelajari situasi pada beberapa minggu terakhir, saya harus terbuka untuk menyatakan bahwa saya tidak bisa menyelesaikan penyusunan Skripsi saya pada Semester ini, yang kebetulan deadline-nya hari ini. Di satu sisi, hal ini mengecewakan bagi saya dan orang tua saya. Selain akhirnya kami tetap wajib untuk membayar biaya BP3, saya akan dianggap gagal secara sistem/prosedur untuk menyelesaikan semua ini dalam 3,5 tahun. Namun, ada beberapa alasan penting yang perlu untuk saya bahas di sini. Pertama-tama, memang proses penulisan Skripsinya belum selesai. Dan karena banyak orang masih bertanya-tanya "kapan Skripsinya selesai" ke saya, saya memutuskan untuk mendokumentasikan progress tersebut ke dalam situs Mulai hari ini, saya memutuskan untuk memasukkan progress penyusunan Skripsi hingga level subsubsubsubbab, meskipun saya tidak menjabarkan semuanya untuk kepentingan pencegahan plagiarisme. Anda juga dapat melihat keseluruhan progress pengembangan dan pengumpulan aplikasi di bagian bawah website tersebut. Kedua, saya juga sempat mengalami berbagai kesalahan dalam segi planning dan komunikasi. Waktu itu saya tertarik untuk memilih Skripsi jalur publikasi artikel ilmiah, namun salah mendaftar ke Skripsi jalur umum (yang ada sidangnya) karena miskomunikasi dengan beberapa orang di dalam fakultas School of Computer Science. Saya akhirnya memaklumi semua kesalahan miskomunikasi tersebut, dan tidak menjadikannya alasan untuk mengeluh atau bermalas-malasan dalam menjalani jalur ini. Kemudian, saya juga perlu membahas soal target IPK final yang sedang saya kejar. Selama ini saya berhasil meraih IPK sebesar 3.90, yang meski kelihatannya sudah sangat tinggi, namun masih tergolong sebagai Magna Cum Laude karena Summa Cum Laude di BINUS hanya dihargai bagi mereka yang memiliki IPK 3.91 ke atas. Tipis sekali kan? Jika saya berhasil menyelesaikan Enrichment Program ini dengan nilai A, namun untuk Skripsinya A- (dengan bobot 3.67 bukan 4.00), saya masih tidak bisa untuk mengejar 3.91. Di sini, saya harus mengejar nilai A pada kedua tugas tersebut untuk dapat meraih 3.91. (Skripsi: MOBI6024, Enrichment Program Semester 2: RSCH6107, RSCH6260, RSCH6268) Dan terakhir, setelah melihat dan membantu teman-teman saya yang sama-sama menyusun Skripsi tentang pengembangan aplikasi mobile, saya menyadari bahwa kualitas aplikasi yang sedang saya buat itu jauh lebih tinggi daripada kebanyakan dari mereka. Mungkin bisa sampai tiga kali lipatnya dalam segi UI/UX, fungsionalitasnya (validasi form dll.), dan dokumentasinya. Akhir kata, saya bisa lega karena saya bisa meluangkan waktu yang lebih banyak untuk menyelesaikan Skripsi ini. Jika memungkinkan, saya juga akan memperkuat bagian pengujian dan evaluasi aplikasinya. Semua ini saya lakukan agar saya bisa lulus secara excellent, tidak hanya secara cepat.

2023-01-31 12:31:05

15,000 emails. 8 months. All delivered to you from the only one roothouse.

It was June 2021 and we were trying to send emails for those joining HISHOT 2021, an online community seminar held by the Computer Science Studient Association of BINUS University (HINTI BINUS). If we decide to use Gmail, well, one day Google could ban us if we send more and more automated emails in the long-term. Good thing that the web hosting service behind also offers a SMTP email service, which we can use instead to send to them on behalf of The web hosting provider rate-limits the inbuilt SMTP service to the maximum of 200 emails per hour. But just to be safe, we're just going to use a half of them. That means we have to schedule the emails to be sent at a constant rate. Sure, we can use a MySQL database to store the pending emails, but Reinhart doesn't want to run and cron PHP scripts inside the remote server. At the end of the day, he decided to write a Python script and run them on his own PC. But one question remains. Is there a better way than just letting that big laptop to run scripts 24/7? Do we have a more energy-efficient way to do this? Apparently before Reinhart got his first Raspberry Pi 3 as a birthday gift and later bought an Orange Pi Zero, and they're both unused. So we decided to try the smaller house, and oh boy, we made it root. Hey, you may already read about Shift's log about sending emails before. But sure, everyone's working to get the job done. Here we fetch all draft messages to the roothouse befor asking her to deliver one-by-one. And spoiler alert, the roothouse is getting bigger! Version 0: A greedy Python script. We first iterated on creating a simple Python script which does these things: Get a list of draft emails, straight from a remote MySQL database For each emails, send them via SMTP Simple, right? The original script really worked well. However, another problem came when the script needs to fetch all of the pending emails. Or in other words, if there are 1,000 email messages waiting to be sent, the script horribly fetches ALL of them before being able to be sent. Well, that's too much and we should fetch them little by little. Not to mention there could be some messages which we need to prioritize for and to let Shift recover again when the script crashes. Version 1: A slightly efficient script. Then we decided to send emails by priority levels by upgrading the database and our SQL query. And as expected, this version worked even better especially when queuing low-priority emails (e.g. attendance receipts and e-certificates). We also tried to fetch at most 50 pending emails per batch, before sending and re-checking them, so the overall delivery time can be significantly improved. Additionally, we started to accept and parse email messages written in Markdown so yeah, we can finally make your next emails from HIMTI less boring. HIMTI's Unified Registration system also used Markdown for creating event announcements, and we're very happy to integrate that into our emails. This version worked well until we had to think about delivering e-certificates for HISHOT 2021. No, not by sending a OneDrive or Google Drive link to the list of e-certificates, but attaching them directly into the message. So here comes Version 2. Version 2: Because e-certificates broke our script. Sending e-certificates are much slower than regular, plaintext/HTML/Markdown emails for one reason: they're huge. There are two main strategies for this, whether the script is instructed to fetch the file locally and add them to the email list, or by including the entire attached message into the database. We ended up choosing the latter one because that means we can also send anything beyond images and e-certificates. So as usual, we upgraded the database and script, but then the hosting provider blocked our websites for storing too much data inside the database. That's quite a bummer, though, that we have to regularly clear sent emails from the database to be able to schedule new emails for more people. Version 3: Concurrency. As this great email delivery solution for HISHOT was adopted to more HIMTI events, including TECHNO 2021, COMPUTERUN 2.0, and HIMTI ELECTION 2021, we realized that we have to upgrade our infrastructure to be able to send more emails, for more events and people! We also realized that not every message have to be sent over the SMTP server. For example, internal message for event committees when a new participant have registered and paid for the event. That's why we decided to use Shiftine's private email address to send these committee messages. And more than that, we start to use GitHub Actions to help us check emails more regularly, being able to sleep() when there are no more emails to send. We can also prioritize and strategize the delivery of different emails from separate events, like sending HIMTI ELECTION receipts during the day and COMPUTERUN 2.0 reminders during the night. Some personal reflections. Yeah, that was great! I was able to share my "can't hibernate, i'm overpowered" spirit to help people in the real world. And as I now help to maintain BINUS Today's list of articles as part of my chore, seeing those sent emails feels like a nostalgia for me. Oh, right, you can check out our final code at

2022-11-29 17:14:06

BINUS FESTIVAL Semester Ganjil 2022-2023
Cover image for BINUS FESTIVAL Semester Ganjil 2022-2023

2022-10-04 01:05:55

BINUS Today and the case of online gambling ads.
Cover image for BINUS Today and the case of online gambling ads.

2022-02-17 12:13:49

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: Anggota kelompok yang tidak aktif dan malah ghosting"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 😭 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.

2021-10-27 17:39:52

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; 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,, 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 (, 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: 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: we separated registration forms for (business-it case || web design) && workshop bundle at and; 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);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]( 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](" 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, or follow and contact us through many ways! COMPUTERUN 2.0 is proudly presented not just by us (the folks at, 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!

2021-10-27 15:26:42

BINUS English Club (BNEC) sends marketing information without my permission.
Cover image for BINUS English Club (BNEC) sends marketing information without my permission.

2021-10-27 12:54:00

✨ challenge seskam cavis the explorer 2021 ✨

Hey, I'm Shiftine and nice to meet you all. And yes, I'm also on Reinhart's golden coin that you've always wanted on SESKAM CAVIS THE EXPLORER, right? It's almost (or already) Halloween and for this year I'm dressing as the "hero" representing one of the programs preinstalled in Microsoft Windows since the age of 7. And who knows, she made the debut as a sticker and comic book distributed to those who attend Microsoft Ignite in 2017! Oh, now the program is now also available for macOS and Linux users, too! Come on, great programmers always search things on Google (or Microsoft Bing if you would), right? So can you guess which program I now represent? (Just look for the large image on the left or above for reference) Oh yeah, don't forget to printf() the answer to Reinhart's Discord (reinhart1010#3583) or LINE (reinhart1010) account. And make sure that you're answering the right question/challenge given by him - 'cause we're against cheating among groups!

Reinhart Previano Koentjoro
Reinhart Previano Koentjoro
Citra Manggala Dirgantara
Citra Manggala Dirgantara

A Reinhart company