24 Dec Restoring Line messages (with root)
Yesterday I had the "pleasure" of wiping and updating my phone under the assumption that my app backups worked. Imagine my surprise when I booted my phone and saw that Titanium Backup wouldn't restore from backups because they were corrupted! To say I was disappointed would be the understatement of the year! I lost so many things: screenshots, app data, app backups, etc... The only thing I didn't lose were my camera photos, which were thankfully stored on my SD card. All that said, let me first say that the main lesson here is to backup locally and then backup to another location when performing potentially dangerous tasks.
Before updating, I went through the painstaking process of backing up each and every Line conversation I had. As you may know, Line is a [battery-hogging](http://forum.xda-developers.com/nexus-4/help/naver-line-chat-causes-battery-drain-t2179932) chat app that doesn't support multiple devices well, nor does it keep any significant chat history between devices. So I manually backed up all my conversations. On internal storage.
continue reading
27 Nov First few days in Chicago
A few days ago, I arrived in Chicago. My parents came along with me to help me adapt quicker to the city. It's been pretty interesting so far, but it is **very** cold.
When we checked in to the airport in Taipei, we were told that the flight would not be too packed. So my parents stayed in economy class, where armrests could be lifted and it would be possible to sleep laying down. I sat in an aisle seat in the premium economy class, and there were only around 5 people in the entire cabin.
continue reading
10 Nov What a journey
If you read my blog occasionally, you may have noticed quite a huge blank space from June up until October. The reason for this is because I was on a journey. It wasn't a typical journey, but I did indeed learn and grow a lot from this one-of-a-kind experience.
It started from slight changes in perspective in various aspects of my life. Close friends noticed and told me to believe in myself and to reach for my goals. So, on a whim, I sent my CV to Google Taiwan.
continue reading
04 Oct JavaScript modules
Well well well. It seems I am long overdue for a blog post! I've been meaning to blog about a very special journey that I had the pleasure of embarking on, but I'm still in the middle of writing that post (stay tuned!). Instead, for now, I want to talk about npm modules.
I've recently been in the process of modularizing my JavaScript. As you may know, I have several JavaScript libraries on my [GitHub](https://github.com/mlcheng). I've always been a fan of modular code. It makes everything so much easier to read. However, I disliked modularizing JavaScript because of the unfriendly process it takes to even start. Purists like me may like the fact that ES6 `import`, `export`, and [destructuring](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment) exist. A module could easily be created:
continue reading
19 Jun About time
Have you ever wished that you could go back in time? Perhaps you made a mistake and immediately wished you could `ctrl+z` and take a step back. Perhaps you were reflecting on an event that happened a few months ago, and you wished you did something differently.
I remember watching a movie many, many years back. During one scene in a forest, the main character made a promise that if time travel was possible in the future, he would appear right next to himself, right here, right now, just to prove that it was possible. And he closed his eyes. When he reopened them, he was still alone. That scene stuck with me for a really long time. I then tried something similar out of boredom and sheer curiosity. Alas, I didn't appear next to myself either. But since then, I've always paid particular attention to times I wished I could go back in time.
continue reading
12 Apr Fixing horrible scrolling performance on this site
For a long time, I thought Firefox was just slow. After all, it was my main browser, and I have more than a hundred tabs open at any given time. I found that when scrolling around some sites (including this very one - my own), performance would come to a halt. I do not have a powerful computer: it's just an i3 from several generations ago. I often saw Firefox taking up 30% CPU, so I thought horrible scrolling performance was a result of Firefox using so much CPU. I didn't think scrolling was the _cause_ of so much CPU usage - because my site scrolled fine in Chrome!
At work, I also use Firefox as my main browser. I also have hundreds of tabs open there. Firefox CPU usage hovers around 4%. I chalked it up to the powerful 4th gen i7 CPU in my workstation.
continue reading
10 Feb Quantum.js
Today marks the first release of [Quantum.js](https://github.com/mlcheng/js-quantum), a new library designed with simplicity and ease-of-use in mind. Each feature inside Quantum.js can be used separately without the need of including the entire library. As of today, Quantum.js is only *12.7kb* minified, and it features:
* [Data binding](https://github.com/mlcheng/js-binding)
* [Drag and drop](https://github.com/mlcheng/js-dragdrop) for files
continue reading