Dailies

2020

March

03 Tuesday

  • Hypothesis - A browser-based tool to annotate any and every web page! We’ve added it to the blog now too.

February

14 Friday

  • Everything about gears - lots of animations and simple descriptions of how mechanical gears work
  • Flow Fields - A beautiful and visual post describing flow fields for generative art and how changing parameters can completely change the outcome.

January

06 Monday

  • Tufte-org-mode

    An org-mode environment for making Edward Tufte style books / papers with notes in the margin (like so and so). Would be perfect for a book on evolving cellular automata!

03 Friday

  • Org reverse datetree

    Needed this to get org-mode to store the entries on this page in reverse order - so that the latest one is on top

2018

March

16 Friday

  • An Ask HN about software projects with a lot of nice links.
  • A book claiming to teach seven languages in seven weeks - each language is pretty unique and paradigm shifts are quite useful, like how learning Haskell helped us write better Python code now.
  • Started embracing org-mode for spacemacs, it’s now unlive-able without.

09 Friday

A very relevant programming blog with an amazing amount of content. Almost all the posts are useful for us - ray tracing, audio processing, math …

February

27 Tuesday

  • We started learning Scheme and The Little Schemer is a joy to go through. Related note, switched to spacemacs for its great Lisp REPL support and Vim keybindings.
  • JupyterLab is great for what we do. PyCharm’s code-completion is still better in actual scripts though.
  • Pythonic Perambulations - a blog on Python to keep on our radar.
  • A comprehensive set of books about game programming and all it entails - like physics engines, maths, and rendering.

02 Friday

Started looking into physics engines and inverse kinematics. Some resources:

January

30 Tuesday

The animation library used by 3Blue1Brown to make his math videos.

24 Wednesday

09 Tuesday

  • Many of the books here look absolutely fascinating.
  • Philip Ball is a great resource for learning about natural patterns and algorithms, especially his trilogy “Nature’s Patterns”.

2017

December

19 Tuesday

We just started looking into harmonographs and suddenly they were popping up everywhere.

15 Friday

Chalkdust seems like a great magazine for maths and puzzle lovers, the Crossnumber was a joy to solve.

13 Wednesday

Folds2D, a tumblog with beautiful generative art in Clojure.

November

04 Saturday

  • The Scipy 2017 conference had some pretty neat tutorials. They showcase some extremely cool libraries in Python. This repo has links to most of the good stuff.
  • The Numba tutorial was a great watch and wow is that thing amazing.
  • The Holoviews tutorial made us realize it would be great for some of our projects involving visualization - like cellular automata.
  • This post on Numba makes it sound like something we should use right away. Also, another bioinformatician blogger!

03 Friday

Optical art movement - Art based on optical illusions dating all the way from the 1900s. Some of these are precise enough to be mistaken for computer-generated!

October

28 Saturday

Another blog on generative art algorithms, mathematical patterns that also happen to be aesthetically pleasing. An incredible amount of content as well.

26 Thursday

Yet another database paradigm, TileDB. Automatically handles genomics data formats - something to keep in mind.

26 Thursday

The book on ray tracing whet our appetites for similar stuff. Here’s a neat book on shaders, it’s incomplete but the unwritten chapter names give us a hook to start Googling at least.

25 Wednesday

A huuuge list of programming books. Some of them look like absolute must-haves.

22 Sunday

Ray Tracing in One Weekend delivers exactly what it says in the title. Also easy to Pythonize the C++ code. Optimization with numpy/numba/cython however, is something we’re saving for after getting through all three of the Ray Tracing mini-books.

19 Thursday

16 Monday

Cellular automata again but this time different versions interact with each other.

13 Friday

12 Thursday

A truly brilliant blog, Math intersection Programming. Just itching to try out all the posts in the Art Generation section, and read through the Cryptography section too.

September

28 Thursday

Getting back to a previous project of scraping bird song data from xeno canto, here’s a nice set of articles on Notes on Music Information Retrieval.

14 Thursday

  • I don’t know how we missed gloss before, but a processing-like graphics library for Haskell is a dream come true.
  • A great HN comments section on one of our favorite blog posts.

06 Wednesday

sourmash Crazy fast estimation of pairwise distances between whole genomes. The paper talks oh so casually about clustering all the genomes in NCBI RefSeq (~55,000!) in 46 CPU hours.

06 Wednesday

  • Continuing on our long-forgotten idea of building a citation network to judge the quality of newly published papers/papers on biorxiv, here are some good datasets of papers with citation information that’s linkable - AMiner and Open Academic Graph. Now we just need some hard drives to store the data, and some generator-laden Python code to parse it.
  • scipy’s compressed graph module is what we have in mind for graph algorithms on the citation network.
  • Academic torrents boasts 22.41TB of research data - look at later.

01 Friday

A quirky blog post on functional programming.

August

21 Monday

Setting up a blog unfortunately requires a bit of CSS work. We looked through pretty much all of the links on this Ask HN for minimal CSS frameworks and Skeleton turned out to be the most bearable one.

19 Saturday

17 Thursday

07 Monday

  • Another idea to put a pin in - grow corals in an aquarium.
  • Stunningly illustrated geometry books by Oliver Bryne. Here’s another one.

06 Sunday

  • We’ve decided to embrace vim. Borrowed most of our setup from haskell-vim-now and Stephen Diehl’s post.
  • We’re trying to learn Dutch by reading comic books. This adventurous endeavour led to 2 pages of reading and then a half hour of writing a script to make an English-Dutch dictionary from our comic-book-reading notes.

05 Saturday

02 Wednesday

  • Cellular automata, like Conway’s game of life, are absolutely fascinating. We’ve been trying to get into the Haskell diagrams library and this person has an amazing set of cellular automata written in it.
  • Some Haskelly possibilities to try out on an Arduino - from the wiki, and Juniper.
  • A neat project to make punch tapes for those little mechanical music boxes. Putting a pin in this for later.

July

15 Saturday

Some beautiful illustrations.

June

13 Tuesday

JavaScript is a little too important for the web and a little too annoying to use. There are some ways to write JavaScript with Haskell, though it’s still a bit tricky (no surprises there). The options for writing JavaScript in Haskell seem to be GHCJS, Fay, and Haste

  1. GHCJS is clearly the most powerful in terms of having most of Hackage available, but people say it spits out way more .js code than required which could make things slow to load on slower internet connections.
  2. Fay looks nice and clean and converts to a reasonable amount of code too, but when they say it’s a proper subset of Haskell they’re not messing around. Not a lot of packages added yet.
  3. Haste looks like a compromise between the two but this guy said three years ago

I liked Haste initially, until I got to that absolutely necessary evil, JavaScript interop, and everything fell apart.

This was three years ago though, maybe they’re great now? Also Ben Lynn used Haste for his tiny browser games and they look pretty amazing.

Of course, (with great reluctance) we could shift to another language that’s still Haskell-like but plays nicely with JavaScript. Some options here are Elm and Purescript. This guy from above chose Elm but people on Reddit and people on HackerNews seem to vote PureScript.

06 Tuesday

01 Thursday

  • For a better understanding on how CPUs work, it may be interesting to watch an 8-bit computer being built on breadboards or even try to make one for fun (honestly though, personally I wouldn’t go that far. Edit: having second thoughts).
  • Turns out that Dijkstra had a blog!

    Well, close enough. He (hand/type)wrote these manuscripts called EWDs (his initials) and physically mailed photocopies of them to various people in academia. He has over 1300 of these, all the way from 1962 to 2002! This website has the whole collection (with transcribed versions of many) and describes them as

    technical notes, trip reports, insightful observations, and pungent commentaries

    It’s a real goldmine. There are numerous mathematical proofs, rants, observations, experiences, all littered with hilarious dialogue. Here’s two quotes from 1991.

    How should we react to this computer addiction? … We could, for instance, head for some sort of electronic LSD. - EWD1100

    Post Scriptum At the beginning of this text you may have noticed that I did not define PSST. I hope that, as you continued reading, you have noticed that the absence of that definition did not matter. You are perfectly free to use the term PSST for the rest of your life: I donate it herewith to mankind. If you insist on seeing it as an acronym, I can divulge the secret: it actually emerged as an abbreviation for Pompous Simulation of Science and Technology. (End of Post Scriptum) - EWD1108

May

31 Wednesday

30 Tuesday

  • A beautifully written set of posts about elliptical curves in cryptography.
  • A GitBook on functional programming.

    Love the style of writing. It’s in JavaScript but the concepts obviously translate and he gives a pretty good reason for using JavaScript.

    In a pure functional language, you cannot log a variable or read a DOM node without using monads. Here we can cheat a little as we learn to purify our codebase. It’s also easier to get started in this language since it’s mixed paradigm and you can fall back on your current practices while there are gaps in your knowledge.

    That said, typed functional languages will, without a doubt, be the best place to code in the style presented by this book. JavaScript will be our means of learning a paradigm, where you apply it is up to you. Luckily, the interfaces are mathematical and, as such, ubiquitous. You’ll find yourself at home with swiftz, scalaz, haskell, purescript, and other mathematically inclined environments.

    JavaScript also lets the author compare terrible imperative code with the cleaner functional version. Three chapters in and seems like a great read

  • Not sure how interested we’d be in Hackett considering we don’t know anything about Rackett, but the journey to achieving it in The story so far, and getting to Hackett 0.1] (starts at about 3/4th way down in the page) talks about this paper, an algorithm for implementing a declarative system of bidirectional typechecking, that he’s implemented in Haskell. Now that seems like something to look into
  • Some resources for developing OSes, shells and compilers, just because. A book on Linux Commands, Editors, and Shell Programming, A set of pages on self-compiling compilers, a Gitbook on making an OS in C++.

28 Sunday

  • Xeno-canto, a bird song recording database built by public contributions. The project is funded by The Naturalis Museum in the Netherlands and contains more than 100k recordings of a wide range of bird species. The audio also has loads of meta-data attached, such as geo location, elevation and type of bird behaviour when the recording took place. Not sure if the data can be downloaded in bulk but we wrote a simple scrapy spider script to crawl and collect meta-data with the corresponding download links for the audio files. Could be a nice dataset for an audio processing project.

27 Saturday

  • Some thoughts on recording “unheard” sounds of nature

    Our humanly senses are like a curse which limits our exploration of the world around us. One of the driving forces of scientific knowledge was to gradually lift this curse, transforming unobservable matter/waves into an observable form. The need for extending sensory perception also holds true for any curious individual. I am one of those people who gets excited when looking at a bug under a microscope, a flickering squid underwater behind an underwater mask, a falcon swinging in the air with a pair binoculars or the craters of the moon with a simplistic telescope. I feel lucky that many of the instruments for observing the “unobservable” are affordable for personal use. Many of these instruments, for our satisfaction, are to enhance our eye sight and this is understandable as we are primates after all. However, aren’t you ever curious of hearing nature in unheard ways. Many insects make sounds at more than 20khz frequency. Wouldn’t you try to hear them in your garden if you could? For the people who would, there aren’t many ways to achieve this without paying tons of money for expensive professional microphones. Here is a nice blog post which discusses the availability of such specialized instruments. Another old-school website on recording sounds of nature. Here is an article which talks about finding cheap ultrasonic microphone modules. So, what’s keeping me away from converting a cheap bat detector into a simple DIY ultrasound recorder? This is my plan:

    1. Find a cheap microphone module which can record >20khz sound.
    2. Connect it to a raspberry pi
    3. Implement and use an algorithm to convert the high frequency sound into a form that we can hear without altering the time domain. Some methods to look at: Phase vocoder, Spectral modeling synthesis
    4. Enjoy some bug music.

26 Friday

  • While reading two papers on RNA-Seq transcript quantification, we realized that the authors of one paper were so up-to-date that they could compare their tool to the results of the other paper which was pre-published (pre, mind you, not actually published) just a month before they pre-published their own. So here’s an idea: networks of authors and citations, clustered by labs and collaborators, to assess the potential impact of pre-published papers on arxiv and biorxiv and newly published ones in other journals with no citations yet. Citation counts should only take into account citations outside the paper’s circle of influence (no patting your own back).

25 Thursday

  • Took a look at toyplot, a self-proclaimed “kid-sized” plotting library in Python. Seems like a good choice for basing a scientific plotting library on. It has all the basic functionalities of matplotlib but without the horrific function- and style- arguments floating in empty space. Toyplot has a variety of canvas, axis and plotting functions which actually make sense and uses CSS formatting for styling the details. Added bonus - interactive (i.e. you can click and see which points are where on the axes), SVG plots (i.e. resizeable, play-around-able without messing up the resolution)! Milestone 1: Recreate A Compendium of Clean Graphs in R using numpy, scipy and toyplot.
  • Another bioinformatician had a similar idea and made toytree, a tree-plotting library based on toyplot. It looks great! Heartening that he used toyplot too, really brings out its potential for hassle-free scientific plotting.
  • Type Hinting in Python 3 - What is it? Good for IDEs, catching bugs, and understanding code but isn’t used for speed improvements like in Cython. Still, it’s a pretty great practice for development and probably makes it easier to port code to faster languages.

24 Wednesday

  • People from Purdue who evaluated the design of the R language said

    As a language, R is like French; it has an elegant core, but every rule comes with a set of ad-hoc exceptions that directly contradict it.

    And yet it’s still used heavily by bioinformaticians. One reason is the wonderful plotting support by ggplot2 etc. Python plotting on the other hand, seems mainly built on that ugly mammoth of a library, matplotlib. Instead of starting afresh, people try to hide the mess of matplotlib under the carpet. Others use Javascript instead to make it interactive and browser-based but somehow haven’t caught up with the simpler syntax of scientific plotting in R. ggplot (the Python port of ggplot2) seems to be coming along but it’s still weird to have R syntax in a Python library when Python syntax can be just as simple and intuitive. Something must be done. (Toyplot or Biggles may be a good start.)

  • Haskell in bioinformatics( Haskell really has it together as a language, with Hoogle and Hackage and Stack. If only Python was that organized.
  • Pointfree.io neat website that converts your Haskell code into point-free form which just happens to be the trend these days.

21 Sunday