About the site
Table of Contents
🚧🚧 this page is still under construction 🚧🚧
¶Motivation for doing this
In no particular order,
- I'm interested in many different things which I don't have time to explore on my own (ideas, notes), but I'd be happy to discuss them with people who are looking up similar things on the Internet.
- I'm working on different #tools, which I also would like to share with other people because it's satisfying, can inspire other people to do similar things, and open source community can help with maintaining them.
- I've got a fairly big knowledge repository of semi-curated data, which I'd like to share both for other people's and my benefit.
- Sometimes there is an urge to share things that don't fit in few tweets and I want to make them somewhat more persistent.
- I often struggle to describe my interests to new people I meet, and it's hard to guess what other people might be interested to know about you. This site could potentially serve as a rough idea of "what's on my mind" for other people to explore.
And vice versa, I feel that if people had better digital projections of their minds it'd be way easier to get to know them, find shared interests and have meaningful conversations.
- Writing is a whole different mode of thinking, and practicing it gives access to the thoughts you'd never have thought otherwise.
- Alexey Guzey writes about this in detail: Why You Should Start a Blog Right Now
I'm a fan of leaving TODOs wherever I can; I can't stand forgetting useful thoughts, so you might see them around a lot in my texts.
Motivation for choice of software: somewhere along the lines of Gwern.
I'm in progress of writing a post explaining my setup, but if you are specifically curious about something, feel free to ask!
I use Hakyll + some custom scripts to wire everything together, here's the repository.
¶TODO why static blog?
In progress of writing about it, stay tuned!
For the most part, I expect discussion on Reddit/Twitter or wherever I share my posts. However it's good to have an extra means of commenting just in case.
I'm using Isso at the moment, since it's:
- very easy to set up and admin
- very lightweight
Data is stored in an sqlite database, which means it would be easy to migrate the comments if I decide to switch (or at least doable, unlike Disqus where I didn't manage to change domain name).
Also it's easy to back up, so your comments would be safe!
Some of the blogs that inspired this in terms of content, structure, design decisions, so I'd like to give them credit:
- Gwern. His CSS sheet is a pretty great source of inspiration.
- in particular, link type icons
- Ink & Switch. Very nice and clean design.
- in particular, some of sidenotes CSS
- Everything I Know
- I've got lots of random notes on different topics which I'm gradually going to share, perhaps similarly to that wiki
- Oil Shell Blog
inline <code>tags are pretty neat
- nice headerlinks for paragraph anchors
¶TODO How to make static blogging easier?
¶TODO VCS integration
- not everything is easy to put under version control
- for instance ipython notebooks are essentially huge JSONs also containing outputs. I'm using nbstripout so I can only keep important bits in git.
- sometimes things are not deterministic, for instance if you use temporary directories in literate notebooks
- large files, e.g. plots generated from ipython notebooks ideally need to be kept under version control too
- it would be nice to generate public history of changes for each page directly from git history
Disqus is a bit shit. I think of people's thoughts and comments are sacred and while I make sure mine are backed up, losing others' information is somewhat irresponsible.
So before starting the blog I actually practiced migrating domain names and post URLs (who knows, it might be necessary in the future) against a test Disqus instance, and that didn't really work well.
you can only manage comments data via the API, and do migrations over their web tool, which is pretty manual and error prone.
In contrast, with Isso, which I'm using at the moment I can back up the database, write a proper migration script, test it and if anything breaks, just restore the old database.
Other downsides of Disqus:
- takes noticeable time to load. I prefer my pages to be as lightweight as possible.
- shows ads. It's fair enough considering they provide hosting
- let alone usual stuff about privacy, tracking etc, but I don't know much about Disqus specifically in that regard
Ideally I'd want comments to be some sort of annotation overlay. So you could comment at any place in text, without having to jump back and forth. Perhaps one could choose any annotation platform they like and I would just need to query the comments from each of these platforms and display all of them. It's a bit vague though, so needs a proper think!
¶TODO dead links
Link rot is pretty bad, Gwern writes about it in high detail.
I don't want to contribute to the problem, so at the moment I'm using linkchecker running every night in Cron, seems to work well. So far haven't had any genuinely rotten links, but it does protect against typos in urls and that sort of thing. In Firefox, I'm using Simple Link Checker addon, it also helps with checking other things, e.g. Github readmes.
At the moment preventing dead urls requires some technical skills.
Ideally it'd be more automatic, perhaps some sort of service that crawls your website every week/month or so and sends you a report. archive.org seems like an appropriate platform to kick this off.
Technical skill, tedious as well.
¶TODO spell checking and other forms of linting
At the moment I'm using ispell in emacs, seems to work well, but ideally I'd like it to be integrated as a 'pre-publish' hook or something.
Also would be useful to have semantic (e.g. grammar) checks as well, I often skip words when typing.
No easy way to compare htmls. For content you can use git, but that doesn't help with design (e.g. CSS) changes that might be quite catastrophic.
At the moment, I'm using some hacky semi-automatic screenshot comparison.
¶STRT [B] have a 'stable' and 'unstable' versions of blog? staticblog
Unstable – watches over content updates. By default website points at unstable version. Stable is fully static.
If something's broken about unstable version, automatically redirect to stable (custom 404 page?).
Share comments perhaps?
¶TODO [B] nbinteract for interactive notebooks ipynb
nbinteract was designed to make interactive explanations easy to create. In this tutorial, we will show the process of writing a simulation from scratch and visualizing the results interactively.
¶TODO [C] how to fold content but still make it searchable via Ctrl-F?
¶STRT [C] would be nice to have semibold, e.g. for error handling post
dunno, with serif font it looks nice enough..
¶STRT [C] diff rendered posts to test design changes
TODO something in screenshots dir (do git diff HEAD)
¶Bells and whistles
TODO [C] Each blog post has automatic changes coming from git?
TODO [C] link page source
TODO [C] two feeds, one with new content/major changes; other with minor changes?
TODO [C] org tags can't contain dashes
I guess that can be solved by programmatic unification of tags
[C] III Quantum Field Theory inspiration
Very neatly rendered notes!
it's actually a really really decent book too
TODO [C] Andy Matuschak
I like the coming soon bits, also generally pretty.
When publishing annotation friendly documents, be sure to:
Include a <link rel="canonical" href="…" /> tag on pages that may be available at different URLs (and for which you want to share annotations).
Include Open Graph Protocol content in your metadata
More background on good practices and relating documents together can be found in our Guidance for Web Publishers.
¶TODO [C] run grammar checks
Not sure of grammarly, But if you are open to the open source alternative LanguageTool then emacs-langtool might help.