Dailies

2021

October

August

  • A list of books from every nation in the world.
  • A mesmerizing collection of AI-generated plants.
  • Beautiful Python maps
  • An incredibly well-designed website about house plants.
  • A translated, annotated and remixed edition of Guy Debord’s The Society of the Spectacle.
  • Started looking into some open-source software we could self-host for just the two of us:
    • Rustpad - a collaborative code editor
    • Talkyard - a community discussion platform to share links and resources, and comment on them.
    • Linkding - an intuitive and beautiful bookmark service, with a nifty Firefox extension. Should help with keeping this page up to date too.
    • Tania - a farm management journal for when we finally have our own farm/large garden.
    • I, Librarian - a feature-packed service to organize research papers - multiple import options (DOI, PubMed ID, arXiv etc.), exportable annotations with colors and everything, tagging and organization into (also collaborative) projects, full text search, and export to citation managers (!).
    • And finally, Homer - a static homepage we can add to the server that links to all the other self-hosted stuff
  • An alternative to gooseberry for local PDFs.

July

  • Wrote a Python library to generate composable, customizable 2D matplotlib visualizations of 3D protein structures, portein: Portraits of Proteins. It uses some linear algebra from various StackOverflow answers to find the optimal 2D projection, so I don’t have to fiddle around trying to find the protein’s most flattering angle. portein_example
  • Ported the popular recipe ingredients parser, ingreedy, to Rust at ingreedy-rs.
  • AlphaFold and EMBL released the AlphaFold Protein Structure Database with over 350,000 predicted structures and over a million coming up!
  • Sioyek is a PDF viewer designed for reading research papers and technical books.” - this could be very useful.
  • Oku is a really pretty GoodReads alternative.

June

  • Multiverse - a microblogging platform with a unique expressive style.
  • A newsletter on graph machine learning.
  • A .dotfile manager called Greatness - keeping this in mind for next month when I switch to a new work laptop
  • Always on the lookout for a Powerpoint replacement - sli.dev lets you make presentations from a single markdown file. It looks pretty polished - there are themes, different kinds of layouts, and a lot of ways to customize the output.
  • Mini-Conf lets you set up your own full-fledged virtual academic conference!

May

PALETTE = ('#88CCEE', '#44AA99', '#117733', '#332288', '#DDCC77', '#999933', '#CC6677', '#882255', '#AA4499', '#DDDDDD')
  • A LaTeX editor extension for JupyterLab
  • The creator of Dead Cells released a very cool-looking Level Design toolkit
  • Tiny tools for sparking creativity.
  • Zellij is a screen replacement with a lot of extra features - keep in mind for the new work laptop
  • Neuron and its spiritual successor Emanote look like brilliant systems for designing micro-blogs and project sites.

April

March

  • Yet another collection of personal blog sites
  • A crazy project on 3D printing food dye into jello!
  • Pangolin A Linux AMD laptop? Say no more.
  • A beautiful 2D path tracer (also Rust + WASM + ReasonML, interesting combo)
  • Manubot A set of powerful command-line tools for writing a manuscript using Markdown and git - seems a whole lot easier to handle than LaTeX + Zotero + exporting to docx/PDF to get comments from collaborators etc. Has some great citation tools and neat interactive web versions of manuscripts.
  • A Prolog inspired interactive fiction language called Dialog.

February

  • Found GoatCounter a FOSS web analytics platform with zero cookies (no GDPR notice needed!). We’ve replaced Fathom analytics with this now.
  • The Zine Machine, A 3D-printed block printing press - definitely a project for our Ender 3.
  • This post walks through variations of the Game of Life in Haskell.
  • Adorable and information-packed comic series on Quantum computing.
  • We just mentioned signed distance functions (SDFs) last month and this month came across sdf, a Python library for generating 3D meshes using SDFs.
  • Pattern matching accepted for Python, woot!
  • A textbook on Algorithms for Decision Making.
  • Obsidian a customizable, extensible personal knowledge base system built on local Markdown files (also has a great Discord community). Inspired me to refactor gooseberry into having customizable plain text templates so I could integrate it with this and with org-mode.

January

  • Keeping a close watch on Math Inspector, a Python-based visual programming environment.
  • Literate programming meets neural networks with LabML.
  • Lets-Plot - JetBrains’ take on ggplot for Python. Interactive, beautiful, intuitive, and integrate-able into PyCharm!
  • Neural Geometric Level of Detail: Real-time Rendering with Implicit 3D Surfaces works with 3D objects represented as a collection of double-differentiable Signed Distance Functions (SDFs) which tell you the distance to the object’s surface from any point. We see it as the equivalent of vector images in 3D. Inigo Quilez goes into a lot of detail on these.
  • This amazing video shows the growth of a salamander from a single cell!
  • 3D scanning is something we want to explore along with our 3D printer. Started learning about a technique called structured light scanning from these resources: 3D Scanning for Personal 3d Printing and CVFX course videos

2020

December

  • Inciteful - build graphs of academic literature from a query publication. A responsive and polished website providing a pretty great way to explore new literature and find scientists and topics to follow.
  • Interactive Creative coding examples using Observable.

November

October

  • Qiskit is a Pythonic quantum computing library with pretty extensive documentation.
  • Quantum Country is a wonderfully written introduction to quantum computing. Our interest is very much piqued - expect more.
  • The Monad Challenges are based off of the format of Cryptopals except for learning monads in Haskell.
  • Opinionated Guides is one of the best knowledge bases we’ve seen. Here’s an example page on generative art.
  • Talon is a pretty extensive speech-to-text/action software that aims to replace your keyboard and mouse with your voice. Seems apt for lockdown times.
  • blokdots lets you build hobby electronics hardware prototypes with a drag-and-drop graphical interface.
  • Game-of-life computer provides a thorough explanation of a functional computer within Conway’s game of life.
  • The Bioinformatics and Beyond Podcast is a new podcast which could be quite relevant.

September

  • A well-designed 2D game level editor from the creator of Dead Cells. Compile-time Haxe errors!
  • An interactive 2D ray marching demo in WebGL.
  • Trefle - an API for plants with info about optimum temperatures, fertility requirements etc. for gardeners and gardening robots.
  • JobRxiv - an Rxiv for jobs in science.

August

  • A collection of biology and bioinformatics blogs.
  • JupyterBook - A Jupyter notebook based book building thing, with MyST markdown to add all kinds of additional functionality. We’re thinking this would be great for a bioinformatics blog.

July

  • Fig - Turn common terminal commands into apps. Feels a bit like The Way.

May

  • An amazing blog on generative art (mostly 3D/2.5D, mostly using Houdini). Here’s one project that caught our eye.
  • Penrose - mathematical notation transformed into things like set diagrams, geometry etc. Something between mermaid and Tikz.

March

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

February

  • 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

2018

March

  • 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.
  • 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

January

2017

December

  • We just started looking into harmonographs and suddenly they were popping up everywhere.
  • Chalkdust seems like a great magazine for maths and puzzle lovers, the Crossnumber was a joy to solve.
  • Folds2D, a tumblog with beautiful generative art in Clojure.

November

  • 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!
  • 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

September

  • 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.
  • 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.
  • 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.
  • 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.
  • A quirky blog post on functional programming.

August

  • 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.
  • Some out of the way Haskell books which look interesting
  • Beautiful Code - Visual stuff with Haskell bindings to Cairo and OpenGL.
  • Haskell Road to Logic and Programming - This one is quite a good read, explains concepts in logic and mathematics with examples in Haskell.
  • Computational Semantics With Functional Programming - Another by the same author as the previous one, definitely on our to-read list.
  • These cryptography challenges look like a lot of fun.
  • Another idea to put a pin in - grow corals in an aquarium.
  • Stunningly illustrated geometry books by Oliver Bryne. Here’s another one.
  • 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.
  • Our adventures with Hakyll led to some great new content to follow - Blaenk.Denum, YBlog, Roman Cheplyaka.
  • 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

June

  • 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.

  • At last, several millions of product manuals indexed in a product manual search engine.

  • The title says it all: A hands-on introduction to video technology: image, video, codec (av1, h264, h265) and more (ffmpeg encoding). Reading through this could be useful for understanding more about video data.
  • 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

  • Found a really cool website with publications on various programming topics, Code Words by The Recurse Center. Most interesting for us right now are the ones about functional programming (like this comprehensive introduction) and the one about grammar of graphics (for the eventual python plotting library project we have in mind).
  • Programming with Escher talks about recreating something like the Square Limit woodcut by Escher.

    square-limit

    There’s also the original paper on Functional Geometry by Peter Henderson (and a Haskell implementation too).

  • 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++.
  • 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.
  • 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.
  • 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).

  • 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.
  • 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.
  • Haskell exercism great for working your way up, especially if you take reviewers’ advice.
  • Stephen Diehl a nice Haskell blog.
  • Haskeroids a game in Haskell! Nice step-by-step to follow along.
  • List of Must-Read Bioinformatics Papers according to Zhang Lab. Good reference.
  • Trivium inspired this page and format.