After Singapore

I would walk 500 miles and I would walk 500 more

Category: article

  • YouTube video and DivX format for Car Media Player

    YouTube video and DivX format for Car Media Player

    Some cars, like mine, have a video player that can only play specific DivX videos (a.k.a. old format). It doesn’t play YouTube videos.

    Of course it is illegal to easily download YouTube videos using yt-dlp, you need to pay premium and watch in their proprietary app or website. Even when you download it, what you get is the cryptic webm format that is not easily playable.

    It is possible though, to convert the video you have downloaded to such DivX format using this command (original source here and here):

    ffmpeg -i input-file.webm -c:v mpeg4 -q:v 5 -tag:v DIVX -s 640x480 -c:a libmp3lame -q:a 5 -ac 2 -ar 44100 -filter:v fps=25 output-file.avi

    Or, if you don’t care about DivX format, it is also possible to convert to the usual mp4 format:

    ffmpeg -i input-file.webm output-file.mp4

    Therefore, if you did the things I explained above, you may break the law in your country. You have been warned.

  • The system cheated me, so I cheated the system

    The system cheated me, so I cheated the system

    Background

    People invent technologies to help other people. However, it sometimes happen that it puts people into a rat race. Computer programmers create automations, others invented CAPTCHA to prevent automation. Photoshop can manipulate photos, while there are technologies invented to detect manipulated images. OpenAI created ChatGPT, while some people created a program to detect ChatGPT-made articles to prevent cheating.

    The IT guys in my office created a website to track attendance of their employees. We need to login using our SSO (Single Sign On) account and click something like “I am here” button for our attendance to be recorded. This is a replacement for the previous system, fingerprint scanner.

    I honestly hate this new system. Previously we only had to put our finger to a scanner to be recorded. Now we have to wait our own computer to boot up, join wi-fi, open web browser, type user name and password, click some buttons, et cetera. When something goes wrong in one of the steps, we may have to wait a few minutes then try again.

    In this new system there are two actions to perform: check in and check out. Check in is to tell the system that you’re ready to work. Check in itself is divided into WFO (Work from Office) and WFH (Home). The system is clever enough to prevent people from home claiming WFO: you need to join the office’s wifi to do that (VPN excluded). Check out is when you report what you have done today, and can be performed anywhere.

    If you do the procedure correctly, you will be rewarded ±Rp17.800 for transportation cost (depends on seniority). However, it turned out that it’s challenging to perform it correctly according to the algorithm actually implemented in the code. In the beginning of January, I diligently performed the check in and check out procedure almost every working day, only to find out that only 7 out of ±20 working days of my WFOs were rewarded. There were rumours that I should gave ample time between check in and check out to be actually rewarded, but nobody could confirmed the exact algorithm.

    So I planned for revenge: having someone (something, actually) do the WFO check in for me while at home.

    Source: https://memegenerator.net/instance/31157901/its-about-sending-a-message-its-not-about-the-money-its-about-sending-a-message

    The Devices

    I didn’t have a desktop computer in the office anymore, so I used my own Raspberry Pi (a small ARM-based computer), paired with a timed power plug.

    Image of a timed power plug

    Timer for the power is set to on every weekday, 7 to 8 AM. The good thing about Raspberry Pi is that it boots up automatically when it receives power. After configured properly, Raspberry can join to trusted WiFi and opens GUI when it boots up.

    Next step is to have a script to do the check in. Using the built in Chromium browser, Chromium web driver, Selenium WebDriver, and a simple scripting framework me and my former student made, I automated the following steps:

    1. Open web browser, trigger Captive Portal
    2. Enter username and password
    3. Open attendance system website
    4. Enter username and password
    5. Click “WFO Check in”
    6. Done and close the browser
    [database_config]
    1 = open https://{redacted}
    2 = sendkeys #username {redacted}
    3 = sendkeys #password {redacted}
    4 = click #{redacted}
    5 = open https://{redacted}
    6 = sendkeys #username {redacted}
    7 = click #{redacted}
    8 = sendkeys #password {redacted}
    9 = click button[name=submit]
    10 = click a[href='{redacted}']
    11 = click a[onclick='{redacted}()']
    12 = quit

    Actually, it took only a few minutes to perform everything. Then Raspberry would wait an hour before powered off. To prevent filesystem damage, I also set a cronjob to perform graceful shutdown at 7.45.

    45 7 * * 1-5 /sbin/shutdown -h now

    There were some challenges, though:

    1. The office WiFi is heavily firewalled. Therefore I could not connect remotely using SSH nor VNC. When I am not in office, I just have to trust that the machine works.
    2. The browser needs GUI, and the GUI seems to be needing a monitor connected (because it has to decide what is the proper screen resolution), so I can’t be sure it can run headless. When the monitor is turned on and showing activity, it may attract attention from my roommates.
    3. The script engine is very simple, that it can only run without branches and crash if what it sees in the browser is not as expected. Meanwhile, captive portal does not ask for username/password anymore if a successful login has happened that day. Hence, the script can only run successfully once a day.

    The Actions

    I set it up on site on Monday, and left it to work on Tuesday. I intentionally didn’t go to office on Tuesday. Well, it worked!

    I just needed to perform check out that day, since it’s more difficult to automate both check in and check out.

    On Wednesday, I still didn’t come to office. It was fortunately working well again.

    Evaluation

    On Thursday, I went to office to check if everything was okay. It did already attracted attention of my roommate because of animations on my monitor. I plan to keep this device automation running to perform 13 successful WFO check in while I don’t come to office as payback for January; or until I get caught. I also reduce the lifetime of Raspberry to half an hour only, 7.00 to 7.30 (shutdown at 7.15).

    This post was written with enough details to give idea for someone to replicate their own, but of course many other details were omitted. If you wish to build your own, you need to understand some technical and programming stuffs.

    Also, I should have spend my time working like a proper lecturers instead of tinkering like this.

    Epilogue

    After successfully running for two days, somebody found out that I was cheating, I guess. It was not working for a few days, and when I troubleshooted on one fine Tuesday, I found out that there was a webdriver detector because my script threw some error messages:

    selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: Caught in the second case: bot is banned!!!

    Upon checking on the website source code, I found the following detector:

    <script>
            $(document).ready(function () {
                try {
                    if (window.document.documentElement.getAttribute("webdriver"))
                        alert("Caught in the first case: bot is banned!!!");
                } catch (Exception) {
                }
    
                try {
                    if (navigator.webdriver)
                        alert("Caught in the second case: bot is banned!!!");
                } catch (Exception) {
                }
            });
        </script>

    So, that’s the end of it, I guess.

  • Recording Attendance

    Recording Attendance

    As a lecturer, one of my responsibilities is to record students’ attendance. At least for me, this data can be used later to determine whether I should give lenience to some of them in special circumstances.

    COVID-19 changes that definition of “attending”. One can just show up at the beginning of a virtual class then leave, switch his/her screen to a computer game, or leave the presentation open while he/she is playing a mobile game. That is why for my classes, I don’t really care about the students attending. I even allow my students to record their attendance, a feature that fortunately provided by the university IT department.

    Mid-term and final exam, however, are different. They are more “sacred”, hence I took extra steps on ensuring my students attend the class. Again, I cannot ensure that they are present during the whole exam. I also cannot fully ensure that they do not cheat by working cooperatively or being worked by someone else (a.k.a. joki).

    However, it is possible to record some kind of authenticity. I can ensure that each student is present and, well, alive and doing well, at the time of exam. This may help prevent some weird situation in the future, like, giving a degree to a deceased or even a non-existent person. This may sound like a joke, but if we’re being honest, most likely nobody from the university side have ever met freshmen of 2020 in person!

    To perform such attendance record, I called each student by name at the beginning of exam. When a student’s name is called, he/she has to turn on his/her camera and answer “hadir” (present), so his/her face is spotlighted in the Zoom, Google Meet, Microsoft Teams, or whatever platform used.

    Below is an example of such recording.

    This was the third attempt of recording this semester. It took about ten minutes to call and record about 47 students, and as you may see in the video, there were some interruptions and imperfections along the way. Earlier attempts took 15 minutes, because I didn’t use Microsoft Teams’ native app, hence video didn’t show up very quickly.

  • Yes, I will fix your computer (for $250/hour)

    We, computer programmers, all have this mantra: “No, I will not fix your computer”. It made sense, because we study hard to solve complicated problems, that is solvable by having a machine works for us. Fixing computers and networks are the job for the IT people. It was engrained to me when I graduated and stayed there for some time.

    Fast forward, I worked, took a master degree, tried to make a startip, taught in university, and build commercial websites, and things change. I don’t take that mantra so much anymore.

    Let’s see some of the IT problems:

    1. Internet does not work because cable is unplugged. What you had to do was to check the if there are blinking lights both on the PC side and the router. Looking from another point of view:
      • How can we avoid such problem and repetitive checks? One solution is wi-fi. Some computer scientists developed robust protocols for wireless connectivity. Businessmen popularize wi-fi, and today general consumers don’t have much cable problem anymore.
      • How can we automate troubleshooting? Some programmers at Microsoft developed Windows Troubleshooters. Though it is not very popular, but they did some problem solving exercise using computer programs.
    2. Finding the proper drivers. It was common problem that a hardware does not work because the driver did not exist. It recently occurred to me that I couldn’t connect to internet because the Wi-Fi dongle needed a driver that should be downloaded from the internet.
      • Again, those programmers are developing some standard, to ensure that minimal driver is required to make OS work with hardware. Plug n Play, they said.
    3. Data loss of computer reformat. Do you remember the days when your Windows is full of junk it had to be reformatted and reinstalled, and repeated again every year? One problem is to backup the files, and restore them afterwards.
      1. You may know that they are plenty of storage solutions nowadays, and they are competing each other (Dropbox, Google Drive, OneDrive, etc.) Who built them? developers

    So my point is, even the silliest IT problem nowadays, can be seen as a potential problem to solve with a product / software / app.

    However, I do understand that you should not waste your time doing so much of IT works (if you’re a programmer). That’s why you should also consider to charge some money (except if it’s your mum and dad). You will be surprised that some people are actually willing to pay some large amount, if you ask for it. It’s a win-win anyway: they get their problem fixed, and you get money and potential problem to solve.

  • 2013 in Review

    It feels good to write again, after a long time of busy days in year 2013. I write this, to keep the spirit of writing, as well as to, well, keep at least one post per year on this blog. Boy, I really miss those days when I have time to write. May be sometime.

    Work

    As the year before, the professional part of my life are shared between the startup I am building, and teaching at a local university.

    kiriThe startup, KIRI, started as a personal project that I worked on after office hours in Singapore. When I returned to Indonesia in 2012, Budi joined in, and we mostly worked at either a McDonald’s in Jakarta or my in-law’s house in Bandung. It was a weekend project, with lots of promises and some fanatic supporters.

    In early 2013, I heard a surprising news that our project was selected as the finalist of Mandiri Young Technopreneur 2012. As a finalist, our team had to attend a week long bootcamp in Jakarta, and unfortunately it coincided with my wedding day. Luckily, Budi could attend most part of the event, while I attended few days of it. Other than the privilege to stay at a 5-star hotel, we also had the chance to participate in seminars led by important people like Bill Reichert from Garage Venture. Most importantly, we were able to build network with people. Though in the end we failed to be a winner, we had a lot of takeaways from this event.

    We also participated in Blackberry Startup training, where we attended weekly sessions of startup trainings. Here also, we met with interesting speakers and people. We even managed to be the finalist of their business plan competition. As with Mandiri event, we again failed to nail the winning position here.

    Mid 2013, we gave it another shot by submitting our proposal to Telkom’s Indigo Incubator event. After series of pitches, we managed to be shortlisted as a winner. For that, we received a grant of Rp 10M and seed funding of Rp 120M. Moreover, we also got a slot in their coworking space in Gegerkalong, plus networking and seminars with fellow startups and important people. In exchange: a share for them, and we had to follow their program, under the lean startup framework. We were happy with that, but not without some downsides. More features were implemented, and more business plans were developed, but it means that I have less time with my code to play with. You know, those little details and tweaks a hardcore programmer would like to code.

    During this journey we were glad that Hudi temporarily joined our team as an intern, for a crowdfunded event organized by Wujudkan. He helped us to implement TransJakarta feature of KIRI, and paved a way for future expansion. Later of this year, Jovan also joined our team as a part time developer. He helped implementing the KIRI API, KIRI Widget, and other minor features.

    Finally, though we are yet to receive our first revenue, I am very happy that KIRI grew a lot in terms of user base and usefulness. Not to mention that we participated in AngkotDay event led by our friend Saska, and featured in one of National Geographic Indonesia blog post.

    For my teaching part at Unpar, it was not less interesting. We were short of teachers, and that means we had to teach more students that we should. At one side, it means that keeping up with the job was very challenging (e.g. skipping lunches with colleagues). On the other side, I became more creative in making things more efficient. Luckily I was helped with my background of working in Singapore, regarded as one of the most efficient countries in the world.

    I also took the position of being a dosen wali (mentor) for new students as well as supervisor for final year projects. That means I got to know more of my students, not only in academic life but also their personal life. It is interesting to understand the challenges they have now, compared to myself as a student many years ago.

    In many parts, my teaching job and KIRI actually synergize. For example, a final year student Nathan helped me developed a KIRI-based android app. On the other side, I have stories to tell to students about my experience building a startup and knowledge of many recent technologies that I can only learn in practice, rather than in university.

    Personal

    _MG_6762On the personal side, 2013 also gave me a radical change in my way of life. As mentioned earlier, I married my college friend Yunnie. Preparing the marriage was exciting yet challenging, as we prepared most of everything by ourself, and helped by some relatives. Just few days before wedding, Jakarta was struck by a heavy flood disaster. The government official issued emergency state, making the guests thought twice to come, especially those from other town. Luckily, two friends from Singapore, Abhineet and Christine managed to come and attended our wedding safely.

    Being a married man has its own challenges and excitement. No matter how much I understood my spouse before, there were always new things I learned after marriage. If before, I took full responsibility of my own actions, after marriage, the responsibility is shared among two. The 24-hour-in-a-day slot is now also shared among us, meaning less “me-time” compared to before marriage. The consequences: less time for meeting friends, watching youtube videos, or, well, writing this blog. Having said all that, there are also benefits of it: a friend for life, a chance to learn new ways of thinking, and learning of new responsibilities. Anyway, we are happy that we are going to celebrate our 1st wedding anniversary soon It’s young, but as Confucius said, journey of thousand miles begins with a single step.

    Travel

    I didn’t really travel a lot this year, aside from Bali for late honeymoon and Malaysia for my brother’s rugby game. I do miss traveling to non-mainstream places like museums and parks, but those places are not for everyone.

    Next year, we are planning to visit my brother in Brisbane for his baptism ceremony. This paragraph is just a little reminder for me to write a story about that.

    Conclusion

    The rapid progress of KIRI really took my time in 2013, and I don’t think it’s going to stop in 2014. More busy days ahead, but it should be exciting. I am not going to do this forever though, in a couple years from now (after KIRI can stand on its own), I am expecting to settle down and find more challenges in personal and family life. And travel. (Don’t you think it’s a coincidence that our website is http://kiri.travel?)

    Happy new year!

  • Faith in Humanity Restored, with Public Transport

    Live with angkotIn case you didn’t know, I have spent about a year in Bandung building this website to help people navigate using public transport. In the meantime I also teach at Universitas Katolik Parahyangan. For both reason, I take the local buses, called angkot, to transport me back and forth between my home and office. Interestingly, taking this angkot means to know more about people’s life stories, much more than driving my own car. And of those stories, there are some worth to share, to restore faith in humanity.

    Let’s start with the first one. Every morning, the angkot I rode passed through Jalan Cicendo, which is the center for blind people rehabilitation. Of course the blindness could not be cured, but one can strive to improve the patient’s quality of life. Almost every day I saw blind people have the confidence to use angkot to travel from their place to another. Angkots in Bandung are most easily differentiated by their colors, not numbers. This clearly gives more difficulties to the blind. However, with their perseverance, the blind patiently waits for almost each angkot passing by and ask the driver if they are driving the route they want to take. On the opposite side, the drivers who are usually famous for being rude to people patiently check if the blind want to ride his angkot, and notify the blind when the destination has been reached.

    Another experience came when I rode an angkot to Padalarang, and return. I did this to complete the website’s database, and it took more than three hours on the road. Sitting at the front row seat, I had a chance to have a conversation with the driver, an guy, perhaps in his 60s. It turned out that he is a pensioner of Kopassus, a military group locally known for their achievement being the #3 top elite forces in the world. He proudly showed me his ID card, and told stories about himself when he was young and sent to various countries, like East Timor and Cambodia. From his salary (which he claimed only IDR 7.500/month in the 80’s) and pension fund, he started the angkot business, in which he bought an angkot bus by credit and let himself and another driver ride it everyday to pay for the installment. At the end of our conversation, I realized something, that he shared all his stories enthusiastically, without any complaints about the government or anyone. If you live in Indonesia, you will know that, well, other than this guy, you will not spend a single day talking to people without complaining about things.

    Lastly, about a father’s love to his child. In an ordinary day during my trip to my office, a father and his son boarded the angkot. The son seemed to have suffered from down syndrome, and judging from the transport mode they were using, they were clearly didn’t come from a rich family. Along the way, the father tried to start little conversations with his son, though thanks to the syndrome each topic didn’t last long. Some of the topics that I overheard was a suggestion to fight back when other children mock on him, about asking permission to his son to go to Jakarta to work for a couple of days, and about promise to play together on a future visit to Trans Studio theme park, after he had returned from Jakarta. That sounded simple, but immediately touched my heart. It must have been hard to raise a child with some disabilities, but the father seemed to work hard to give the best for his son.

    Those are the stories worth sharing. Reality show at it’s best, when it comes from reality, not from television.

  • Ping? Pong!

    This post is just to let you know that I am still alive. I have been occupied with a lot of activities for my startup project with my friend Budi; and other small stuffs (relocation, catechism, etc…). Unfortunately that means lower priority to maintain this blog.

    And as wise men say, a picture worth a thousand words. And turned out it takes much lesser effort than writing, too 🙂 So here are 7000 words of decorations in my new house, that are gifts from friends and relatives.

    A book called On a Street in Singapore, gift from my badminton friends Abhineet, Albert Quah, Albert Tjipto & his girlfriend, and Heldi

    Notebook with messages and greeting cards from my ITB friends in Gemalto, along with other gifts.

    A unique wall clock, gift from other ITB friends, who were with me since I moved to Singapore.

    Singlish candies from my former landlord Christine, Pineaple cake from Budi, and a nice Paul Allen memoir from my brother Daniel

    Swan doll made of unused cement paper from my aunt Meme, along with some decorations I bought myself.

    A cross to help me feel safe. A gift from my aunt Veronica more than 5 years ago, but I still keep it until now.

    Finally, a celebration to start using my new workshop! With help of my girlfriend and her family. Thanks Budi for taking the picture.

     

    It’s hard not to miss Singapore after that four years, but the gifts helped me to remember the good (and bad) times there. I feel very grateful to have friends and relatives that gave those gifts!

    And as you may notice that I’ve changed the blog title. I still hope that I can write frequently again in the future.

  • Sayonara Singapore!

    It has been almost 4 years since I moved to Singapore, and that is not a short period. Shortly I will be leaving this so-called red dot country to start a new journey in Indonesia. There were ups and downs during my stay here, but all gave a wonderful experience.

    It all started when I joined Gemalto, early 2008. I arrived here with my dad, to meet Ronny who became my roommate for about a year. He just graduated from NUS, and looking for an inexpensive room before securing a job. To save money, we shared a non-airconditioned room near Commonwealth MRT, living with the landlord who is an auntie (old lady).

    Though Ronny moved out after about a year, I stayed at the very same place for the rest of my life in Singapore. The place is not exceptional, though. I didn’t install an air conditioner, and since it’s located next to a main road, it’s quite noisy during the day and sometimes at night. At some months, the room temperature at night can be up to 35 °C, leaving the bed drenched with my sweat. However, I am the type of person who prefer to accept things and avoid troubles (or as the Chinese says, cincay), so I kept staying here. Anyway, what doesn’t kill you just make you stronger, no? The good thing about it is the location, being near to MRT, my office, campus, as well as Orchard road; all accessible within 20 minutes. And here’s a little secret for you to save money, if you can live peacefully with a single auntie or uncle, usually the room price will be discounted, since it’s more important for them to have someone to talk to than the money itself.

    The cincay policy also applied to my job, which I have been taken also for the whole life in Singapore. It is very clear until today that working in this company does not give you a lot of money, but instead more of experiences, upgrades (in term of trainings) and flexible working hours. There is one thing I was trying to prove, that you don’t have to work late to perform well at work. I am glad to say it proved well, at least in the work environment I was. The key is to give as much as your time in the office hours to work, and strive to optimize the way you work to make it even more efficient and effective. It is also important to spend your time outside the office hours not to work, so that you’ll start afresh when you work the next day. And lastly, especially in Singapore, be prepared to accept your colleagues saying “Wow, your team is always relax one, never go OT (overtime) what!” (Singlish pun intended).

    After my first few days in Singapore, I visited a friend who had spent more than 4 years in Singapore, and he gave me this wise advise “You’ll get bored here in just a few months”. It is true that one can get easily bored in Singapore. Singapore may have more shopping malls compared to Jakarta, or larger than the town of Kuta (Bali), but everything here seems to be, well, in order. I don’t know how many times I got lost in a new HDB (residential) area, because all the building looks the same. When I go to work, I take the same bus through the same road everyday, unlike in Jakarta where you have to find alternative roads everyday due to traffic jams. Having said those, there is small hope to go out of boredom in Singapore. If you have more cash, flying abroad to nearby places in Asia is a good option. Otherwise (or if you want to save), it’s also good to look for alternative interesting places in Singapore, as you can see in my blog posts. Public parks and museums are good start, and they are usually free or very affordable.

    Photo by Egon
    Photo by Egon

    It was surprising at the beginning to know that Singapore is in the top 10 of highest life expectancy countries in the world, despite the stressful life here. However after spending few months here, the reason became clear. People really care about their health, watch what they eat, and do physical exercise – a lot! Countless of marathons are held every year, also running events with lesser distances like 5km and 10km. Realizing that me and my family has history of hypertension, I started to follow the healthy habit. I started with the child’s play distance 1-2 km, until my boss told me that running shorter than 15 minutes would not have significant impact to the heart. Despite whether it’s true or not, I started to push myself to run longer, up to 7km. For variation, I also went swimming in nearby swimming pools, which is ridiculously very cheap, ranging from $1 to $2 per entry. Finally, I managed to gather few fellow Indonesians to play futsal almost weekly. Ironically that futsal sessions led me to a knee injury that forced me to get a surgery and absence from sport for few months (see the story here). Despite that, I am glad that I now have the physical and mental capability of living a healthy habit, which I look forward to keep when I am back to Indonesia.

    Last but not the least, life is not complete without friends. And one of the most important friends I knew here was those people from Institut Teknologi Bandung. Starting from a friend I knew in a project back in college days, she introduced me to several other friends from various departments in that university. All being new to this country, we were close together in our early years. We even managed to visit Phuket together for a vacation. Unfortunately, after that few years each of us started to settle down, and occupied by different priorities: me taking my master degree, a guy committed to his girlfriend, a lady getting married, others went abroad for study, and et cetera. However we do try to meet once in a while during birthday celebrations and keep in contact through social media means.

    Well, those are a bit of story of my life in Singapore. When I post this, it should be few days before I leave the country. Whether I will still write in this blog, that’s a question for me, too. Thinking about the places in Indonesia that I can write about…

  • Get lost, in the name of development!

    If there is the time I don’t like Singapore, it could be this weekend. It happened few days before my last day here, so it could be bias though. However, read on and you judge me.

    Last Saturday, I went to the library to read a book I was interested at. I went out from home at 9, but forgot that the library actually opens at 10. This was not the first time I arrived too early at the library, but this time was different. Few months back, when I was too early, I just stop by a nearby hawker center to get a cup of coffee while doing something productive with my laptop. But this time, the hawker center was not there anymore: it was demolished and replaced by construction of new HDB. All right, there’s no hawker center, but I remember there was a small park nearby with chair and table made of stone. So I went there, only to be disappointed since they were not there anymore. In the end, I spent the waiting time by sitting at the floor in front of the library, as with other fellow nerds who wants to be the first people inside the library when it opens.

    The second disappointment came when I was about to meet my friends at Raffles City mall. I came the earliest, so I had to wait there. Given my recovering leg condition, I preferred to find for a place to sit. Similar story, I remember that months before there was a convenient place to sit in front of a small man made waterfall (and the way the water fall is programmed in such a way it can form simple pictures), just few steps from the MRT entrance. It was not there anymore, and guess what, it was replaced by yet another shop. There was another free place to sit at the basement, but as expected it was full of people. It was very obvious that if you want to sit in that shopping mall, you have to go to one of the cafés there and buy an overpriced drink. There were plenty of seats, unoccupied. Luckily, I finally found a sofa at a CD shop, where I could sit for free. But as you know, the future of physical music stores is gloomy, so I expect that sofa won’t be there anymore in near future.

    Lastly, another incident on this Sunday, where I was about fight boredom by having dinner at my favorite Japanese food restaurant, Sumo House. Located in Clementi, it claimed to have the  “cheapest sushi in Singapore”. The restaurant occupies a small building with other shops, you can say it as a small plaza. Compared than the newly built Clementi Mall, this mall is a bit old and unpopular. And perhaps that’s why they were already closed when I tried to visit the restaurant. Almost the whole building was closed, leaving only 7-11 and KFC. It’s sad that I couldn’t have dinner there for the last time.

    Well, there’s always another point of view to look at this problem, and the same problem happens in other countries, too. That’s a fact that we have to accept, but, quoting a reader comment in a local newspaper about Cantonement Close HDB tear down… “In our efforts to evolve, do we sometimes forget to stop and sniff the flowers?”

  • Pascal’s Guide to Everyday Happiness

    I love Sunday, because it’s a holiday.My New $24 watch. It's not beatuiful, but very useful: dual timezone, alarm clock, stopwatch and background light

    I love Saturday, because it’s a holiday, too.

    I love Friday, because it’s the last day before Holiday.

    I love Thursday, because tomorrow is TGIF (Thank God It’s Friday).

    I love Wednesday, because I would start to enjoy the days starting from tomorrow.

    I love Monday and Tuesday, because without them, Wednesday, Thursday, Friday, Saturday and Sunday would be just an ordinary day.