- A set of amazingly well-designed math explainers
- A couple of different academic website styles:
- al-folio (what I ended up using)
- This template by Prof. Spencer Bryngelson (with support for automatic DOI buttons)
- The very extensive Hugo Academic.
- A cookbook from 13th century Moorish Spain
- Annotated deep learning algorithms
- Online CAD
- AI-powered semantic search with txtai
- 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.
- 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.
- 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.
- 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!
- A set of color-blind friendly palettes, useful for plotting.
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
screenreplacement 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.
- An engrossing article about cleaning up handwritten notes. The blog has other nice gems too.
- A new book and seminar about Geometric Deep Learning.
- Collaborative coding in JetBrains IDEs!
- 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.
- 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.
- 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
- 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.
- AlphaFold2 “solves” protein folding! Some relevant blog posts. Looks like interaction is the new frontier.
- 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.
- 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.
- 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.
- 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.
- Hypothesis - A browser-based tool to annotate any and every web page! We’ve added it to the blog now too.
- 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.
- 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!
- 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
- A beetle generator made by machine-learning zoological illustrations
- Rhasspy is an open source, fully offline voice assistant toolkit
- 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 …
- 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.
- Started looking into physics engines and inverse kinematics. Some resources:
- Inverse Kinematics for Tentacles
- ikpy, a Python inverse kinematics library with some very well-written code.
- Verlet integration basics
- The animation library used by 3Blue1Brown to make his math videos.
- Generative art by Andy Lomas
- Algorithmic Botany is a wonderful site with loads to resources to papers/books/code etc. all about patterns and algorithms in nature.
- We have an EleksDraw plotter now so it’s nice to see what other people have done with their plotters.
- 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”.
- We just started looking into harmonographs and suddenly they were popping up everywhere.
- Some nice resources.
- Images made using a pendulum with a light attached to it and a super fast camera.
- Visualizing Mathematics - VERY cool blog.
- 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.
- 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!
- Another blog on generative art algorithms, mathematical patterns that also happen to be aesthetically pleasing. An incredible amount of content as well.
- Yet another database paradigm, TileDB. Automatically handles genomics data formats - something to keep in mind.
- 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.
- A huuuge list of programming books. Some of them look like absolute must-haves.
- 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.
- Another mathematical art blog to follow.
- Cellular automata again but this time different versions interact with each other.
- A programming language that looks like DNA, it’s beautiful.
- 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.
- 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.
- 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.
- Some gorgeous illustrations.
- 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.
- 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.
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.
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
- 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.
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.
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:
- Find a cheap microphone module which can record >20khz sound.
- Connect it to a raspberry pi
- 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
- 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.
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.