Home Server May 2017
Tuesday, May 02, 2017

It has been no secret that I've been working on a few personal projects of my own. My friends know how fucking excited I've been getting lately when I hit my milestones.

Since I've been repeating myself a lot lately and it's quite hard to explain quickly without the aid of diagrams, I created some diagrams.

Firstly, I'm using an open source solution called Docker for hosting my services and it's amazing and I urge you devs out there to check it out. In simple terms, it's a way of virtualizing services rather than the OS itself. The benefits are that there is less overhead, starting and stopping services are just a few simple commands away and you can duplicate as many services as you want across a cluster(swarm).

Right now I have a few services that are always turned on.

  1. Automated torrent downloading
  2. Google Drive-like service for files
  3. Internal DNS service
  4. Service manager for docker containers
  5. VPN service

I also have some development sites that runs on and off based on changing needs (eg. web, database service).

Secondly, I've been reading up quite a lot about reverse proxy and I've been wanting to set them up for months/years(?!) but just haven't had the time to get to them. In simple terms, a reverse proxy is kind of like a seamless way of redirecting users to the correct server based on the URL. It could be used for load balancing, or in my case, used as a transparent way for end users to access the services*.
* | why not DNS? Because DNS only resolves IP but cannot resolve port numbers. My services are only exposed by port and are (mostly) on a single machine so I had to do it this way.

However, I still have a DNS service running because I need to be able to resolve URLs to a physical machine. (no messing with host files anymore)

An overview of how it works is shown in the diagram below.


--- update ---
Made a mistake in the diagram, when accessing data.service it goes directly to the DNS service then to the NAS. Does not require nginx to resolve at all.

When the reverse proxy server (aka. nginx) is hit with a URL query, eg. (http://torrent.service), it looks in the configuration where to redirect the user to seamlessly in the background. The seamlessness/transparency is a very powerful tool. I will explain it in more detail after illustrating how the general flow of logic of this setup.


* | client machine must be configured to use my DNS server (forced over VPN)

When user visits any site ending with .service or .dev, the DNS service will return the address of the services. Because most of the services are hosted on one physical machine, the nginx (reverse proxy) service resolves the incoming request to the corresponding service/dev.
* | if user visits another site eg. google.com, it will be resolved normally to the internet (albeit with a very slight latency overhead)

Going back to why nginx (reverse proxy) is a powerful tool, it's really the transparency that makes it awesome. When the user visits http://torrent.service, the DNS resolves it to the machine (eg. 172.16.1.66:80*). The nginx service listening on port 80 takes that query and forward it to the service (eg. 172.16.1.50:12345). However, to the end user, the URL never changes, the visible IP never changes, it all works seamlessly in the background.
* | IP and port number separated by semi-colon

eg. You navigate to the "downloads" page. The visible URL changes to http://torrent.service/downloads, it looks like it's 172.16.1.66:80/downloads to the system, but it's actually 172.16.1.50:12345/downloads. It all takes place automagically.

It's great when everything comes together but I definitely had my fair share of problems when setting it up and have to combine multiple sources of answers online before I could get my services running the way that I want them to. There is still 2 amazing projects that I'm looking to tackle before school starts proper, my fingers are crossed.

I'll like to clarify that when I say service, it may be made up of one or more services. For example http://torrent.service is made up of Transmission (the downloader service), and Flexget (the background service that searches for latest episode).

To end it off, everything is hosted either on my secondhand Thinkpad X200 (released in 2008), or on a Raspberry Pi 3. So if there's anyone who's interested in sponsoring me for anything (I can even make a video about it), contact me.

Labels: , , ,


3 tips for easing jams on travelator
Wednesday, December 28, 2016

This topic is always on my mind whenever I see a travelator in a crowded area. Finally decided to write about it probably because of the videos I've watched recently regarding traffic jams where they described something called the ripple effect.

This video does a good explanation of the problem with traffic and the idea is similar to what I'm going to talk about.


A little background information
I take the train to school everyday and there's a rather long travelator on the connector between the purple and yellow line (which I take). Whenever either train line arrives, a good portion of the commuters will alight and make a beeline for the connector. Unless I'm ahead of the pack, the travelator will always end up being jammed with humans and no one can walk freely on it.

The amount of people ain't the main reason for the jam, but the amount of people who don't know how traffic works causes it.

Here's an image I've drawn to illustrate the problem.

the moving speed is just an example

As you can see, the travelator is moving at 3 meters per second. Some people will to stand on the left hand side to facilitate people who want to move faster on the right hand side.

Person A and B is walking on the travelator at 4m/s, adding on to the 3m/s that the travelator is moving at, their net movement speed is 7m/s. When person B exits the travelator, he should walk at 7m/s so that person A would not bang into him. But since a typical person would not walk at nearly twice his speed, B continues walking at 4m/s.
Hence B exits the travelator at 4m/s.

Can you see the problem here?

Because B is only effectively +1m/s faster than the speed of the travelator, anybody who is walking more than 1m/s will eventually have to slow down, and by slowing down way too quickly, the people behind him have to slow down even faster and some even comes to a stop. The exact same ripple effect observed in vehicle traffic.

Even if B exits the travelator at 6m/s, it still means that the maximum available move speed of person A behind him is only 3m/s.

Of course this is only a problem when the amount of people on the travelator hits above a certain sweet spot; as long as the commuters are spread out it should not cause a jam. But during peak hours, do yourself and your friends a favour, follow these 3 simple tips to ease the jam on travelators!

1. Exit the travelator as fast as you can (faster than the net speed of your walking + travelator speed) or just clear out of the way.
2. If there's a jam infront, walk slowly. Don't walk fast and then get stuck and stand there, it makes the jam worse.
3. If you're a slow walker, just walk/stand on the left hand side it's not going to take that much longer.

Labels: , , , ,


M Company Field Camp Part 1
Saturday, September 10, 2016

Field Camp is the key milestone every Singaporean soldier will go through before passing out of BMT. I looked through my blogging draft folder and found this nearly 2 year old post sitting there, begging me to relive those wretched memories.

note: the events that occurred during this field camp don’t feel as dramatic to me anymore in hindsight after going outfield countless times, but it was memorable as the first I’ve ever experienced.

See we had this system of booking in camp every Sunday, however the ones in control of our lives decided to toy with us by ordering us to book in on a Saturday and starting the Field Camp on a Sunday. The reason given was because the FC was 6 days long, so by starting early we can book out on Friday as usual. I call bullshit on this.

Falling asleep that Saturday night proved to be a tougher task than usual; after all, everything we have trained up for will be tested here, both physically and psychologically.
Plit plat, plittery fucking plat
We woke up to the melodious tune of rain falling outside our bunks. I thought: “Great, now everything’s going to be postponed because of lightning risk”.

Haha nice try brain.

The truth hits me dead smack in the face as we hear the dreaded words, “Everything on!”. Marching 8KM into the forest with full combat gear in the rain, how bad could it get? Oh damn I jinxed it.

At the 5KM mark, we got to take a short break by putting down our field packs that felt like it has been steadily getting heavier. If not for fatigue then it has to be all the rain it has been soaking up. As I watch my buddies remove the load off their backs, a strange phenomenon happened that I have never before seen in Singapore.

Their bodies (including mine) started smoking. There was a proper, visible steam coming off our heated bodies. That should give you a pretty good idea of how much heat we were producing, as well as how cold the weather was. A short rest got us through to the destination that felt way longer than it’s supposed to, thanks to the rain that just kept falling on our helmets. “plittery fucking plat

If god exists then he must’ve been playing us like a video game; as the moment we reached our destination, the rain magically stopped. Looking on the bright side, this has softened up the ground for our camp site so getting all the poles and pins down securely was noticeably easier. The location actually feels rather calming, with rows of big trees that seemed to provide some form of natural shelter from elements.

We then proceeded to do some soldier-y stuffs, after ensuring that we are drained, the SGTs released us to rest for the night. Night time in a forest is really dark, 伸手不见五指 kind of dark. We can rest easy knowing that the made-up horrors of our over-imaginative mind will accompany us to sleep in total darkness.

Plittery fucking plat

Sleep is of course conditional, if we can even get any as it started pouring in the middle of the night. Rain has this annoying ability of finding it’s way into any open space and splatter all around us. It gave me a free foot bath at 2AM that I did not request for, along with it a free industrial grade air-conditioner. I kept myself warm by hugging my wife. Remember the big trees I just mentioned? Man were they pretty standing there doing absolutely nothing.

Day eventually came, we owe that knowledge to our incredibly accurate watches that rang some time before 6am. After stumbling around to get ready for another day of exciting adventures and free showers, everyone was rounded up for some adrenaline pumping rifle PT.

The rest of the day proceeded with soldier-y stuffs of practicing movement and firing blank rounds. It was a hot, tedious day where we cultivated a very close relationship with nature, until my SGT messed up big time and made all of our days.

While my platoon was taking turns for some activity, a civilian looking car came into view and parked some distance away from us. Who the hell drives a car into a jungle?! I didn’t have to wonder for long, an old man in uniform stepped out of the car with 3 crests on his chest.

The only Colonel on this island, the highest ranked, and also the commanding officer of BMTC.

Back then we were recruits, scrubs worse than maggots; I haven’t even fully understood the ranking system yet. None of us knew what to expect from this encounter.

My SGT followed procedure and saluted the higher ranked officer. It was at this moment that everyone realized, he fucked up. He was holding a document on his right hand; because of that, he unconsciously saluted with his left hand.

“Sergeant, are you sure you are supposed to salute with this hand?” - Col

He did a quick switcheroo, but the damage was already done. We had to slap each other (not on the face) to stifle our laughter. We did not see him for about 3 hours after that, I’m sure he was just watering the plants with his tears. The other SGT told us not to broach the topic to him. Rest in peace Jordan, I will always remember your name because of that you did.

After a long day of activities, night eventually fell. We cleaned ourselves, then finally lay our backs against this plastic sheet that totally shielded us from rocks underneath. Fatigue started setting in and my eyes closed for a good night’s rest.

“Plittery fucking plat”

to be continued in part 2

Labels: , ,


2016 Minimal Look
Wednesday, August 10, 2016

Can you believe that the old design has been around for almost 4 years?!

Of course it has seen many many iterations, with the last major change coming in on 27/10/2013. The remaining revisions are just attempts to improve legibility and make it easier on the eyes for the readers.

I've been doing quite a lot of geeky stuffs and I'll find time to share about all the productivity stuffs I'm tinkering around with, ranging from simple text expander applications to easy OpenVPN setup on the Raspberry Pi 3, to simple Alfred 2 workflows to streamline my working habits.

those were the days

Even though it works well and loads really fast, it's definitely time for a new paint job. This current template is still very much unfinished and I will update it here and there whenever I have the time. Also, the Archives button at the bottom doesn't work right now, though I doubt there's anyone who'll dig through all the old posts.

For those who knows me IRL and saw the before and after, I'll like to know what you think of the redesign.

School is starting.

In a couple of weeks I'll be back to school and hopefully the self-studying I've been doing will pay off and it'll be easy to kick ass in class. Or it'll really be a waste of my holidays.

I've recently bought a few interesting gadgets, like the Jaybird X2, blank PBT keycaps which is a lot more durable than normal ABS types, as well as a really cheap phone for me to develop Android apps on. Probably need to control my spending this month but man I have not regretted a single purchase yet.

Well, look forward to all the geeky happiness that I'll be sharing soon.
Homage to the old design.

Labels: , , ,


GE2015
Friday, September 11, 2015

This will be the first time I'm voting in the General Elections, the first time I got a "direct" say about the future of Singapore or maybe just the area I live in. I wasn't interested in politics in the past and didn't pay any attention to it, but looking at how rapidly Singapore has changed over the years, I decided that I'm better off making an informed decision.

Initially, I couldn't choose at all.
On one hand, the PAP is the ruling government so all I see is the things they've promised but failed to deliver. On the other hand, the opposition parties are making promises that I am not sure they can keep.

It felt like apples and oranges.

Even if all the opposition party win in their respective constituencies, the ruling government will still remain PAP. I'm not saying that it's the right choice to overthrow our 50 year-old political party, because they still have the say in the parliament. It will be easier for new policies and the citizens' concerns to be brought up and better received if the PAP was representing them.

On the other hand, the opposition parties seems to be the ones who have a connection to our worries and frustrations and Singaporeans. They seem to be the one who be speaking out from their heart and not giving us some cold hard numbers.

After watching quite a few rallies, I have came to a conclusion about what my choice really is about.

If I vote for the opposition party, they generally give me more freedom over how to live my life. Generally giving us more monetary power and for us to choose how we want to spend them. That includes the issues surrounding our CPF and housing.

If I vote for the PAP, they tell me what's good for me. It's up to me if me want to believe them or not, but they have stated their case very clearly and gave numbers to back up their claims. It feels like we have less freedom to choose how we want to live our life, but they say that it's for our own good.

Hence if I vote opposition, can I trust myself to make a decision best suited for my life? Am I smarter than my 50 year-old government to know which policies are best suited for my interests?

If I vote the PAP, am I able to buy into what they say is good for me? Am I willing to sacrifice my "freedom" to choose (not to accept) what they say is best for me?



Decisions, decisions, decisions.

Labels: , , ,


8 things I learned/experienced in NS
Wednesday, July 15, 2015

The 2 years is finally over. It’s interesting to look back on my posts, or the lack thereof.


I have done my duty to my country and it's time to move on to the next chapter in life. It felt surreal when I receive this file telling me that it's really over. (well, there's still reservice to come...) I didn't jump in joy and scream through the corridors like a maniac like I imagined I would.

It feels like there's a little hole in my heart, since I just lost my second home. That crappy little shit hole that I spent 17 months in, is 17 months that all of us spend trying to make the place as comfortable as possible. Hot pots, drinks, snacks, bedsheets, bolsters, personal fans. Honestly the only things we're missing are air-cons, WiFi and computers.

We've had our ups and downs; and the downs are really so shitty to the point where I will laugh at my own misfortunes. Other people will never understand the kind of things we went through, similarly I will never understand the kind of shit other NS guys go through.

This however is probably the bonding force among the males in Singapore, as almost everyone goes through this 2 years. You can go up to pretty much any guy, ask him about his experience in NS and he'll be more than happy to share with all the funny/hard shit that he has gone through.

Without going through all the little things, there are a few things that I've learned/experienced during my time in the army.

·  ·  ·

1. Sleep everywhere
Even though I was already pretty good in this area, being in the army has brought my abilities to the next level. I used to be able to sleep on my school desk, public libraries, on the bus, standing on the train or in some really awkward position; but NS really drew out my hidden potential.

I am now able to sleep instantly on any moving vehicles, or out in direct sunlight, sweating and while mosquitoes are picking me apart; out open under the moonlight without nothing but the night wind as my blanket. I’m sure many people can help testify for my ability to sleep everywhere.

·  ·  ·

2. Understand bits and pieces of Hokkien
Probably one of the more vulgar sounding dialects we have in Singapore but it is the core of what makes the SAF #UniquelySingapore. Back in the old days we would refer to them as hokkien 兵(ping), which makes up for most of the regulars/superiors that we have.

My commanding officer clearly came from that era as he gave most of his speeches in Hokkien, causing the auditorium to resonate in laughter; except for my indian friend who just laughs along with a blank look on his face.

The last memory I had was a few days before I ORD, when some officer basically shouted in my friend's face
"YOU FUCKING CB!!!"
Well, he may have kind of deserved it but still, that was a pretty depressing way to end off his national service.
·  ·  ·

3. It only works if (almost) everyone works
Well, I'm not quite sure what kind of lesson this is but it's kind of like, everyone has the same tasks. And it's expected that everyone finishes it. But there will be some motherflipping butthole who refuse to cooperate and do it; finding ways to chaogeng as much as they can.

If too many people chaogeng, everyone fails overall and goes through some kind of unreasonable punishment.

But if JUST the right amount of people chaogeng, everyone still passes through the stage, albeit putting in more effort. The frustrating thing is that the slackers actually get away with it.

Which is actually pretty similar to doing a school project. That butthole who slacks off still manages to pass on his subject, he gets his grades and pat his ass goodbye. Sure he may not have any friends but he was never the kind to mingle around anyway. It's not like we can do anything to him anyway, he would rather watch everyone sink with him than try to do something about it.

I really detest people(burdens) like these. So much pent up angst.

·  ·  ·

4. There is more to life than whatever I'm going through right now
This realization has probably saved my sanity more times than I could count. When I go through a 5D4N camp every single week for months at end, I started to lose track of my own life. I felt like camp was all I had and all there is to my life at that moment, I would worry about my duties even when I'm outside, I view booking in as going back to the "normal" life.

But it's not,
Everything is only temporary.

Sure it makes sense thinking about it but I'm sure there were many guys who sank into this kind of mentality. I am lucky that I was given many opportunities to get out of that mundane lifestyle, given the chance to look at the big picture. It made me realize that I am more than just a tiny cog in a huge machine.

Sometimes life takes a bad turn, and it stays that way for a really long time. Long enough to make me "resign to my fate". Through BMT I really understood that things will get better, it's just how long.

Like my friend always said to me,
Winter always turn to spring.

·  ·  ·

5. Idiots
Sure, I've met idiots along the journey of my life now and then; never were they all clusterfucked together in one camp. I can't count the number of idiots I've seen so far, it's not just about the stupid ones.

5.1 Stupid idiots
Stupid people who can't seem to get shit done. I can teach them how to do things and they will do it completely wrong. When questioned, apparently "I taught them that way". (thankfully the main culprit isn't in my section)

5.2 Kind idiots
Kind people who let others take advantage of them. The group of people we try to help, to tell them to grow some balls and fight for their own welfare. Sometimes I don't understand why they will just let others walk all over them.

5.3 Fucking idiots
These are the kinds whom you should never interact with, cause their idiocy is infectious. These are the kinds your mother warn you not to fight with, because they will drag you down to their level and beat you with experience.

·  ·  ·

6. You know who goes through shit with you, and who throws shit at you.
After going through all the outfields, I know who are the ones I want to go to war with; and who I will shoot on sight. I won't classify my experiences as particularly extreme, but it's still enough to weed out the bad.

The selfish/self-centered people are really easy to spot, not just about sharing things but it's obvious when they only care about themselves. The ones who'll probably use me as a meat shield.

The neutral parties doesn't annoy me but I get a little exasperated looking at them. It's kind of hard to explain, but they don't try to enjoy the job that they're doing. It's like they get thrown into the sea and instead of learning how to swim they just continue walking. They just do things at their own pace, but they do their job regardless so I can't complain about that.

Then there are the people who will really go in neck deep with me, who will laugh and cuss about all the shit that we went through. Friends aside, I'm glad my boss is one of these people. Fighting a war in the jungle/desert has been much easier thanks to his company/leadership, the amount of shit he goes through with us is truly commendable.

·  ·  ·

7. It pays to be smart
It sounds like I'm praising myself but hear me out. I am. Kidding.
I don't mean intellectually, but more of street smart. In the sense that you gotta know what's going on around you, gotta know how to get things done. Establish that you're the guy to go to, and your words will start to hold more value.

I'm not saying this as a way to slack off, no. In fact I usually work as hard, or harder than my peers. Though it wasn't intentional at the start, this allows me to allocate work I don't want to do, to other people.

Take for example the removal of the tank engine, the usual role I take requires me to remove 9 components, while the other side will only need to remove 4 components. I will usually take a lesser time to accomplish my task, not because I'm better but because the other role is repetitive, pain in the butt to do. However, doing this 9 components role so many times made me the most skilled in this area, you see where I'm going with this.
(p.s. sometimes I remove no components because I operate the crane. not the easiest but probably the least effort.)

Point is, you still gotta put in the hard work and understand the situation that you're in. Choosing what to do afterwards sets the difference.

·  ·  ·

8. Suck thumb
Life will throw you a lemon from time to time, most of the time you can make a lemonade out of it; but sometimes, you just gotta eat it as it is. You just gotta accept things as they are, that there is absolutely nothing you can do within your power.

Or put it this way, the consequences of dealing with the unpleasant situation is worse than going through it.

Life has already taught me this lesson time and time again, but I think the army brought it to a whole new level. What's worse than going through it, is the dread that comes before it. eg. My constant bitching about the dread I feel before any outfield.

·  ·  ·

There are so many things that happened in the span of 2 years I think it will take an extremely long post to finish writing it. These are the more outstanding ones that I can think of. I finally got around to writing this 1 month after my ORD and it definitely turned out a little different from what I expected it to be.

The past 2 years now feel like a dream to me, all the experiences/memories feels as if they weren't mine. But deep down I know they're true, all the shit that we endured really happened, and we have nothing to show for it. In retrospect everything seems fun and exciting but I remember exactly how I felt during times of despair.

I have seen so many people get injured in my line of duty yet we have no risk pay, we go out into the jungles, towing back vehicles and carry out legitimate recovery missions and yet there's no combat pay. The things we've done and yet people think that we're a slack vocation.

I have learnt so much, and even though I don't like to admit it, all these experiences probably changed me. I'm probably different from when I first entered the army, for better or worse I'm not quite sure.

If I had a choice will I do it again?
Hell no.

Labels: , , , ,


The last outfield ever
Wednesday, April 22, 2015

It's done.

It's finally done.

I have finished the last high key event of my NS life. Let the gates of chaogeng open and may I siam every single possible thing from now on. The road has been long and arduous but the end is finally in sight!

As such, let me share the last glorious outfield story that I went through.

"It was good."

Yup, that pretty much sums it up. No ten paragraph long worth of whining and complaining this time round, because it was just that good. No, I'm not saying that the I enjoy the lack of sleep and the swarms of commando mosquitoes*, but this might be the best outfield we have ever been through.
(commando mosquitoes: mosquitoes that are resistant to insect repellents and stings through layers of clothing)

It didn't start off all well and swell though, we had to book in earlier on a Saturday then take a bus to Gedong camp. It wouldn't have been necessary if not for the "rally talk" that the big boss has for us. I really think that giving us more time/freedom outside is a heck lot more motivational than to summon all of us back and try to pep talk us.

Oh how glad am I that I was wrong about this.

I can't believe what I saw that day, one way or another they managed to bring siam diu to us. TO US. I don't think I can elaborate anymore than this but it seemed like the big boss didn't seem to know about how far they'll take it; and it was toned down mid-way. It was pretty amazing though, the guys who were there would know. We even had some beer.

There's a lot of little details that I left out but all in all everything turned out fine, so I'll fast forward to Monday when we finally moved out.

The weather forecast was thunderstorms for the entire week. I don't know who the weather forecaster is but he ought to get fired as it did not rain at all during the week, not just that, we were all destroyed by the searing heat of >33º celsius. However, the word thunderstorm was perhaps apt after all. The weather forecast of 34º thunderstorm held true; under the ridiculous heat there was thunder and lightning everywhere, just no rain. In hindsight I'm glad it didn't rain though.

The fight went on for 4 days. Similar to the previous outfield, other than one of our own vehicle no other vehicles from my company broke down. This is amazing on so many levels, we couldn't believe ourselves and didn't want to say anything to jinx it before it was all over. Even though it felt like forever during then, a couple of winks later it was already the last day.

Our last mission was holding the line for a set period of time, but for us it was just surviving at some remote corner. We were all facing the road where our allied forces were holding on to, if we see any enemy vehicles appearing it would've meant that we have failed the mission and that we're pretty much screwed. Around mid day, we saw an enemy vehicle sliding into view over the horizon.

Panic sets in for us as we were not sure what we're supposed to do. My job really isn't to fight off enemies and we didn't really have the equipment to "kill" them anyway. Further down we saw that our CO and RSM started their vehicles and were preparing to retreat; is this a real threat?! We have absolutely no idea but we held our ground and prepared our weapons to fire upon them, to at least scare them away even if we couldn't "kill".

Our officer was also caught off guard by the sudden turn of events and told us
"Anyone who takes down that tank gets 2 ranks promotion!"
or something along those lines. (cause technically we do outnumber them)

After a few minutes of being in high alert and waiting in anticipation, we got hit by an anti-climatic bomb. The enemy was already "dead" and merely shifted to the backline so that it won't clog up the roads. *epic face palm*

As we waited during the battle for something to happen, we were all hiding within the shady trees, away from the relentless heat. During this time, a few wild monkeys appeared and we decided to give them some food. We weren't exactly supposed to do that but since we're going to throw away our food at the end anyway, we decided to throw whatever excess we have left to them. It was incredibly amusing to watch a monkey stuff itself with luncheon meat and biscuits. They are so incredibly greedy that when they were done you could see all the food smeared across their tiny cheeks!

Slowly but surely, the battle came to an end.
And we all rejoiced.

Everyone gathered at the finish line and I finally got to see my buddies that have disappeared for the past couple of days; we shared all the interesting things that has happened as we sat in a circle around a mosquito coil; just because our mission has ended, doesn't mean that the mosquitoes' mission to make us miserable has ended. (damn you mozzies!)

The most amazing thing out of this outfield is that 2 companies has zero vehicle breakdown. I can't stress enough how improbable it is for that to happen; our bosses were naturally elated as well and told us that this is a really rare occurrence. Day turns to night and all the tanks slowly made their way back to camp and as the last vehicle pass through the gates, we can finally heave a sigh of relief. Our job is done, and for the first time, we went back along with the rest of the battalion. We didn't need to work overtime recovering all the vehicles that were left outside, everyone was back safely on time.

Even though this is supposedly the hardest outfield we'll ever have, it turned out to be the best one we've ever been through!

With the end of this outfield, it also concludes the last climax of my army life; all that's left is the conclusion and the summary which will be done within the next 49 days as of now.
49 days.
It's hard to believe that I have gone through so much in the past 22 months, so many awesome memories and so many fuck ups; so many lessons learnt.

I'll take the next 49 days to write about everything I've learnt in my service; maybe revamp this skin after such a long time as well.
p.s. I just got my laptop
p.s. I just got someone
p.s. Things seem to be falling into place. 

Labels: , , , ,


Jin paiseh
Sunday, February 22, 2015

So... I went outfield last week; and boy that was a heck of a journey. Exercise Wallaby pales in comparison to the amount of shit we went through. It's hard to convey how hard it is because in all honesty, we did not do much work.
(correction by the time I finished writing this 3 weeks has passed since)

It all started on Day 1, when we had to set up camouflage for our tanks, and failed terribly. Poles meant to keep the net above the tanks broke in the midst of our efforts. The gods then decided to piss on us through a heavy downpour, soaking us to our bones. After thoroughly making sure that we are all wet, it stopped raining, the skies cleared up, bringing in the lovely, warm sunshine. But that lasted just long enough for our skin to become clammy, and for our uniforms to dry to the point of dampness.

Whatever we've done wrong to the heavens, it clearly decided to fuck us today of all days. Because it rained out of no where, and even harder than before. After struggling in the rain for eternity, we finally finished and took shelter. Except, there's one more vehicle that requires us to camouflage.

Night finally came, the one thing we looked forward to was fresh rations packets straight from the cookhouse in camp. Some warm food would definitely lighten the atmosphere.

But of course, for reasons known only to the devils, there wasn't enough food for all of us. 3 packets was all they could find, 3 fucking packets, for 9 people. Fortunately, we do have some food with us so the other 6 guys just had whatever we brought.

The night ended rather early and we prepared for sleep. I've said this before but I can't stress this enough, tanks are the polar opposite of the word comfort. It is pretty tough to sleep in a confined place where we can't stretch our legs fully or turn our bodies.

Morning finally came after a half-assed sleep, I had a full bladder as I woke and needed to "release the kraken", but nooooo. Of all things there was a swarm of bees above my head. And I'll admit it, I'm pretty scared of bees, not to the point where I'll run and scream; but I stay the hell out of their way!

That said, there really wasn't any way out for us. Turns out my friend behind me was having a mini panic attack as well. We tried many ways to repel them but to no avail, so we just shut ourselves in and hope that they'll just leave eventually; and they did, but that was an absolutely horrible way to start the morning.

The rest of day 2 was a waste of time as the fight began as the sun sets. We rescued some vehicles here and there, nothing really worth mentioning, until day 3.

None of us will ever forget day 3.


That's the entire reason for the title.
Firstly, our Bronco got stuck in chest high level mud. Then my vehicle attempted to rescue it. (keyword: attempted) In our efforts to pull it out, we got stuck ourselves before even reaching the correct position. I'm can't deny that it's my team's fault for being inexperienced, but honestly we have never faced a terrain like this before.

The location has tall grass all over the place, we checked the ground by jumping on it and making sure that it's hard enough for our vehicle to pass through. It wasn't exactly cold hard solid ground but it was pretty close; so we went ahead with it.

The moment the tank moved over that terrain, the tracks started sinking in way deeper than we originally expected it to. Turns out the surface was years of vegetation interweaving each other, forming some sort of a hard grass blanket over what was really underneath; sand. Just freaking loose sand. It's not that our vehicles can't go on sand, but it was almost like quicksand, and so, my vehicle got stuck as well.

We've started from ~6PM, calling help from 2 other companies' recovery team. tried everything we could've come up with. 10 hours later, we finally gave up at 4AM. We closed our eyes and tried to get some rest in our tanks within the armies of mosquitoes swarming around us.


At 6AM we got woken abruptly with someone banging hardly on our tanks.
"Take your rifles and all the important things and leave now!!"
I have absolutely no idea what the fuck was happening until we all gathered out on the road. Turns out some other unit is commencing live firing and we are in the firing zone.

lol

I don't know what else to say about this. I also totally forgot to mention the lack of food and water because Day 3 was supposed to be the day we get our resupplies but because of our situation we were stranded some place else and they didn't even bother coming for us.

Day 4 was the day we caught up with our sleep because they just left us at some training shed with roughly 13 of us, with ~15 litres of water and 2 packet of combat rations (and some random small snacks); from 7AM till 5PM. Yup we just sat there, zoned out from our vehicles waiting for the whole exercise to end before we can move in and do our jobs.

That meant that by 5PM the entire battalion was moving back to camp while we have to get our own vehicles out, and bring back every other vehicle that broke down outside.

I know I'm complaining a lot but really, this is rather depressing.

We had to request help from our sister unit in order to get us out of the ditch. The other vehicle that was stuck in the mud had to be shovelled for 2 hours before they could find the part to hook up the winch. Thankfully the regulars were the ones showing their prowess so us NSFs just helped with the tools and what not. By the time we were done with our own vehicles and the other broken down vehicles, it was Friday 2AM.

We were all gathered and prepared to move back to camp but some guy in full gear came out of nowhere (in the forest) and told us that it's a no go for us. Apparently a different unit is starting their exercise now and they have effectively cordoned off the whole stretch of road we needed to go back. After many phone calls and wasted breath, we resigned to our fate of staying another night outfield.

Which wouldn't be that bad if not for the lack of water and food.

We gave up moving back at around 3+AM.
At 6AM a sudden heavy downpour just came all over our faces and bodies. That was one heck of a awakening call. Cutting down the drama in between where we get soaked and ran from vehicle to vehicle, I needed to tow a vehicle back to camp, which meant that I'm driving open hatch. Allowing the rain hit me everywhere it pleases.

Also, because my vehicle was stuck and all, the left track tension was loose so I couldn't go fast nor could I turn hard. Either of which will go very very wrong if I made any wrong moves.
To give you an idea of the situation in real life context:
Imagine a car with the left front and rear wheel not secured properly, you could still drive, but if you do anything stressful to the vehicle it'll come right off. And you're driving on wet mud.

The remaining admin matters were a pain in the ass but at least, after 4 days I finally got proper food in my stomach. I don't think I've starved so much before in my life, which made me realize what a privileged bitch I am.

All of these brings me to the point of my title. This was an embarrassing outfield. We were supposed to be the guys rescuing other vehicles and getting them to safety but we got stuck ourselves. I mean, I don't have the strongest sense of duty but I really have not failed so hard in life before.

Jin paiseh.

Labels: , , , , ,


Happy new year 2015
Thursday, January 01, 2015

Happy new year everybody! It's a little hard to believe that 2014 is over. It's times like these that I feel really lucky to have a blog. It's really hard to put a year into perspective if I don't have some sort of reference.

That said, I have barely 20 posts this year. A stark contrast to the hundreds I used to have before entering national service. This however, is easier to digest as I can clearly see the highlights in 2014. I was supposed to write a post last night to review the past year, but December was so lousy I didn't want to taint the last moments of the year with nothing but complaints.

Here are the highlights of 2014 for me. (roughly chronological)

  • Graduated from OETI
  • Entered 41 FMP
  • Got my new phone Xperia Z1
  • Upgraded my desktop case and CPU fans
  • Getting a tank driving license
  • Getting through recovery course
  • Getting past 100,000 views on this blog
  • Went to Bangkok
  • How I Met Your Mother ended
  • Went on a Yatch for the first time
  • Represented Table Tennis for my formation
  • Bought a new Keyboard CM Storm Quickfire Rapid-I
  • Ran a marathon
  • Got past 1 year in NS
  • Went for Exercise Wallaby
  • Went to Bintan
  • Became a CPL (+$50!)

That's more or less everything that happened; excluding some emotional train rides/wrecks along the way. Also excluding all the hard work that totally wore us down.

In 2014, I learned many lessons. Many lessons regarding how to live as a better human being, many lessons regarding how to deal with other people, and problems. Here's something I've learnt that applies to me; it may apply to everyone else but understanding and experiencing it is different. (much like seeing someone get a cut on the hand)

At first, I learnt that I can't make everyone happy. Then I realized why, because no one can be happy all the time. Then I learnt what that means, it means that I have the choice, the power to selectively choose who I prefer to be happy around me.

But I wasn't happy with that, it isn't ideal "sacrificing" someone else for another. Then I realized, I don't really care. It's like there's two sides of me that doesn't coincide. One that cares about the people around me, and one that only cares about myself. It's not like a 50/50 thing, it's more like a 2 X 100%. So I guess the main thing I've learnt this year is how to balance between those two differences; to the point where I can live with the choices I make.

The next thing I've re-learnt is that when you put in effort, people can tell. They may not acknowledge it or even choose to deny it, but they can tell. I guess I've been going on at my own pace for far too long that I kind of forgot what it's like to put in my 100% for something, or someone.

There's many things I've learnt in NS, but I'll save those for another day. For now, I'm more interested in the days to come.

Before I continue, here's a note to self. I'm currenly writing in Q10 to keep myself from getting distracted but it didn't work, this took way too many hours.

Distraction free writing

In 2015, I will finally ORD; on June 10th. Which means there's <6 months left and I can't wait. There will be 3 more field camps which will really test everyone around me, but I'm sure it'll be fun in retrospect.

In 2015, I will finally start school again after 2 long years. I am excited to be able to study once again without much else to worry about. However I saw Math in the curriculum, have to watch out for that.

In 2015 I will add one more year to my age. I know I'm not a kid anymore, and I don't like that. I guess for me, my age really isn't a factor for the geeky things I like to do. Maybe sports will be a little more tiring than before. Maybe I won't want to stay up late to play games anymore. But I guess I really won't know until it happens.

As for a new year's resolution, there's only one.
Work hard.

There's a ton of things that will happen in 2015, when I close my NS chapter and begin a new one, filled with new people and experiences.

Time to start fresh, it's page 1 of 365.

Labels: , , , ,


Merry fucking Christmas!
Thursday, December 25, 2014

I officially had one of the unluckiest work week of the year. I can't believe I'm having muscle aches from work and not from some kind of exercise. As such, if the design of the blog changed the tomorrow, you would know what I've done on Christmas; else I should probably be heading out soon.

This is the season to be jolly, fa la la la la~! La la la la~! 
Disclaimer: I'm going to whine like fuck

18/12 (Thu) : Finally back for good from my long break. But because I'm currently in the active unit I could be activated any time and the tanks we're in charge of cannot be down for more than a day. Firstly, I was changing out the batteries for our own tank.

Whoever the fuck took them out the previous day didn't label the wires. Got a diagram from a dude and fixed according to it. When it came down to the last 2 wires, I realized that the diagram is fucking wrong. You think, "It's just batteries what! How hard can it be?"

Eh, fuck you understand.

There's 4 of them, each weighing up to 39kg each. We have to lift it up to a height of >2.0m, then lower it down, and slot it in within a confined space where you have to squat in a fucked up position and have to use strength. Not to mention that it's dark inside and a torchlight is mildly helpful at best. (because it was raining it is really fucking dark)

When I figured out that the diagram was wrong and was going to rectify it, got activated to help out with the vehicles that cannot be down (which will henceforth be known as FSV [fucking suay vehicle] ).

Some guys where doing servicing for the FSV and it was down to the transmission filter which is the most fucked up design you will ever meet. The person who design this should really just shoot himself in the head. It's hard to explain/describe the process but just know that you need a combination of strength, finesse, patience and endurance to replace the filter. Oh and also tolerance for pain/itch as the tiny fibre glass fragments will get embed in your skin as you rub against the exhaust pipes.

In the end, it was done after working overtime.


19/12 (Fri) : Nope. turns out that the transmission filter thing that we did yesterday leaked. Luckily, it wasn't due to me. Unfortunately, I have to fix it. I wouldn't blame anyone for it as it's really just fucking bad luck that such a thing happened. I then got briefed that it was cross threading that caused it to leak.

What's cross thread? The hole that a screw goes in has threading right? The threading in the hole got crossed, so it's fucked up and the screw can't go in fully.

Why is this a bad thing? Because the fucking transmission costs $500,000. We tried rethreading the hole which is a really high level task and no one ever did that for a transmission before. It didn't come as a surprise when we just flat out failed and gave up. Due to certain requirements, we had no choice but to swap the FSV for one of our own vehicles.

All these took an entire day so it speaks to how difficult it was. Oh yes I forgot to mention, I was down with flu, as well as yesterday.

20/12 (Sat) : Because my flu didn't get better I missed my friend's dance performance. Sigh.

21/12 (Sun) : City Harvest. I shall keep the rest of the comments to myself. Relieved stress today even though I had to go back to camp at night.

22/12 (Mon) : Had some talk in the first half of the day. The only thing I've learnt from it was,
卖靠北,靠自己
(first part in hokkien, go figure)
The next half of the day was bowling but guess what, I couldn't go for it due to guard duty. It isn't that bad, except that the system totally changed and we got blind-sided by it. Not to mention the uncountable dogs roaming our camp, barking/charging at us randomly.

23/12 (Tue) : Guard rest is until 10am. When I woke up at 940 I saw the message on my phone saying that my boss extended mine and J's rest until 12. I thought, "Fuck yes!". It's just second later that he turned my smile upside down. Apparently we have to swap engines. It's as hard as it sounds, too troublesome to elaborate any more on it.

We are swapping out the engine for the FSV as we need to put it back into service as fast as possible. So we used a working tank in our arsenal and cannibalized it. We had half a day to do the swap, which means preparing our own tank, and the FSV for the swap, removing the FSV's engine, and putting in the other engine, reconnect everything and put on the top deck.

It's doable, and we did it by 5+pm. But guess what, one of the connectors from the fuel line broke.

So... fuck it. We leave it for tomorrow.

24/12 (Wed) : Early in the morning we got scolded by the boss of my boss for leaving the FSV out of it's designated area. Like, "why didn't you finish it yesterday?". LIKE WE DIDN'T WANT TO. Son of a mother bitch only know how to cover his own backside.

Today is Christmas eve so it's half day. 

We've had until 12 to complete our task (roughly 3+ hours). Which means lifting the top deck, replacing the broken connector from the fuel supply line (something no one did before), put back the top deck, reconnect up and be done with it.

We did it by 11:10. Everyone heaved a sigh of relieve and gave a half assed cheer as we packed up the area and prepared to get the hell out of this place.

20 mins later, we got activated yet again. Apparently they closed the ramp door with human strength while the engine wasn't installed, so the cable isn't properly tensioned. I did not know about this as I wasn't there when they did it. My boss wasn't around due to his grandma's funeral, he forgot to mention it and my 2IC also forgot about it.

The moment some dude unlocked the ramp catch, the door just fucking fell to the ground, breaking the steel cable and linkages around it.

Sigh.

Fortunately nobody was near it or someone could've died. I'm not sure how heavy the ramp door is, it was attached to a hinge and it took 8 men to lift it.

The steel cable looked like it freaking exploded, the ends were frayed and it looks like fireworks. Here's the kicker though, we can't leave it alone. It must be fixed by today no matter what. So... for better or for worse, I stayed back along with 2 other guys. Let's just say that this is another task that no one had done before. I mean, we could roughly tell what steps needed to be done based on experience but no one had done it.

Hence began the overtime when we fumbled around with the mechanism figuring out how it worked, how to remove and replace it. We wasted more than an hour finding a replacement part some dude tell us we definitely had, we couldn't find it. So we resorted to cannibalizing our own working vehicle yet again.

By the time we removed both tank's ramp cable mechanism it was about 330pm.
It then rained.

We had a choice, wait, and waste time; or do it now, in the rain. We chose the latter. The rain got heavier and heavier until it became a downpour; though we tried our best to work within the tank, we still got drenched.

It was until the last part, where we had to connect the cable to the ramp door that we realized a fatal lack of foresight. We didn't have enough people. There's no way we can lift it up with just 3 people. Well, 2 because one needs to attach the cable. I had to go and ask favours from some guys doing their duty. Managed to get 3 more, turns out 5 men isn't enough. We managed to lift it with roughly 8, honestly though I didn't bother counting but, eh~

Being the man tasked with connecting the cable, I had a mini panic attack when I couldn't slot the bolt through, because everyone else is withstanding the weight of the ramp door while I fumbled around and tried hammering it in with my fist. As it turns out, my fist is not a hammer, it took me 5 seconds to realize my futile efforts and quickly grab a hammer somewhere around me and started pounding it like a mad man until it went in. And trust me, 5 seconds is a really long time when you're holding that piece of shit.

By the time I reached home, it was 730pm. Which means I missed out on the guys' meet up at 630 and honestly I was really too tired to go. 

25/12 (Thu) : Today.
All that explains my lack of enthusiasm in going out today. We'll see.


Regardless, Merry fucking Christmas guys.

Labels: , , , , , ,


Bintan Trip
Tuesday, December 09, 2014



Went to the Bintan Islands over the weekend with the guys! It's not exactly a place 4 dudes will fully enjoy themselves in but zy bought a GoPro Hero 4 Silver edition. Having a camera record us doing stupid things made it infinitely more fun.

We spent a lot of time in the water filming random stuffs and I got muscle aches all over on the last day; also had the obligatory HTHT sessions.

Honestly there's not much else I can say, everything is in the videos! (my efficiency of making videos is increasing! the quality though... =/ )

This getaway is much appreciated, it's my first proper break since exercise wallaby! Getting away from the chaotic lifestyle here is awesome as well. Oh well, till the next time.

Labels: , , , , ,


Exercise Wallaby 2014
Sunday, November 23, 2014


I have never experienced weather that is hotter than Singapore before, more than anything, this exercise has really opened my eyes to how relentless the scorching sun can be. With daily temperatures of at least >35ºC, and really cold nights. The highest temperature we were notified on was about 39ºC; we barely worked during the noon that day.

Many, many things happened during these 3 weeks. Thankfully I kept a diary to help with my failing memory.

The journey was off to a rough start, I experienced Murphy's Law first hand.
"Anything that can go wrong, will go wrong."
I reached the airport late thanks to my "over-concerned" mother. Missed 3 buses right from the start, then couldn't board the next 2 that came because it was too crowded. Couldn't flag any taxi down, the bus that we finally managed to get on broke down for awhile, thankfully the bus captain was able to rectify it and get it moving.

Singapore Airlines, fortunately

Last stretch

Obligatory shot of the plane

Yeah, many more panoramic shots coming up. I love the effect

Doesn't get much better than this



The flight was unusually cold. My extremities were freezing and my nose transformed into a mucus factory. Luckily the staff on-board suddenly got bitch slapped by common sense and turned the temperatures up and made the remainder of the flight much more comfortable.

Read more »

Labels: , , , , , , , ,


I ran a marathon!
Monday, September 01, 2014

I can't believe that I haven't written anything here for over a month (nearing two). It's not that there isn't anything happening at all but most of the stuffs are just related to the army so it's kind of boring in a sense.

Regardless here are the stuffs that happened while this blog was stagnant.

I bought a new CPU cooler, top of the line, premium Noctua NH-D15. As air cooler goes, it's as  good as it gets. You can tell by the sheer size difference between it and my old cooler.

Who said size didn't matter?

Mounting bracket

It's taller than my 760! 

With it I never went above 53 degrees celsius under 100% load, which is pretty darn amazing considering that I live in a rather warm environment.

Went to the River Safari for our unit cohesion day. It was boring as hell, and I got bitten by a small monkey; but I guess it's better than spending Friday in camp working. Only took a few photos but it turned out rather decent!

This fish just keeps swimming like this 

Either jiajia or kaikai, no idea

First time seeing a polar bear, it's damn huge

no idea what it's eating

Looks like it's praying

Back packing

Dugongs, they look like giant shrimps platter

I'll leave you with some panorama goodness.




Moving on, the title of the post; I just ran 10KM yesterday at the Safra Bay Run. It's the first time I ran a marathon, also the first time that I ran so far. Got a timing of 1 hour 24 mins. Not good by any means but it's good enough to me!

Front | Back

I didn't take any pictures at the event because... I didn't run with my phone and I felt like dying after the run. Kind of wasted but oh well, it can't be helped. The worst part of the run isn't the run itself, but that I've only had 2 hours of sleep due to some admin cockup, followed by my growling stomach throughout the run.

My friends all disappeared within the first 500 metres. Either too far in front, or too far back. It's one of the rare times that I truly felt lost in a sea of people.

To be honest I really didn't felt like running, I initially planned to just walk for the most part, but when there's a few thousand people running with you, it's hard to just say, "I give up." So for better or worse, I did run most of the distance. Which no part is due to my own motivation. I thank you, the pretty ladies who wore skin tight clothes and ass hugging tights.

And the driving force is way more than I anticipated. There was this chick I noticed since the start line, and I chased after her for 3 km before hitting an obstacle. Stairs. Pretty much lost sight of her until the 6 km mark where she suddenly ran past me. I am honestly shocked that I actually passed her, but the rest of the run was just me not wanting to lose to her in the end. HAH!

Every time she passed me I will make sure I put enough distance in between before slowing down. It's kind of stupid racing against a girl who is probably younger than me, but then again I really had nothing to do and no one to talk to. Passing all the people in the last kilometre felt really awesome though.

I wonder when will be the next time I post something, but I guess... wake me up when September ends?

Labels: , , , , , , , ,


Buckling under stress
Saturday, July 05, 2014

Last Thursday, I was embarrassed, ashamed of myself even.

It was competition day, I was representing table tennis for my unit and the day seemed to be proceeding smoothly until my captain told me that he's going to put me in as second singles.

I was surprised to say the least as I've only prepared myself for doubles in the first place. However, our next opponent(Guards) didn't seem to pose much of a threat to us; so I thought "why the hell not, let's do this. YOLO"

Long story short, even though I was second singles, I'm playing the last match because of certain arrangements. It was also the last match of the day for us. The front 4 matches went by in the blink of an eye, and we were leading 4 - 0. Everything seemed to be set in place for us to claim the top 4 position.

Until an upset occurred at the table next to us. Transformers won against RSAF.

Because both their teams have won against Guards 5 - 0. All of a sudden, my match became de facto for us to get into top 4. If I lose my match, we will be 3rd in our group stage and be pushed to the lower brackets competing for 5th or 6th place. I thought, heck, I can still do this. The stress definitely multiplied like bunnies, but still, I believe I could kick some ass.

Well I couldn't be more wrong.

For some miraculous reason, the head of my unit, the boss of all bosses decided to grace us with his presence. Now I don't know about you, but when a colonel is watching your match with his full, undivided attention, when you're the deciding factor if his team enters the top 4 or not, my heart and mind pretty much crashed like the great depression.

To make things worse, it's not just one colonel, but two. Accompanied by a Master Warrant, and officers with plethora of lines on their chest. Oh, and the commander of OETI was there, ME6. The commander of ALTI was there too, ME7.

I'm not trying to make excuses, but I was honestly blind sided by this turn of events.

I don't remember the last time I was in such duress, when the nerves totally took over my body and senses. My hands went cold, my legs felt stiff and I'm pretty sure I had tunnel vision back then. The people supporting me tried to shake me out of it but the curse already have a firm grip of me by then. It came without surprise that I lost terribly to a guy I should be able to defeat with ease in my normal state. 

I honestly just wanted it to be over and hide in a hole somewhere.

This is a shit experience, borderline traumatic. I know it's not entirely my fault, but with the way events turned out, I just can't help but feel that way.

This was not all bad I think, as i managed to learn something new about myself; that I was vulnerable to a panic attack when something unexpectedly stressful happens. But this only happened because I wasn't prepared for it. It'll be fine, because I will definitely prepare myself for the competition next year. And yes, I am playing next year as well.

For now, the competition is over, we were placed 5th(one better than last year). It's time to leave this saga behind and get on with my mundane work again.

Till next time.

Labels: , , , ,


KM's 21st | We mounted Lady Olivia
Thursday, May 01, 2014

Road to my secondary school

I have no idea how many times I've shot this scene already but well, I find myself here once again. Last Sunday 130414, we gathered at chiang's place and started our mini road trip, a whooping 43.5km, which is almost as far as you can get in Singapore.

End to end!

Setting up his GPS navigation

Well I've dragged this for so long that I pretty much forgot what I wanted to say. I'm surprised by the images that my phone can take under bright sunlight though!

At the dock

Birthday boy couple

Lady Olivia! 

Délifrance


The view as we left the port

Trying to be artsy

Oh yeah we got the chance to steer a boat! You can really feel it if you spin it a little too fast. There's a GPS system on board so it's really easy.


Cheers! | Champagne 

Popped the champagne off the boat. May post the video someday if I remember (never). I think this is probably the first time I've seen anyone shake it and pop the cork off.

Offshore fish farms! 

I think I went to one before when I was a kid, some sort of vague recollection. But well, it's an interesting place; albeit not much to look at, except fishes.

It's a small boat =|

fishes going crazy over food

powerful image editing is powerful

I love taking shots with symmetry in it, maaaaybe could've done better but the sun was too damn hot for me to keep trying.

Getting out the fishing rods

I like this shot

Caught a small fish! 

It's really small


After fishing we tried swimming in the sea and I swear it's probably the most tiring thing I've ever did. Swimming against the current is no joke and I have zero idea how anyone can swim like this. The moment we stop chasing after the boat, we just drift further and further away from it.

It's actually scarier than I thought. Without the safety buoy to rope us back in, I probably wouldn't want to go down and swim.

HAPPY BIRTHDAYYYYY

OTW back

re-entering the port

I'm not quite sure what else to say since I don't have any of the "omg on a boat with my bestie!" kind of nonsense that girls have. I'm just glad that the pictures turned out well...

Army has been a pain in the ass. I have already written out the course I finished 2 weeks ago but I have no idea why it isn't posted yet. Oh well!

Labels: , , , , , ,