• First Principles

    That is the difference between mathematics and physics. Mathematicians, or people who have very mathematical minds, are often led astray when “studying” physics because they lose sight of the physics. They say: “Look, these differential equations—the Maxwell equations—are all there is to electrodynamics; it is admitted by the physicists that there is nothing which is not contained in the equations. The equations are complicated, but after all they are only mathematical equations and if I understand them mathematically inside out, I will understand the physics inside out.” Only it doesn’t work that way. Mathematicians who study physics with that point of view—and there have been many of them—usually make little contribution to physics and, in fact, little to mathematics. They fail because the actual physical situations in the real world are so complicated that it is necessary to have a much broader understanding of the equations. — Richard Feynman, The Feynman Lectures on Physics

  • Single points of failure in IPv4

    In my previous blog post, I made the bold claim that like NAT and HTTP’s Host Header, was sufficient for our current internet needs, perfect enough to work around the limited number of IPv4 addresses. However, a recent revelation about government surveillance through Apple’s and Google’s notification servers has led me to reconsider. These IPv4 workarounds, I’ve realized, introduce critical vulnerabilities: they create centralized points of failure, starkly contrasting the decentralized ethos of the Internet Protocol.

  • The backward compatible hack that keeps the web together

    The internet is nothing short of a modern miracle. It’s astonishing that I can video call friends and family in China from halfway across the globe in the UK with almost seamless connectivity. My luggage get lost in transit and things I tried to send through mail gets stopped by custom, yet tiny changes in electrical current somehow manage to get through dozens of networking devices run by different groups of people with various technical ability and agenda somehow make it to the other end with remarkable reliability.

  • NAT Is Good, I hope it still exists for IPv6

    I used to hate Network Translation Layer (NAT) because it made hosting anything so much more complicated. It also makes devices waste a lot of power because they have to constantly poll a server to receive push notifications. IPv6 is supposed to address this problem so decided to experiment with it. Although the experiment failed (I still mostly use IPv4), I began to see several huge advantages of NAT.

  • Why I Use Windows on Desktop Rather than Linux

    I love using Linux on servers. I run web servers, write code, and do experiments with interesting projects using Linux (specifically Debian and Ubuntu). This blog post explains why I don’t use Linux on desktop.