NOTE: TWIL (This Week I Learned) is a collection of interesting findings I discover on a week-by-week basis. Hosted and curated entirely on GitHub.


Programming

Articles

Teenager Finds Classical Alternative to Quantum Recommendation Algorithm

A teenager from Texas has taken quantum computing down a notch. In a paper posted online earlier this month, 18-year-old Ewin Tang proved that ordinary computers can solve an important computing problem with performance potentially comparable to that of a quantum computer.

An interesting thing to read on my next commute. I have built one or two recommender systems before, but none of them has ever reached such a scale, as to need a quantum computer.

Be sure to check out the comment thread on Reddit too.

JavaScript : more puppy love, less fatigue

instead of showing people the current form of JavaScript as a matured, highly domesticated and fierce animal, we should get people to know it as a puppy. That’s how I got to know it. Instead of wondering what packages to install and how to set up my server to run it, I wanted to grab it, cuddle it, play with it and — above all — protect it and its surroundings from harm.

[…]

JavaScript these days has matured a lot and will become even better. It can not, though, when we hide its inner workings away from the next generation of developers. You don’t need to be a JavaScript language expert to use it. But it may be a good idea to tell the story how we got to where we are rather than asking people to blindly use what’s on offer right now. It is easy to get disappointed, discouraged and overwhelmed by something new when you use it without understanding it. You also don’t dare to say you don’t get it when your peers all stroke their chins pretending to know everything.

I try to approach every new technology the same way - starting from a small subset of the core features, and MVP of sorts. I gradually expand my comprehension of the technology as I move along. If you start the opposite way, you risk approaching the so called phase of “fatigue” that burns many neophyte programmers out.

Data Science

This photo here is a good example that no data should be thrown away as useless, before looking at the whole picture: It might as well be the case that a perfectly classifiable dimension lies hidden away from our eyes, we just have to discover it. This is why proper visualisation and dimensionality reduction techniques such as PCA are so important.

via A Journey to the Tip of Neural Networks

P.S: I also opened a Reddit thread for a further discussion on this topic.

iOS Development

Articles

Stop Using NSNotificationCenter | David Nix’s Blog

A good article discussing NSNotificationCenter and why it’s use throughout our iOS apps should be reduced. It presents a serious dependency on the underlying imlementation of the OS, can become a performance bottleneck, and also makes the flow of data difficult to follow, especially in bigger iOS projects. The author gives a few alternatives, starting from basic DI (dependency injection), DI with delegation, and KVO (ky-value observables).

GitHub Projects

willowtreeapps/Hyperion-iOS

Hyperion is a hidden plugin drawer that can easily be integrated into any app. The drawer sits discreetly 🙊 under the app so that it is there when you need it and out of the way when you don’t. Hyperion plugins are designed to make inspection of your app quick and simple.

scoremedia/Fisticuffs

Fisticuffs is a data binding framework for Swift, inspired by Knockout and shares many of the same concepts

let observable = Observable<String>("")

observable.subscribe { oldValue, newValue in
  print(newValue)
}

observable.value = "Hello, world"
// prints "Hello, world"

Python

As of v.3.8, Euclidean distance was included in the standard Math library (Math.dist). With that, something like k-nearest neighbours boils down to:

nsmallest(k, training_data, partial(dist, new_point))

Source: Raymond Hettinger

JavaScript

FT.com changed one line in their JavaScript code, and this made the site 10x faster. The culprit was this line of code:

return JSON.parse(JSON.stringify(this._data));

which is actually not as lame as it looks. It is actually a standard practice on many occasions. The problem is, cloning is synchronous, and when called a few times per page render, it quickly adds up.

Misc

google/filament

Filament is a physically based rendering engine for Android, Linux, macOS and Windows. This rendering engine was designed to be as small as possible and as efficient as possible on Android. Filament is currently used in the Sceneform library both at runtime on Android devices and as the renderer inside the Android Studio plugin.

Psychology

Why does walking through doorways make us forget?

Have you ever crosse th eentire house, entering the living room in a rush, only to reliaze what you were looking for? Yes, you are not alone. In fact, I thought for quite some time that this kind of stuff could happen only to me, and that it was probably caused by some physical malfunction of my body. Turned out that is some pretty normal behaviour, and is what scientists call “The Doorway Effect”. Forgetting about the minor details (e.g. the car keys you were lookign for until about a minute ago), is a natural reaction of the brain trying to cope with the grand masterplan it is working on, called life.

The Doorway Effect occurs because we change both the physical and mental environments, moving to a different room and thinking about different things. That hastily thought up goal, which was probably only one plate among the many we’re trying to spin, gets forgotten when the context changes.

It’s a window into how we manage to coordinate complex actions, matching plans with actions in a way that – most of the time – allows us to put the right bricks in the right place to build the cathedral of our lives.

Books

The Lean Startup

I am currently reading Eric Ries’ “The Lean Startup” and got these two quotes about early adopters, which I wanted to share:

Early adopters are suspicious of something that is too polished: if it’s ready for everyone to adopt, how much advantage can one get by being early? As a result, additional features or polish beyond what early adopters demand is a form of wasted resources and time.

Early adopters use their imagination to fill in what a product is missing. They prefer that state of affairs, because what they care about above all is being the firs

Some more notes from the book here.

Misc

Music

TIL the first Zildjian cymbals were created in 1618 by Avedis Zildjian, an alchemist who was looking for a way to turn base metal into gold. He made an alloy of tin, copper, and silver into a sheet of metal, which could make musical sounds without shattering.

via Reddit

DIY

TIL to fight illegal logging of their land, an indigenous community of 9000 members in Guyana built a drone by watching DIY videos on YouTube, to film the illegal activities and report the footage to Guyanese authorities.

via Reddit and Atlas Obscura


Final Notes

For last, I have reserved a small shameless plug. Last week, I started writing on Steemit and so far, I have posted a couple of things on my Steemit blog. So far, I do not want to say whether I like it or not. It’s an interesting medium, but way too dominated by the crypto peeps, hungry for tokens more than for quality content. I am not seeing this as a way of monetising my writing at the moment, just as a crude, early version of Reddit/Twitter/Medium/Tumblr that is worth exploring. That’s it.

Leave a comment