week 50, 2019

What Butterflies’ Wing Patterns Can Teach Us About Evolution

At first, Carolina Concha and her fellow researchers at the Smithsonian Tropical Research Institute worried that every mutant butterfly would die. They were attempting to deactivate a crucial wing-patterning gene known as wntA, and they aimed to make this genetic change not in just one variety of butterfly, but in 22 types. Fortunately, the mutant insects developed normally, from egg to caterpillars to chrysalises to full-fledged butterflies. And when the butterflies finally unfurled their wings, they contained a lesson in evolution—just like navigating a car through a web of city streets, there are many routes to get to the same evolutionary destination.

Source: What Butterflies’ Colorful Wing Patterns Can Teach Us About Evolution, an article by Lila Thulin.

Tail recursion

Tail recursion is a special way of writing recursive functions such that a compiler can optimize the recursion away and implement the algorithm as a loop instead. This is not because loops are inherently faster, but because every function call generally incurs the cost of a new stack frame in which it executes, sometimes leading to the dreaded stack overflow - where the beloved site of the same name, gets its name. Let's investigate how this works.

Source: Tail recursion, an article by Tarjei Skjærset.

The One About Blogging

I’ve learned a lot about my motivations while blogging over the past three years. Everything from self-reflection to clarifying intentions. I’ve also learned a lot about the process itself. While I could write a long-winded post about this meta, let me share what I’ve learned in a visual. Since the majority of the population are visual learners, this should suffice.

See the visual of Doug Arcuri's blogging process at The One About Blogging.

A walk through the Magit interface

This article demonstrates some of Magit’s most essential features in order to give you an impression of how the interface works. It also hints at some of the design principals behind that interface.

But this is only the tip of the iceberg. Magit is a complete interface to Git, which does not limit itself to the “most essential features everyone needs”. I hope that this article succeeds in demonstrating how Magit’s focus on work-flows allows its users to become more effective Git users. Here we concentrate on some essential work-flows, but note that more advanced features and work-flows have been optimized with the same attention to detail.

Source: Emacsair! A walk through the Magit interface.

Where Do Mojibakes Come From? A Smart Guide to Encodings

This article explores the basic concepts behind character encoding and then takes a dive deeper into the technical details of encoding systems.

If you have just a basic knowledge of character encoding and want to better understand the essentials, the differences between encoding systems, why we sometimes end up with nonsense text, and the principles behind different encoding system architecture, then read on.

Source: Where Do Mojibakes Come From? A Smart Guide to Encodings.

How NOT to write pandas code

I’ve been using pandas as my main tool for data analysis for the last 4 years. I must admit that most of “How NOT to code with pandas” comes from my beginnings. While doing code reviews I still see many of “Hot NOT to-s” with more experienced programmers.

In this blog post, I first show an example of “how NOT to” and then show a proper “how TO” way of calculating statistics with pandas. The arguments for improvement are concise, more readable code and faster execution.

Source: How NOT to write pandas code, an article by Roman Orac.