After Singapore

I would walk 500 miles and I would walk 500 more

Author: pascal

  • Jatiluhur Valley & Resort

    Jatiluhur Valley & Resort

    One sign of getting old is to prefer staying at home rather than going out. This fact seemed to apply to me, in which this Christmas I found more happiness at home. However, I was obliged to take my family out (because it was school holiday!), and one night stay out of town sounded nice too. Long story short, we decided to go to Jatiluhur Valley & Resort (JVR), a hotel located next to the Jatiluhur Reservoir. So here we go.

    We drove to Purwakarta about 8.30am in the morning. It was a short journey from Bandung thanks to the toll road. Exited at KM 64, we drove to the Purwakarta town first and had brunch at Hutan Jati Cafe & Gelato. It had a very interesting concept: a small forest inside the city. Purwakarta is rather hot and humid, so even under the greeneries it was still hot. Fortunately they also provided indoor airconditioned area. It also became a perfect ambience when it started raining outside.

    Picture of Y and P posing for photo, inside the airconditioned area of the cafe.

    We waited for the rain to eae then drove to JVR. I tried to take a shortcut as suggested by Google Maps, and had to drove through a very narrow road.

    The road that led to JVR ascended and descended, and surrounded by greeneries, so it feels out of town. We arrived around 12 noon, and it was not the time yet for check in. The kids spent about an hour playing in the indoor playground, making friends with another guest who were checking out. After they got bored, we drove to Istora. It’s part of the JVR but closer to the reservoir and had better view.

    It was hot outside so a few minutes before two we drove back to JVR main building for check in. After checked in we realized that the lobby was on 3rd floor, and to get to our room we had to take the elevator down to the 2nd floor. We rented two rooms, with connecting door. We complained that one of the room smelled cigarette (despite warning of Rp1.000.000 fine for smoking), and the housekeeping helped us by spraying some air freshener. Y wanted to spend alone time in the room but the kids were bored, so I took them to play in the outdoor playground area.

    Around 4.30pm, we drove out to find a restaurant for early dinner. I craved for meal at traditional restaurant and we chose RM (Rumah Makan / Restaurant) Teh Titin, just a stone throw away from another restaurant RM Teh Pipin. The nostalgia of having meal in a traditional restaurant served well, but the experience there were not so nice. Just after the grilled fish were served, several flies came around and bugged us. The mango juice were a bit rotten, and the asam manis (sweet and sour) squid was too spicy.

    We headed back to hotel to rest. The hotel held a nobar (nonton bareng / watch movie together) event at 7pm, but we were too tired and watched the classic Shaolin Soccer movie in the room instead. I slept early that night, to wake up early at 4.15 AM in the morning and prepared for morning run.

    Picture of a road at dusk.

    I ran to JVR Istora area, but my main purpose was to catch the sunrise. The sunrise sun was not very visible because the west side of the Istora was largely covered by trees. But still, the view was beautiful there.

    Picture of pink flowers in front of the reservoir.
    Picture of a white building that resembles a lighthouse, with yellow anchor as decoration.
    Picture of a circular structure on top of the water, supposedly to control the water when it is flooding.

    I came back to my room afterwards, waiting for the others to be ready for breakfast at 8 AM. Breakfast was at the pool side, and the kids requested to swim. However, we deemed that the pool was not clean enough for swimming so we skipped.

    After breakfast, we walked down the hill for about 1 km to see axis deers, in a small preservation area. Along the way we picked up some leaves to feed them. However, the security guard forbid us to feed the deers with such leaves, as he deemed it to “hot”. In Chinese culture, aculturated to Indonesia, food are categorized as “cold” and “hot”. Hot foods are known to cause “inner heat” (panas dalam) that may cause illnesses like sore throat.

    Picture of a boy in front of deer cage

    We then walked back up the hill to the hotel. Surprisingly it was easier to climb up the road than to walk down. We then took a shower and checked out from the hotel.

    On our way home, just before entering the toll road, we had lunch at RM Ciganea. With about the same price to RM Teh Titin, we had better experience here. It was the first time our family tasted Sate Maranggi, beef satay that grilled with basic sweet and savory spices. Y, who didn’t really like beef, seemed to like it. We brought some more to give the kids’ grandma at home.

  • 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.

  • DNArtworks Trip to Kuala Lumpur

    DNArtworks Trip to Kuala Lumpur

    It was almost Indonesia’s 2024 Independence celebration day when the DNArtworks team went for company outing to Kuala Lumpur, Malaysia. The Bandung team took the earliest Whoosh trip to Halim, followed by taxi ride to Soekarno-Hatta International Airport. At the airport, we had a light breakfast, then joined the rest of the team.

    Picture of Bandung team having breakfast at a restaurant inside the airport.

    We had plenty of free time before boarding the plane around 10.40. We took Malaysia Airline, a full-service airline. I usually flew budget, so upon entering the plane I asked the flight attendant whether we would get a full meal or just snack. One attendant couldn’t hold his laugh to my question. He joked that it’s dependant of my flight. Even after was seated I received no explicit answer whether it’s a full meal or just snack. When the meal was served, it was finally clear that it’s a full meal, complete with fruits and bread & butter. When we arrived at Kuala Lumpur, that same flight attendant jokingly asked me again whether I enjoyed the meal. Well, I did. It’s quite a nice meal.

    Two minivans picked us up at the airport and drove us to the hotel. The journey took about an hour. We checked in, drop our bags, and walked again towards Jalan Alor. It was raining on and off when we walked.

    DNArtworks group walking at Kuala Lumpur downtown.

    At Jalan Alor, we split up into different groups. Except maybe me. I dined alone, picking a Vietnam Bánh mì after feeling nostalgic to the trip to Vietnam. It was raining hard shortly after, so I spent a few minutes staying there until the rain eased. I tried stinky tofu and giant squid satay, but it was not very extraordinary. We walked back to the hotel afterwards, with sightseeing of Lot 10 shopping mall and Don Don Donki.

    In the morning the next day, we had breakfast at the hotel, Lloyd’s Inn. It was a delicious and relatively healthy breakfast, with oatmeals and fresh fruits in the menu. Some seats were facing outside, giving a nice morning view, despite in the middle of city.

    Breakfast while looking outside the window.

    At 8am we gathered around at the ground lobby, and took the minivans that brought us to Awana SkyCentral. From the SkyCentral, we took a gondola towards Genting Highlands. The weather was perfect for our journey. The haze gave us a cooling and calming effect while riding the gondola.

    When we were approaching Genting Highlands station around 10am, it was still hazy, so the visual experience was amazing, as you can see in the video of us approaching the terminal. However some of our friends who were afraid of heights didn’t really enjoy the trip.

    About half an hour journey, we arrived at the SkyAvenue shopping mall. We originally planned to walked around the SkyAvenue shopping mall, but since SkyWorlds theme park was just opened, we decided to enter the theme park first.

    Situation inside the "Independence Day: Defiance" ride.

    Pictured before this is the situation inside “Independence Day: Defiance” ride. For me this was the best ride I have ever had. It was a 4D simulator ride, where you sit in a seat that moves according to the movie. Moreover, in this ride, the three rows of seats were stacked vertically during the show and the screen was large enough to make you feel that you were exactly inside the fictional world.

    Picture of a building, partially burned down.

    Upon walking around the park, I saw a huge building having a partial burnt effect I found out later that it was actually burnt during an incident. An online article from astro Awani confirmed it.

    One nice feature of the park was the existence of mobile app and the integrations. From the app, we can see estimated waiting time of each ride, helping us picking the next ride to have. Our team also bought a photo taking package, where we could request official photographers took pictures of app, and delivered nicely to the app.

    Group photo in front of the SkyWorlds logo.

    Some of us exited the park with the hope of having a good lunch at the shopping mall, but the meals there were generally expensive, so they came back inside the park and had lunch there. I joined them and ordered a vegetarian fried rice. We then walked around the mall a little bit more then took the gondola down, to Genting Highland Premium Outlets. I had meals at food court, long chat with my brother, and oleh-oleh hunting. The food court only accepted cashless payment, and my OCBC debit card came to the rescue.

    It was a longer minivan trip back to the city as we had traffic jams here and there. I was quite exhausted that night, so a local Indian hawker nearby the hotel became my choice for dinner. I had a nice roti (also known as prata in singapore) and thosai (a.k.a. dosa in India) for dinner.

    The next day was the day for a walk in the city and free time. We started our journey by walking to Tun Razak Exchange (TRX) MRT station. The station was recently went viral because Apple has just opened a flagship store inside the TRX building. Samsung responded by buying the naming right for the MRT station, naming the station as Samsung Galaxy station.

    We bought a single trip ticket. The single trip ticket was different compared to other MRTs I have ever tried. It was in form of a plastic coin instead of card. It turned out that in the exit gate, the coin was expected to be returned by plunging it to the machine, just like in the old arcade games.

    We alighted at Ampang Park station, then took a walk to the Petronas Twin Towers. Along the way I saw a grafitti of hatred to three specific countries. Not sure why, but as a computer nerd I could say that the writer had a mixed up between Korea and Japan. If you don’t get the joke, see this Wikipedia article.

    Staircases of pedestrian bridge with some writings on it.

    We took pictures in front of Twin Towers and walked around the KLCC shopping mall. Inside, there was the Cold Storage, a supermarket chain. Since it was a tourist area, the supermarket also sells plenty of souvenirs. Next to the KLCC building, there was the KLCC public park, a perfect place for jogging or simple stroll along the park.

    For lunch, we stopped by Nasi Kandar Pelita, a relatively famous chain of local food. They had this huge fish head curry in the menu. The food was good, but somewhat too oily.

    Fish head curry in close up

    Just after I finished lunch, I received a direct message from a long time friend from high school, N. He noticed my instagram stories and told me that he was in Kuala Lumpur as well. We then made appointment to meet, and it was a perfect occassion for the free time of the company outing.

    N picked me up around 4pm, and drove me to a place called SS2, west of Kuala Lumpur. We had a nice dinner of Pan Mee, followed by some durians.

    In case you didn’t know, durian is a fruit mostly famous in Southeast Asia. It’s a very sweet fruit, but have a distinct smell that makes half population of the world hate it. Here in SS2, was the first time that I saw durian tasting served as the commodity for tourist attraction. Many different types of durians were sold, either for takeaway or dine in. I originally thought that the Musang King variant is the, well, king. But N told me that Black Thorne is another contender. However, just like coffee, different variants of durian give different unique tastes and each people have their own preferences.

    N then drove me back to the hotel. Though the food was great, it was the insipiring conversation with him that I enjoyed the most. N is a cancer survior, and before this I only knew the story from his facebook posts.

    What I didn’t know, was that he finished a thriathlon before, and diagnosed with the cancer just two months after. It started with a regular check of his pain on the knee to just make sure everything was allright, but ended up that something was not right. This “something is not right” surprise also happened to me when I did a check on swelling of my right knee, that ended up with surgery (see this post). Long story short, when the doctor confirmed his illness, he rushed back home from Kuala Lumpur to Indonesia, just a few days before countries closed their borders to COVID-19 pandemic. After many chemotherapies and tranplant, he survived.

    On the last hours before going home, I still had ringgit coins in my pocket. Therefore I took the time in the morning to have another roti and kopi at a hawker nearby.

    Roti and kopi

    We then packed things up and took the minivan trip to the airport. I have plenty of free time at the Malaysia airport but maybe not when I am back in Indonesia. Therefore, the story ends here. Thanks for reading this far.

    Picture of Malaysia Airline plane, zoomed in.
  • Public Transit Trip with The Kids

    Public Transit Trip with The Kids

    With my status as an employee as well as running a family business, I don’t that much of holiday. Especially after COVID-19 pandemic, December is the time for my mostly Christian employees to take leave, hence I have to back them up. However, I had a few days before 2024 to go with the kids to Jakarta to visit my parents. I am blessed with the kids who have strong interests with public transport, hence not really costly in terms of carbon footprint (costly in monetary value, though).

    We started our journey with the Feeder train that brought us from Bandung station to Padalarang Station.

    In Padalarang station, we waited about an hour before the high speed trains arrived. The train only stopped for less than 5 minutes to board passengers.

    The kids really loved it, though it was not like an ordinary train trip. It was a smooth ride unlike regular trains, and you can’t really feel the speed except by looking at the informational running text.

    We then arrived at Halim high speed train station. It was interconnected to the LRT station, with about 500m covered walking distance. The LRT station felt hotter, or maybe just my feeling because they put several large fans there. There was no driver on board the train, all controlled from the command center.

    After arriving at Dukuh Atas, we had a small snack then continue our journey with Commuter Line train and Airport Line train. The Airport Line train final destination was at the Soekarno-Hatta airport, but we could alight one station before, where my dad picked us up.

    Dad picked us up and we visited mum’s clinic, where Desmond got one of his teeth extracted. He was scared so we offered him a lunch at Bornga, a rather lavish restaurant. After deliberate consideration, he agreed.

    In the evening, Daniel went by and the kids were playing games together.

    The next day, we started our journey by taking a cab to Bintaro Xchange shopping mall. This mall has an underground connection to the Commuter Line. We took another Commuter Line, followed by TransJakarta bus and MRT to get a lunch and sightseeing.

    We stopped at Blok M MRT station, and took a lunch at Lucky Chin, an American-Chinese restaurant I knew from a tweet. Their meal package included fortune cookie, whose message was more suitable for adults (“If you’re feeling adventorous, go for it!”).

    We took a Blue Bird cab for our way back home. The next day, we went back to Bandung by taking a regular (Argo Parahyangan) 3-hour train to Bandung.

  • Coffee, Bento, Running and Wedding

    Coffee, Bento, Running and Wedding

    You may have known from my previous post Visiting The Dead that I have a relatively big extended family. This time one of them got married in Kelapa Gading area, Jakarta. I was happy because it’s also served as an excuse to leave the kids with their Popo (grandmother) and have me and my wife Y travel to Jakarta without the menaces.

    I still had zoom meeting with some friends in the morning, but shortly after drove to Jakarta. It was a smooth journey to Jakarta, but horrible in the Kelapa Gading area. Traffic jams delayed our trip, but we finally made to our first stop: Kedai Kopi Oke. It’s a kopitiam (coffee shop) owned by my uncle. This shop served coffee from various parts of Indonesia, but the most interesting part was that the coffee was served using a huge mokapot. Mokapot is a tool originated from Italy, normally used to make espresso. A single espresso is roughly 30ml, roughly 1/6 cup. This huge mokapot serves 2 cups, hence 12 espressos! That’s way more caffeine than deleting a production database!

    A cup of cofee and a huge mokapot
    A cup of cofee and a huge mokapot

    We had a nice long chat, then had to say goodbye to my uncle. He gave me two angpaos (red envelope containing money) for our kids at home. It is customary for us parents of Chinese descendants, to give angpaos to the kids as symbol of good luck.

    We went to the hotel and took a break. I surveyed the swimming pool, but it was drizzling outside. We preferred to stay in the room, and watched Men in Black at the cable tv provided.

    At night, we went out for dinner. We walked to a nearby food court called Sagoro. It had a nice view of a river, but there were not many interesting food stalls opened. We also walked carefully, as the floor were slippery due to the rain that fell before.

    We walked toward the other side and found a nice Japanese restaurant called Hanaguni. It looked upscale but the security convinced us to just look inside first without obligation to have a meal there. We went inside, took a seat, and provided with the menu. We were surprised that a bento costed around Rp200.000,-, whereas in Hokben (famous Japanese food chain in Indonesia) a bento costs roughly Rp50.000,-.

    Me and Y having the dinner sets
    Me and Y having the dinner sets

    It turned out that they had another menu, simple rice packages and pastas that have on-going promotion: buy 2 get 3 for roughly Rp100.000,-. Still more than our usual budget, but at least we got 3 portions for the same price. We came back to hotel with full stomach and called it a day.

    Early morning the next day, while Y was still sleeping, I headed out for morning run. With two kids at home, it’s difficult to reserve time for morning exercise, so this was a good chance. I targeted 5 km run, but was tired enough near LRT station that I was tempted to take the LRT instead for my way back. So I took the trip, followed by motorcycle taxi (ojek online) for the last mile.

    Picture of LRT coming in to the station on time.
    Picture of LRT coming in to the station on time.

    We then prepared ourself for the main event: the wedding. It was held in Angke Restaurant, within the Mall of Indonesia complex. It was on Sunday morning so it was very crowded on the entrance. I was busy meeting people I forgot to take some pictures, as well as being in the picture.

    Family picture, without me.
    Family picture, without me. Photo by my cousin-in-law Rina.

    After an hour or two there, I drove back to Bandung, as I had to work the next day.

  • Whoosh Whoosh Whoosh, Yes

    Whoosh Whoosh Whoosh, Yes

    When the high-speed train started operating, many Indonesians were excited to try. That includes me and my parents. Therefore, I asked my parents in Jakarta to come and visit us in Bandung.

    On Saturday morning, my family drove me to Tegalluar station, located at the eastern side of Bandung. We took the toll road, passed the newly built residential area “Summarecon”, and nearby the relatively famous Al-Jabbar mosque and Gelora Bandung Lautan Api stadium. I took the train to Halim station, where I would meet my parents and helped them checked in into the train. My son D was envy of me but we managed to calm him down. The Tegalluar station was relatively remote and not fully built. There were no cafés or shops opened yet. Parking space was limited, but there were many blue bird taxis waiting there, ready to drive you to the city.

    A picture of Tegalluar station from outside.

    Check in was smooth, and the train was on time. Despite the euphoria, taking the train itself in my opinion is nothing special. It’s just like taking MRT/LRT trip, only further. The 350km/h maximum speed can only be confirmed by looking at the running text display. If you look outside the window, there is actually not much difference compared to running 100km/h. What’s interesting yet disturbing, is that every announcement made, it ends with their slogan “Whoosh Whoosh Whoosh,… Yes!”.

    Interior view of the Whoosh train.

    At exactly 10.30 AM, I arrived in Stasiun Halim. I was hungry so I ordered two pieces of lunpias (definition) and an americano. Shortly after, my parents were also arrived at the station, and we checked in and traveled to Bandung.

    We stopped at the Padalarang Station, then took a feeder train that went to the city. Transfer from high-speed train to the feeder was not so smooth, with 500 passengers (rough estimation) had to pass through 3 gates within only a few minutes.

    Picture of feeder train.

    In Bandung station, my wife Y was just in time to pick us up. We then had lunch at the Lotek Mahmud restaurant, a hidden culinary gem in Bandung. After lunch, my mom (kids’ Oma) did some shopping at a cosmetic store nearby “Toko Mahmud”, also a hidden gem. We then went to the hotel, checked in, and took some rest.

    Around 4 PM, Opa was eager to walk out to find some coffee. We then walked around the hotel and had a light meal and coffee at Circle K. My daughter P was feeling unwell, probably because she was playing in the bathtub too long, and got masuk angin (cold). I went out with Oma and my dad (Opa) to have chicken rice dinner together outside at Olly Hai, inside Haji Mesri alley. The main road was very crowded, so walking was not very fun. However, it’s faster to walk than to drive because it’s a one way road, and, well, very crowded. I ta pao-ed (take away) 3 portions of food for people at the hotel.

    That night P couldn’t sleep well, so did I and Y. In the early morning, D was already woken up, so I brought him to Opa and Oma‘s room. Opa wanted to walk around, so I left D at Oma‘s room, watching YouTube videos. We walked through some alleys, heading to the GOR Pajajaran (Pajajaran sport center). Despite the fact that it’s a sport center, in the morning it’s a culinary heaven. I and Opa had porridge for breakfast, and I bought steamed kuo tie (dumplings) for the others.

    P was still feeling unwell, but we had to have breakfast anyway. My car was all cleaned by the hotel staff, so we drove to a nearby Rijsttafel restaurant for breakfast. After breakfast, I drove everyone back to the hotel. I and Oma continued walking to a nearby Kartika Sari snack shop. It was inside an alley but very packed with tourists.

    Picture of cars at the hotel.

    Finally, I drove Oma and Opa back to the station, for them to take another Whoosh trip back to Jakarta.

  • DNArtworks Trip to Ho Chi Minh City

    DNArtworks Trip to Ho Chi Minh City

    Aside from teaching, I also partner with my brother in running a business. The DNArtworks provides many solutions from graphic design, videography, social media, as well as websites and applications. As for the latter, I help him on software development side, bringing Informatika Unpar graduates and lead them in making high quality websites and apps. In celebrating the 10th birthday, DNArtworks team went for a 4 days trip to Ho Chi Minh City, Vietnam.

    The team from Bandung departed at 5AM, taking about 3 hour bus ride to Soekarno-Hatta International Airport terminal 2. We arrived much earlier than expected, so we spent a few hours waiting at a dim sum restaurant.

    A picture of P, A, H, F, and E (right to left) in a dimsum restaurant.

    About an hour later, Jakarta team arrived as well, and we performed flight check-in. One guy from Jakarta, DP, left his passport at home. Luckily his wife helped delivering his passport on time. What a lovely wife.

    We cleared Indonesia immigration early, to have an easy lunch before taking the flight. Some of us bought power plug adapters, which turned out not very useful because the plugs in Vietnam are similar to ones in Indonesia. It is understandable, though, because the information on the internet is not very clear. I downloaded a few movies to my laptop for in-flight entertainment. One of which was Grave of The Fireflies (火垂るの墓). It’s a movie from Studio Ghibli, but you can easily find the full recording in YouTube since it’s a very old movie. H told me he didn’t dare to watch it because it would make him cry. I am proud to say that did not cry, but it was indeed a very saddening movie.

    The flight from Jakarta city took about 3 hours. When we landed in Ho Chi Minh city at 16.40, it was raining hard. We spent maybe up to two hours in the airports before being transported to the hotel. Some of us bought local sim cards, while others bought Vietnam Dong (the currency) bills. After check in, we walked to Propaganda Bistro. I ordered Bánh mì, a local delicacy made of baguette, vegetables, and meat. Did you notice the diacritic in “a” and “i”? You will see further in this story, that the Vietnam language really loves to use diacritics.

    A picture of Bánh mì

    We then walked back to our hotel, but stopped at a nearby minimarket. I brought mineral water and a can of beer. Surprisingly, alcoholic drinks are very cheap here. A can of Heineken costs only VND 20.000 (IDR 16.500 / USD 1).

    The next morning, we had an early breakfast at 6.30. I liked the hotel’s breakfast since they provide a lot of fresh vegetables options. We then took a chartered bus to Cu Chi Tunnel historical site (Khu di tích lịch sử Địa đạo Củ Chi), about an hour from the city. Our tour guide explained that most of tourists visiting Ho Chi Minh city would also visit this site. En route to the site, I noticed several interesting facts about Vietnam, compared to Indonesia:

    • People drive on the right side, unlike in Indonesia (left side)
    • There are a lot of motorcycles on the road. Interestingly, there’s no significant air pollution visually. Not sure why until now.
    • The helmets are not of SNI (Standar Nasional Indonesia) standard. Ears are uncovered.
    • People love to sit down on a short chair, just outside their stores.

    We arrived at Cu Chi Tunnel site around 8.30. The tour guide were very happy about it, because we arrived relatively earlier than outher tourists, so he could explain and give demonstrations to us easily without being disrupted with other tourist groups. I was very impressed with the experience here:

    • It was very well organized. For example, our guide explained about how Vietnam soldier used to hide in a small hole, while a local staff was demonstrating it. That same staff was also ready to demonstrate the same thing for other guide of another group when needed.
    • The Vietnamese, or at least our guide, were very proud of their history. They were very proud of how they could fight successfully against the United States soldiers using simple but smart techniques. For example, they built underground tunnels and live there to avoid detection. When they cook, the smoke was discharged from several holes instead of only one, also to avoid detection.
    • I learned Vietnam history in a single trip. Ho Chi Minh city was formerly called as Saigon. After the fall of Saigon in 1975, it was then named after Mr. Ho Chi Minh, the first president of Vietnam. That’s why the city is called “Ho Chi Minh City” instead of just “Ho Chi Minh”. Saigon, on the other hand, was known for a brand of local beer “Bia Saigon”, when I visited this place.
    Group photo at the Chu Chi Tunnel site.

    A few hours later, we took another bus ride to a garment factory. It was not very interesting there, and and some rooms we were not allowed to take pictures, so I could not tell much about the activities there.

    Another bus trip, and we arrived at a small harbor next to Mekong River. We took a motorboat to a small island for lunch. Afterwards, we were transported to another small island to see people living in a village (or, kampong, as the Singaporeans call it). Fresh tropical fruits were served and accompanied with local music for entertainment. We also took a golf cart for a tour around the island, as well as taking the traditional sampan (small boat) along the river.

    People on the boat
    Fried fish for lunch
    Local entertainment
    Golf cart with people in it

    We then headed back to the mainland, where we took another bus trip back to the city. The traffic was bad, so it took a few hours. At around 7 PM, we arrived at a restaurant called Ngon. Upon entering the building, a picture of James Bond movie where the protagonist enters a crowded restaurant in the Middle East setting. Though they serve Vietnam food, the interior is Arabian style, with red paint dominating the walls.

    Arabian interior design

    The next morning, we went to the Saigon Post Office. It still serves its purpose as a postal service, but also host of many souvenir shops. I bought some souvenirs there to bring back home.

    Picture of P in front of the Post Office

    We then walked to Tân Định Church, another iconic landmark of Ho Chi Minh City. Unfortunately it was closed when we arrived, so we could only took a picture from the outside. En route, we also stopped by a café that sells egg coffee. It is a coffee that -instead of milk to make foam- uses egg.

    Photo of the Tanh Dinh Church
    Egg coffe

    Then, it was free time for everyone until dawn. Some of us went back to the post office to buy another souvenirs, some went to a local market to get another souvenirs, while myself had a Bánh mì for lunch then went back to hotel. I chose to take a rest since I still had an open wound on my leg and I’ve got all my souvenirs.

    In the evening, we had dinner in cruise ship. We could aboard the ship around 6.30 PM, and buffet dinners were served shortly. Dinner experience itself was not so good. There were not a lot of space for us to sit and the food was so-so.

    At around 7.30, the cruise sailed, spending about an hour along the Sai Gon River. The view was very nice and relaxing.

    View from the cruise ship

    We went back to hotel and take a rest, before heading back to Indonesia the next day. And that wrapped our journey to Ho Chi Minh City.

  • All Boys Trip

    All Boys Trip

    I am a proud alumnus of SMA Kanisius, a boys-only high school. Every year the alumni association held a reunion. I rarely participated in such event, but this year somehow I had a chance to do that. The idea was to bring my son D with me, also as a chance to introduce him to such school.

    For a train that departed at 6.10 AM, I took a taxi from home at 4.30. My wife and son complained that it was too early, but I’d rather have a peace of mind. The train arrived at Gambir around 9 AM. We took a TransJakarta bus to Monas, continued to Bundaran HI, and took an MRT trip to Blok M Plaza.

    There, I met my parents. We spent a few minutes in Taman Literasi Martha C. Tiahahu, a literacy-themed public park. There were a small library as well as children playing area. A (relatively expensive) cafés were also available there.

    After playing, we walked to Claypot Popo. I knew this place from previous trip to Jakarta (see Off-The-Grid Wedding), and my dad indeed like it. D didn’t really like the menu, but he (as before) was very interested to see the kitchen.

    After lunch, we took another MRT ride to Bundaran HI station, followed by taxi ride to the high school. I met many of my old friends, as well as new friends (as we were in the same batch but never in the same class). D met new friends and played simple soccer game.

    I met many friends, too. Most of them were my classmates when I studied in this school. It’s fun to meet them again. Some of them became doctors, some founded successful startups, some enjoying normal life with family.

    Around 16.30, D already complained that he wanted to rest. I said goodbye to some of my friends and headed to Sofyan Hotel, where I would stay a night before heading back to Bandung the next day.

    We took a rest at the hotel, and headed out again for dinner. D wanted to take a Commuter Line trip, so we took a trip to Jayakarta station, looking out for Pontianak food at Jalan Pangeran Jayakarta. The food was relatively expensive for a road side food stall, but the value for money was quite okay.

    After dinner, we took a bajaj ride back to the station, and another Commuter Line ride back to the hotel.

    The next day, D woke me up early in the morning. I offered him to swim in the hotel, but the swimming pool was too small and nobody beside him was swimming there (it’s 5.45 in the morning!), so he got bored instantly. We took another Commuter Line trip to Jakarta Kota, for a nice breakfast in Glodok area.

    Around 9 AM, my friend Paul arrived. He is also an SMA Kanisius alumnus, but couldn’t make it to the reunion the day before. We took a walk from hotel to a nearby café “Dua Nyonya”. I joked that one Nyonya (madam) is already exhausting. 6 pieces of fritters cost IDR 57.000 but the place was really nice for a chat in the morning. D helped to take a photo of us together.

    We checked out, then Paul drove us to the train station. En route, he also showed me several nice places around the Cikini area. A nice tour in the morning.

  • Visiting The Dead

    Visiting The Dead

    In 2020, COVID-19 hit the world. It was deadly mostly to people with comorbidity or senior citizens, including my grandfather of 100 years old. Due to safety reasons, he was quickly cremated and his remain was kept in a columbarium. Fast forward to 2023, COVID-19 was largely under control and there was plan to take the remain and bury it properly, in the same grave as his wife in Bekasi. The burial process involves proper praying ceremony with close family members, just like a regular wake.

    When I heard the news from my cousin Reza, I was really excited to come and join, since it was also a chance to meet my relatives that I have not met for some time. I initially planned to travel alone using intercity train service. However, the train to Bekasi only run at certain times, and none of the times allowed me to arrive at the graveyard on time for burial. I then decided to drive myself. Driving round trip in one day would be too exhausting for me (I’m older now and I have two children fighting each other every time when they are not sleeping). Therefore I planned a one night stay at a hotel nearby. Since the kids did not have to go to school and my in-law agreed to take care of them, I asked my wife to come along. And finally, since I had an overnight stay planned, I also planned to visit my mother’s tomb a well.

    Long story short, I headed out from home at 6 in the morning with my wife, to take a breakfast at a nearby yumcha restaurant. They had this promotion of free drink for each meal purchased. The kopi was really nice, plus it was served in this fancy classic cup.

    Breakfast

    At 7 AM, we drove to Pondok Ranggon to visit my mother’s tomb. We met Pak D, the person in charge of taking care of the tomb. We also paid him the yearly maintenance fee. Since three of my mother’s siblings were buried at the same graveyard, we also visited and prayed for them.

    Graveyard

    From Pondok Ranggon, we drove again to Pereng, the graveyard for my grandfather in Bekasi. We were slighly late, but still in time for the procession. Most of the relatives were there, but some others could not come due to incompatibilities. In Chinese culture, there is a belief that if people with certain Chinese zodiac signs are not compatible with the deceased, bad luck may come.

    The altar

    Around 11.30, the procession started. A monk lead us in chanting to deliver my grandfather spirit. Fresh food were served on the altar, while fake paper money and clothes made of paper were burned with the hope that the deceased can use them in his afterlife.

    Documentary video by my cousin Devi

    Right after procession ended, rain poured hard. We waited until the rain eased, then said goodbye to each other. Most of them went back home, while I and my wife drove to Cikarang to spend the night there. I chose Cikarang because it’s not too far from Bekasi, halfway back to Bandung, and close to Meikarta.

    In case you didn’t know, Meikarta was an ambitious real estate project in Cikarang area. It was mentioned in the news recently because they could not deliver the promised units to its customers. Honestly, I found their TV ad fishy since the beginning, reminding me of Terminator’s Skynet.

    https://www.youtube.com/watch?v=Z7psCeH5kKw

    There was not much to see there (in Meikarta). Our hotel however, is located more of at the Lippo Cikarang area. It is more of an industrial complex (that are marked with thick yellow cells, if you play Sim City), where many factories were built around that area. When we arrived, we saw what looked like a Korean chatting with the security guard. A tourist, we thought.

    We then checked in, took a shower (we were drenched in rain) and take a good nap, before heading out in the evening for dinner. The food in the hotel were relatively expensive, so we walked out a bit and had dinner at a simple Indonesian restaurant.

    The next morning, we had early breakfast at 6 AM. It turned out that 90% of the guests eating breakfast were Koreans! Most of them bought their safety helmets, a sign that they work in civil engineering and their employers provided this hotel for their residency during their work in Cikarang. Even the hotel served a Korean menu. At 7 AM, we drove back to Bandung, as I had to work again.

    But first, a selfie.

    Marhaban Ya Ramadhan!
  • 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.