Code Coverage in Rust

Productivity tools you employ to make yourself more efficient that actually take up most of your productive time.

Reading time: about 6 minutes (1038 words).

One side project that has been sitting by the wayside since completing my PhD has been to polish up and publish Wafer: my fancy 3D wavefunction solver. For reasons, one of which is mostly structured procratstination, this polishing ended up being a port/re-write in Rust. Delving into the Rust ecosystem has been fun and if you check Wafer’s commit history you’ll notice large rewrites again and again as I basically play around with things; having no real development schedule or design restrictions.

It may seem a little counter intuitive then, that I’m also trying at the same time to learn all the rigid structures of software development. Proper documentation, testing, error handling, data structures etc.

From Disqus to Isso

Current comment security is a sad state of affairs.

Reading time: about 6 minutes (1076 words).

Due to my erroneous assumption that an OVZ container is indistinguishable from a full OS on the inside, my VPS upgrade from Debian Wheezy to Jessie didn’t go exactly as planned…

Starting from a clean install I went about revamping a number of things, as well as keeping on top of the new security measures that have been added to the observatory in the past six months.

I love static sites and have no use for too much dynamic frivolity, which also means I can tighten up security policies so my server is (hopefully) more of a vault with an excellent CCTV system for you all to look inside with. But comments on this blog have been an issue. Disqus has been a necessary evil since this blog’s inception, but both my own and the worries of the internets are something that needed tending to.

Including Small Countries in Your world.json

The little guy is often the most important.

Reading time: about 5 minutes (835 words).

In the process of building Odyssey, I came across an omission in most of the world structures on Bl.ocks. Pretty much everyone nowadays grabs the Natural Earth ne_110m_admin_0_countries dataset, converts it to TopoJSON, throws the result to a projection such as

   d3.geo.orthographic().translate([width / 2, height / 2]).scale(width / 2 - 20).clipAngle(90)

and then move on with their lives.

But what if you care about information on this projection? What if Mike Bostock’s World Tour gave you this grandiose idea of an interactive globe for your website that needs to pinpoint tiny countries like Singapore?