- Hypothesis - A browser-based tool to annotate any and every web page! We’ve added it to the blog now too.
- 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
- 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.
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.
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.
- 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.
- 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.
- 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.
- 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 beautiful 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.
- Haste looks like a compromise between the two but this guy said three years ago
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.
- A beautifully written set of posts about elliptical curves in cryptography.
- A GitBook on functional programming.
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.
- 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.