• The underestimated cost of memory allocation

    In languages like Java and C++, memory allocation is explicit and obvious. Programming with arrays in those languages mean thinking about size in advance before allocation. If there is a need for flexible size list, the standard library is also explicit about whether the list is backed by an array or linked list, so that programmers are mindful about operation complexity.

  • Implicit property getter can be harmful

    Property as a programming language’s feature has been around for a while. I first got to use it while developing a multi-tenant cloud-based point of sale application on .NET platform. The idea is to avoid the verbosity of calling getter/setter methods by invoking them behind the scene whenever a field is accessed/assigned.

  • Prisoners of geography

    By Tim Marshall

  • The value of blockchain is in the hype it created

    I remained a cryptocurrency skeptics throughout the boom and burst cycle of 2017-2018. Cryptocurrency promises privacy, to displace financial institutions, remove the middle man and make transactions almost frictionless. In fact, there is no free lunch. Cryto transaction initiator needs to pay a gas fee as part of how the underlying algorithm works. Besides, the privacy that cryptocurrency enables would allows tax evader, money launderer to take advantage.

  • Calendar as a backward looking tool

    The digital calendar is often presented chiefly for its forward looking functionality which is to organize and follow up with things to come. A coming event is put on a chosen daily or hourly calendar slot. Reminders would fire up a few minutes prior so that we could not miss important happenings out of absent mindedness. Shiny calendars like Google’s act as personal assistant of some sort, which manage to fit regular workout sessions into a busy schedule.

  • Basic FBThrift example

    Facebook re-opensourced their fork of Apache Thrift some 4 years ago. Yet there is relatively little documentation and independent comparison to see if there is any performance bonus to gain by moving from Apache Thrift to FBThrift. The two are no drop-in replacement, thus, replacing one with another requires effort. This post first looks at setting up and running FBThrift. Complete code example used in this post can be found here.

  • Floating point binary representation in javascript

    Inspired by this post which explains how computer stores floating point number, Here is a bit of javascript code that print out a float32 number in binary format. Firstly, the main idea is, floating point number is represented similar to scientific representation of numbers using E notation.

  • Derivative of loss function in softmax classification

    Though frameworks like Tensorflow, Pytorch has done the heavy lifting of implementing gradient descent, it helps to understand the nuts and bolts of how it works. After all, neural network is pretty much a series of derivative functions. In this blog post, let’s look at getting gradient of the lost function used in multi-class logistic regression.

  • Perspectives in designing ML cost function

    For many different machine learning problems, finding a solution involves these similar steps.

  • A few things Firefox does better

    Recently, Microsoft has ditched EdgeHTML in favor of Chromium rendering engine in its Edge browser. It led to mourning and concern over the uncertain future of the open web, in which, a single big company may have much control over standards and features of the web. Mozilla rallied internet users to give Firefox another try. They have a point. The web has always been a messy place with changing standards with which browser vendors catching up at different speed. A nice looking application may look well on Firefox yet broken on Chrome and vice versa. Testing effort is duplicated to ensure consistent look across browsers. Yet, that messiness and duplication of effort creates a larger space for experiments, more opportunities of participation and better chance to make some thing good. Because, I think, innovation has always been done by allowing independent minds to find different approaches to the solve the same problem. And because, in technology, it is always about weighing trade-offs. The fastest implementation is not necessarily the most modular and embeddable one.

Subscribe via RSS