(This is a cross-post from our linked-in page.)

We all know the old adage, one picture is worth a thousand words. Imagine then what a high resolution, hyper-realistic 3D render can say. In the world of interior design, it speaks volumes. But there is one thing that can amplify a message even louder and clearer.

An interactive one!

That’s why at Collov, our virtual interior design and shopping platform, we are always striving to use the latest cutting-edge technology to put the most vivid and accurate presentation of our clients’ future room right in front of them. Be it the…


I’m migrating my blog to Epiphany. Please follow me on Epiphany. Thanks.

I listen to a podcast about industrial revolution and tech history on my way to work. One pattern repeatedly happened in the past was that many inventions started from the hobbyist community first, such as microscopes, cars, airplanes and personal computers, just to name a few. This made me wonder if the birth of the consumer robots will repeat the history and will start from a hobbyist’s garage. I’m very obsessed with home made legged robots these days. But I guess I wouldn’t even be able to afford…


Demo of Epiphany.pub

I have been building a new tech blogging experience epiphany.pub. It’s inspired by Medium.com and Jupyter Notebook. It allows program embedding and also supports Github like version control and pull request for social blogging. Gradually, I will move my blog to this new platform from here. If you are interested, you are welcome to try it too, I will appreciate some feedback. But be aware that this platform is still in its early stage.

Some core features of epiphany.pub:

  1. Writing in Markdown with math equation support.
  2. Allowing embedding programs. …


I wanted to find a lightweight sandbox for my dirt cheap Linux server. I came across this blog on implementing a container in 500 lines of code. But apparently, it was written for people who have more background than I did on this topic. I couldn’t understand some of the concepts and I had to google around. And I’m still having questions, but I got a basic sandbox working. This my gentle version of how to implement a basic Linux sandbox. I can’t finish everything in one post. This will be a short series. The code is shared on my…


I bet you can easily accelerate your program by 10x by adopting CUDA. But that 10x is far from the end of the story. A fully optimized CUDA code could give you a 100x boost. To write highly optimized CUDA kernels, one needs to understand some GPU concepts well. However, I found some of the concepts are not being explained well on the internet and can easily get people confused.

Those concepts are confusing because

  • Some terminologies were borrowed from the CPU program. But they are in fact not the same concept as their CPU origins.
  • Some terminologies were invented…


My colleague asked me to explain the recent CPU spectre bug and speculative execution to a non-tech person. It’s like a challenge.

For speculative execution, I immediately thought about this real-life example:

source: https://www.wkbw.com/news/the-newsweek-cover-you-wont-see-madam-president

Newsweek, as well as other magazines, pre-made different issues for both presidential candidates. This is their strategy to deliver the election result timely. Of course only one candidate would win, so part of the labor would be wasted.

This is speculative execution. Before you even know that the prerequisites for an action or a response will fulfill, you carry out the action anyway. If the conditions your action…


Mr. Ali Rahimi’s recent talk put the batch normalization paper and the term “internal covariate shift” under the spotlight. I kinda agree with Mr. Rahimi on this one, I too don’t understand the necessity and the benefit of using this term. In this post, I’d like to explain my understanding of batch normalization and also Xavier initialization, which I think is related to batch normalization.

Recall the structure of an artificial neuron, the building block of a deep learning model:

source: http://andrewjamesturner.co.uk/images/ArtificialNeuronModel.png

It performs the following 2 steps of computation.

  • Step 1, a weighted average of inputs Xi.
  • Step 2, an activation…


Mr. Ali Rahimi recently gave a talk at NIPS, in which he described the current deep learning as alchemy, for its lack of theoretical explanation and being pragmatically oriented. If you haven’t seen it and are interested, here is the link:

I feel that what Rahimi described is something that I, as a deep learning student, can relate. Few years back when we first studied deep learning, we called ourselves “old Chinese medicine practitioners 老中医”. We grew up in an eastern culture, alchemy isn’t a term that’s familiar to us. But an old Chinese medicine practitioner is sort of…


My friends recently got interested in censorship fighting systems based on blockchain, so we read about the orchid protocol. What interested me more, however, is the micro-payment ideas being explored by blockchain systems like orchid.

As we have all noticed, current generation blockchains suffer from scalability issues . A transaction, for example, needs to take several hours to settle. And this will only get worse, as transaction history accumulates and will become the burden that everyone will carry forever. This is a fundamental trade-off blockchain designers played in order to achieve decentralization. …


I got really curious about my origin and did some research. This is the result of it.

My last name Yan 严 is probably one of the few lucky Chinese last names that still have a clear path that traces me back to 2500 years ago, because the name is not very large by population size and it is not very small either. If a last name is too rare, it may be poorly documented, crucial information might be lost throughout the years. And if a name is too common, the sources of origins may not be unique, one can’t…

Shi Yan

Software engineer & wantrepreneur. Interested in computer graphics, bitcoin and deep learning.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store