• Notes on Front-end development

    Front-end development is quick to get started. As projects grow and code build up, there are nuances that may help us avoid the painful road of catching intermittent bugs. Below are a few things I would like to note. Key points are to keep the application state’s lean, make program flow obvious, and add checks at your build pipeline.

  • An unprecedented period

    As of today, millions of Vietnamese have gone through their first week of self-confinement since our Prime Minister ordered businesses to shut down and people to stay in house. To some, the isolation period may have started earlier. Companies like mine have enforced remote working weeks prior to the official order. Self confining voluntarily for almost a month is unprecedented and unthinkable in normal time. But there is nothing normal about the recent course of events.

  • Covid-19

    For the past 2 months, covid-19 has pushed lives of people all over the globe into disarray. Everywhere, events are cancelled, cargos held up at borders, trade suspended. Covid-19 has become the all dominating theme at dinner conversation. People talk about it in barber shops, in supermarkets, on taxi. And unlike the situation in Europe with thousands of confirmed cases, Vietnam has managed to keep the number below a hundred (though that is increasing daily). As a result, though covid-19 patients are referred to by number in the news, those numbers are still very personal. Pick a random person on the street, most likely he/she can recount with details where patient no. 34 went, what she did for a living, who were her F1 (people in direct contact with her)…

  • A decade in review

    A decade time would feel short when the clock was ticking pass midnight on the last day of 2019. Where all the time has gone. Yet, a simple act of comparison between the self now and a decade ago, that whole decade would start to appear more real, heavier and thicker in one’s awareness. Old perceptions, preferences, fears, worries, desires were replaced by the new. Changes happened slow enough that one hardly noticed, yet, significant enough to surprise us when compressed in a moment of reminiscing. This is my first time to write them down.

  • Fast way to iterate through video frames with Python and OpenCV

    Recently, I was working on a program to sample N frames from a source video, and then assign a score to each frame (from 0 to 1) in terms of thumbnail-worthiness. Before long, it became apparent that decoding video frames was one performance bottleneck. In this post, I would look into different ways of reading video frames with OpenCV and then speeding it up with multithreading.

  • The Gene An Intimate History

    The Gene An Intimate History is a moving account of the discovery and development of genetics, the science of inheritance and chemical basis that give living things their forms and functions. The book is also the author’s deeply personal story of how genetics linked diceases burdened his larger family.

  • Implement shapenet face landmark detection in Tensorflow

    In my previous post on building face landmark detection model, the Shapenet paper was implemented in Pytorch. With Pytorch, however, to run the model on mobile requires converting it to Caffe. Though there is tool to take care of that, some operations are not supported and in the case of Shapenet, it was not something I know how to fix yet. Turn out it was simpler to just re-implement Shapenet in Tensorflow and then convert it to Tensorflow Lite.

  • Viettel's mobile money and the threat to banks

    In a recent conversation, my dear friend made the claim that once telecomunication providers like Viettel and VNPT have their mobile money licences approved, they would take over banks as providers of financial service providers. Banks would inevitably be sidelined. I frowned at the notion of an incoming onslaught of telcos as mobile money as a concept is not new. If one looks at it as the transfer and storage of monetary value via cellphone, that concept can be traced back to the era of feature phones. Back then, phone subscription owners could top up others’ mobile numbers with their existing mobile balances. Or services like ringtone, quizzes can charge users via mean of SMS. Thus mobile money has been in limited usage for long. And a few years ago, mobile wallets (e-wallets like ZaloPay, Momo…), smartphone applications that facilitate payment and money transfer via phone, already began their costly quests to acquire users. Then, what’s so big a deal about this mobile money development?

  • Why the Libra was created

    The day before yesterday, Facebook annouced its new currency, the Libra as part of its effort to break into the payment market. Trying to eat the payment cake has been a long anticipated move for Facebook, since its Chinese social messaging counter part, WeChat, has demonstrated how widespread mobile payment can be. But unlike, WeChat, Facebook does not only provide a payment service, but it goes as far as to create a blockchain based currency. Why the trouble?

  • Use MobileNetV2 as feature extractor in Tensorflow

    Applying machine learning in image processing tasks sometimes feel like toying with Lego blocks. One base block to extract feature vectors from images, another block to classify… Popular choices of feature extractors are MobileNet, ResNet, Inception. And as with any other engineering problem, choosing a feature extractor is about considering trade-offs between speed, accuracy, and size. For my current task of dealing with ML on mobile devices, MobileNetV2 seem to be a good fit as it is fast, quantization friendly and does not sacrifice too much of accuracy. Tensorflow provides a reference implementation of MobileNetV2 that makes using it much easier.

Subscribe via RSS