My New Year’s resolution for 2018

moleskine notebook on a table
The Moleskine notebook I used every step of the way in 2017

I’m not doing this for the sake of tradition or anything like that. Instead, I’d just like to make use of the pensiveness that comes for free at the end of the year to do some visualisation of what the new year is going to be like for me, my wife, and my dog.

Continue reading “My New Year’s resolution for 2018”

What to do when your bike runs out of fuel

bike motorcycle
Photo by Les Anderson

Hello, friend. If you’re here for an actual guide on what to do when your bike runs out of fuel, skip ahead to the “What to do when your bike runs out of fuel” section below. I’ll be recounting my own experience today first in the proceeding section.

Today after knocking off from work, I hopped on my Honda Shadow 400 and rode away from the office. I was ready to go home to my wife and dog after a long day at work.

Three minutes into the 30 minutes journey though, I noticed my engine getting softer… and I immediately knew that it was running out of fuel. My eyebrows grew heavy.

Continue reading “What to do when your bike runs out of fuel”

Poetry

It’s almost the end of the year 2017. I’m 27 and I still don’t get poetry.

I’m inspired to log this here after trying to understand the poem Elon Musk recently shared on his Instagram account.

screenshot of poetry post on instagram post by elon musk

Hopeful that one day I’ll get a poem and happily go down that rabbit hole.

The generation that sees google as a word, not company

I had just left another hardware meet up (called Hackware) and I’m emanating inspiration now, so I thought I’d write it all down while things are fresh.

photo-1431949662802-397529a8a873

The theme was Single Board Computers, so everyone who spoke had to talk about them. That includes the world renown Raspberry Pi, but also other less known things like an Intel Edison chip and so on. All very geeky and so interesting to an outsider like me.

What left the strongest impression on me was the presentation by two secondary school students. They showed that they’re conversant in computer and engineering speak as they presented two of their projects — both drones.

They’re just in secondary school… this fact is really profound. I was busy chasing after my current wife when I was their age, occasionally studying because I (think I) knew in some fuzzy way that it’d affect my future. That was my grasp of the life then, and this is their grasp of life now. They’re building drones and have an understanding of technology like it’s their mother tongue.

While I’m doubtful that they have as great an understanding of the applications of the things they’re building as professional engineers, the fact that they understand how to put technologies together into a useful project is amazing. Just think about what they’ll do when they’re in university, and what they can do when they’re done!

So at the end of today’s session, I moved one seat over to ask one of the team mates (they’re schoolmates, essentially): How did you learn so much, enough to make these incredibly sophisticated things while having what seems to be a complete understanding of how it works by yourself? What resources did you use to learn?

I had nothing but admiration for them, and asked in the humblest way I could. And his answer was ridiculously simple: google. That’s google with a small ‘g’, because I’d just realised the crucial difference between them and me —they grew up with google by their side.

Google is a word, not a company name to their generation and those after them.

I believe that that has a profound impact on how they think. This is not to say that every 16 year old is like them. The fact remains that guys like them make a very small percentage of their generation. Most still spend their time looking at and going after girls, trying to be cool, or maybe trying to ace every test to clinch some fuzzy idea of a bright future.

So they googled

What’s the big deal? Everyone can google. I speak like I’m some old man but in fact, I’m only 26. Google became mainstream when I was in junior college, and I’ve since learned a thing or two about how to get search results that I want.

But the big deal is this:

How many of us make use of google in a manner that is proactive to learn something new altogether?

Judging my own behaviour and that of my friends’, I’d say almost none of us do. Most of us search for learning resources for keep-sake, not for immediate use. Having come into close and regular contact with technology much later than these boys means we are older when we stumble upon the treasure trove of tutorials online. Older means less time to learn (as we like to think about it, anyway), and we end up being resource hoarders.

Thing is, there’s really no point in bookmarking sites like Code academy or Free code camp or some Udemy course. It’s like a pill — it only starts to work when you ingest it. Then you slowly digest it. To become newly skilled at something (like say, programming), you will need to take multiple pills as part of a course. It’s like antibiotics. You just have to keep going and finish the course.

You just need to use it

Google is there, you just need to use it. That’s basically saying that the manuals and tools are freely available, and all you need to do is manage your time and show up.

Taking inspiration from these young guys, I’m going to build some stuff I’ve been wanting to build for a while but have been putting off mainly because “I’m not technically sophisticated enough yet”. That’s actually my excuse to myself and to people who ask, verbatim. It’s flimsy considering the power of google is just a few centimeters above on my screen in that search bar.

The list of projects I want to do over the rest of the year:
  1. A drone that can fly, and can be controlled by a person.
  2. Some security camera that records footage whenever movement is detected.
  3. Single-board computer based home server.
  4. A video camera + server setup that records footage and automatically uploads them to my own server.
  5. An automatic electronic door lock with PIN access.

The plan from here for the rest of the year

I don’t really know just how achievable this is, but I know only one way to find out.

And if my progress learning web development full-time using Free Code Camp since almost two months ago is any indication, then I think it’s doable, though probably by a stretch when it comes to time.

My priority now is to learn web development (HTML, CSS, JavaScript and soon, Ruby on Rails), while occasionally dedicating a full day to working on a hardware project. I’ll keep a log on my website, and maybe update here on Medium too.

My first full month of learning code everyday

A blink of an eye and it’s been almost a month since I posted anything here.

Nope, I haven’t got an epiphany to write about some big idea. I just miss logging things and having the option of a guided walk down memory lane whenever I feel like one. So I’m going to talk a little about what’s been happening this past month.

I’ll start with today.

We played a nice game of badminton in the morning with my university friend Ezra at NTU. Mei has only been playing with twice and I can tell she’s already getting better at the game. I mean, she was kicking our asses. Part of my shoe sole came off halfway though (because she served the shuttlecock to the wrong half of the court and I stupidly ran after it by reflex), so I didn’t get the chance to claim victory. Or so I tell myself.

Then our usual lunch at the Business School, and then back home.

At home I spent the remaining 3-4 hours coding. I’m currently coding a simple Wikipedia search engine webpage that works in this sequence: User enters search query –> backend code sends the query to Wikipedia’s server –> Wiki server returns data related to search query –> front-end code displays data in human-friendly results. Been working on this for the second day straight now. Should be done by the time this post goes online.

Before long, my parents came to pick us up for dinner. We ate some delicious Chinese food at an upmarket restaurant called Pu Tien in an upmarket shopping mall, Ion Orchard.

wife banter with husband
Banter while waiting to be seated.
women carrying mannequins
Caught human trafficking at Ion Orchard shopping mall. Busted!
An Asian face like you've never seen
An Asian face like you’ve never seen

That about sums up my day today.

May-June 2016: Post-US trip

Since we got back from our month-long trip around the US (from New York to Los Angeles), I’ve been busy coding. It’s the first time I’m learning to code this furiously. My hunger to know how to code is growing by the day, and it feels great.

These are interesting times. Code is not like English, though they’re both languages. Knowing code isn’t exactly going to let you ‘talk’ to your computer. Programming language syntax is like English vocabulary, but the grammar is completely haywire. A lot of times I want my webpage to do something but it ends up doing everything else but what I intended. If it were like talking to a computer, I’d be able to tell it like in a conversation. Nope, we’re not there yet with technology.

Programming also differs from talking because of the logic involved. In speech and in writing, we imply certain things, like who’s saying what in a dialogue between two characters in a novel, or the fact that the car we’re talking about has four wheels and runs on petrol.

To a computer, though, nothing is implied. Instead, everything is and must be spelled out. Firstly for the computer to understand what you want it to do, and then secondly for other humans who might have to read your code to understand what you were trying to accomplish when writing different lines of code.

It’s not easy learning to code from scratch. But the good news is, ‘scratch’ is no longer below sea level. In 2016, learning from scratch is no longer starting from zero – all the free resources online that have been made by people to teach and empower others to make software have made the barrier to entry significantly lower.

That said, I must maintain that it’s not easy to learn. Don’t listen to the “programming is easy!” hype. Nonsense. Quincy Larson’s post gives newcomers a better preview into what it’s like psycho-emotionally to learn to code. (Larson is the founder of Freecodecamp, the free online course where I’m learning to code from.)

The tools and scrolls are more attainable than they’ve ever been in history, but becoming proficient at reading and writing code still takes a great deal of patience and time. It is, after all, a skill.

(Becoming good is also difficult because programming languages and protocols and standards continue to evolve quickly. HTML5, Ruby on Rails, etc.)

Last week I was stuck on a coding challenge where I was supposed to write a web app that tells you the weather in your city. The sequence of events that the code needed to handle was something like this:

  1. Ask you for permission to get your location.
  2. Get your location through Chrome’s built-in geolocating feature (works only with Chrome users).
  3. Send a ‘get’ request to a weather server with your location.
  4. Receive location-specific weather data and display them on screen.

I worked on it everyday for close to two weeks, hitting obstacle after obstacle.

I know, I know, I’m new to the whole thing so that pace is normal! But here’s where I stop you. Though you’re probably right, the way that is said makes it sound too easy.

You see, I was stuck on a very specific problem. I could write out the sequence of events that needed to take place for the programme to work right from the moment I received the challenge – the structure wasn’t the problem. It was what code to use to implement that sequence that baffled me.

For example, while asynchronous processes made sense to me (multiple things happening at the same time to reduce a user’s waiting time on a webpage), actually trying to put them in a queue (so that code chunk B is able to execute using some data returned from code chunk A which operates asynchronously) wasn’t at all straightforward when you have to code (not write) it out. It wasn’t easy, until it become easy – when I finally figured it out.

Now it’s really quite straightforward to me. When an async operation has successfully completed, you can declare a callback function whose code will then be executed, and the way you do that is to…

Okay, I’m not quite ready for technical writing yet so I’ll skip the details.

Anyway, the process was gruelling. That’s my point. I tried many different methods to try to achieve the result I wanted over the two weeks and I was on the verge of giving up a few times. But whenever I came close to quitting, I just told myself to stop coding and go do something else.(That’s usually reading or watching Casey Neistat vlogs.) I’d have nothing to lose. Just put it all down and take a breather. I can come back if I felt like it later in the day. I’d close the Free Code Camp and Codepen tabs in my browser, along with the 10-20 tabs on HTML/CSS/JavaScript tutorials and references, and just move on to something else for a couple of hours.

Then I’d come back with a fresh-enough eye and mind to tackle the problem again. Eventually I solved it. You can imagine how happy I was when I finally understood a viable method to handle async processes in JavaScript. (Okay again, maybe not. Not until you try coding yourself.) I don’t think learning a new word or way of expressing myself in writing or speech in English can ever bring me that kind of euphoria that learning code does.

All’s going well so far. My mind’s still set on the long game of creating a company that’s good for society. Coding is the means to that end, and I’m focused on getting good at it right now. The rest should fall in place bit by bit, pun proudly intended.

What To Do At 4:55PM

For me this is as close as it gets to holding onto time
For me this is as close as it gets to holding onto time

It’s 4:55pm. I woke up at 5am today to send Mei to her freelance gig nearby and went home and slept for two more hours after, read some books and articles on the internet, met Mei for lunch after her hairstyling exam, indulgently window shopped the aisles of Marks & Spencer’s food section before heading home. Then I woke from an afternoon nap by showering in cold water (leaving Mei sound asleep), and it’s 4:55pm.

I think about what to do now, the time I actually have to myself till dinner at about 6:30pm, which I think I’ll be cooking, and a list quickly emerges from the top of my head:

  • Write (this)!
  • Read one of the books I’ve started on (Adam Grant’s Originals looks good)
  • Stock my Kindle with 2–3 books for our month-long trip to the US (Mike Tyson’s autobiography has to be in there)
  • Read up the histories of the cities we’ll be visiting in the US so that we know what we’re looking at while travelling (sitting on our coffee table are 4 guides about cities, national parks and road trips)
  • Read more about Muhammad Ali and the fascinating world of boxing that I’d just learned about
  • Make a list of other things that I ought to be doing to prepare for the trip, like “buy microfibre travel towel” and “change money”

If I were to be honest, some of those sneaked in there as I was thinking of what to write, but that fact too lends weight to what I’m trying to articulate. I have so many options, choices and responsibilities as an adult that deciding what to do when is actually a struggle. What a darned problem to have!

It didn’t use to be like this when we were still in school. School work preceded everything else most of the time. Structure was forced upon us as students. But adults just starting out don’t have such structure, and without some protocol to prioritise decisions, they are tough to make.

I can see how this could be the source of stress for freelancers and solo company founders around the world. Life is short and time is limited; what shall we spend today’s currencies on?

Right now I can’t say I’ve successfully developed any way of forcing structure back into my life. I’ve tried a few things from paying for a ‘hotdesk’ to work on my original startup idea (did that for 6 months but started to feel its structural effects diminish by the fourth) to telling people about the projects I’m working on to supercharge their significance in my schedule. Being comfortable with being offbeat and unorthodox, the latter doesn’t work for me. Or perhaps I haven’t shouted loud enough about the projects I’m working on for the social steroids to take effect.

Common ‘hacks’ I’ve found people preaching:

  • Doing the same thing at the same time everyday, like meditate at the same spot every morning after waking up, to create a habit
  • Doing trials using time differently for a few days and comparing which one works best for your personality and biological rhythm
  • Figuring out and falling back on a default activity (say, reading a book) whenever you’re asking yourself “What should I do now?”
  • Use the 7 Habits way of listing everything on a Important-Urgent diagram and doing the important and urgent tasks first

I’ll give some of these a shot soon, though it’s starting to feel dreadful. Going about these meta quests of finding out what works for me is always a tiring affair to me. I don’t know how self-fashioned life hackers do it!

At least I’ve checked off ONE thing on that list so far. Onward to more! After I decide which one…