Decidedly mundane…


Picture by DashBurst by Lauren Mobertz

So, I deemed it was time to move on from OS X Lion to Mavericks. From a previous inquiry, I found out that my version 7 of Parallels Desktop wouldn’t run on Maverick. After waiting for quite a while, last Christmas netted me a deep discount for its iteration number 8. I nailed a full version of Parallels Desktop 8 —which will enable me to run my existing VM on Mavericks— for just a buck after mail-in rebate. Woohoo! I know it’s not the latest version, but I really think that the price at that level is very reasonable. When your OS is free, is it really worth for you to get Parallels Desktop for at least 59 bucks? Nu’uh. Not in my dictionary.

Yesterday, with both Mavericks and Parallels Desktop 8 in hand, I decided to make the plunge. The transition to Mavericks was seamless and a breeze. Unfortunately, this wasn’t the case with Parallels’ upgrade. To be exact, the upgrade itself was fine. However, after I ran my VM, it detected that my Parallels Tools was out of date, tried to install it and ultimately failed with the error “There was a problem updating Parallels Tools” shown on a red “Parallels Tools Installation Agent” window after showing progress of 15% and sometimes 24%.

I tried everything I could. I followed the instruction on said window to reboot. I rebooted like a gazillion times to no avail. I turned off Windows Security Essential based on a Parallels KB that said antivirus software might halt installation. I turned off Windows system restore on all my disk. I uninstalled Parallels Desktop completely and reinstalled it. Nothing yielded any result.

So, here are the list of actions I’ve taken that allowed me to install Parallel Tools on my VM.

  1. I found out that Parallel Tools .iso and related files aren’t where they’re supposed to be. So, several links pointed out that the files “prl-tools-win.iso” and “prl-tools-win.tar.gz “should both be inside the path “/Library/Parallels/Tools”. Problem is, I didn’t even see the name of the folder. All I saw in the Parallels folder were “Downloads”, “Receipts”, and “Uninstaller” folders.
  2. Do a “Show Package Contents” on the app

    I copied those two files from Parallels Desktop application file with Finder. I opened Applications folder, right-click on Parallels Desktop.app and clicked on Show Package Contents menu item. Then I copied the two files from the application’s

    2014-02-09 05.17.37 pm

    Copy the two files to where they’re supposed to be

    “Content/Resources/Tools” folder to “/Library/Parallels/Tools” folder after, I created the “Tools” folder. This way, all the required files are where they supposed to be when I mount the images in my VM.

  3. I killed the unresponsive “Parallels Tools Installation Agent” window with Task Manager. At this point, that darned window wouldn’t close and won’t minimize. It just stared blankly, giving the only option of rebooting the VM. It took me two attempts with Task Manager to kill it.
  4. I uninstalled “Parallel Tools” from Control Panel’s Add/Remove Programs dialog. If the darn thing’s giving you trouble by throwing error message “Error 2738, Could not access VBScript run time for custom action”, follow the instructions here. For me, the command on the bottom worked (I had a 64-bit system), but I had to type it precisely since I don’t have clipboard sharing enabled —thanks to missing Parallel Tools.
  5. I rebooted my VM. Just to make sure.
  6. Screen Shot 2014-02-09 at 5.28.47 PM

    Run it as administrator, otherwise it won’t work

    I mounted the Parallels Tools .iso onto the VM. Instead of running the autorun script, I browsed the virtual CD. And from then, I ran the “PTAgent.exe” file as Administrator by right-clicking on it and selecting “Run as administrator” from the menu. Finally, the installation agent ran smoothly this time.

There you go. I got my Parallels Desktop 8 working on OS X Mavericks. Hopefuly you’ll get yours working too.


Returning from overseas, I couldn’t help falling into the trap of comparing traits between Indonesians and the westerners. From my casual observation both before and after I went there, these are the virtues that are lost on Indonesians (yours truly included, oftentimes).

  1. Photo by The Random Acts of Kindness Foundation

    Holding doors for the person behind us. I encountered this gesture of goodwill all the time while I was in the U.S. The person in front holds the door for the person behind him/her. Not willing to be left out, the person behind then reciprocates by saying thank you. How simple and elegant is that?

  2. Queuing. Need I say more on this? If you still need an example, head to your closest wedding reception event and witness for yourself how this virtue has long left us as a nation. Strangely, its prevalence is inversely related with the offending party’s collective intelligence level.
  3. Giving priority to people getting out of an elevator/bus. I know that you’re always in a hurry, but everyone’s day will roll along faster if you actually allow us who are inside to get out first. After all, the elevator/bus is a confined space, you know.
  4. Photo by Wishful Thinking

    Cleaning after ourselves after using public restrooms. Am I the only one around here that makes sure that I leave restroom stalls in a dry, wiped, and flushed state? It’s a public facility, guys. A little courtesy is civil.

  5. Common sense. This is as much as a virtue as the previous ones, but I think this is lost on many Indonesians too. How many people cross the street when the traffic light is showing green for the vehicles? How many park their cars right in front of somebody else”s driveway?

There you have it, five small things that everyone should know and do to make lives better for everyone as a whole.


There are some things in this world that makes me wonder how would a non-IT person deal with those things. One of those things is cryptic error messages from our gadgets, devices, appliances, and whatnots. Today, I encountered one of those messages from my spouse’s BlackBerry Curve 9830. Why she still has one of those cursed devices deserves a new blog post altogether, but that’s not what this one about.

Picture by wisefaq.com

So, yesterday the device started showing this error “JVM Error 517” plastered on a white background. Underneath the error, a link with the word “reset” that just does that when pressed. Every attempt to reset the device —power button, the “reset” link, taking its battery off and on— were met with the same dreaded screen.

Time for the IT-literate, helpful hubby to the rescue. It was just me and trusty Google. With the help of several helpful guides, I mixed and matched some of the guides to success. Basically, here’s what I did to salvage the device.

  1. I downloaded and installed BlackBerry Desktop Software for PC (BlackBerry Desktop Manager).
  2. I downloaded and installed latest OS image for my wife’s cellular provider/telco —Indosat— here.
  3. I deleted —or rather, renamed the files— the vendor.xml files on the following paths on my PC:
    C:\Program Files\Common Files\Research In Motion\Apploader


    C:\Users\<%USERNAME%>\AppData\Roaming\Research In Motion\BlackBerry\Loader XML

    Note that I have Windows 7 installed on my PC. Full instructions here.

  4. I then ran App Loader application which can be found on the path . Full instructions can be found here.

That’s it. After waiting for around 15 minutes, my wife’s handset went back online. Some of her old apps were gone and she had to reinstall them. All the contacts were gone too, but she could restore them all because she had saved them all on BlackBerry’s servers. I believe all she had to was to log-in with her registered e-mail address, verify it by clicking a link on a e-mail BlackBerry sent to her and that was it.

So, if you’re having the same problem I was having, good luck and hope this helps.


Every once in a while, I stumble upon great pieces of software which are no longer generally available on the Interwebs —unless you look in its crevices, nooks, or crannies, of course. So, I decided to provide these softwares at no cost, and at no guarantee too.

2013-09-28_06.13.52_pmSo, today’s extinct software is an extension for Chrome browser which allows you to pretty much download any song available on Grooveshark. Its name is quite straightforward: Grooveshark Downloader. Once you’ve downloaded and installed it, if you go to Grooveshark, there will be a “Download” link after each song displayed. This only works for search result pages and album song list pages, not the “Popular Songs” section. You can get it here.

It’s really handy, I have to say. Previously, I have to use Jaksta media capture software to do the same thing. Now, it’s just a matter of a click. Enjoy it while it last, guys. Or at least until Grooveshark changes its codebase.


So, the other day I transferred my old Mac to another, brand new one. There are several methods, I know. However, since I’ve set up a NAS TimeMachine drive (a satisfied owner of WD My Book Live 3TB) a long while ago and have religiously done TimeMachine back-ups, I preferred the TimeMachine route of doing migration with Apple’s own Migration Assistant. The whole affair was a breeze, save for some hiccups which are mistakes on my part: halfway-through I realized that I was restoring on a lowly 802.11g connection. I cancelled it and opted for the Ethernet connection. What had taken me half an hour to get halfway-through, got done in less than half an hour. Mileage may vary since I had only 128GB drive on my old MBA, with less than half of it full.

Time Machine couldn't complete the backup to "<device-name>". The backup disk is not available.

Picture by dante01 @ AVForums

Anyway, after the migration, I could never successfully do TimeMachine back-ups on the new machine. This darned window kept popping up. The problem is, I could connect flawlessly to the NAS drive, either through SMB or Apples’s AFP. I could browse contents on it, and even could see the contents of the TimeMachine back-ups in the separate TimeMachine volume on the NAS drive. I could see that the last back-up on the drive was exactly prior to migration. I made sure I did that before migration. So, what gives?

As usual, a cursory search on Google led me to this great article on a blog that covered TimeMachine in great detail, titled “Reconnecting to Your Back-ups”. So, you have to go there and read it yourself to get the real deal, but these are the steps I’ve taken to get TimeMachine back to work again with WD My Book Live NAS drive.

  1. Make sure NAS drive is up and running well. Check all network connections and make sure you can connect to it through SMB and AFP.
  2. Make sure your TimeMachine back-ups exist. Make sure you can see your sparse bundle. Drill down your TimeMachine drive until you see it.
  3. Follow the instructions in the blue box on this page, titled ‘”Inherit” a backup’. Make sure you follow the instructions in the green box too, where indicated.
  4. Follow the instructions in the pink box on this page, titled ‘”Associate” an OSX volume’. Make sure you follow the instructions in the green box too, where indicated.
  5. Try to do a TimeMachine on-demand back-up. If everything goes well, your old TimeMachine back-ups will be reconnected to the new machine, and you’ll be able to make new ones with TimeMachine.

2013-09-22 05.06.49 pm


One thing that struck me the most while I was making an omra pilgrimage to The Holy Land last week was how English doesn’t have traction in The Kingdom of Saudi Arabia. For the whole eight days I was there, I barely met three people that spoke acceptable English. The rest just had terrible, broken English or didn’t bother to speak in it and chose to go with their native tongues instead.

Perhaps that’s the reason why so many international brands went with localizing their brands when the enter the KSA — or better yet, Arabian — market. As evidence, I bring to you a collection of how the brands cope with the fact.




United Colors of Benetton


Pizza Hut


Starbucks Coffee (do you notice the mermaid-less logo?)





Burger King

MAC Cosmetics







The Body Shop

Baskin Robbins

Picture by MacLocks

Picture by MacLocks

Merely minutes after I got my hands on Apple’s gorgeous product —Apple fanboyism, guilty as charged— I had an epiphany. Where the hell is its Kensington security slot? Living in a country where laptop theft is rampant, I couldn’t imagine leaving my laptop out in the open without protection at all.

After a cursory search, I found several alternatives. One of them, hand-made in Germany, was a likely candidate with its simplicity and polished looks (sorry, no links, the URL’s no longer valid I guess). Unfortunately, it doesn’t work with the newer models of MacBook Air released in July 2011 since they have newly-redesigned hinges.

Then I found this Security Skin from MacLocks, a subsidiary of Compulocks Inc. Then priced at USD 39.95, I quickly snapped it up since I didn’t find any other viable alternatives. Basically, this product is a two-pieces plastic laptop cover that comes with a Kensington security slot molded into the bottom part of the cover. After nearly a year of using this product, here’s a rundown of its strength and weaknesses.


  • Easy to install. It came with a tiny Torx screwdriver and four screws. The screws are longer to accomodate the skin and the original screw holes. In case you’re wondering, I don’t know if this violates Apple’s warranty. Nothing is really broken or opened up. You’re just basically changing the four original screws with the ones supplied. You —or rather, the geniuses behind the bar— be the judge.
  • It protects the looks of the Air too. The security skin comes in to parts. The ones with the screws covers the bottom part of the laptop, while a second one covers its upper part. Its clear, so it looks unobtrusive. I decided to do without the upper part though, one of the reasons I bought the Air was to be able to touch its luscious metallic cover.


  • It’s not precisely made. I had to use only three of the four supplied screws since the last one didn’t fit the hole perfectly. I didn’t want to risk damaging the Air’s screw hole (that sounds dirty, isn’t?).
  • It brings a bit of a false sense of security. So, you got your Kensington lock into the slot, but really, will the plastic skin secure your laptop. A determined thief would be able to yank it off, I think. In that case, I think you should bank on the notion that someone around your laptop will ask questions or be suspicious about the guy.
  • Some dust and gunks will get between the cover and the laptop. You may want to regularly unscrew the skin and clean the covers of the Air.
ICV Ber-barcode

Image by Majalah Farmacia

Jadi, hari ini tadi ceritanya saya sekeluarga datang ke RSUP Fatmawati Jakarta untuk mendapatkan vaksinasi meningitis. Saya dan Pras sebenarnya sudah pernah dapat vaksinasi tersebut sebelumnya, tapi karena kami perlu kartu kuning vaksinasi meningitis (International Certificate of Vaccination) untuk keperluan perjalanan, tampaknya memang tetap perlu vaksinasi lagi.

Setelah sempat browsing untuk cari-cari info, kami dapat informasi dari satu blog bahwa RSUP Fatmawati Jakarta melayani keperluan semacam ini. Akhirnya kami putuskan ke sana karena dekat dengan rumah, dibandingkan dengan alternatif lain seperti di Pelabuhan Tanjung Priok atau Bandar Udara Soekarno-Hatta.

Masuk dari pintu Jalan R.A. Kartini, kami sampai di RSUP Fatmawati sekitar pukul 9 pagi. Setelah tanya Pak Satpam beberapa kali, kami diberitahu bahwa tempat layanan ada di Sentra Haji dan Umrah (SHU) yang lokasinya ada di dekat Griya Husada. Di sana kami masuk ke pintu pertama di sebelah kanan dan diberitahu bahwa kami harus mengisi formulir terlebih dahulu. Beberapa pertanyaan awal kami di-dismiss dengan sopan bahwa nanti sebaiknya didiskusikan dengan dokter saja. Selain itu, kami juga diberitahu bahwa untuk pelayanan, mereka membutuhkan fotokopi paspor dan juga pasfoto 4×6. Namun, setelah ditanyakan, akhirnya yang kami serahkan hanya fotokopi paspor saja. Karena nggak bawa fotokopi paspor, hanya aslinya saja, terpaksa saya fotokopi (IDR 1.800 untuk 9 lembar fotokopi) dulu di tempat fotokopi yang ada di Gedung Poliklinik. Dari SHU, sebaiknya masuk dari pintu samping kanan saja, jangan dari pintu utama gedung, karena tempat fotokopinya adanya di dekat pintu sampingnya.

Setelah melengkapi formulir isian yang kurang lebih menanyakan alamat dan riwayat kesehatan di ruang di seberang ruangan tadi (karena dilengkapi dengan dua meja), kami kemudian mengurus pembayarannya di kasir yang ada di Griya Husada. Keluar dari pintu SHU ke arah kanan, lokasi ini adanya di seberang Resto CFC. Di sana kami mengantri sekitar 10 menit setelah formulir isian diserahkan ke petugas yang ada di tengah dan diberitahu bahwa nama kami akan dipanggil apabila sudah siap.

Sesudah dipanggil, kami membayar biaya vaksinasi sebesar IDR 160.000 per orang. Sepertinya ini sudah termasuk biaya registrasi pasien juga karena kami belum pernah ke RSUP Fatmawati sebelumnya.

Pintu Ruang Pendaftaran dan Penyuluhan

Pintu Ruang Pendaftaran dan Penyuluhan

Dengan kuitansi di tangan, kami kembali ke ruangan yang tadi di SHU dan menyerahkannya ke petugas yang ada di dalam. Setelah menunggu nama kami dipanggil lagi, akhirnya kami dipersilahkan masuk kembali ke ruangan —total berlima dengan beberapa pasien lain— untuk diberi pengarahan oleh dokter yang ada di ruangan tersebut. Kami diberi penjelasan mengenai fungsi vaksinasi —melindungi dari kemungkinan terkena penyakit yang menyerang selaput otak—, masa imun setelah vaksinasi —dua tahun—, serta beberapa informasi dan tips lainnya. Selain itu, kami juga diberi kesempatan bertanya yang kami manfaatkan untuk memastikan apakah saya yang sekitar 1,5 tahun lalu sudah pernah vaksinasi perlu diulang lagi —ya, karena masa imun hanya dua tahun—, apakah ada efek samping dari vaksinasi yang bertindih dalam masa imun —tidak— dan juga apakah vaksinasi tersebut dapat menyebabkan panas pada anak kami —ada kemungkinan, tapi kecil sekali, sekitar 1:10.000. Setelah tuntas terjawab semua pertanyaan, Pak Dokter kemudian memeriksa tekanan darah kami. Selanjutnya apa? Ya menunggu lagi, kali ini untuk vaksinasinya yang ternyata diberikan di ruangan lain.

Saat nama kami dipanggil lagi, jumlah orang yang menunggu di SHU sudah sekitar 30-an. Sebaiknya kalau mau datang ke sini lebih pagi saja. SHU ini buka Senin sampai Jumat dari pukul 8 sampai 12 untuk pendaftarannya saja, sesudah makan siang, mereka tidak menerima pendaftaran lagi, hanya pemberian vaksinasi saja. Selain itu istirahat siang dari pukul 12 hingga 1 siang. BTW, wanita hamil tidak diperkenankan vaksinasi juga.

Vaksinasinya hanya perlu sekitar 2 menit. Setelah masuk, kami diminta mengisi daftar pasien dan langsung disuntik oleh ibu dokter yang ada di ruangan tersebut. Sesudahnya langsung kami diberikan kartu kuning yang tadi, disertai dengan tanda tangan dan cap RS. Alhamdulillah semuanya sudah beres dalam satu pagi.

Almarhum Bapak, Sebelum Dirawat di RS

Almarhum Bapak, Sebelum Dirawat di RS

Setelah berjuang di rumah sakit selama tiga bulan —dua setengah di ruang rawat inap dan sisanya di ICU— akhirnya Bapak berpulang ke rahmatullah hari Senin, 10 April 2012. Perjuangannya melawan kanker hatinya dari akhir 2006 tuntas sudah. Enam puluh dua usia almarhum, one year shy of The Prophet’s.

Kami sekeluarga ikhlas. Kami lebih tidak tega mendengar pedih sakitnya dan melihat deritanya. Ibu, yang telah bersama almarhum selama tiga puluh dua tahun, tentulah yang paling merasa kehilangan. Namun alhamdulillah beliau kuat.

Perkenankan saya di sini mengucapkan terima kasih atas semua dukungan yang diberikan ke saya dan keluarga saya selama ini. Semua doa, harapan, usulan, saran, dan juga segala sumbang saran dan urun rembug lainnya.

It takes quite a while to get used to … to the fact that that great guy is no longer with us. Farewell, Bapak. Be safe on your next journey.  Innalillahi wa innalillahi roji’un.


Sejak kantor gw pindah ke Jakarta Selatan dari kawasan Semanggi, gw akhirnya jadi salah satu penumpang setia TransJakarta koridor 8. Selama setahun lebih ini, ada banyak hal yang menurut gw bikin TransJakarta nggak bisa dibandingkan sama sarana transportasi umum kelas dunia. Here are the reasons why.

Jumlah bus terlalu sedikit. Pernah coba pulang kantor naik TransJakarta pas rush hours? Konsekuensinya cuma dua, nunggu lama di halte atau bisa masuk bus tapi penuhnya nggak ketulungan. Rasa frustasi yang ada semakin diperparah dengan tidak pastinya jadwal kedatangan bus dan perilaku manusia Jakarta yang nggak pernah paham konsep antri (but, then again, this is probably fueled by the previous facts). Herannya, setiap kali BLU TransJakarta buka koridor baru, tradisi pinjam-meminjam bus antar koridor nggak pernah bisa dihilangkan.

Ini udah begini sejak 2009.

Ini udah begini sejak 2009.

BLU TransJakarta nggak kenal sebuah ide radikal: pemeliharaan. Coba liat berapa banyak halte yang pintunya nggak jalan, lantainya berlubang. Lalu coba lihat berapa banyak bus yang AC-nya nggak beres, pintunya rusak, atau papan dan PA system notifikasi halte yang nggak berfungsi. Semuanya dibiarkan bertahun-tahun tanpa ada upaya perbaikan atau paling nggak langkah-langkah pengamanan untuk penumpangnya. Nyawa emang dianggap murah di sini ya? Gw pernah kesandung dan nyaris jatuh pas turun dari bus karena pintu shelter yang gw pikir udah kebuka ternyata masih ketutup tapi kacanya pecah.

Tidak ada konsistensi. Pernah liat peta jalur TransJakarta? Pernah coba bandingkan sama keadaan sebenarnya? Rute Pluit-Pinang Ranti punya akhir perjalanan yang berbeda tergantung jenis busnya, bus gandeng hanya sampai Grogol, sedangkan yang tunggal sampai Pluit. Rute Pondok Indah Harmoni punya trayek berbeda tergantung harinya, saat akhir pekan lewat Tomang, saat lainnya lewat Roxy. Pernah memperhatikan di mana bus-bus itu berhenti? Kadang di pintu terdekat dengan loket, kadang di pintu terjauh. Nggak terhitung gw harus lari-lari cuma karena gw nunggu di pintu yang salah. Herannya nggak ada sekelumit pemberitahuan pun kepada penumpang kecuali penumpang nanya. Lha kalo penumpangnya nggak tau kalo harus nanya gimana?

Fasilitas untuk orang difabel (people with different abilities) cuma omong kosong. Ramp di jembatan penyeberangan itu ceritanya kan buat mereka yang difabel kan? Pernah merhatiin nggak kalo ujung-ujungnya apa bener bisa dilalui sama misalnya orang berkursi roda? Di sepanjang koridor 1 aja gw tau ada beberapa halte yang ujung ramp-nya terlalu curam untuk kursi roda atau malah dikasih tangga. Lha? Ini niat nggak sih nolongin orang? Lalu di busnya juga nggak ada tempat untuk orang berkursi roda. Yang gw baru liat di bus-bus koridor 9 aja yang ada tempatnya.

Kualitas pengemudi mayoritas cuma lebih baik satu strip ketimbang angkutan umum biasa. Nggak terhitung berapa kali jalan gw (sebagai pengemudi mobil) dipotong sama bus TransJakarta di lampu merah, padahal jelas-jelas lampu buat mereka menyala merah. Gw sebagai penumpang juga udah bosen liat mereka seenaknya makan jalan orang lain di lampu merah walaupun belum jadi haknya. Frustasi karena waktu tempuh lama memang bisa dimengerti karena lajur khusus mereka banyak disabot pengemudi goblog, tapi apa itu jadi pembenaran untuk ikutan goblog?

Niat sterilisasi lajur busway nggak sungguh-sungguh. Bosen banget sama yang satu ini. Apa gunanya dibikin jalur khusus kalo emang orang yang nyabot dibiarin aja? Jadinya cuma jadi perangkap polisi busuk aja. Dulu pernah ada ide contra-flow itu kok nggak jadi diimplementasikan setelah diuji coba kenapa ya? Ada yang tau alasannya? Padahal itu menurut gw sakti banget untuk sterilisasi lho. Ampuh, motor mobil nggak bakal ada yang berani deh.

Kok sepertinya nggak ada pengukuran metriks apapun untuk mengukur keberhasilannya ya? Gw nggak tau apa ini udah berjalan otomatis di belakang layar atau gimana. Setau gw, untuk transportasi publik itu ukurannya adalah waktu tunggu di halte, waktu pindah antar rute, tingkat okupansi bus, dan semacamnya. Gw kayanya nggak pernah liat ada yang ngukur beginian deh seumur-umur. Ataupun kalau ada, palingan cuma survey jangka pendek. Padahal ya kalau ini diotomatisasi, datanya bisa dianalisa kan? Faedahnya ada banyak lho. Pertama, bisa dianalisa kelemahan-kelemahan jalur busway-nya. Misalnya, jam segini di titik ini macet parah, jadi perlu ditambah frekuensi busnya. Faedah lainnya adalah data tadi bisa dikembalikan ke publik kan? Jadi mereka bisa memutuskan hal-hal seperti kalau mau sampai di lokasi A jam segini, saya mesti ada di halte busway B jam segini. Itu fitur normal lho di negara maju. Nggak ada yang hebat di situ.

Kalo hal-hal di atas bisa ditangani, paling nggak gw yakin ada banyak pengendara mobil pribadi yang mau beralih ke transportasi umum. Nyupir itu capek dan nggak murah lho, tapi buat sebagian besar orang, itu masih mending ketimbang berjejal di bus yang nggak pasti datangnya karena jalurnya nggak steril dan mengancam jiwa karena nggak ada pemeliharaan fasilitas. Jadi ketimbang cuma menghukum pengendara pribadi dengan kemacetan dan ancaman naiknya harga bensin dan tarif parkir, kenapa nggak diber insentif untuk pindah dengan transportasi umum massal yang nyaman dan manusiawi? Takut rugi? Mayoritas perusahaan transportasi publik memang merugi kok, tapi semuanya kan untuk the greater good toh?

%d bloggers like this: