[{"data":1,"prerenderedAt":3530},["ShallowReactive",2],{"article-/articles/lit2img-review":3,"library-posts":1098,"library-books":1253},{"id":4,"title":5,"author":6,"body":7,"date":1084,"description":1085,"extension":1086,"image":1087,"meta":1088,"navigation":1089,"nearby":6,"path":1090,"seo":1091,"slug":6,"stem":1092,"tags":1093,"__hash__":1097},"content/articles/lit2img-review.md","What I learned building a small text-to-image model",null,{"type":8,"value":9,"toc":1065},"minimark",[10,19,24,41,44,47,50,53,60,64,67,137,140,144,147,156,163,167,196,202,208,219,289,295,304,310,321,325,328,341,344,353,415,418,421,428,432,453,460,467,471,479,482,488,495,502,509,512,515,522,576,579,582,586,589,592,599,602,609,612,615,618,621,624,630,637,648,659,666,716,722,731,741,744,811,814,817,824,828,831,845,851,855,865,868,878,882,885,888,895,902,911,915],[11,12,15],"fig",{"src":13,"alt":14},"/images/lit2img/fig-centerpiece.jpg","A four-by-four grid of small painterly images: a portrait in red, an ink drawing of a ship, a pink mountain lake, an abstract in blue and yellow, a still life, a rainy street, an engraving of riders, a girl in white in a garden, a stormy sea, a sketch of a fisherman, a sunflower field, a snowy village, a cathedral interior, horses in a meadow, a market square, and a tree against an orange sky.",[16,17,18],"p",{},"A sample of 16 images generated from sentences describing a variety of different subjects, styles, and moods.",[20,21,23],"h2",{"id":22},"overview","Overview",[16,25,26,27,34,35,40],{},"This article follows a project called ",[28,29,33],"a",{"href":30,"rel":31},"https://github.com/wesdoyle/lit2img",[32],"nofollow","lit2img",", which renders sequences of images from input text. I\nworked on this purely for fun. I've recently been looking for projects I could complete that would bring me a sense of joy, which is\nsomething I long for in my work these days.  Enjoyable software-related work, for me, often contains elements of storytelling and\ninformation visualization. One previous project that comes to mind was ",[28,36,39],{"href":37,"rel":38},"https://github.com/wesdoyle/limbus",[32],"Limbus",", a very basic tool for\nvisualizing the running sentiment of text over time. I built Limbus with the idea that it would be fun to visualize linguistic signals (like\nemotional sentiment) over the course of a novel.",[16,42,43],{},"This time around, I was interested in learning more about text-to-image models. I set out to experiment with building a tool for generating\nframes of images from sequences of text. The specific goal was to learn more about how these models work by building, training, and\nevaluating one from scratch, and to enjoy experimenting with the model as it produced visual output. I explicitly did not\nintend to build a model that was \"useful\" for any purpose other than this exploration.",[16,45,46],{},"In general, I lament the use of text-to-image models for things like advertising and publishing. Even so, I find it fascinating to learn\nabout how these models work.",[16,48,49],{},"One of the most compelling uses of LLMs in my own experience, outside of professional work, is in their use as guides through new topics of\nstudy. Throughout this project, I engaged Claude models (Fable 5.1 and Opus 5.5) to build a learning path through the design of each stage\nof the project.  In an initial prompt, I explained the overarching goal, including my own learning objective, the constraints, and a\nrequirement to iteratively build upon an index of concepts in the domain.  This prompt generated a high-level sequence of modules, each of\nwhich covered a specific aspect of the architecture or training and serving processes.",[16,51,52],{},"Over the course of about a month, I spent several evenings a week writing and generating code for each module and reading papers about concepts\nas they were introduced, based on examples provided by the LLM.  I found it useful to treat the code output of the frontier model like traditional\nprint material, and the prose surrounding the code as a conversation with the author about the topic or implementation. As the LLM generated code\nimplementing each part of the model in its output, I chose to transpose most of it manually, as I would if I were using a book. This preserved a\nkind of slowness that I feel is important in learning.",[11,54,57],{"src":55,"alt":56},"/images/lit2img/fig-centerpiece-2.jpg","A four-by-four grid of generated images with the prompt printed under each: sea, beach, farmland, flowers and portraits in color, and four pen-and-ink drawings.",[16,58,59],{},"Sixteen more generated images, with the sentence that produced each one printed under it.",[20,61,63],{"id":62},"general-learnings-and-takeaways","General Learnings and Takeaways",[16,65,66],{},"On the AI/ML side of things, I suspect the issues I encountered are obvious to folks who do this work professionally.\nHowever, a few takeaways from the project seem to generalize well beyond the purely technical learnings. This was the first\nsignificant personal project in which I used a frontier model to act primarily as a \"guide\" through topics that were new to me.",[68,69,70,120,134],"ul",{},[71,72,73,74,78,79,84,85,90,91,96,97,102,103,106,107,111,112,115,116,119],"li",{},"Using frontier models for learning a new subject, or deepening my understanding of an existing topic, can be valuable. However, I'm\nstill left with the feeling that I ",[75,76,77],"em",{},"don't know what I don't know",". I knew nothing about the mechanics of latent diffusion\n(",[28,80,83],{"href":81,"rel":82},"https://arxiv.org/abs/2112.10752",[32],"Stable Diffusion","), ",[28,86,89],{"href":87,"rel":88},"https://arxiv.org/abs/2103.00020",[32],"CLIP",", diffusion transformers\n(",[28,92,95],{"href":93,"rel":94},"https://arxiv.org/abs/2212.09748",[32],"DiT","), or ",[28,98,101],{"href":99,"rel":100},"https://arxiv.org/abs/2207.12598",[32],"Classifier-Free Guidance"," prior to starting this\nproject.  From that perspective, it was a great experience working with the LLM to build a structured learning path through the relevant\ntechnology while building. As I worked, I produced a running HTML artifact that provided definitions of useful terms and ideas. This\npreserved a kind of dynamic study guide that I could read while ",[75,104,105],{},"not producing code",", which I feel improved my understanding\nover time. However, with previous experience only on the text side of the model, I wonder how long it would have taken me to piece together the necessary\nknowledge to construct and sufficiently understand the ideas behind this model without such an easily-manufactured guide.  Are there important technical\nmistakes or oversights that I made along the way?  I still don't know, because I relied on my own interaction with a frontier model\nto serve as a guide for my learning. It's possible that more exploratory prompting could've helped uncover more unknowns. It still seems\nthat using LLMs as learning companions unlocks a massive potential for self-learners. However, I'm not sure that it entirely replaces reading\ncurated research, controlled experimentation, and, in particular, ",[108,109,110],"strong",{},"human mentorship",". These traditional avenues for learning are much\nslower processes, and typically have the explicit objective of ",[75,113,114],{},"learning"," rather than ",[75,117,118],{},"producing",". The LLM-as-mentor approach seems to\noccupy a much murkier area, a hybrid of learning and the rapid production of a completed result. Even when that completed result is learning\n\"material,\" it's now far too easy to slip out of self-directed learning and into \"build mode.\" I'm curious to learn how other folks use\nfrontier models as learning companions. I'm a believer in \"building to learn,\" but, without care, this path feels more like \"watch it get built to learn,\"\nwhich is an illusory form of learning, especially as a beginner. I don't become a much better pole vaulter by watching an Olympic athlete compete; I need\nsome adequate combination of watching and doing to develop skillfully.",[71,121,122,125,126,129,130,133],{},[108,123,124],{},"I feel a kind of attenuation in my capacity to sit with a problem."," I've often felt my capacity to learn is a well-developed\ntolerance for \"being stuck for long periods of time with a lack of understanding.\"  From now on, there is always a trade-off; ask the\nLLM and get un-stuck, as it pertains to your next output objective, or stay stuck for longer periods of time in relative ignorance in order to exercise your\ncapacity to learn. ",[108,127,128],{},"I believe deep human learning will continue to require direct effort in training one's capacity to sit with not-knowing,\nand often in taking the winding path that emerges when solving problems \"manually.\""," There is immeasurable value in walking these winding paths\nto ",[75,131,132],{},"experience acts of learning",". I should write more about that sometime.",[71,135,136],{},"On the ML side of things, there is generally a loss floor. It took me a while to understand why\nthe loss could reach some asymptotic value while the images produced by the model continued to get \"better.\" A large part of the loss is\nirreducible. At high noise levels, the original image can't be recovered from the input, so the best any model can do is predict a\nkind of \"average.\" While a loss that moves from 1.136 to 1.127 looks small, if the floor is near 1.100, the part the model can\nactually improve has dropped by a quarter! Reading the loss as if zero were the goal is not a reasonable expectation. The loss number\nalways has some constant offset. One way to look at this is to find out, for any given measurement (in ML or anywhere else), how\ngood it can possibly be. Once information has been lost, no change in the model can recover it.",[16,138,139],{},"With those takeaways in mind, what follows is a summary of the project itself.",[20,141,143],{"id":142},"breaking-the-project-down-into-two-problems","Breaking the project down into two problems",[16,145,146],{},"Building a text-to-image model involves working on \"text input\" and \"image generation\" as two fairly distinct problems. The first is\nencoding text as something a network can use -- a vector, or a sequence of vectors, that carries meaning. The second is generating images,\ngiven some input text.",[16,148,149,150,155],{},"Each sub-problem is interesting on its own. So, I split the project into two parts, along these lines. I kept a small\nnumber of important constraints throughout development. First, I wanted to start small enough to train on my laptop (a MacBook Pro with\n",[28,151,154],{"href":152,"rel":153},"https://developer.apple.com/metal/pytorch/",[32],"PyTorch's Metal backend","), and second, I wanted to write the constituent parts by hand, and\nstop to ask questions along the way to improve my understanding. As a result, I built the original tokenizer, attention, residual blocks,\nautoencoder, samplers, and the evaluation metrics using only PyTorch's primitives.",[16,157,158,159,162],{},"I'd like to clarify what parts of this model I built \"by hand.\" While I built and trained a tokenizer and transformer for the text side of\nthe model myself, in the end, as I will describe, ",[108,160,161],{},"I replaced it with a pre-trained text encoder, trained on a much larger and broader\ndataset",". The parts of the model that generate images, the autoencoder and the diffusion model, I wrote and trained myself. I also wrote the\nsamplers and the code that evaluates the results. In the final model and training pipeline, all parts that read text or judge images use\npre-trained models. The text encoder in the final model is a pre-trained one from OpenAI, the captions were written by a pre-trained vision\nmodel, and the metrics I report lean on pre-trained models.",[20,164,166],{"id":165},"text-side","Text Side",[16,168,169,170,175,176,181,182,187,188,192,193,195],{},"The text side of the model starts with a tokenizer. For this, I implemented a fairly standard byte-level ",[28,171,174],{"href":172,"rel":173},"https://huggingface.co/learn/llm-course/en/chapter6/5",[32],"byte-pair\nencoding"," tokenizer. This approach, used by models like\n",[28,177,180],{"href":178,"rel":179},"https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf",[32],"GPT-2"," and\n",[28,183,186],{"href":184,"rel":185},"https://arxiv.org/abs/1907.11692",[32],"RoBERTa",", tokenizes text as byte sequences, rather than as characters. UTF-8 writes any character as one\nto four bytes, and a byte has 256 possible values. The tokenizer starts from those 256 and grows its vocabulary by repeatedly merging the\npair of adjacent tokens that occurs most often in the corpus. The character “é” is the two bytes ",[189,190,191],"code",{},"C3 A9","; an untrained tokenizer uses two\ntokens to represent it. If it is common in the corpus, the merge of ",[189,194,191],{}," eventually occurs, forming a single token. A rare character,\nlike a Chinese character in an English corpus, remains unmerged as three or four bytes. Using this approach, rather than an a priori\ncharacter-based tokenizer with a fixed alphabet, nothing is ever unrepresentable. The cost of rarity is additional tokens rather than\ninformation. A pre-tokenization pass splits the text into words (with their leading spaces), digits, and punctuation first, which ensures\nthat merges never straddle two words; this is a convenient heuristic, given that most English words are separated by a space, and\nsentences end with punctuation.",[11,197,199],{"src":198},"lit2img/fig-utf8-bytes.svg",[16,200,201],{},"Three characters from a byte-level BPE tokenizer perspective. A common letter is one byte and one token. \"é\" is two bytes. A BPE may merge\nthese into a single token by seeing it frequently relative to all other byte-pairs in a corpus. A rare character is three bytes that likely\nnever merge into a single token.",[11,203,205],{"src":204},"lit2img/fig-bpe-merges.svg",[16,206,207],{},"BPE training learns an ordered list of merges; encoding applies that list to new text in the same order. Here \"Call me Ishmael\" goes from\nfifteen bytes to ten tokens over the course of five merges.",[16,209,210,211,214,215,218],{},"I trained the tokenizer on twenty public-domain novels and used GPT-2's tokenizer as a benchmark, comparing my token count to GPT-2's for\nthe same text. I did this on ",[75,212,213],{},"Moby Dick"," (seen in training) and on ",[75,216,217],{},"Pride and Prejudice"," (which I held out from training).",[220,221,222,243],"table",{},[223,224,225],"thead",{},[226,227,228,232,237,240],"tr",{},[229,230,231],"th",{},"vocab",[229,233,234,236],{},[75,235,213],{}," tokens",[229,238,239],{},"ratio vs GPT-2",[229,241,242],{},"held-out ratio",[244,245,246,261,275],"tbody",{},[226,247,248,252,255,258],{},[249,250,251],"td",{},"512",[249,253,254],{},"599,565",[249,256,257],{},"1.833",[249,259,260],{},"1.860",[226,262,263,266,269,272],{},[249,264,265],{},"2,048",[249,267,268],{},"413,058",[249,270,271],{},"1.263",[249,273,274],{},"1.269",[226,276,277,280,283,286],{},[249,278,279],{},"8,192",[249,281,282],{},"332,737",[249,284,285],{},"1.017",[249,287,288],{},"1.042",[16,290,291,292,294],{},"At 8,192 entries, a vocabulary about six times smaller than GPT-2's encodes ",[75,293,213],{}," within 2% of GPT-2's token count, and the held-out\nratio is only 0.5-2.5% worse than the seen one, so the merges seem to generalize reasonably well. The texts in the public domain were likely\nnarrow enough in terms of text information variance that it's unsurprising that a tokenizer with a much smaller vocabulary produced similar\ntoken count to GPT-2's tokenizer, which was trained to efficiently tokenize a massively broader corpus of text.",[16,296,297,298,303],{},"I built a 5.25M-parameter decoder-only transformer, also in the GPT-2 family, with causal self-attention and ",[28,299,302],{"href":300,"rel":301},"https://krasserm.github.io/2022/12/13/rotary-position-embedding/",[32],"rotary position\nembeddings",". Position encoding turns out to be a surprisingly deep topic.\nThe systems I worked on around 2015 used word2vec and had no concept of position at all, and the history from sinusoidal encodings to rotary\nis fascinating to me. I'd like to write about it in a separate post some day.",[11,305,307],{"src":306},"lit2img/fig-causal-attention.svg",[16,308,309],{},"One head of causal self-attention, the key mechanism of the transformer. Each token is projected to a query, a key and a value. Scores above\nthe diagonal are masked before the softmax; a token can only attend to itself and the tokens before it, it learns nothing from any token\nthat comes after it, chronologically.",[16,311,312,313,316,317,320],{},"After a minimal amount of local training, prompting the transformer model with “Call me Ishmael,” generated somewhat comprehensible prose.\nIt was interesting to see invented words emerge, like \"",[75,314,315],{},"unrecained","\" and \"",[75,318,319],{},"punoken",",\" both phonetically plausible, as the training\nprogressed. As I increased the amount of text during training, the invented words gradually stopped appearing. It's interesting to see,\nthroughout the project as a whole, that the outputs from relatively small models improved dramatically by adding more data.",[20,322,324],{"id":323},"image-side","Image Side",[16,326,327],{},"This is the part of the project I learned the most from, as I'd never worked with diffusion models prior to this exploration. Diffusion\ntraining adds noise to an image and trains a network to remove it. Given a noisy image, a diffusion model can predict the noise that was\nadded (ε), the clean image (x₀), or a particular mixture of the two (v). These are algebraically interchangeable; given any one of them, you\ncan compute the other two. What differs in each case is the loss. Because the quantities have different scales at different noise levels,\nchoosing a target implicitly chooses how much each noise level contributes to the gradient. Measured as error on the clean image, predicting\nε puts most of the weight on the low-noise steps, predicting x₀ weights every noise level equally, and v sits between the two.",[16,329,330,331,336,337,340],{},"There is a fourth option, called ",[28,332,335],{"href":333,"rel":334},"https://arxiv.org/abs/2210.02747",[32],"flow matching",". Flow matching does away with the noise schedule and\ndraws a straight line from image to noise, ",[189,338,339],{},"xₜ = (1−t)·x₀ + t·ε",". Along a straight line, the velocity is constant, so the network learns one\nvector field and generating an image is solving an ODE backwards.",[16,342,343],{},"This is one of the more complex ideas in the model, and I plan to write a follow up article exploring and visualizing flow matching in more\ndetail.",[16,345,346,347,352],{},"I trained all four approaches on 32-pixel images and scored them with ",[28,348,351],{"href":349,"rel":350},"https://arxiv.org/abs/1706.08500",[32],"FID",", which embeds real and\ngenerated images with a frozen classifier and measures the distance between the two distributions, lower being better.",[220,354,355,368],{},[223,356,357],{},[226,358,359,362,365],{},[229,360,361],{},"target",[229,363,364],{},"final val loss",[229,366,367],{},"best FID",[244,369,370,383,393,404],{},[226,371,372,375,378],{},[249,373,374],{},"ε",[249,376,377],{},"0.061",[249,379,380],{},[108,381,382],{},"35.0",[226,384,385,387,390],{},[249,386,335],{},[249,388,389],{},"--",[249,391,392],{},"36.8",[226,394,395,398,401],{},[249,396,397],{},"v",[249,399,400],{},"0.114",[249,402,403],{},"40.9",[226,405,406,409,412],{},[249,407,408],{},"x₀",[249,410,411],{},"0.049",[249,413,414],{},"51.8",[16,416,417],{},"As you can see, validation loss and FID do not track each other. The x₀ model has the best loss and the worst FID; the ε model has a\nmiddling loss and the best FID. The training objective (in this case, the FID) and the loss did not produce the same ranking.\nI suspect this overarching problem of \"scoring\" different approaches is another complex topic worth exploring in\nmore detail; something I imagine engineers in the ML and AI space must wrestle with as part of real-world problem solving.",[16,419,420],{},"In any case, flow matching with 50 network evaluations came within two FID points of ε with a thousand. Therefore, I chose to continue with\nflow matching as the prediction target.",[11,422,425],{"src":423,"alt":424},"/images/lit2img/fig-prediction-targets.png","A grid of sixteen small abstract images, becoming more defined from top to bottom, with visible differences between columns.",[16,426,427],{},"The same architecture trained with four different prediction targets. Each cell is the model's estimate of the clean image from the same\nheavily noised inputs, at four points in training; the originals are shown in the bottom row.",[20,429,431],{"id":430},"looking-at-the-data","Looking at the data",[16,433,434,435,440,441,446,447,452],{},"The training images come from two sources: 81.4k paintings from ",[28,436,439],{"href":437,"rel":438},"https://huggingface.co/datasets/huggan/wikiart",[32],"WikiArt",", and 1k\nillustration plates from ",[28,442,445],{"href":443,"rel":444},"https://www.gutenberg.org/",[32],"Project Gutenberg","'s HTML editions. It seemed intuitive that captioned images from\ntext would provide reasonable text-image pairs. Unfortunately, I discovered that captions rarely exist in the markup. Here, I decided it\nwould be interesting to generate the captions using a pre-trained local model. I produced the captions with ",[28,448,451],{"href":449,"rel":450},"https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct",[32],"Qwen2.5-VL\n7B",", quantized to 4 bits and running locally at about 60 tokens per second. The model\nwas prompted for one sentence per image, set up to name what is shown, the setting, and the mood. The 1,075 plates took about forty minutes\nto complete. Looking at the images, it also became clear that many weren't illustrations in the sense I was looking for, but page\nscans with small drawings, etc. After a validation split was held out and the page scans were dropped, 78,308 images were left for training.",[11,454,457],{"src":455,"alt":456},"/images/lit2img/fig-contact-sheet.jpg","A grid of small images mixing oil paintings and black-and-white book engravings.",[16,458,459],{},"Looking at the data found several problems, including page scans that were not illustrations, and printed captions baked into images.",[16,461,462,463,466],{},"There are ",[108,464,465],{},"many"," interesting considerations related to training image selection and captioning, and I wish I could spend more time here\nexploring how increasing the size and variance of the training data and captioning methods would generalize the model output. I feel that so\nmuch of the end result of this project is the result of the selection of the training image dataset and the captions that label them. My\nthought here is that since this model learns to produce images using patterns strictly from the training image dataset, which is a\nsmall and narrow space, the space of possible outputs that encode visual meaning is limited and highly curated. Similarly, I suspect\nthat there is very low variance in the structure and content of the language used to caption the images, based on my approach to use a\nsingle model to auto-label each image with the same prompt.  I'm thinking that this highly constrained space of training data likely enables\nthe model to produce interesting results within a narrow band of image style and subject matter, and likely produces loosely structured\nnoise outside of that space.",[20,468,470],{"id":469},"the-ceiling","The ceiling",[16,472,473,474,478],{},"Up to this point I had been working with 32-pixel images. Moving to 256×256 pixels meant that the network had to handle 196,608 numbers per\nimage. Furthermore, it had to do that at each of the many steps of sampling, which quickly became impractical. The approach I learned about,\nwhich comes from the Stable Diffusion paper by ",[28,475,477],{"href":81,"rel":476},[32],"Rombach et al.",", is to first compress each image into a\nmuch smaller representation, called a latent, and to run diffusion on the latents rather than on the pixels.",[16,480,481],{},"For this, I built a convolutional autoencoder, which is composed of a pair of networks. An encoder squeezes a 256×256×3 image down to a\n32×32×4 latent (4,096 numbers instead of 196,608), and a decoder tries to reconstruct the original image from it. The diffusion model is\nthen trained entirely in that small latent space, and whatever it generates is passed through the decoder to produce an image.",[11,483,485],{"src":484},"lit2img/fig-autoencoder.svg",[16,486,487],{},"The autoencoder. The encoder compresses a 256×256×3 image to a 32×32×4 latent, 48 times smaller, and the decoder expands it back. The\ndiffusion model works entirely in the latent, and everything it produces reaches the screen through the decoder.",[11,489,492],{"src":490,"alt":491},"/images/lit2img/fig-ae-reconstructions.jpg","Two rows of eight engravings; the bottom row is a slightly softer copy of the top row.",[16,493,494],{},"Eight validation images (top) and the same images after a round trip through the encoder and decoder (bottom). The composition and tone\nsurvive; fine hatching and small text do not. Whatever the diffusion model produces has to pass through this bottom row.",[16,496,497,498,501],{},"Compressing an image this much is lossy. The decoder gets back something ",[75,499,500],{},"close"," to the original, but never the original\nitself. Since the diffusion model only ever produces latents, and the decoder turns those latents into images, no image this system makes\ncan be better than what the decoder is capable of reconstructing. Therefore, the autoencoder at this step sets a ceiling for the quality of\nthe project.",[16,503,504,505,508],{},"To measure the ceiling, I took real images and ran them through the encoder and decoder. I scored the reconstructions against the originals\nusing FID. A lower number here means two sets of images are more similar to each other. Two separate sets of ",[75,506,507],{},"real training images"," scored\n~25.3 against each other, which is likely about as low as the number can go with this many samples. Real images after being passed through\nthe autoencoder scored ~26.4. That number turned out to be useful, because it changed how I read all of the later results. When the\ndiffusion model eventually reached a score of 46, it was 20 points from the best it could possibly do, given the autoencoder compression.",[16,510,511],{},"The first diffusion models I trained in latent space scored around 100, which was bad. The images looked washed out and\nblurry.",[16,513,514],{},"This was one of the places where working with an LLM to build out this model was most interesting. I didn't have a strong intuition about\nwhat had gone wrong, so I asked high-level questions, informed by some basic intuition about parts of the system I'd built so far. There\nwere two parts of the system that I suspected could be at fault. Either the diffusion model was producing latents that were somehow off, or\nthe decoder was taking slightly-off latents and turning them into badly-off images. My first guess was the decoder. It seemed plausible that\nit had only ever seen latents produced by its own encoder, and might break down on anything else.",[16,516,517,518,521],{},"Working with a frontier LLM through conversation helped by providing methods for testing this directly. The idea was to take latents from\n",[75,519,520],{},"real"," images, which the decoder is known to handle well, deliberately corrupt them by adding a known amount of random noise, decode them,\nand score the result. If the decoder is fragile, a small amount of noise should produce a large jump in the score. If it isn't, the score\nshould degrade gradually, and the size of the degradation would be useful information.",[220,523,524,534],{},[223,525,526],{},[226,527,528,531],{},[229,529,530],{},"latent noise added",[229,532,533],{},"FID after decoding",[244,535,536,544,552,560,568],{},[226,537,538,541],{},[249,539,540],{},"0",[249,542,543],{},"26.3",[226,545,546,549],{},[249,547,548],{},"0.1",[249,550,551],{},"26.9",[226,553,554,557],{},[249,555,556],{},"0.2",[249,558,559],{},"30.3",[226,561,562,565],{},[249,563,564],{},"0.35",[249,566,567],{},"43.9",[226,569,570,573],{},[249,571,572],{},"0.5",[249,574,575],{},"70.6",[16,577,578],{},"The score degraded gradually, and so it seemed that the decoder was not fragile. Looking at the table, I could read the FID score as a\nmeasurement of error. A model scoring 100 was producing latents that were off by more than 0.5, which is a lot.",[16,580,581],{},"Learning that the issue likely wasn't in the compression step, the next guess was that the diffusion model likely hadn't trained long\nenough. The 10k steps that had been plenty for small 32-pixel images were probably insufficient for latents. So I resumed training. As was\nthe case at several points of this project, the validation loss didn't move much over the course of many thousands of additional steps.\nMeanwhile, FID fell from 88 to 65. The model was getting visibly better, but the training objective showed nothing was changing.",[20,583,585],{"id":584},"connecting-text-to-images","Connecting text to images",[16,587,588],{},"So, now it's time to consider the bridge between text and image generation. The two halves I've described so far don't fit together in an\nobvious way. The text side reads text as input and produces vectors. The image side takes a noisy image and predicts how to remove the noise\nto produce an image.",[16,590,591],{},"The bridge is that the image model is given both a noisy image and text vectors as input. The image model is then trained so that its\nprediction of what to remove from the noise depends on both inputs. In practice, this means that at each layer, the image's patches may look\nat the caption's vectors and pull information from them, using the same attention mechanism the transformer uses, just pointed at the text\ninstead of at other patches. Over the course of a few dozen denoising steps, a de-noised image emerges that is influenced by the caption.\nThat is the whole mechanism!",[11,593,596],{"src":594,"alt":595},"/images/lit2img/fig-sky-colors.jpg","Four paintings of the same boat on a calm sea, side by side, under a blue, a green, an orange, and a red sky.",[16,597,598],{},"The same sentence with the word describing color changed, rendered four times from the same starting noise.",[16,600,601],{},"Up to this point, the image model had only been steered by a small discrete set of category labels, like \"portrait\" or \"landscape.\" However,\nunlike a label, a descriptive caption is an arbitrary sentence represented as a sequence of tokens, to be embedded by the text side\nof the model, into vector representation.",[16,603,604,605,608],{},"My first approach was to use the transformer I'd already trained. When it reads text input, each layer produces a vector for each token, and\nthose vectors are the model's \"understanding\" of the text so far. I fed them to the image model directly. I also tried a\nsecond approach, involving training a small version of ",[28,606,89],{"href":87,"rel":607},[32]," myself.",[16,610,611],{},"CLIP, which I'll describe in a moment, learns to connect text and image pairs. The dataset I was working with had 78k paintings with\ncaptions, so I used the transformer as the text half and trained an image half alongside it. Both approaches worked, in that the image model\nlearned to respond to captions. However, neither worked especially well.",[16,613,614],{},"Intuitively, it makes sense that these approaches wouldn't work well. Semantically, there is likely an enormous gap between\nthe space of information encoded by the captioned images, and the space of information embedding the 20 novels used to train the\ntransformer. The transformer could produce somewhat believable next-tokens, but at no point in training did I connect the token\n\"boat\" to what a boat looks like.",[16,616,617],{},"CLIP is a pair of models released by OpenAI in 2021 on about 400 million image-caption pairs from the internet. One model reads images, the\nother reads text. Each model produces a vector of length 512. The two were trained so that an image and a caption that belong together\nproduce vectors that are close together in that 512-dimensional space. What makes this valuable for this project is that CLIP's text model\nhas, in effect, already \"learned\" what pictures look like on a large dataset, containing a large number of different kinds of images and\ncaptions. When it encodes a caption, the numbers it produces are shaped by hundreds of millions of images.",[16,619,620],{},"So, in the end, the frozen CLIP encoder won, and my transformer did not make it into the final model. Though I learned something by building\nit, it did not provide the same depth of output as the pre-trained CLIP.",[16,622,623],{},"Connecting CLIP to the image model is relatively simple. CLIP transforms the caption into a short sequence of vectors, one per word or so. A\nsmall learned layer maps those vectors into the image model's own input size, and at each layer of the image model, the image tokens are\nallowed to look at the caption vectors and pull information from them. This is the same attention mechanism the transformer uses, just\npointed at the text instead of at other image tokens. The pre-trained CLIP itself stays frozen throughout this process. The image model is\nthen trained using input from CLIP.",[11,625,627],{"src":626},"lit2img/fig-text-conditioning-paths.svg",[16,628,629],{},"One block of the image model with its two conditioning paths. The timestep modulates each normalization and gates each residual connection;\nthe caption enters only through cross-attention, behind a projection that starts at zero.",[16,631,632,633,636],{},"The more difficult question was how to measure whether there was good, interpretable correlation between the images and the captions. I\nrealized that looking at them each individually wouldn't scale well! I imagine that it's also easy to fool yourself when you ",[75,634,635],{},"want"," the\nimages to look as if they correlate to the captions.",[16,638,639,640,643,644,647],{},"The approach I settled on is called ",[75,641,642],{},"retrieval",". I generated an image for each of a set of held-out captions, then passed each image to\n",[75,645,646],{},"another"," CLIP model, along with all of the captions, ranked them accordingly. When the judge model ranked the correct caption first, that\ncounted as a hit. The ratio of hits was the score.",[16,649,650,651,654,655,658],{},"It's interesting to consider what the judge CLIP was measuring. A CLIP similarity score between an image and its caption is a number\nthat mixes two different things together. It goes up when the image matches the caption, which is the objective. But, some images might\nscore well against ",[75,652,653],{},"almost any"," caption. Some images in CLIP space sit close to lots of captions at once, while, on the other hand, a blurry\nor very distinctive image could be embedded far from all of them. So, an image can get a high score with its own caption because it's the\nkind of image the judge would rate highly ",[75,656,657],{},"in general",".  Using only this number, there's no way to why the image ranked the way it did.",[16,660,661,662,665],{},"To mitigate this, I added a control. For each image, I also scored it against the ",[75,663,664],{},"wrong"," captions, the ones belonging to other images, and\nreported the difference between the correct-caption score and the average incorrect-caption score. The incorrect-caption score captures how\nmuch the judge prefers the image, regardless of caption.",[220,667,668,684],{},[223,669,670],{},[226,671,672,675,678,681],{},[229,673,674],{},"judge",[229,676,677],{},"similarity to correct caption",[229,679,680],{},"to incorrect captions",[229,682,683],{},"margin",[244,685,686,700],{},[226,687,688,691,694,697],{},[249,689,690],{},"OpenAI B/32",[249,692,693],{},"0.2828",[249,695,696],{},"0.2054",[249,698,699],{},"0.0774",[226,701,702,705,708,711],{},[249,703,704],{},"LAION B/32",[249,706,707],{},"0.2794",[249,709,710],{},"0.1458",[249,712,713],{},[108,714,715],{},"0.1336",[11,717,719],{"src":718},"lit2img/fig-judge-control.svg",[16,720,721],{},"The control makes the ranking flip. By raw score, the OpenAI judge looks better; by margin over wrong captions, the LAION judge is nearly\ntwice as discriminating.",[16,723,724,725,730],{},"I ran two judges, two versions of CLIP trained on different data by two different orgs.  One was trained by OpenAI, and the other by\n",[28,726,729],{"href":727,"rel":728},"https://laion.ai/",[32],"LAION",", a non-profit that trained its own version on a large open dataset of image-caption pairs. Going by the raw\nscore, the OpenAI judge gave the images a higher similarity to their captions, 0.283 against 0.279, so it seemed like the stronger judge.\nBut it also gave them a much higher similarity to the incorrect captions, 0.205 against 0.146. Once that baseline was subtracted, the LAION\njudge's margin was approximately twice as large.",[16,732,733,734,740],{},"With these metrics, I could now measure whether a change to the model made the images follow their captions \"better\" or \"worse\" in some\nplausibly objective way. The first thing I measured was ",[28,735,737],{"href":99,"rel":736},[32],[75,738,739],{},"guidance",", a setting that controls how strongly\nthe caption's influence is applied to the final image. During training, the caption is left out some of the time, so the model learns to\npredict both with it and without it. At generation time, you take the difference between those two predictions and push the result further\nin the caption's direction. The guidance scale is the multiplier on that difference. At a scale of 1, you use the captioned prediction\nas is; at a scale of 5, you add the difference 5X over. In other words, whatever the caption changed about the prediction is exaggerated by that\nmultiplier. A larger value here, and the images follow their captions more closely, but may start to look less natural.",[16,742,743],{},"I had set the scale to 2 initially, for the small class-label experiments. Going from 2 to 5 improved both the image quality score and the\ncaption-adherence score. One of the nice things about guidance is that it's applied at generation time, so no re-training was\nnecessary to experiment with different values.",[220,745,746,760],{},[223,747,748],{},[226,749,750,753,755,758],{},[229,751,752],{},"scale",[229,754,351],{},[229,756,757],{},"caption retrieval (R@1)",[229,759,683],{},[244,761,762,775,793],{},[226,763,764,767,770,773],{},[249,765,766],{},"2",[249,768,769],{},"50.79",[249,771,772],{},"0.190",[249,774,715],{},[226,776,777,782,787,790],{},[249,778,779],{},[108,780,781],{},"5",[249,783,784],{},[108,785,786],{},"46.49",[249,788,789],{},"0.321",[249,791,792],{},"0.1630",[226,794,795,798,801,806],{},[249,796,797],{},"8",[249,799,800],{},"47.14",[249,802,803],{},[108,804,805],{},"0.364",[249,807,808],{},[108,809,810],{},"0.1674",[16,812,813],{},"The retrieval and margin columns above come from the LAION judge. Both judges in the earlier table are CLIP models with the same architecture.",[16,815,816],{},"In the end, these metrics are difficult to interpret, and the output is still subjective. Playing with the guidance and observing the\noutputs with the eye, it's often difficult to say what value produces \"better\" results, though the value does have a profound visual effect. I\nsuspect this would become much more visually interesting and possibly interpretable for a diffusion model at much larger scale.",[11,818,821],{"src":819,"alt":820},"/images/lit2img/fig-guidance-sweep.jpg","Three rows of five images. Each row is one prompt at guidance 1, 2, 5, 8 and 12; the images grow more defined and more contrasty from left to right, and the rightmost ones look harsh.",[16,822,823],{},"Three prompts at guidance 1, 2, 5, 8 and 12, each row starting from the same noise. At 1 the images are pale and loosely drawn; by 5 the\nsubject and the lighting often more closely match the caption; by 12, the contrast and saturation are turned up dramatically.",[20,825,827],{"id":826},"rendering-books","Rendering books",[16,829,830],{},"With the model in a reasonably final state, I came back to the original idea and rendered some books, if only because they provide\ninteresting descriptions of varied scenes. Paragraphs of text make poor prompts for this model. It trained on one-sentence captions, but\nCLIP's text encoder truncates anything past 77 tokens. So, I used the same local Qwen model that wrote the training captions to write a\none-sentence scene summary of each paragraph, in the same register as those captions (a subject, a setting, the light, a mood), and used the\nsummary as the prompt. I decided to set the starting noise to be the same within each chapter, so images generated from the same chapter\nwould share a similar starting structure, and the differences between them are determined strictly by the text.",[16,832,833,834,837,838,840,841,844],{},"I've explored rendering a hundred paragraphs each from ",[75,835,836],{},"Heart of Darkness",", ",[75,839,213],{},", and ",[75,842,843],{},"To the Lighthouse",". The whole run for a book\ntakes about five minutes on my laptop; most of that time is spent by the local LLM writing summaries. The hundred frames themselves take\nunder a minute. A few of the frames I found interesting are below.",[16,846,847,848],{},"(",[108,849,850],{},"Note: the sentence shown below each image is the local Qwen model's summary of a paragraph of the novel, as mentioned; it is not the\nnovel's text itself.",[852,853,213],"h3",{"id":854},"moby-dick",[11,856,859],{"src":857,"alt":858},"/images/lit2img/fig-moby-dick-frames.jpg","Six painterly frames: a figure on a deck, a blue seascape, a stormy sea, a sunset sky, a ship at anchor, and figures on a wharf, each with a caption.",[16,860,861,862,864],{},"Six frames from the first sixteen chapters of ",[75,863,213],{},". The text under each frame is the one-sentence summary of the paragraph written by\nthe local Qwen model. Starting noise is shared within a chapter.",[852,866,843],{"id":867},"to-the-lighthouse",[11,869,872],{"src":870,"alt":871},"/images/lit2img/fig-to-the-lighthouse-frames.jpg","Six painterly frames: a beach with a figure, a green lawn, a dark sea at night, a dawn sky over water, a calm bay, and a figure looking out to sea, each with a caption.",[16,873,874,875,877],{},"Six frames from ",[75,876,843],{},", across all three parts of the novel. As above, the text under each frame is the local model's summary\nof the paragraph, used as the prompt.",[20,879,881],{"id":880},"a-wide-front-end-and-a-narrow-back-end","A wide front end and a narrow back end",[16,883,884],{},"Stepping back from the individual experiments, I think the bottleneck in this project may be fairly straightforward. The front end, CLIP, is\ngeneral. It was trained on ~400 million captions covering photographs, product shots, screenshots, and everything else on the internet,\nand it can describe nearly any sentence. The back end, the diffusion model, is very narrow in comparison. It has only ever seen 78,000\npaintings (large enough to be interesting, but much smaller than the set of images used to train CLIP), described by a single locally-run\ncaptioning model. It only knows how to generate images in some small subset of CLIP's space. So, a caption like \"a neon sign in the rain\" or\n\"a motorcycle on a winding road\" is embedded by CLIP in a vector that represents that text in a well-structured and generally coherent\nspace, and then lands on a part of the map the back end (the image model tasked with producing a corresponding image) has no representation\nfor. I suspect the best it can do is fall back to loosely structured noise.",[16,886,887],{},"To make this concrete, I rendered two sets of eight sentences with the same seed and the same starting noise, so that the only difference\nbetween the two sets is the text. The first set is written in the style of the training captions and describes the kinds of subjects the\npaintings contain. The second set describes things CLIP has certainly seen among its 400 million captions, but the diffusion model has\nlikely not seen.",[11,889,892],{"src":890,"alt":891},"/images/lit2img/fig-in-distribution.jpg","Eight painterly images: a woman by a window, a boat on grey water, two figures on a road, a still life, a river at dusk, an old man reading, a snowy village, and a ship in a storm, each with its prompt.",[16,893,894],{},"Eight prompts written in a similar style to the training captions. The model produces plausible paintings.",[11,896,899],{"src":897,"alt":898},"/images/lit2img/fig-out-of-distribution.jpg","Eight mostly abstract images: a magenta glow, a pencil-like scribble, black blobs on cream, a grey band, a dark shape on white, each with its prompt.",[16,900,901],{},"Eight prompts from outside the training distribution, same seed and noise.",[16,903,904,905,910],{},"I suspect the most direct approach for improving the model to produce \"more realistic\" output (though that wasn't my objective) is\nto expose the image model to much more data. Stable Diffusion (v1) also keeps a frozen CLIP text encoder in front, a larger one\n(ViT-L/14) than the ViT-B/32 used here. However, the bigger difference is in the back end, as its diffusion model was trained on LAION-2B-en,\nroughly two billion image-caption pairs, and then further on filtered subsets of it. Perhaps there are other options (I have a note to learn about\n",[28,906,909],{"href":907,"rel":908},"https://creatis-myriad.github.io/2023/06/11/DALLE2.html",[32],"unCLIP","), but it seems intuitive that the ceiling on what the image model can\ngenerate is set by what it has seen during training.",[20,912,914],{"id":913},"the-model-as-built","The model as built",[220,916,917,927],{},[223,918,919],{},[226,920,921,924],{},[229,922,923],{},"quantity",[229,925,926],{},"value",[244,928,929,937,945,953,960,968,975,986,994,1002,1010,1018,1026,1034,1042,1049,1057],{},[226,930,931,934],{},[249,932,933],{},"total parameters",[249,935,936],{},"40,718,608",[226,938,939,942],{},[249,940,941],{},"d_model / layers / heads",[249,943,944],{},"384 / 12 / 6",[226,946,947,950],{},[249,948,949],{},"head dimension",[249,951,952],{},"64",[226,954,955,958],{},[249,956,957],{},"patch size",[249,959,766],{},[226,961,962,965],{},[249,963,964],{},"latent grid",[249,966,967],{},"32×32×4 → 16×16 = 256 tokens of 16",[226,969,970,973],{},[249,971,972],{},"objective",[249,974,335],{},[226,976,977,980],{},[249,978,979],{},"text encoder",[249,981,982,985],{},[189,983,984],{},"openai/clip-vit-base-patch32",", frozen, causally masked",[226,987,988,991],{},[249,989,990],{},"text interface",[249,992,993],{},"8,257,536 params (20.3%)",[226,995,996,999],{},[249,997,998],{},"conditioning",[249,1000,1001],{},"cross-attention; adaLN-Zero for timestep",[226,1003,1004,1007],{},[249,1005,1006],{},"autoencoder",[249,1008,1009],{},"20,943,435 params; 8.56M encoder, 12.39M decoder",[226,1011,1012,1015],{},[249,1013,1014],{},"latent scale factor",[249,1016,1017],{},"0.915",[226,1019,1020,1023],{},[249,1021,1022],{},"training images",[249,1024,1025],{},"78,308",[226,1027,1028,1031],{},[249,1029,1030],{},"best checkpoint",[249,1032,1033],{},"step 64,500 of a 150,000-step budget",[226,1035,1036,1039],{},[249,1037,1038],{},"sampler for all reported figures",[249,1040,1041],{},"Heun, 25 steps (49 network evaluations)",[226,1043,1044,1046],{},[249,1045,367],{},[249,1047,1048],{},"46.49 at guidance 5, N = 4,096",[226,1050,1051,1054],{},[249,1052,1053],{},"autoencoder floor",[249,1055,1056],{},"26.39",[226,1058,1059,1062],{},[249,1060,1061],{},"real-versus-real floor",[249,1063,1064],{},"25.26",{"title":1066,"searchDepth":1067,"depth":1067,"links":1068},"",2,[1069,1070,1071,1072,1073,1074,1075,1076,1077,1082,1083],{"id":22,"depth":1067,"text":23},{"id":62,"depth":1067,"text":63},{"id":142,"depth":1067,"text":143},{"id":165,"depth":1067,"text":166},{"id":323,"depth":1067,"text":324},{"id":430,"depth":1067,"text":431},{"id":469,"depth":1067,"text":470},{"id":584,"depth":1067,"text":585},{"id":826,"depth":1067,"text":827,"children":1078},[1079,1081],{"id":854,"depth":1080,"text":213},3,{"id":867,"depth":1080,"text":843},{"id":880,"depth":1067,"text":881},{"id":913,"depth":1067,"text":914},"2026-10-26","Revisiting building for the sake of learning, and current thoughts on frontier models as learning guides","md","/images/lit2img/og.jpg",{},true,"/articles/lit2img-review",{"title":5,"description":1085},"articles/lit2img-review",[1094,1095,1096],"ai","ml","practice","XAyXZvuA1m1P957lwtf-8F7Bb9bX-FfQ-RMLWrD5MTc",[1099,1110,1125,1140,1158,1177,1194,1205,1216,1228,1239],{"path":1090,"title":5,"description":1085,"date":1084,"year":1100,"dateShort":1101,"dateLong":1102,"dateDay":1103,"minutes":1104,"tags":1105,"threads":1106,"nearby":1109},"2026","Oct 26, 2026","October 26, 2026","October 26",30,[1094,1095,1096],[1107,1108],"contemplative","information",[],{"path":1111,"title":1112,"description":1113,"date":1114,"year":1100,"dateShort":1115,"dateLong":1116,"dateDay":1117,"minutes":1067,"tags":1118,"threads":1121,"nearby":1123},"/articles/10-practice-and-vision","Practice and Vision","The co-emergence of practice and vision on engineering teams","2026-10-11","Oct 11, 2026","October 11, 2026","October 11",[1119,1096,1120],"work","leadership",[1107,1122],"engineering",[1124],"an-elegant-puzzle",{"path":1126,"title":1127,"description":1128,"date":1129,"year":1100,"dateShort":1130,"dateLong":1131,"dateDay":1132,"minutes":1080,"tags":1133,"threads":1135,"nearby":1137},"/articles/09-write-about-your-work","Reading and writing about work","The importance of human knowledge sharing at work","2026-09-06","Sep 6, 2026","September 6, 2026","September 6",[1134,1094,1096],"writing",[1107,1136,1108],"fiction",[1138,1139,1124],"working-in-public","software-engineering-at-google",{"path":1141,"title":1142,"description":1143,"date":1144,"year":1145,"dateShort":1146,"dateLong":1147,"dateDay":1148,"minutes":1149,"tags":1150,"threads":1153,"nearby":1154},"/articles/08-practicing-the-basics","Practicing the Basics","Reflecting on the lesson of practicing the basics","2022-10-02","2022","Oct 2, 2022","October 2, 2022","October 2",1,[1151,1152,1096],"basics","first-principles",[1107],[1155,1156,1157],"the-three-pillars-of-zen","a-still-forest-pool-the-insight-meditation-of-achaan-chah-quest-book-unabridged","peace-is-every-step",{"path":1159,"title":1160,"description":1161,"date":1162,"year":1163,"dateShort":1164,"dateLong":1165,"dateDay":1166,"minutes":1167,"tags":1168,"threads":1171,"nearby":1173},"/articles/07-testing-epistemology","Testing and Epistemology","Thinking about end-to-end tests from an epistemological perspective","2021-12-19","2021","Dec 19, 2021","December 19, 2021","December 19",4,[1169,1170],"epistemology","testing",[1172,1122],"mind",[1174,1175,1176],"philosophical-investigations","simply-wittgenstein","godels-proof",{"path":1178,"title":1179,"description":1180,"date":1181,"year":1182,"dateShort":1183,"dateLong":1184,"dateDay":1185,"minutes":1186,"tags":1187,"threads":1190,"nearby":1191},"/articles/06-private-methods","Private Methods","Extract private methods to new objects","2020-10-18","2020","Oct 18, 2020","October 18, 2020","October 18",10,[1188,1189],"oop","refactoring",[1122],[1192,1193],"clean-architecture","fundamentals-of-software-architecture",{"path":1195,"title":1196,"description":1197,"date":1198,"year":1182,"dateShort":1199,"dateLong":1200,"dateDay":1201,"minutes":1080,"tags":1202,"threads":1203,"nearby":1204},"/articles/05-multiprocessing-python","Multiprocessing in Python","A quick look at using multiprocessing.Pool","2020-09-12","Sep 12, 2020","September 12, 2020","September 12",[],[],[],{"path":1206,"title":1207,"description":1208,"date":1209,"year":1182,"dateShort":1210,"dateLong":1211,"dateDay":1212,"minutes":1080,"tags":1213,"threads":1214,"nearby":1215},"/articles/04-serverless-stripe","Serverless Stripe Webhooks Integration","Setting up Stripe Webhooks with AWS Lambda + API Gateway","2020-08-20","Aug 20, 2020","August 20, 2020","August 20",[],[],[],{"path":1217,"title":1218,"description":1219,"date":1220,"year":1221,"dateShort":1222,"dateLong":1223,"dateDay":1224,"minutes":1149,"tags":1225,"threads":1226,"nearby":1227},"/articles/03-cloudformation-syntax","CloudFormation Template Syntax","Quick reference for CF template syntax","2019-12-03","2019","Dec 3, 2019","December 3, 2019","December 3",[],[],[],{"path":1229,"title":1230,"description":1231,"date":1232,"year":1221,"dateShort":1233,"dateLong":1234,"dateDay":1235,"minutes":1149,"tags":1236,"threads":1237,"nearby":1238},"/articles/02-commonly-used","Useful Unix Commands","Quick reference for useful commands","2019-11-28","Nov 28, 2019","November 28, 2019","November 28",[],[],[],{"path":1240,"title":1241,"description":1242,"date":1243,"year":1221,"dateShort":1244,"dateLong":1245,"dateDay":1246,"minutes":1247,"tags":1248,"threads":1251,"nearby":1252},"/articles/01-postgres-malformed","Malformed Data Parsing in Postgres","Wrangling dirty data in PostgreSQL","2019-08-19","Aug 19, 2019","August 19, 2019","August 19",6,[1249,1250],"postgres","data-munging",[1122],[],[1254,1269,1282,1294,1305,1315,1327,1338,1349,1359,1371,1383,1394,1404,1415,1424,1435,1446,1456,1465,1477,1485,1495,1505,1515,1528,1538,1548,1559,1570,1579,1593,1605,1616,1627,1639,1648,1660,1673,1683,1693,1702,1713,1724,1733,1743,1755,1765,1776,1786,1797,1806,1816,1825,1837,1846,1857,1868,1879,1888,1901,1913,1923,1934,1945,1955,1966,1977,1986,1997,2007,2018,2027,2037,2046,2055,2065,2083,2094,2103,2114,2125,2135,2146,2157,2166,2174,2184,2193,2203,2214,2225,2235,2245,2254,2265,2274,2283,2293,2301,2309,2317,2326,2336,2345,2354,2364,2375,2386,2397,2408,2418,2426,2436,2446,2454,2462,2472,2482,2491,2501,2516,2524,2533,2545,2553,2563,2578,2587,2595,2604,2613,2621,2628,2637,2646,2658,2666,2675,2685,2695,2705,2716,2723,2734,2745,2754,2767,2778,2787,2795,2807,2818,2827,2837,2846,2856,2865,2873,2882,2890,2897,2907,2917,2937,2946,2954,2964,2973,2985,2993,3001,3012,3023,3033,3042,3050,3060,3070,3081,3092,3102,3111,3121,3129,3137,3146,3156,3163,3171,3179,3189,3199,3209,3218,3226,3235,3249,3259,3267,3276,3286,3295,3304,3312,3320,3330,3338,3349,3356,3364,3371,3388,3397,3407,3418,3428,3438,3446,3457,3472,3483,3490,3500,3512,3521],{"path":1255,"slug":1256,"title":1257,"author":1258,"date":1259,"year":1100,"finished":1260,"finishedMonth":1261,"tags":1262,"threads":1266,"notes":1267,"passages":1268},"/reading/memory-history-forgetting","memory-history-forgetting","Memory, History, Forgetting","Paul Ricoeur","2026-10-01","October 2026","October",[1263,1264,1265],"philosophy","history","memory",[1172,1264],false,[],{"path":1270,"slug":1271,"title":1272,"author":1273,"date":1129,"year":1100,"finished":1274,"finishedMonth":1275,"tags":1276,"threads":1280,"notes":1267,"passages":1281},"/reading/piranesi","piranesi","Piranesi","Susanna Clark","September 2026","September",[1277,1278,1279],"literature","novel","fantasy",[1136],[],{"path":1283,"slug":1284,"title":1285,"author":1286,"date":1287,"year":1100,"finished":1288,"finishedMonth":1289,"tags":1290,"threads":1292,"notes":1267,"passages":1293},"/reading/so-long-see-you-tomorrow","so-long-see-you-tomorrow","So Long, See You Tomorrow","William Maxwell","2026-08-09","August 2026","August",[1277,1278,1291],"american literature",[1136],[],{"path":1295,"slug":1296,"title":1297,"author":1298,"date":1299,"year":1100,"finished":1288,"finishedMonth":1289,"tags":1300,"threads":1303,"notes":1267,"passages":1304},"/reading/the-life-of-the-mind","the-life-of-the-mind","The Life of the Mind","Hannah Arendt","2026-08-01",[1263,1301,1302],"consciousness","thinking",[1172],[],{"path":1306,"slug":1307,"title":1308,"author":1309,"date":1299,"year":1100,"finished":1288,"finishedMonth":1289,"tags":1310,"threads":1313,"notes":1267,"passages":1314},"/reading/this-precious-life","this-precious-life","This Precious Life","Khandro Rinpoche",[1311,1312,1096],"buddhism","tibet",[1107],[],{"path":1316,"slug":1317,"title":1318,"author":1319,"date":1320,"year":1100,"finished":1321,"finishedMonth":1322,"tags":1323,"threads":1325,"notes":1267,"passages":1326},"/reading/the-world-could-be-otherwise","the-world-could-be-otherwise","The World Could be Otherwise","Norman Fischer","2026-07-20","July 2026","July",[1311,1324,1096],"zen",[1107],[],{"path":1328,"slug":1329,"title":1330,"author":1331,"date":1332,"year":1100,"finished":1321,"finishedMonth":1322,"tags":1333,"threads":1336,"notes":1267,"passages":1337},"/reading/the-collected-stories-of-john-mcgahern","the-collected-stories-of-john-mcgahern","The Collected Stories of John McGahern","John McGahern","2026-07-10",[1334,1277,1335],"short stories","irish",[1136],[],{"path":1339,"slug":1340,"title":1341,"author":1342,"date":1343,"year":1100,"finished":1321,"finishedMonth":1322,"tags":1344,"threads":1347,"notes":1267,"passages":1348},"/reading/nonviolent-communication","nonviolent-communication","Nonviolent Communication","Marshall Rosenberg","2026-07-09",[1345,1346],"psychology","communication",[1172],[],{"path":1350,"slug":1351,"title":1352,"author":1353,"date":1354,"year":1100,"finished":1321,"finishedMonth":1322,"tags":1355,"threads":1357,"notes":1267,"passages":1358},"/reading/science-and-the-modern-world","science-and-the-modern-world","Science and the Modern World","Alfred North Whitehead","2026-07-01",[1263,1356,1264],"science",[1172,1264],[],{"path":1360,"slug":1361,"title":1362,"author":1363,"date":1364,"year":1100,"finished":1365,"finishedMonth":1366,"tags":1367,"threads":1369,"notes":1267,"passages":1370},"/reading/an-african-history-of-africa","an-african-history-of-africa","An African History of Africa: From the Dawn of Humanity to Independence","Zeinab Badawi","2026-06-21","June 2026","June",[1264,1368],"africa",[1264],[],{"path":1372,"slug":1373,"title":1374,"author":1375,"date":1376,"year":1100,"finished":1365,"finishedMonth":1366,"tags":1377,"threads":1380,"notes":1267,"passages":1382},"/reading/the-lost-world-of-the-dinosaurs","the-lost-world-of-the-dinosaurs","The Lost World of the Dinosaurs: On the Trail of the Dinosaurs' Final Secrets","Armin Schmitt","2026-06-18",[1378,1356,1379],"natural-history","paleontology",[1381,1172],"nature",[],{"path":1384,"slug":1385,"title":1386,"author":1387,"date":1388,"year":1100,"finished":1365,"finishedMonth":1366,"tags":1389,"threads":1392,"notes":1267,"passages":1393},"/reading/the-rediscovery-of-america","the-rediscovery-of-america","The Rediscovery of America: Native Peoples and the Unmaking of U.S. History","Ned Blackhawk","2026-06-12",[1264,1390,1391],"american-history","north america",[1264],[],{"path":1395,"slug":1396,"title":1397,"author":1398,"date":1399,"year":1100,"finished":1365,"finishedMonth":1366,"tags":1400,"threads":1402,"notes":1267,"passages":1403},"/reading/the-indifferent-stars-above","the-indifferent-stars-above","The Indifferent Stars Above: The Harrowing Saga of the Donner Party","Daniel James Brown","2026-06-10",[1264,1390,1401],"19th century",[1264],[],{"path":1405,"slug":1406,"title":1407,"author":1408,"date":1409,"year":1100,"finished":1365,"finishedMonth":1366,"tags":1410,"threads":1413,"notes":1267,"passages":1414},"/reading/hunger-mountain","hunger-mountain","Hunger Mountain: A Field Guide to Mind and Landscape","David Hinton","2026-06-01",[1411,1412,1324],"nature writing","landscape",[1107,1381],[],{"path":1416,"slug":1417,"title":1418,"author":1419,"date":1409,"year":1100,"finished":1365,"finishedMonth":1366,"tags":1420,"threads":1422,"notes":1267,"passages":1423},"/reading/the-sovereignty-of-good","the-sovereignty-of-good","The Sovereignty of Good","Iris Murdoch",[1263,1421],"ethics",[1172],[],{"path":1425,"slug":1426,"title":1427,"author":1428,"date":1429,"year":1100,"finished":1430,"finishedMonth":1431,"tags":1432,"threads":1433,"notes":1267,"passages":1434},"/reading/reflections-on-silver-river","reflections-on-silver-river","Reflections on Silver River: Tokme Zongpo's Thirty-Seven Practices of a Bodhisattva","Ken McLeod","2026-04-20","April 2026","April",[1311,1312,1096],[1107],[],{"path":1436,"slug":1437,"title":1438,"author":1439,"date":1440,"year":1100,"finished":1430,"finishedMonth":1431,"tags":1441,"threads":1444,"notes":1267,"passages":1445},"/reading/first-love","first-love","First Love","Ivan Turgenev","2026-04-10",[1442,1277,1443],"russian","novella",[1136],[],{"path":1447,"slug":1448,"title":1449,"author":1450,"date":1440,"year":1100,"finished":1430,"finishedMonth":1431,"tags":1451,"threads":1454,"notes":1267,"passages":1455},"/reading/the-alchemy-of-psychology","the-alchemy-of-psychology","The Alchemy of Psychology","James Hillman",[1345,1452,1453],"jung","symbols",[1172],[],{"path":1457,"slug":1458,"title":1459,"author":1460,"date":1461,"year":1100,"finished":1430,"finishedMonth":1431,"tags":1462,"threads":1463,"notes":1267,"passages":1464},"/reading/train-dreams","train-dreams","Train Dreams: A Novella","Denis Johnson","2026-04-07",[1277,1443,1291],[1136],[],{"path":1466,"slug":1467,"title":1468,"author":1469,"date":1470,"year":1100,"finished":1430,"finishedMonth":1431,"tags":1471,"threads":1475,"notes":1267,"passages":1476},"/reading/complications","complications","Complications: A Surgeon's Notes on an Imperfect Science","Atul Gawande","2026-04-01",[1472,1473,1474],"medicine","memoir","expertise",[1172,1122,1264],[],{"path":1478,"slug":1479,"title":1480,"author":1428,"date":1470,"year":1100,"finished":1430,"finishedMonth":1431,"tags":1481,"threads":1483,"notes":1267,"passages":1484},"/reading/trackless-path","trackless-path","A Trackless Path",[1311,1482,1096],"meditation",[1107],[],{"path":1486,"slug":1155,"title":1487,"author":1488,"date":1489,"year":1100,"finished":1490,"finishedMonth":1491,"tags":1492,"threads":1493,"notes":1267,"passages":1494},"/reading/the-three-pillars-of-zen","The Three Pillars of Zen: Teaching, Practice, and Enlightenment","Philip Kapleau","2026-03-15","March 2026","March",[1324,1311,1482,1096],[1107],[],{"path":1496,"slug":1497,"title":1498,"author":1499,"date":1500,"year":1100,"finished":1490,"finishedMonth":1491,"tags":1501,"threads":1503,"notes":1267,"passages":1504},"/reading/and-still-i-rise","and-still-i-rise","And Still I Rise: A Book of Poems","Maya Angelou","2026-03-01",[1502],"poetry",[1136],[],{"path":1506,"slug":1507,"title":1508,"author":1509,"date":1500,"year":1100,"finished":1490,"finishedMonth":1491,"tags":1510,"threads":1513,"notes":1267,"passages":1514},"/reading/timaeus","timaeus","Timaeus","Plato",[1263,1511,1512],"classics","cosmology",[1172,1136],[],{"path":1516,"slug":1517,"title":1518,"author":1519,"date":1520,"year":1100,"finished":1521,"finishedMonth":1522,"tags":1523,"threads":1526,"notes":1267,"passages":1527},"/reading/everything-and-more","everything-and-more","Everything and More: A Compact History of Infinity","David Foster Wallace","2026-02-20","February 2026","February",[1524,1264,1525],"mathematics","infinity",[1172,1264],[],{"path":1529,"slug":1530,"title":1531,"author":1532,"date":1533,"year":1100,"finished":1521,"finishedMonth":1522,"tags":1534,"threads":1536,"notes":1267,"passages":1537},"/reading/the-faraway-nearby","the-faraway-nearby","The Faraway Nearby","Rebecca Solnit","2026-02-01",[1535,1473,1412],"essays",[1381,1136,1264],[],{"path":1539,"slug":1540,"title":1541,"author":1542,"date":1533,"year":1100,"finished":1521,"finishedMonth":1522,"tags":1543,"threads":1546,"notes":1267,"passages":1547},"/reading/the-spell-of-the-sensuous","the-spell-of-the-sensuous","The Spell of the Sensuous: Perception and Language in a More-Than-Human World","David Abram",[1263,1381,1544,1545],"language","phenomenology",[1381,1172],[],{"path":1549,"slug":1550,"title":1551,"author":1532,"date":1552,"year":1100,"finished":1553,"finishedMonth":1554,"tags":1555,"threads":1557,"notes":1267,"passages":1558},"/reading/wanderlust","wanderlust","Wanderlust: A History of Walking","2026-01-15","January 2026","January",[1556,1264,1535],"walking",[1381,1136,1264],[],{"path":1560,"slug":1561,"title":1562,"author":1563,"date":1564,"year":1100,"finished":1553,"finishedMonth":1554,"tags":1565,"threads":1568,"notes":1267,"passages":1569},"/reading/amish-peace","amish-peace","Amish Peace: Simple Wisdom for a Complicated World","Suzanne Woods Fisher","2026-01-10",[1566,1096,1567],"wisdom","simplicity",[1107],[],{"path":1571,"slug":1176,"title":1572,"author":1573,"date":1574,"year":1100,"finished":1553,"finishedMonth":1554,"tags":1575,"threads":1577,"notes":1267,"passages":1578},"/reading/godels-proof","Gödel's Proof","Ernest Nagel, James R. Newman, Douglas R. Hofstadter","2026-01-01",[1524,1576,1169],"logic",[1172],[],{"path":1580,"slug":1581,"title":1582,"author":1583,"date":1584,"year":1585,"finished":1586,"finishedMonth":1587,"tags":1588,"threads":1591,"notes":1267,"passages":1592},"/reading/gravity-and-grace","gravity-and-grace","Gravity and Grace","Simone Weil","2025-11-01","2025","November 2025","November",[1589,1590,1263],"christianity","mysticism",[1107,1172],[],{"path":1594,"slug":1595,"title":1596,"author":1597,"date":1598,"year":1585,"finished":1599,"finishedMonth":1261,"tags":1600,"threads":1603,"notes":1267,"passages":1604},"/reading/the-body-keeps-the-score","the-body-keeps-the-score","The Body Keeps the Score: Brain, Mind, and Body in the Healing of Trauma","Bessel van der Kolk","2025-10-20","October 2025",[1345,1601,1602],"trauma","neuroscience",[1172],[],{"path":1606,"slug":1607,"title":1608,"author":1609,"date":1610,"year":1585,"finished":1599,"finishedMonth":1261,"tags":1611,"threads":1614,"notes":1267,"passages":1615},"/reading/process-relational-philosophy","process-relational-philosophy","Process-Relational Philosophy: An Introduction to Alfred North Whitehead","C. Robert Mesle","2025-10-01",[1263,1612,1613],"metaphysics","whitehead",[1172],[],{"path":1617,"slug":1618,"title":1619,"author":1620,"date":1621,"year":1585,"finished":1622,"finishedMonth":1289,"tags":1623,"threads":1625,"notes":1267,"passages":1626},"/reading/pilgrim-at-tinker-creek","pilgrim-at-tinker-creek","Pilgrim at Tinker Creek","Annie Dillard","2025-08-13","August 2025",[1411,1412,1624],"contemplation",[1107,1381],[],{"path":1628,"slug":1629,"title":1630,"author":1631,"date":1632,"year":1585,"finished":1633,"finishedMonth":1366,"tags":1634,"threads":1637,"notes":1267,"passages":1638},"/reading/in-praise-of-shadows","in-praise-of-shadows","In Praise of Shadows","Junichiro Tanizaki","2025-06-01","June 2025",[1535,1635,1636],"japanese","aesthetics",[1172,1136],[],{"path":1640,"slug":1641,"title":1642,"author":1643,"date":1632,"year":1585,"finished":1633,"finishedMonth":1366,"tags":1644,"threads":1646,"notes":1267,"passages":1647},"/reading/the-diamond-sutra","the-diamond-sutra","The Diamond Sutra","Red Pine",[1311,1324,1645],"scripture",[1107],[],{"path":1649,"slug":1650,"title":1651,"author":1652,"date":1653,"year":1585,"finished":1654,"finishedMonth":1655,"tags":1656,"threads":1658,"notes":1267,"passages":1659},"/reading/holy-rule-of-st-benedict","holy-rule-of-st-benedict","Holy Rule of St. Benedict","Saint Benedict of Nursia","2025-05-01","May 2025","May",[1589,1657,1096],"monasticism",[1107],[],{"path":1661,"slug":1662,"title":1663,"author":1664,"date":1665,"year":1666,"finished":1667,"finishedMonth":1668,"tags":1669,"threads":1671,"notes":1267,"passages":1672},"/reading/mindful-living","mindful-living","Mindful Living: A Collection of Teachings on Love, Mindfulness, and Meditation","Thích Nhất Hạnh","2024-12-11","2024","December 2024","December",[1670,1311,1482],"mindfulness",[1107],[],{"path":1674,"slug":1675,"title":1676,"author":1677,"date":1678,"year":1666,"finished":1667,"finishedMonth":1668,"tags":1679,"threads":1681,"notes":1267,"passages":1682},"/reading/fear-and-trembling-unabridged","fear-and-trembling-unabridged","Fear and Trembling","Søren Kierkegaard","2024-12-09",[1263,1589,1680],"existentialism",[1107,1172],[],{"path":1684,"slug":1685,"title":1686,"author":1687,"date":1688,"year":1666,"finished":1689,"finishedMonth":1289,"tags":1690,"threads":1691,"notes":1267,"passages":1692},"/reading/the-passion-according-to-g-h-unabridged","the-passion-according-to-g-h-unabridged","The Passion According to G.H.","Clarice Lispector","2024-08-14","August 2024",[1277,1278,1590],[1107,1136],[],{"path":1694,"slug":1695,"title":1696,"author":1697,"date":1688,"year":1666,"finished":1689,"finishedMonth":1289,"tags":1698,"threads":1700,"notes":1267,"passages":1701},"/reading/the-peregrine-unabridged","the-peregrine-unabridged","The Peregrine","J. A. Baker",[1411,1412,1699],"birds",[1381],[],{"path":1703,"slug":1704,"title":1705,"author":1706,"date":1707,"year":1666,"finished":1689,"finishedMonth":1289,"tags":1708,"threads":1711,"notes":1267,"passages":1712},"/reading/to-bless-the-space-between-us","to-bless-the-space-between-us","To Bless the Space Between Us: A Collection of Invocations and Blessings"," John O'Donohue","2024-08-11",[1502,1709,1710],"spirituality","blessing",[1107,1136],[],{"path":1714,"slug":1715,"title":1716,"author":1717,"date":1718,"year":1666,"finished":1719,"finishedMonth":1322,"tags":1720,"threads":1722,"notes":1267,"passages":1723},"/reading/the-courage-to-be-disliked","the-courage-to-be-disliked","The Courage to Be Disliked","Ichiro Kishimi, Fumitake Koga","2024-07-14","July 2024",[1345,1263,1721],"life",[1172],[],{"path":1725,"slug":1726,"title":1727,"author":1583,"date":1728,"year":1666,"finished":1729,"finishedMonth":1366,"tags":1730,"threads":1731,"notes":1267,"passages":1732},"/reading/awaiting-god","awaiting-god","Awaiting God","2024-06-07","June 2024",[1589,1590,1263],[1107,1172],[],{"path":1734,"slug":1735,"title":1736,"author":1737,"date":1738,"year":1666,"finished":1729,"finishedMonth":1366,"tags":1739,"threads":1741,"notes":1267,"passages":1742},"/reading/a-brief-history-of-intelligence","a-brief-history-of-intelligence","A Brief History of Intelligence: Evolution, AI, and the Five Breakthroughs That Made Our Brains","Max Bennett","2024-06-02",[1602,1094,1740],"evolution",[1172,1108],[],{"path":1744,"slug":1745,"title":1746,"author":1747,"date":1748,"year":1666,"finished":1749,"finishedMonth":1655,"tags":1750,"threads":1753,"notes":1267,"passages":1754},"/reading/black-elk","black-elk","Black Elk: The Life of an American Visionary","Joe Jackson","2024-05-01","May 2024",[1751,1391,1752],"biography","indigenous wisdom",[1264],[],{"path":1756,"slug":1757,"title":1758,"author":1759,"date":1760,"year":1666,"finished":1761,"finishedMonth":1491,"tags":1762,"threads":1763,"notes":1267,"passages":1764},"/reading/following-jesus","following-jesus","Following Jesus: Finding Our Way Home in an Age of Anxiety","Henri J. M. Nouwen","2024-03-25","March 2024",[1589,1709],[1107],[],{"path":1766,"slug":1767,"title":1768,"author":1769,"date":1760,"year":1666,"finished":1761,"finishedMonth":1491,"tags":1770,"threads":1774,"notes":1267,"passages":1775},"/reading/quantum-computing-explained-for-beginners","quantum-computing-explained-for-beginners","Quantum Computing Explained for Beginners: The Science, Technology, and Impact","Pantheon Space Academy",[1771,1772,1773],"computation","physics","computer science",[1172,1108],[],{"path":1777,"slug":1778,"title":1779,"author":1780,"date":1781,"year":1666,"finished":1761,"finishedMonth":1491,"tags":1782,"threads":1784,"notes":1267,"passages":1785},"/reading/anathem","anathem","Anathem","Neal Stephenson","2024-03-08",[1783,1263],"science fiction",[1172,1136],[],{"path":1787,"slug":1788,"title":1789,"author":1790,"date":1791,"year":1666,"finished":1792,"finishedMonth":1522,"tags":1793,"threads":1795,"notes":1267,"passages":1796},"/reading/open-mind-open-heart","open-mind-open-heart","Open Mind, Open Heart","Thomas Keating","2024-02-18","February 2024",[1589,1624,1794],"prayer",[1107],[],{"path":1798,"slug":1799,"title":1800,"author":1801,"date":1802,"year":1666,"finished":1792,"finishedMonth":1522,"tags":1803,"threads":1804,"notes":1267,"passages":1805},"/reading/the-maniac-unabridged","the-maniac-unabridged","The Maniac (Unabridged)","Benjamin Labatut","2024-02-10",[1278,1772,1524,1751],[1172,1136,1264],[],{"path":1807,"slug":1808,"title":1809,"author":1810,"date":1811,"year":1666,"finished":1812,"finishedMonth":1554,"tags":1813,"threads":1814,"notes":1267,"passages":1815},"/reading/embrace-fearlessly","embrace-fearlessly","Embrace Fearlessly the Burning World: Essays","Barry Lopez","2024-01-08","January 2024",[1411,1535,1412],[1381,1136],[],{"path":1817,"slug":1818,"title":1819,"author":1820,"date":1811,"year":1666,"finished":1812,"finishedMonth":1554,"tags":1821,"threads":1823,"notes":1267,"passages":1824},"/reading/the-rigor-of-angels","the-rigor-of-angels","The Rigor of Angels: Borges, Heisenberg, Kant, and the Ultimate Nature of Reality","William Egginton",[1263,1772,1822],"reality",[1172],[],{"path":1826,"slug":1827,"title":1828,"author":1829,"date":1830,"year":1831,"finished":1832,"finishedMonth":1668,"tags":1833,"threads":1835,"notes":1267,"passages":1836},"/reading/the-sayings-of-the-holy-desert-fathers-unabridged","the-sayings-of-the-holy-desert-fathers-unabridged","The Sayings of the Holy Desert Fathers","Saint Palladius","2023-12-06","2023","December 2023",[1589,1657,1834],"contemplative tradition",[1107],[],{"path":1838,"slug":1839,"title":1840,"author":1841,"date":1842,"year":1831,"finished":1832,"finishedMonth":1668,"tags":1843,"threads":1844,"notes":1267,"passages":1845},"/reading/man-and-his-symbols","man-and-his-symbols","Man and His Symbols","Carl Jung","2023-12-05",[1345,1453,1452],[1172],[],{"path":1847,"slug":1848,"title":1849,"author":1850,"date":1851,"year":1831,"finished":1832,"finishedMonth":1668,"tags":1852,"threads":1855,"notes":1267,"passages":1856},"/reading/the-gnostic-gospels","the-gnostic-gospels","The Gnostic Gospels","Elaine Pagels","2023-12-04",[1853,1854,1264],"christian gnosticism","religion",[1107,1264],[],{"path":1858,"slug":1859,"title":1860,"author":1861,"date":1862,"year":1831,"finished":1863,"finishedMonth":1655,"tags":1864,"threads":1866,"notes":1267,"passages":1867},"/reading/the-embodied-mind","the-embodied-mind","The Embodied Mind: Cognitive Science and Human Experience","Francisco J. Varela, Evan Thompson, Eleanor Rosch","2023-05-20","May 2023",[1865,1301,1311,1263],"cognitive science",[1107,1172],[],{"path":1869,"slug":1870,"title":1871,"author":1872,"date":1873,"year":1145,"finished":1874,"finishedMonth":1587,"tags":1875,"threads":1877,"notes":1267,"passages":1878},"/reading/notes-from-a-young-black-chef","notes-from-a-young-black-chef","Notes from a Young Black Chef: A Memoir","Kwame Onwuachi, Joshua David Stein","2022-11-10","November 2022",[1473,1876],"food",[1381,1264],[],{"path":1880,"slug":1881,"title":1882,"author":1883,"date":1873,"year":1145,"finished":1874,"finishedMonth":1587,"tags":1884,"threads":1886,"notes":1267,"passages":1887},"/reading/the-poems-of-t-s-eliot","the-poems-of-t-s-eliot","The Poems of T. S. Eliot","T. S. Eliot",[1502,1885],"modernism",[1136],[],{"path":1889,"slug":1890,"title":1891,"author":1892,"date":1893,"year":1145,"finished":1894,"finishedMonth":1261,"tags":1895,"threads":1897,"notes":1089,"passages":1898},"/reading/the-order-of-time","the-order-of-time","The Order of Time","Carlo Rovelli","2022-10-20","October 2022",[1772,1896],"time",[1172],[1899],[1900],"We understand the world in its becoming, not in its being.",{"path":1902,"slug":1903,"title":1904,"author":1905,"date":1906,"year":1145,"finished":1894,"finishedMonth":1261,"tags":1907,"threads":1909,"notes":1089,"passages":1910},"/reading/the-information","the-information","The Information","James Gleick","2022-10-05",[1908,1453,1771],"information theory",[1172,1108],[1911],[1912],"We are all patrons of the Library of Babel now, and we are the librarians, too. We veer from elation to dismay and back. \"When it was proclaimed that the Library contained all books,\" Borges tells us, \"the first impression was one of extravagant happiness. All men felt themselves to be the masters of an intact and secret treasure. There was no personal or world problem whose eloquent solution did not exist in some hexagon. The universe was justified.\" Then came the lamentations. What good are the previous books that cannot be found? What good is complete knowledge, in its immobile perfection? Borges worries: \"The certitiude that everything has been written negates us or turns us into phantoms.\" To which, John Donne had replied long before, \"He that desires to print a book, should much more desire, to be a book.\"",{"path":1914,"slug":1915,"title":1916,"author":1917,"date":1144,"year":1145,"finished":1894,"finishedMonth":1261,"tags":1918,"threads":1921,"notes":1267,"passages":1922},"/reading/third-plate","third-plate","The Third Plate","Dan Barber",[1876,1919,1920],"agriculture","future",[1381,1108],[],{"path":1924,"slug":1925,"title":1926,"author":1927,"date":1928,"year":1145,"finished":1929,"finishedMonth":1275,"tags":1930,"threads":1932,"notes":1267,"passages":1933},"/reading/permanent-record","permanent-record","Permanent Record","Edward Snowden","2022-09-29","September 2022",[1473,1108,1931],"privacy",[1108,1264],[],{"path":1935,"slug":1936,"title":1937,"author":1938,"date":1939,"year":1145,"finished":1929,"finishedMonth":1275,"tags":1940,"threads":1943,"notes":1267,"passages":1944},"/reading/cult-of-the-dead-cow","cult-of-the-dead-cow","Cult of the Dead Cow: How the Original Hacking Supergroup Might Just Save the World","Jospeh Menn","2022-09-17",[1941,1942,1264],"cybersecurity","tech industry",[1122,1108,1264],[],{"path":1946,"slug":1947,"title":1948,"author":1949,"date":1950,"year":1145,"finished":1929,"finishedMonth":1275,"tags":1951,"threads":1953,"notes":1267,"passages":1954},"/reading/countdown","countdown","Countdown to Zero Day","Kim Zetter","2022-09-11",[1941,1952],"journalism",[1108,1264],[],{"path":1956,"slug":1138,"title":1957,"author":1958,"date":1959,"year":1145,"finished":1929,"finishedMonth":1275,"tags":1960,"threads":1964,"notes":1089,"passages":1965},"/reading/working-in-public","Working in Public","Nadia Eghbal","2022-09-04",[1961,1962,1963],"open source","github","software development",[1122],[],{"path":1967,"slug":1968,"title":1969,"author":1970,"date":1971,"year":1145,"finished":1972,"finishedMonth":1289,"tags":1973,"threads":1975,"notes":1267,"passages":1976},"/reading/dmt-the-spirit-molecule","dmt-the-spirit-molecule","DMT: The Spirit Molecule: A Doctor's Revolutionary Research into the Biology of Near-Death and Mystical Experiences","Rick Strassman","2022-08-20","August 2022",[1301,1602,1974],"psychedelics",[1172],[],{"path":1978,"slug":1979,"title":1980,"author":1981,"date":1982,"year":1145,"finished":1972,"finishedMonth":1289,"tags":1983,"threads":1984,"notes":1267,"passages":1985},"/reading/decoding-jung","decoding-jung","Decoding Jung's Metaphysics: The Archetypal Semantics of an Experiential Universe","Bernardo Kastrup","2022-08-18",[1345,1263,1301],[1172],[],{"path":1987,"slug":1988,"title":1989,"author":1990,"date":1991,"year":1145,"finished":1972,"finishedMonth":1289,"tags":1992,"threads":1995,"notes":1267,"passages":1996},"/reading/daemon","daemon","Daemon","Daniel Suarez","2022-08-12",[1993,1994],"tech thriller","cyberpunk",[1136],[],{"path":1998,"slug":1999,"title":2000,"author":2001,"date":2002,"year":1145,"finished":1972,"finishedMonth":1289,"tags":2003,"threads":2005,"notes":1089,"passages":2006},"/reading/master-emissary","master-emissary","The Master and His Emissary: The Divided Brain and the Making of the Western World","Iain McGilchrist","2022-08-05",[1602,2004],"brain",[1172],[],{"path":2008,"slug":2009,"title":2010,"author":2011,"date":2012,"year":1145,"finished":2013,"finishedMonth":1322,"tags":2014,"threads":2016,"notes":1089,"passages":2017},"/reading/consilience","consilience","Consilience: The Unity of Knowledge","Edward O. Wilson","2022-07-01","July 2022",[1356,2015,2009],"deduction",[1172],[],{"path":2019,"slug":2020,"title":2021,"author":1841,"date":2022,"year":1145,"finished":2023,"finishedMonth":1366,"tags":2024,"threads":2025,"notes":1267,"passages":2026},"/reading/aion","aion","Aion: Researches into the Phenomenology of the Self","2022-06-26","June 2022",[1345,1453,1452],[1172],[],{"path":2028,"slug":2029,"title":2030,"author":2031,"date":2032,"year":1145,"finished":2023,"finishedMonth":1366,"tags":2033,"threads":2035,"notes":1267,"passages":2036},"/reading/exploring-the-roots-of-religion","exploring-the-roots-of-religion","Exploring the Roots of Religion","Richard Rohr","2022-06-15",[1854,1589,2034],"theology",[1107],[],{"path":2038,"slug":2039,"title":2040,"author":2041,"date":2032,"year":1145,"finished":2023,"finishedMonth":1366,"tags":2042,"threads":2044,"notes":1267,"passages":2045},"/reading/hard-thing-about-hard-things","hard-thing-about-hard-things","The Hard Thing About Hard Things","Ben Horowitz",[2043,1120,1942],"business",[1122],[],{"path":2047,"slug":2048,"title":2049,"author":2050,"date":2032,"year":1145,"finished":2023,"finishedMonth":1366,"tags":2051,"threads":2053,"notes":1267,"passages":2054},"/reading/high-output-management","high-output-management","High Output Management","Andy Grove",[2052,1120],"management",[1122],[],{"path":2056,"slug":2057,"title":2058,"author":2059,"date":2060,"year":1145,"finished":2023,"finishedMonth":1366,"tags":2061,"threads":2063,"notes":1089,"passages":2064},"/reading/lost-and-founder","lost-and-founder","Lost and Founder: A Painfully Honest Field Guide to the Startup World","Rand Fishkin","2022-06-01",[2062,2043],"startups",[1122],[],{"path":2066,"slug":2067,"title":2068,"author":2069,"date":2070,"year":1145,"finished":2071,"finishedMonth":1655,"tags":2072,"threads":2075,"notes":1089,"passages":2076},"/reading/the-long-loneliness","the-long-loneliness","The Long Loneliness","Dorothy Day","2022-05-15","May 2022",[1473,1854,2073,2074],"service","anarchism",[1107,1264],[2077,2079,2081],[2078],"When I think of the human suffering, the terrible amount of energy needed to move even infinitesimally toward a more decent life I am amazed at human patience.",[2080],"If I got down on my knees I thought, “Do I really believe? Whom am I praying to?” A terrible doubt came over me, and a sense of shame, and I wondered if I was praying because I was lonely, because I was unhappy.",[2082],"The most significant thing is community, others say. We are not alone anymore. But the final word is love. At times it has been, in the words of Father Zossima, a harsh and dreadful thing, and our very faith in love has been tried through fire. We cannot love God unless we love each other, and to love we must know each other. We know him in the breaking of bread, and we are not alone any more. Heaven is a banquet and life is a banquet, too, even with a crust, where there is companionship. We have all known the long loneliness and we have learned that the only solution is love and that love comes with community.",{"path":2084,"slug":2085,"title":2086,"author":2087,"date":2088,"year":1145,"finished":2089,"finishedMonth":1431,"tags":2090,"threads":2092,"notes":1267,"passages":2093},"/reading/5-dysfunctions-team","5-dysfunctions-team","The Five Dysfunctions of a Team: A Leadership Fable","Patrick Lencioni","2022-04-23","April 2022",[2043,1120,2091],"teams",[1122],[],{"path":2095,"slug":2096,"title":2097,"author":2098,"date":2099,"year":1145,"finished":2089,"finishedMonth":1431,"tags":2100,"threads":2101,"notes":1089,"passages":2102},"/reading/how-to-train-wild-elephant","how-to-train-wild-elephant","How to Train a Wild Elephant & Other Adventures in Mindfulness: Simple Daily Mindfulness Practices for Living Life More Fully & Joyfully","Jan Chozen Bays MD","2022-04-20",[1670,1096],[1107],[],{"path":2104,"slug":2105,"title":2106,"author":2107,"date":2108,"year":1145,"finished":2089,"finishedMonth":1431,"tags":2109,"threads":2112,"notes":1267,"passages":2113},"/reading/measure-what-matters","measure-what-matters","Measure What Matters","John Doerr","2022-04-12",[2043,1120,2110,2111],"goals","okrs",[1122],[],{"path":2115,"slug":2116,"title":2117,"author":2118,"date":2119,"year":1145,"finished":2089,"finishedMonth":1431,"tags":2120,"threads":2123,"notes":1267,"passages":2124},"/reading/5am-club","5am-club","The 5AM Club","Robin Sharma","2022-04-10",[1096,2121,2122],"habits","discipline",[1107,1122],[],{"path":2126,"slug":2127,"title":2128,"author":2129,"date":2130,"year":1145,"finished":2089,"finishedMonth":1431,"tags":2131,"threads":2133,"notes":1267,"passages":2134},"/reading/dare-to-lead","dare-to-lead","Dare to Lead","Brené Brown","2022-04-02",[2043,1120,2132],"vulnerability",[1172,1122],[],{"path":2136,"slug":2137,"title":2138,"author":2139,"date":2130,"year":1145,"finished":2089,"finishedMonth":1431,"tags":2140,"threads":2144,"notes":1267,"passages":2145},"/reading/site-reliability-engineering","site-reliability-engineering","Site Reliability Engineering: How Google Runs Production Systems","Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy",[2141,2142,2143],"sre","devops","software engineering",[1122],[],{"path":2147,"slug":2148,"title":2149,"author":1810,"date":2150,"year":1145,"finished":2151,"finishedMonth":1491,"tags":2152,"threads":2155,"notes":1267,"passages":2156},"/reading/horizon","horizon","Horizon","2022-03-24","March 2022",[1411,2153,2154],"travel","discovery",[1381],[],{"path":2158,"slug":2159,"title":2160,"author":2161,"date":2162,"year":1145,"finished":2151,"finishedMonth":1491,"tags":2163,"threads":2164,"notes":1267,"passages":2165},"/reading/landmarks","landmarks","Landmarks","Robert Macfarlane","2022-03-09",[1411,1412,1544],[1381,1172],[],{"path":2167,"slug":2168,"title":2169,"author":2170,"date":2162,"year":1145,"finished":2151,"finishedMonth":1491,"tags":2171,"threads":2172,"notes":1267,"passages":2173},"/reading/the-monastic-heart","the-monastic-heart","The Monastic Heart: 50 Simple Practices for a Contemplative and Fulfilling Life","Joan Chittister",[1589,1657,1096],[1107],[],{"path":2175,"slug":2176,"title":2177,"author":2178,"date":2179,"year":1145,"finished":2151,"finishedMonth":1491,"tags":2180,"threads":2182,"notes":1267,"passages":2183},"/reading/the-river","the-river","The River","Olivia Laing","2022-03-08",[2181,1277,1412],"virgnia woolf",[1381,1136],[],{"path":2185,"slug":2186,"title":2187,"author":2188,"date":2189,"year":1145,"finished":2151,"finishedMonth":1491,"tags":2190,"threads":2191,"notes":1267,"passages":2192},"/reading/annihilation","annihilation","Annihilation: Southern Reach Trilogy, Book 1","Jeff VanderMeer","2022-03-05",[1783,1381],[1381,1136],[],{"path":2194,"slug":2195,"title":2196,"author":2197,"date":2198,"year":1145,"finished":2199,"finishedMonth":1522,"tags":2200,"threads":2201,"notes":1267,"passages":2202},"/reading/kahlil-gibran-wisdom","kahlil-gibran-wisdom","Kahlil Gibran's Little Book of Wisdom","Kahlil Gibran","2022-02-27","February 2022",[1566,1854,1721],[1107,1172],[],{"path":2204,"slug":2205,"title":2206,"author":2207,"date":2208,"year":1145,"finished":2199,"finishedMonth":1522,"tags":2209,"threads":2212,"notes":1089,"passages":2213},"/reading/monolith-microservices","monolith-microservices","Monolith to Microservices","Sam Newman","2022-02-20",[2210,2211],"microservices","software architecture",[1122],[],{"path":2215,"slug":2216,"title":2217,"author":2218,"date":2219,"year":1145,"finished":2199,"finishedMonth":1522,"tags":2220,"threads":2223,"notes":1267,"passages":2224},"/reading/smell-of-rain-on-dust","smell-of-rain-on-dust","The Smell of Rain on Dust","Martin Prechtel","2022-02-18",[2221,2222,1566],"grief","praise",[1107,1172],[],{"path":2226,"slug":2227,"title":2228,"author":2229,"date":2230,"year":1145,"finished":2199,"finishedMonth":1522,"tags":2231,"threads":2233,"notes":1267,"passages":2234},"/reading/radical-wholeness","radical-wholeness","Radical Wholeness","Philip Shepherd","2022-02-16",[1670,2232,1822],"non-dualism",[1107,1172],[],{"path":2236,"slug":2237,"title":2238,"author":2239,"date":2240,"year":1145,"finished":2199,"finishedMonth":1522,"tags":2241,"threads":2243,"notes":1267,"passages":2244},"/reading/practice-lojong","practice-lojong","The Practice of Lojong","Traleg Kyabgon, Ken Wilber","2022-02-06",[2242,1482],"lojong",[1107],[],{"path":2246,"slug":2247,"title":2248,"author":2249,"date":2250,"year":1145,"finished":2199,"finishedMonth":1522,"tags":2251,"threads":2252,"notes":1267,"passages":2253},"/reading/exhalation","exhalation","Exhalation","Ted Chiang","2022-02-04",[1334],[1136],[],{"path":2255,"slug":2256,"title":2257,"author":2258,"date":2259,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2261,"threads":2263,"notes":1267,"passages":2264},"/reading/desert-solitaire","desert-solitaire","Desert Solitaire: A Season in the Wilderness","Edward Abbey","2022-01-30","January 2022",[1411,1412,2262],"wilderness",[1381],[],{"path":2266,"slug":2267,"title":2268,"author":2269,"date":2270,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2271,"threads":2272,"notes":1267,"passages":2273},"/reading/christianity-the-first-three-thousand-years","christianity-the-first-three-thousand-years","Christianity: The First Three Thousand Years","Diarmaid MacCulloch","2022-01-26",[1589,1264],[1107,1264],[],{"path":2275,"slug":2276,"title":2277,"author":2278,"date":2270,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2279,"threads":2281,"notes":1267,"passages":2282},"/reading/drive","drive","Drive: The Surprising Truth About What Motivates Us","Daniel Pink",[1345,2280,2052],"motivation",[1172,1122],[],{"path":2284,"slug":2285,"title":2286,"author":2287,"date":2288,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2289,"threads":2291,"notes":1267,"passages":2292},"/reading/accelerate","accelerate","Accelerate: Building and Scaling High Performing Technology Organizations","Nicole Forsgren","2022-01-17",[2142,2290,1120],"software",[1122],[],{"path":2294,"slug":2295,"title":2296,"author":2297,"date":2288,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2298,"threads":2299,"notes":1267,"passages":2300},"/reading/managers-path","managers-path","The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change","Camille Fournier",[2052,2290,1120],[1122],[],{"path":2302,"slug":2303,"title":2304,"author":2305,"date":2288,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2306,"threads":2307,"notes":1267,"passages":2308},"/reading/radical-candor","radical-candor","Radical Candor","Kim Scott",[2052,2290,1120],[1122],[],{"path":2310,"slug":1192,"title":2311,"author":2312,"date":2313,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2314,"threads":2315,"notes":1267,"passages":2316},"/reading/clean-architecture","Clean Architecture: A Craftsman's Guide to Software Structure and Design","Robert Martin (Uncle Bob)","2022-01-15",[2211,2143],[1122],[],{"path":2318,"slug":1139,"title":2319,"author":2320,"date":2321,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2322,"threads":2324,"notes":1089,"passages":2325},"/reading/software-engineering-at-google","Software Engineering at Google","Titus Winters, Tom Manshreck, Hyrum Wright","2022-01-12",[2143,2323,2142,2141],"enterprise architecture",[1122],[],{"path":2327,"slug":2328,"title":2329,"author":2330,"date":2331,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2332,"threads":2334,"notes":1267,"passages":2335},"/reading/making-work-visible","making-work-visible","Making Work Visible","Dominica Degrandis","2022-01-10",[2142,2333,1119],"project management",[1122],[],{"path":2337,"slug":2338,"title":2339,"author":2340,"date":2341,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2342,"threads":2343,"notes":1267,"passages":2344},"/reading/a-history-of-western-philosophy","a-history-of-western-philosophy","A History of Western Philosophy","Bertrand Russell","2022-01-01",[1263,1264],[1172,1264],[],{"path":2346,"slug":2347,"title":2348,"author":2349,"date":2341,"year":1145,"finished":2260,"finishedMonth":1554,"tags":2350,"threads":2352,"notes":1267,"passages":2353},"/reading/thich-nhat-hanh-essential-writings","thich-nhat-hanh-essential-writings","Thich Nhat Hanh: Essential Writings","Robert Ellsberg, Thich Nhat Hanh",[1670,1311,2351],"peace",[1107],[],{"path":2355,"slug":2356,"title":2357,"author":2358,"date":2359,"year":1163,"finished":2360,"finishedMonth":1668,"tags":2361,"threads":2362,"notes":1267,"passages":2363},"/reading/copenhagen-trilogy","copenhagen-trilogy","The Copenhagen Trilogy: Childhood; Youth; Dependency","Tove Ditlevsen","2021-12-20","December 2021",[1473],[1264],[],{"path":2365,"slug":2366,"title":2367,"author":2368,"date":2369,"year":1163,"finished":2360,"finishedMonth":1668,"tags":2370,"threads":2373,"notes":1267,"passages":2374},"/reading/all-i-can","all-i-can","All I Can","Sharon Van Etten","2021-12-12",[2371,2372],"music","songwriter",[1136],[],{"path":2376,"slug":2377,"title":2378,"author":2379,"date":2380,"year":1163,"finished":2360,"finishedMonth":1668,"tags":2381,"threads":2384,"notes":1267,"passages":2385},"/reading/children-of-ash-and-elm","children-of-ash-and-elm","Children of Ash and Elm: A History of the Vikings","Neil Price","2021-12-03",[1264,2382,2383],"vikings","scandanavia",[1264],[],{"path":2387,"slug":2388,"title":2389,"author":2390,"date":2391,"year":1163,"finished":2360,"finishedMonth":1668,"tags":2392,"threads":2395,"notes":1267,"passages":2396},"/reading/brothers-karamazov","brothers-karamazov","The Brothers Karamazov","Fyodor Dostoevsky","2021-12-01",[1277,1442,2393,2394],"god","human nature",[1107,1172,1136],[],{"path":2398,"slug":2399,"title":2400,"author":2401,"date":2402,"year":1163,"finished":2403,"finishedMonth":1587,"tags":2404,"threads":2406,"notes":1267,"passages":2407},"/reading/autobiography-malcom-x","autobiography-malcom-x","The Autobiography of Malcom X","Malcom X","2021-11-26","November 2021",[1264,1390,2405],"autobiography",[1264],[],{"path":2409,"slug":2410,"title":2411,"author":2412,"date":2402,"year":1163,"finished":2403,"finishedMonth":1587,"tags":2413,"threads":2416,"notes":1267,"passages":2417},"/reading/gospel-of-thomas","gospel-of-thomas","The Gospel of Thomas","Attributed to Thomas",[2414,2415,1853],"gospel","biblical",[1107],[],{"path":2419,"slug":2420,"title":2421,"author":6,"date":2422,"year":1163,"finished":2403,"finishedMonth":1587,"tags":2423,"threads":2424,"notes":1267,"passages":2425},"/reading/centering-prayer-and-inner-awakening","centering-prayer-and-inner-awakening","Centering Prayer and Inner Awakening (Unabridged)","2021-11-25",[1589,1624,1794],[1107],[],{"path":2427,"slug":2428,"title":2429,"author":2430,"date":2431,"year":1163,"finished":2403,"finishedMonth":1587,"tags":2432,"threads":2434,"notes":1267,"passages":2435},"/reading/up-from-slavery","up-from-slavery","Up From Slavery","Booker T. Washington","2021-11-16",[1264,1390,2433],"slavery",[1264],[],{"path":2437,"slug":2438,"title":2439,"author":2440,"date":2441,"year":1163,"finished":2403,"finishedMonth":1587,"tags":2442,"threads":2444,"notes":1089,"passages":2445},"/reading/staff-eng","staff-eng","Staff Engineer","Will Larson","2021-11-15",[2143,1120,2443],"career",[1122],[],{"path":2447,"slug":2448,"title":2449,"author":2031,"date":2450,"year":1163,"finished":2403,"finishedMonth":1587,"tags":2451,"threads":2452,"notes":1267,"passages":2453},"/reading/everything-belongs","everything-belongs","Everything Belongs: The Gift of Contemplative Prayer","2021-11-07",[1589,1624,1834],[1107],[],{"path":2455,"slug":1156,"title":2456,"author":2457,"date":2458,"year":1163,"finished":2403,"finishedMonth":1587,"tags":2459,"threads":2460,"notes":1267,"passages":2461},"/reading/a-still-forest-pool-the-insight-meditation-of-achaan-chah-quest-book-unabridged","A Still Forest Pool: The Insight Meditation of Achaan Chah : Quest Book","Ajchaan Chah, Jack Kornfield, Paul Breiter","2021-11-01",[1311,1482,1670],[1107],[],{"path":2463,"slug":2464,"title":2465,"author":2466,"date":2458,"year":1163,"finished":2403,"finishedMonth":1587,"tags":2467,"threads":2470,"notes":1267,"passages":2471},"/reading/essence-of-upanishads","essence-of-upanishads","Essence of the Upanishads: A Key to Indian Spirituality","Eknath Easwaran",[2468,1854,2469],"indian spirituality","hinduism",[1107],[],{"path":2473,"slug":2474,"title":2475,"author":2476,"date":2477,"year":1163,"finished":2478,"finishedMonth":1261,"tags":2479,"threads":2480,"notes":1267,"passages":2481},"/reading/the-book-of-disquiet-unabridged","the-book-of-disquiet-unabridged","The Book of Disquiet","Fernando Pessoa","2021-10-17","October 2021",[1277,1535,1885],[1136],[],{"path":2483,"slug":2484,"title":2485,"author":2486,"date":2487,"year":1163,"finished":2478,"finishedMonth":1261,"tags":2488,"threads":2489,"notes":1089,"passages":2490},"/reading/searching-stars-island-maine","searching-stars-island-maine","Searching for Stars on an Island in Maine","Alan Lightman","2021-10-16",[1356,1854,1772],[1107,1172],[],{"path":2492,"slug":2493,"title":2494,"author":2495,"date":2496,"year":1163,"finished":2478,"finishedMonth":1261,"tags":2497,"threads":2499,"notes":1089,"passages":2500},"/reading/story-of-human-language","story-of-human-language","The Story of Human Language","John McWhorter","2021-10-15",[1544,2498],"linguistics",[1172],[],{"path":2502,"slug":2503,"title":2504,"author":2505,"date":2506,"year":1163,"finished":2507,"finishedMonth":1275,"tags":2508,"threads":2510,"notes":1089,"passages":2511},"/reading/emily-dickinson-poems-letters","emily-dickinson-poems-letters","Emily Dickinson: Poems and Letters","Emily Dickinson","2021-09-26","September 2021",[1502,2509,1401],"trancendentalist",[1381,1136,1264],[2512],[2513,2514,2515],"Dear friend, I think of you so wholly that I cannot resist to write again, to ask if you are safe? Danger is not at first, for then we are unconscious, but in the after - slower - Days - Do not try to be saved - but let Redemption find you - as it certainly will - Love is it's own rescue, for we-at our supremest, are but it's trembling Emblems -","Your scholar -","Emily Dickinson, letter to Thomas Wentworth Higginson, 1863",{"path":2517,"slug":2518,"title":2519,"author":1981,"date":2520,"year":1163,"finished":2507,"finishedMonth":1275,"tags":2521,"threads":2522,"notes":1267,"passages":2523},"/reading/more-than-allegory","more-than-allegory","More than Allegory: On Religious Myth, Truth and Belief","2021-09-19",[1263,1854,1301],[1107,1172],[],{"path":2525,"slug":2526,"title":2527,"author":2528,"date":2529,"year":1163,"finished":2507,"finishedMonth":1275,"tags":2530,"threads":2531,"notes":1267,"passages":2532},"/reading/an-introduction-to-information-theory","an-introduction-to-information-theory","An Introduction to Information Theory: Symbols, Signals and Noise","John P. Pierce","2021-09-16",[1908,1773],[1108],[],{"path":2534,"slug":2535,"title":2536,"author":2537,"date":2538,"year":1163,"finished":2507,"finishedMonth":1275,"tags":2539,"threads":2543,"notes":1089,"passages":2544},"/reading/designing-data-systems","designing-data-systems","Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems","Martin Kleppmann","2021-09-11",[2540,2541,2542],"distributed systems","scalability","databases",[1122],[],{"path":2546,"slug":1193,"title":2547,"author":2548,"date":2549,"year":1163,"finished":2507,"finishedMonth":1275,"tags":2550,"threads":2551,"notes":1267,"passages":2552},"/reading/fundamentals-of-software-architecture","Fundamentals of Software Architecture: An Engineering Approach","Mark Richards, Neal Ford","2021-09-10",[2211,2143],[1122],[],{"path":2554,"slug":2555,"title":2556,"author":2557,"date":2558,"year":1163,"finished":2559,"finishedMonth":1289,"tags":2560,"threads":2561,"notes":1267,"passages":2562},"/reading/balkan-ghosts","balkan-ghosts","Balkan Ghosts: A Journey Through History (Unabridged)","Robert D. Kaplan","2021-08-26","August 2021",[1264,2153,1952],[1381,1264],[],{"path":2564,"slug":2565,"title":2566,"author":2567,"date":2558,"year":1163,"finished":2559,"finishedMonth":1289,"tags":2568,"threads":2572,"notes":1089,"passages":2573},"/reading/demian","demian","Demian","Herman Hesse",[2569,2570,2571],"bildungsroman","german","20th-century",[1136,1264],[2574,2576],[2575],"\"One never reaches home,\" she said. \"But where paths that have an affinity for each other intersect, the whole world looks like home, for a time.\"",[2577],"\"I wanted only to live in accord with the promptings which came from my true self. Why was that so very difficult?\"",{"path":2579,"slug":2580,"title":2581,"author":2582,"date":2583,"year":1163,"finished":2559,"finishedMonth":1289,"tags":2584,"threads":2585,"notes":1267,"passages":2586},"/reading/american-prometheus","american-prometheus","American Prometheus: The Triumph and Tragedy of J. Robert Oppenheimer","Kai Bird, Martin J. Sherwin","2021-08-23",[1751,1772,1264],[1172,1264],[],{"path":2588,"slug":2589,"title":2590,"author":2591,"date":2583,"year":1163,"finished":2559,"finishedMonth":1289,"tags":2592,"threads":2593,"notes":1267,"passages":2594},"/reading/autobiography-monk","autobiography-monk","The Autobiography of a Tibetan Monk","Palden Gyatso, Tsering Shakya (translator)",[1312],[1107],[],{"path":2596,"slug":2597,"title":2598,"author":2599,"date":2600,"year":1163,"finished":2559,"finishedMonth":1289,"tags":2601,"threads":2602,"notes":1267,"passages":2603},"/reading/divine-comedy","divine-comedy","Divine Comedy","Dante Alighieri","2021-08-21",[1502,1511,1589],[1107,1136],[],{"path":2605,"slug":2606,"title":2607,"author":2608,"date":2609,"year":1163,"finished":2559,"finishedMonth":1289,"tags":2610,"threads":2611,"notes":1267,"passages":2612},"/reading/a-tale-of-two-cities","a-tale-of-two-cities","A Tale of Two Cities","Charles Dickens","2021-08-13",[1277,1278,1401],[1136,1264],[],{"path":2614,"slug":2615,"title":2616,"author":2617,"date":2609,"year":1163,"finished":2559,"finishedMonth":1289,"tags":2618,"threads":2619,"notes":1267,"passages":2620},"/reading/confessions","confessions","Confessions","Augustine of Hippo",[1589,2034,2405],[1107,1264],[],{"path":2622,"slug":1174,"title":2623,"author":2624,"date":2609,"year":1163,"finished":2559,"finishedMonth":1289,"tags":2625,"threads":2626,"notes":1267,"passages":2627},"/reading/philosophical-investigations","Philosophical Investigations","Ludwig Wittgenstein",[1263,1544,1169],[1172],[],{"path":2629,"slug":2630,"title":2631,"author":2632,"date":2633,"year":1163,"finished":2559,"finishedMonth":1289,"tags":2634,"threads":2635,"notes":1267,"passages":2636},"/reading/magic-mountain","magic-mountain","The Magic Mountain","Thomas Mann","2021-08-01",[2570,2571,2569,1896],[1172,1136,1264],[],{"path":2638,"slug":2639,"title":2640,"author":2466,"date":2641,"year":1163,"finished":2642,"finishedMonth":1322,"tags":2643,"threads":2644,"notes":1267,"passages":2645},"/reading/passage-meditation","passage-meditation","Passage Mediation","2021-07-30","July 2021",[1482,1854,1709],[1107],[],{"path":2647,"slug":2648,"title":2649,"author":2466,"date":2650,"year":1163,"finished":2642,"finishedMonth":1322,"tags":2651,"threads":2652,"notes":1089,"passages":2653},"/reading/original-goodness","original-goodness","Original Goodness: A Commentary on the Beatitudes","2021-07-20",[1589,1624,1482],[1107],[2654,2656],[2655],"\"He that loveth not, knoweth not God;\", says John the Apostle, \"for God is love.\" The words sound so ethereal that most of us cannot connect them with daily life. What, we ask, do personal relationships have to do with the divine? I would reply, it is by discovering the unity between ourselves and others - all others - that we find our unity with God. That is why training the mind is the nuts and bolts of religion. We don't first get to know God and then, by some miracle of grace, come to love our fellow human beings. Loving comes first: learning to love others is how we move closer to the Lord. In this sense, learning to love is practicing religion. Those who can put the welfare of others before their own small personal interests are religious, even if they would deny it. And, of course, anyone who can quote scripture chapter and verse but will not put herself out for others has yet to learn what religion means.",[2657],"Most of us, as my grandmother once told me bluntly, confuse self-pity and grief. Granny was as tough as she was loving. When I would come to her crying because my feelings were hurt, she could be terribly unsympathetic. \"That's not grief.\" she would say. \"You're just feeling sorry for yourself.\" Self-pity weakens us; grief, which means sorrow for others, ennobles us and releases inner resources to help.",{"path":2659,"slug":2660,"title":2661,"author":1841,"date":2662,"year":1163,"finished":2642,"finishedMonth":1322,"tags":2663,"threads":2664,"notes":1267,"passages":2665},"/reading/the-red-book","the-red-book","The Red Book: A Reader's Edition: Philemon","2021-07-05",[1345,1452,1453],[1172],[],{"path":2667,"slug":2668,"title":2669,"author":2031,"date":2670,"year":1163,"finished":2671,"finishedMonth":1366,"tags":2672,"threads":2673,"notes":1267,"passages":2674},"/reading/just-this","just-this","Just This","2021-06-30","June 2021",[1624,1854,1589],[1107],[],{"path":2676,"slug":2677,"title":2678,"author":1066,"date":2679,"year":1163,"finished":2671,"finishedMonth":1366,"tags":2680,"threads":2683,"notes":1267,"passages":2684},"/reading/nordic-tales-folktales","nordic-tales-folktales","Nordic Tales: Folktales from Norway, Sweden, Finland, Iceland, and Denmark","2021-06-20",[2681,2682],"folklore","scandinavia",[1136,1264],[],{"path":2686,"slug":2687,"title":2688,"author":2689,"date":2690,"year":1163,"finished":2691,"finishedMonth":1655,"tags":2692,"threads":2693,"notes":1267,"passages":2694},"/reading/dealers-of-lightning","dealers-of-lightning","Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age","Michael Hiltzik","2021-05-31","May 2021",[1773,1942,1264],[1122,1108,1264],[],{"path":2696,"slug":2697,"title":2698,"author":2699,"date":2700,"year":1163,"finished":2691,"finishedMonth":1655,"tags":2701,"threads":2703,"notes":1089,"passages":2704},"/reading/soul-of-a-new-machine","soul-of-a-new-machine","The Soul of a New Machine","Tracy Kidder","2021-05-30",[1264,2702],"information age",[1108,1264],[],{"path":2706,"slug":2707,"title":2708,"author":2709,"date":2710,"year":1163,"finished":2711,"finishedMonth":1431,"tags":2712,"threads":2714,"notes":1267,"passages":2715},"/reading/first-signs","first-signs","The First Signs: Unlocking the Mysteries of the World's Oldest Symbols","Genevieve von Petzinger","2021-04-21","April 2021",[2713,1453],"anthropology",[1172,1264],[],{"path":2717,"slug":1157,"title":2718,"author":1664,"date":2719,"year":1163,"finished":2711,"finishedMonth":1431,"tags":2720,"threads":2721,"notes":1267,"passages":2722},"/reading/peace-is-every-step","Peace is Every Step","2021-04-19",[1670,2351],[1107],[],{"path":2724,"slug":2725,"title":2726,"author":2727,"date":2728,"year":1163,"finished":2711,"finishedMonth":1431,"tags":2729,"threads":2732,"notes":1267,"passages":2733},"/reading/bhagavad-gita","bhagavad-gita","The Bhagavad Gita","Unknown","2021-04-15",[2730,2731],"hindusim","yoga",[1107],[],{"path":2735,"slug":2736,"title":2737,"author":2738,"date":2739,"year":1163,"finished":2711,"finishedMonth":1431,"tags":2740,"threads":2743,"notes":1267,"passages":2744},"/reading/sand-county-almanac","sand-county-almanac","Sand County Almanac","Aldo Leopold","2021-04-14",[1378,2741,2742],"ecology","environmentalism",[1381],[],{"path":2746,"slug":2747,"title":2748,"author":2749,"date":2750,"year":1163,"finished":2711,"finishedMonth":1431,"tags":2751,"threads":2752,"notes":1089,"passages":2753},"/reading/the-living-mountain","the-living-mountain","The Living Mountain","Nan Shepherd","2021-04-11",[1381],[1381],[],{"path":2755,"slug":2756,"title":2757,"author":2758,"date":2759,"year":1163,"finished":2760,"finishedMonth":1491,"tags":2761,"threads":2763,"notes":1089,"passages":2764},"/reading/the-world-ending-fire","the-world-ending-fire","The World-Ending Fire: The Essential Wendell Berry","Wendell Berry","2021-03-12","March 2021",[1381,2741,2762],"community",[1381],[2765],[2766],"The difference between a path and a road is not only the obvious one. A path is little more than a habit that comes with knowledge of a place. It sort of ritual of familiarity. As a form, it is a form of contact with a known landscape. It is not destructive. It is the perfect adaptation, through experience and familiarity, of movement to place; it obeys the natural contours; such obstacles as it meets it goes around. A road, on the other hand, even the primitive road, embodies a resistance against the landscape. Its reason is not simply the necessity for movement, but haste. Its wish is to avoid contact with the landscape; it seeks so far as possible to go over the country, rather t through it; its aspiration, as we see dearly in the example of our modem ways, is to be a bridge; its tendency is to translate place into space in order traverse it with the least effort. It is destructive, seeking to remove or destroy all obstacles in its way. The primitive road advanced by the destruction of forest; modern roads advance by the destruction of topography. (Wendell Berry, “A Native Hill”)",{"path":2768,"slug":2769,"title":2770,"author":2771,"date":2772,"year":1163,"finished":2760,"finishedMonth":1491,"tags":2773,"threads":2774,"notes":1089,"passages":2775},"/reading/cloud-of-unknowing","cloud-of-unknowing","The Cloud of Unknowing","Anonymous, translated by Carmen Acevedo Butcher","2021-03-10",[2034,1589,1590],[1107],[2776],[2777],"\"And so I urge you, go after experience rather than knowledge. On account of pride, knowledge may often deceive you, but this gentle, loving affection will not deceive you. Knowledge tends to breed conceit, but love builds. Knowledge is full of labor, but love, full of rest.\"",{"path":2779,"slug":2780,"title":2781,"author":2782,"date":2783,"year":1163,"finished":2760,"finishedMonth":1491,"tags":2784,"threads":2785,"notes":1089,"passages":2786},"/reading/revelations-of-divine-love","revelations-of-divine-love","Revelations of Divine Love","Julian of Norwich","2021-03-01",[2034,1589,1590],[1107],[],{"path":2788,"slug":2789,"title":2790,"author":2791,"date":2783,"year":1163,"finished":2760,"finishedMonth":1491,"tags":2792,"threads":2793,"notes":1267,"passages":2794},"/reading/the-old-ways","the-old-ways","The Old Ways: A Journey on Foot","Robert McFarlane",[1556,1381],[1381],[],{"path":2796,"slug":2797,"title":2798,"author":2799,"date":2800,"year":1163,"finished":2801,"finishedMonth":1522,"tags":2802,"threads":2805,"notes":1267,"passages":2806},"/reading/four-arthurian-romances-unabridged","four-arthurian-romances-unabridged","Four Arthurian Romances","Chrétien de Troyes","2021-02-22","February 2021",[2803,1511,2804],"romance","medieval",[1136],[],{"path":2808,"slug":2809,"title":2810,"author":2811,"date":2812,"year":1163,"finished":2813,"finishedMonth":1554,"tags":2814,"threads":2816,"notes":1267,"passages":2817},"/reading/say-nothing","say-nothing","Say Nothing: A True Story of Murder and Memory in Northern Ireland","Patrick Radden Keefe","2021-01-31","January 2021",[1264,1952,2815],"20th century",[1264],[],{"path":2819,"slug":2820,"title":2821,"author":2822,"date":2823,"year":1163,"finished":2813,"finishedMonth":1554,"tags":2824,"threads":2825,"notes":1267,"passages":2826},"/reading/nicholas-black-elk-medicine-man-missionary-mystic","nicholas-black-elk-medicine-man-missionary-mystic","Nicholas Black Elk: Medicine Man, Missionary, Mystic","Michael F. Steltenkamp","2021-01-22",[1751,1391,1589,1752],[1107,1264],[],{"path":2828,"slug":2829,"title":2830,"author":2831,"date":2832,"year":1163,"finished":2813,"finishedMonth":1554,"tags":2833,"threads":2835,"notes":1267,"passages":2836},"/reading/gathering-moss","gathering-moss","Gathering Moss: A Natural and Cultural History of Mosses","Robin Wall Kimmerer","2021-01-20",[1381,2741,2834],"mosses",[1381],[],{"path":2838,"slug":2839,"title":2840,"author":2841,"date":2842,"year":1163,"finished":2813,"finishedMonth":1554,"tags":2843,"threads":2844,"notes":1267,"passages":2845},"/reading/the-wisdom-jesus","the-wisdom-jesus","The Wisdom Jesus","Cynthia Bourgeault","2021-01-07",[2034,1589,1834],[1107],[],{"path":2847,"slug":2848,"title":2849,"author":2850,"date":2851,"year":1182,"finished":2852,"finishedMonth":1587,"tags":2853,"threads":2854,"notes":1267,"passages":2855},"/reading/the-seven-storey-mountain","the-seven-storey-mountain","The Seven Storey Mountain","Thomas Merton","2020-11-26","November 2020",[1589,2405,1657],[1107,1264],[],{"path":2857,"slug":2858,"title":2859,"author":2860,"date":2861,"year":1182,"finished":2852,"finishedMonth":1587,"tags":2862,"threads":2863,"notes":1267,"passages":2864},"/reading/dead-souls","dead-souls","Dead Souls","Nikolai Gogol","2020-11-24",[1442,1277,1278],[1136],[],{"path":2866,"slug":2867,"title":2868,"author":2869,"date":2861,"year":1182,"finished":2852,"finishedMonth":1587,"tags":2870,"threads":2871,"notes":1267,"passages":2872},"/reading/the-river-of-consciousness-unabridged","the-river-of-consciousness-unabridged","The River of Consciousness","Oliver Sacks",[1602,1535,1356],[1172,1136],[],{"path":2874,"slug":2875,"title":2876,"author":2877,"date":2878,"year":1182,"finished":2852,"finishedMonth":1587,"tags":2879,"threads":2880,"notes":1267,"passages":2881},"/reading/dangerous-mystic","dangerous-mystic","Dangerous Mystic: Meister Eckhart's Path to the God Within","Joel F. Harrington","2020-11-10",[1590,1589,1751],[1107,1264],[],{"path":2883,"slug":2884,"title":2885,"author":2886,"date":2878,"year":1182,"finished":2852,"finishedMonth":1587,"tags":2887,"threads":2888,"notes":1267,"passages":2889},"/reading/gnosticism-from-nag-hammadi-to-the-gospel-of-judas","gnosticism-from-nag-hammadi-to-the-gospel-of-judas","Gnosticism: From Nag Hammadi to the Gospel of Judas (Great Courses)","David Brakke",[1853,1854,1264],[1107,1264],[],{"path":2891,"slug":2892,"title":2893,"author":1066,"date":2878,"year":1182,"finished":2852,"finishedMonth":1587,"tags":2894,"threads":2895,"notes":1267,"passages":2896},"/reading/new-seeds-of-contemplation-unabridged","new-seeds-of-contemplation-unabridged","New Seeds of Contemplation",[1589,1624,1657],[1107],[],{"path":2898,"slug":2899,"title":2900,"author":2901,"date":2902,"year":1182,"finished":2903,"finishedMonth":1275,"tags":2904,"threads":2905,"notes":1267,"passages":2906},"/reading/paradise-lost","paradise-lost","Paradise Lost","John Milton","2020-09-27","September 2020",[1502,1511,1589],[1107,1136],[],{"path":2908,"slug":2909,"title":2910,"author":1664,"date":2911,"year":1182,"finished":2903,"finishedMonth":1275,"tags":2912,"threads":2913,"notes":1089,"passages":2914},"/reading/the-art-of-living-life","the-art-of-living-life","The Art of Living: Peace and Freedom in the Here and Now","2020-09-13",[1670],[1107],[2915],[2916],"I see that I am like a wave on the surface of the ocean. I see myself in all the other waves, and I see all the other waves in me. The manifestation or the disappearance of the waves does not lessen the presence of the ocean.\"",{"path":2918,"slug":2919,"title":2920,"author":2921,"date":2922,"year":1182,"finished":2923,"finishedMonth":1289,"tags":2924,"threads":2925,"notes":1089,"passages":2926},"/reading/wilderness-essays","wilderness-essays","Wilderness Essays","John Muir","2020-08-29","August 2020",[1381],[1381],[2927,2929,2931,2933,2935],[2928],"Walk away quietly in any direction and taste the freedom of the mountaineer. Camp out among the grass and gentians of glacier meadows, in craggy garden nooks full of Nature's darlings. Climb the mountains and get their good tidings. Nature's peace will flow into you as sunshine flows into trees. The winds will blow their own freshness into you, and the storms their energy, while cares will drop off like autumn leaves. As age comes on, one source of enjoyment after another is closed, but Nature's sources never fail. Like a generous host, she offers here brimming cups in endless variety, served in a grand hall, the sky its ceiling, the mountains its walls, decorated with glorious paintings and enlivened with bands of music ever playing. The petty discomforts that beset the awkward guest, the unskilled camper, are quickly forgotten, while all that is precious remains. Fears vanish as soon as one is fairly free in the wilderness. (John Muir, \"The Yellowstone National Park\")",[2930],"Now came the solemn, silent evening. Long, blue, spiky shadows crept out across the snow-fields, while a rosy glow, at first scarce discernible, gradually deepened and suffused every mountain-top, flushing the glaciers and the harsh crags above them. This was the alpenglow, to me one of the most impressive of all the terrestrial manifestations of God. At the touch of this divine light, the mountains seemed to kindle to a rapt, religious consciousness, and stood hushed and waiting like devout worshipers. Just before the alpenglow began to fade, two crimson clouds came streaming across the summit like wings of flame, rendering the sublime scene yet more impressive; then came darkness and the stars.",[2932],"How still the woods seem from here, yet how lively a stir the hidden animals are making; digging, gnawing, biting, eyes shining, at work and play, getting food, rearing young, roving through the underbrush, climbing the rocks, wading solitary marshes, tracing the banks of the lakes and streams! Insect swarms are dancing in the sunbeams, burrowing in the ground, diving, swimming,--a cloud of witnesses telling Nature's joy. The plants are as busy as the animals, every cell in a swirl of enjoyment, humming like a hive, singing the old new song of creation. (John Muir, \"The Yellowstone National Park\")",[2934],"Now comes the gloaming. The alpenglow is fading into earthy, murky gloom, but do not let your town habits draw you away to the hotel. Stay on this good fire-mountain and spend the night among the stars. Watch their glorious bloom until the dawn, and get one more baptism of light. Then, with fresh heart, go down to your work, and whatever your fate, under whatever ignorance or knowledge you may afterward chance to suffer, you will remember these fine, wild views, and look back with joy to your wanderings in the blessed old Yellowstone Wonderland. (John Muir, \"The Yellowstone National Park\")",[2936],"It may be asked, What have mountains fifty or a hundred miles away to do with Twenty Hill Hollow? To lovers of the wild, these mountains are not a hundred miles away. Their spiritual power and the goodness of the sky make them near, as a circle of friends. They rise as a portion of the hilled walls of the Hollow. You cannot feel yourself out of doors; plain, sky, and mountains ray beauty which you feel. You bathe in these spirit-beams, turning round and round, as if warming at a camp-fire. Presently you lose consciousness of your own separate existence: you blend with the landscape, and become part and parcel of nature. (John Muir, \"Twenty Hill Hollow\")",{"path":2938,"slug":2939,"title":2940,"author":2941,"date":2942,"year":1182,"finished":2923,"finishedMonth":1289,"tags":2943,"threads":2944,"notes":1267,"passages":2945},"/reading/a-short-account-of-the-history-of-mathematics","a-short-account-of-the-history-of-mathematics","A Short Account of the History of Mathematics","W. W. Rouse Ball","2020-08-22",[1524,1264,1356],[1172,1264],[],{"path":2947,"slug":2948,"title":2949,"author":6,"date":2950,"year":1182,"finished":2923,"finishedMonth":1289,"tags":2951,"threads":2952,"notes":1267,"passages":2953},"/reading/i-m-your-man-the-life-of-leonard-cohen","i-m-your-man-the-life-of-leonard-cohen","I'm Your Man: The Life of Leonard Cohen","2020-08-17",[1751,2371,1502],[1136,1264],[],{"path":2955,"slug":2956,"title":2957,"author":2958,"date":2959,"year":1182,"finished":2960,"finishedMonth":1322,"tags":2961,"threads":2962,"notes":1267,"passages":2963},"/reading/bicameral","bicameral","The Origin of Consciousness in the Breakdown of the Bicameral Mind","Julian Jaynes","2020-07-12","July 2020",[1301],[1172],[],{"path":2965,"slug":2966,"title":2967,"author":2968,"date":2969,"year":1182,"finished":2960,"finishedMonth":1322,"tags":2970,"threads":2971,"notes":1267,"passages":2972},"/reading/classics-russian-lit","classics-russian-lit","Classics of Russian Literature (The Great Courses)","Irwin Weil","2020-07-01",[1345],[1172],[],{"path":2974,"slug":2975,"title":2976,"author":1439,"date":2969,"year":1182,"finished":2960,"finishedMonth":1322,"tags":2977,"threads":2979,"notes":1089,"passages":2980},"/reading/fathers-and-sons","fathers-and-sons","Fathers and Sons",[1442,2978,2803],"political",[1136,1264],[2981,2983],[2982],"\"Whereas I think: I’m lying here in a haystack... The tiny space I occupy is so infinitesimal in comparison with the rest of space, which I don’t occupy and which has no relation to me. And the period of time in which I’m fated to live is so insignificant beside the eternity in which I haven’t existed and won’t exist... And yet in this atom, this mathematical point, blood is circulating, a brain is working, desiring something... What chaos! What a farce!\"",[2984],"\"A man's capable of understanding anything - how the ether vibrates, and what's going on in the sun - but how any other man can blow his nose differently from him, that he's incapable of understanding.\"",{"path":2986,"slug":2987,"title":2988,"author":2989,"date":2969,"year":1182,"finished":2960,"finishedMonth":1322,"tags":2990,"threads":2991,"notes":1089,"passages":2992},"/reading/memories-dreams-reflections","memories-dreams-reflections","Memories, Dreams, Reflections","C. G. Jung",[1345],[1172],[],{"path":2994,"slug":2995,"title":2996,"author":2997,"date":2969,"year":1182,"finished":2960,"finishedMonth":1322,"tags":2998,"threads":2999,"notes":1267,"passages":3000},"/reading/thinking-fast-slow","thinking-fast-slow","Thinking, Fast and Slow","Daniel Kahneman",[1345],[1172],[],{"path":3002,"slug":3003,"title":3004,"author":3005,"date":3006,"year":1182,"finished":3007,"finishedMonth":1366,"tags":3008,"threads":3010,"notes":1267,"passages":3011},"/reading/to-build-a-fire","to-build-a-fire","To Build a Fire","Jack London","2020-06-01","June 2020",[3009],"short story",[1136],[],{"path":3013,"slug":3014,"title":3015,"author":3016,"date":3017,"year":1182,"finished":3018,"finishedMonth":1655,"tags":3019,"threads":3021,"notes":1267,"passages":3022},"/reading/sandworm","sandworm","Sandworm: A New Era of Cyberwar and the Hunt for the Kremlin's Most Dangerous Hackers","Andy Greenberg","2020-05-01","May 2020",[3020],"technology and politics",[1108],[],{"path":3024,"slug":3025,"title":3026,"author":6,"date":3027,"year":1182,"finished":3028,"finishedMonth":1431,"tags":3029,"threads":3031,"notes":1267,"passages":3032},"/reading/21-lessons-for-the-21st-century-unabridged","21-lessons-for-the-21st-century-unabridged","21 Lessons for the 21st Century (Unabridged)","2020-04-26","April 2020",[1920,3030,3020],"society",[1108,1264],[],{"path":3034,"slug":3035,"title":3036,"author":3037,"date":3027,"year":1182,"finished":3028,"finishedMonth":1431,"tags":3038,"threads":3040,"notes":1267,"passages":3041},"/reading/a-rare-recording-of-marshall-mcluhan","a-rare-recording-of-marshall-mcluhan","A Rare Recording of Marshall McLuhan","Marshall McLuhan",[3039,2702,1544],"media",[1172,1108],[],{"path":3043,"slug":3044,"title":3045,"author":3046,"date":3027,"year":1182,"finished":3028,"finishedMonth":1431,"tags":3047,"threads":3048,"notes":1267,"passages":3049},"/reading/homo-deus","homo-deus","Homo Deus: A Brief History of Tomorrow","Yuval Noah Harari",[1920,1264,1094],[1108,1264],[],{"path":3051,"slug":3052,"title":3053,"author":3054,"date":3055,"year":1182,"finished":3028,"finishedMonth":1431,"tags":3056,"threads":3058,"notes":1267,"passages":3059},"/reading/goodbye-things-the-new-japanese-minimalism","goodbye-things-the-new-japanese-minimalism","Goodbye, Things: The New Japanese Minimalism","Fumio Sasaki","2020-04-15",[3057,1096,1567],"minimalism",[1107],[],{"path":3061,"slug":3062,"title":3063,"author":3064,"date":3065,"year":1182,"finished":3028,"finishedMonth":1431,"tags":3066,"threads":3068,"notes":1267,"passages":3069},"/reading/economics-3rd-edition","economics-3rd-edition","Economics, 3rd Edition (Great Courses)","Timothy Taylor","2020-04-11",[3067,2043],"economics",[1122],[],{"path":3071,"slug":3072,"title":3073,"author":3074,"date":3075,"year":1182,"finished":3076,"finishedMonth":1491,"tags":3077,"threads":3079,"notes":1267,"passages":3080},"/reading/dharma-bums","dharma-bums","The Dharma Bums","Jack Kerouac","2020-03-01","March 2020",[3078],"beat literature",[1136],[],{"path":3082,"slug":3083,"title":3084,"author":3085,"date":3075,"year":1182,"finished":3076,"finishedMonth":1491,"tags":3086,"threads":3090,"notes":1089,"passages":3091},"/reading/maya-to-aztec-ancient-mesoamerica","maya-to-aztec-ancient-mesoamerica","Maya To Aztec: Ancient Mesoamerica Revealed (The Great Courses audio recordings)","Edwin Barnhart",[3087,3088,3089],"ancient history","mesoamerica","archaeology",[1264],[],{"path":3093,"slug":3094,"title":3095,"author":3096,"date":3097,"year":1182,"finished":3098,"finishedMonth":1522,"tags":3099,"threads":3100,"notes":1267,"passages":3101},"/reading/the-three-body-problem","the-three-body-problem","The Three-Body Problem","Cixin Liu","2020-02-17","February 2020",[1783,1278],[1136],[],{"path":3103,"slug":3104,"title":3105,"author":3106,"date":3107,"year":1182,"finished":3098,"finishedMonth":1522,"tags":3108,"threads":3109,"notes":1267,"passages":3110},"/reading/dress-your-fam","dress-your-fam","Dress Your Family in Corduroy and Denim","David Sedaris","2020-02-01",[1535],[1136],[],{"path":3112,"slug":3113,"title":3114,"author":3115,"date":3116,"year":1182,"finished":3117,"finishedMonth":1554,"tags":3118,"threads":3119,"notes":1267,"passages":3120},"/reading/go-tell-it-on-the-mountain","go-tell-it-on-the-mountain","Go Tell It On the Mountain","James Baldwin","2020-01-30","January 2020",[1277,1291,1278],[1136],[],{"path":3122,"slug":3123,"title":3124,"author":3125,"date":3116,"year":1182,"finished":3117,"finishedMonth":1554,"tags":3126,"threads":3127,"notes":1267,"passages":3128},"/reading/principles-life-and-work-unabridged","principles-life-and-work-unabridged","Principles: Life and Work","Ray Dalio",[2043,2052,2121],[1122],[],{"path":3130,"slug":3131,"title":3132,"author":6,"date":3116,"year":1182,"finished":3117,"finishedMonth":1554,"tags":3133,"threads":3135,"notes":1267,"passages":3136},"/reading/something-deeply-hidden","something-deeply-hidden","Something Deeply Hidden: Quantum Worlds and the Emergence of Spacetime",[1772,3134,1822],"quantum physics",[1172],[],{"path":3138,"slug":3139,"title":3140,"author":3141,"date":3142,"year":1182,"finished":3117,"finishedMonth":1554,"tags":3143,"threads":3144,"notes":1089,"passages":3145},"/reading/rendezvous-with-rama","rendezvous-with-rama","Rendezvous with Rama","Arthur C. Clarke","2020-01-19",[1783],[1136],[],{"path":3147,"slug":3148,"title":3149,"author":3150,"date":3151,"year":1182,"finished":3117,"finishedMonth":1554,"tags":3152,"threads":3154,"notes":1267,"passages":3155},"/reading/emerson-thoreau-and-the-transcendentalist-movement","emerson-thoreau-and-the-transcendentalist-movement","Emerson, Thoreau, and the Transcendentalist Movement (Great Courses)","Ashton Nichols","2020-01-07",[3153,1263,1381],"transcendentalism",[1381,1172],[],{"path":3157,"slug":3158,"title":3159,"author":1981,"date":3151,"year":1182,"finished":3117,"finishedMonth":1554,"tags":3160,"threads":3161,"notes":1267,"passages":3162},"/reading/neuroscience-learning-more","neuroscience-learning-more","Neuroscience: Learning More About the Human Brain",[1602,2004,1301],[1172],[],{"path":3164,"slug":3165,"title":3166,"author":3167,"date":3151,"year":1182,"finished":3117,"finishedMonth":1554,"tags":3168,"threads":3169,"notes":1267,"passages":3170},"/reading/on-anarchism","on-anarchism","On Anarchism","Noam Chomsky",[2074,2978],[1264],[],{"path":3172,"slug":3173,"title":3174,"author":3085,"date":3175,"year":1182,"finished":3117,"finishedMonth":1554,"tags":3176,"threads":3177,"notes":1089,"passages":3178},"/reading/ancient-civilizations-of-north-america","ancient-civilizations-of-north-america","Ancient Civilizations of North America (The Great Courses audio recordings)","2020-01-01",[3087,1391],[1264],[],{"path":3180,"slug":3181,"title":3182,"author":3183,"date":3184,"year":1221,"finished":3185,"finishedMonth":1668,"tags":3186,"threads":3187,"notes":1267,"passages":3188},"/reading/enders-game","enders-game","Ender's Game: Special 20th Anniversary Edition","Orson Scott Card","2019-12-24","December 2019",[1783,1278],[1136],[],{"path":3190,"slug":3191,"title":3192,"author":1780,"date":3193,"year":1221,"finished":3194,"finishedMonth":1587,"tags":3195,"threads":3197,"notes":1267,"passages":3198},"/reading/cryptonomicon","cryptonomicon","Cryptonomicon","2019-11-15","November 2019",[3196,1993,1278],"cryptography",[1136,1108],[],{"path":3200,"slug":3201,"title":3202,"author":3203,"date":3204,"year":1221,"finished":3205,"finishedMonth":1261,"tags":3206,"threads":3207,"notes":1267,"passages":3208},"/reading/as-i-lay-dying","as-i-lay-dying","As I Lay Dying","William Faulkner","2019-10-20","October 2019",[1277,1291,1278],[1136],[],{"path":3210,"slug":3211,"title":3212,"author":3213,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3215,"threads":3216,"notes":1267,"passages":3217},"/reading/48-laws-of-power","48-laws-of-power","48 Laws of Power","Robert Greene","August 2019",[1345],[1172],[],{"path":3219,"slug":3220,"title":3221,"author":3222,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3223,"threads":3224,"notes":1267,"passages":3225},"/reading/a-handbook-for-new-stoics","a-handbook-for-new-stoics","A Handbook for New Stoics","Pigliucci, Lopez",[1263,1345],[1172],[],{"path":3227,"slug":3228,"title":3229,"author":3230,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3231,"threads":3233,"notes":1267,"passages":3234},"/reading/a-mind-at-play-claude-shannon","a-mind-at-play-claude-shannon","A Mind at Play: How Claude Shannon Invented the Information Age","Jimmy Soni, Rob Goodman",[3232,1751,1773],"claude shannon",[1108,1264],[],{"path":3236,"slug":1124,"title":3237,"author":2440,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3238,"threads":3239,"notes":1089,"passages":3240},"/reading/an-elegant-puzzle","An Elegant Puzzle: Systems of Engineering Management",[1120,1122],[1122],[3241,3243,3245,3247],[3242],"Finally, the one thing that I’ve found at companies with very few interruptions and have observed almost nowhere else: really great, consistently available documentation. It’s probably even harder to bootstrap documentation into a non-documenting company than it is to bootstrap unit tests into a non-testing company, but the best solution to frequent interruptions I’ve seen is a culture of documentation, documentation reading, and a documentation search that actually works.",[3244],"Most system-implemented systems are designed to support one to two orders magnitude of growth from the current load. Even systems designed for more growth tend to run into limitations within one to two orders of magnitude. If your traffic doubles every six months, then your load increases an order of magnitude every 18 months. (And sometimes new features or products cause load to increase much more quickly.) The cardinality of supported systems increases over time as you add teams, and as \"trivial\" systems go from unsupported afterthoughts to focal points for entire teams as the systems reach scaling plateaus (things like Apache Kafka, mail delivery, Redis, etc.).",[3246],"Instead of asking the candidate to explain some architecture on the spur of the moment, give them a warning before the interview that you'll ask them to talk about a given topic for 30 minutes, which is a closer approximation of what they'd be doing on the job. Debugging or extending an existing codebase on a laptop (ideally on their laptop). This is much more akin to the day-to-day work of development than writing an algorithm on the board. A great problem can involve algorithmic components without coming across as a pointless algorithmic question. (One company I spoke with had me implement a full-stack auto-suggest feature for a search inbox, which required implementing a prefix tree, but the interviewer avoided framing it as yet another algo question.)",[3248],"Have you ever worked at a company where the same two people always got the most important projects? Me too. It's frustrating to watch these opportunities to learn from the sidelines, and reliance on a small group can easily limit a company's throughput as it grows. This is so important that I’ve come to believe that having a wide cohort of coworkers who lead critical projects is one of the most important signifiers of good organizational health.",{"path":3250,"slug":3251,"title":3252,"author":3253,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3254,"threads":3255,"notes":1089,"passages":3256},"/reading/applied-cryptography","applied-cryptography","Applied Cryptography: Protocols, Algorithms, and Source Code in C","Bruce Schneier",[3196],[1108],[3257],[3258],"There are two kinds of cryptography in this world: cryptography that will stop your kid sister from reading your files, and cryptography that will stop major governments from reading your files. This book is about the latter.",{"path":3260,"slug":3261,"title":3262,"author":3263,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3264,"threads":3265,"notes":1267,"passages":3266},"/reading/becoming","becoming","Becoming","Michelle Obama",[1751,1473],[1264],[],{"path":3268,"slug":3269,"title":3270,"author":2831,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3271,"threads":3274,"notes":1267,"passages":3275},"/reading/braiding-sweetgrass","braiding-sweetgrass","Braiding Sweetgrass: Indigenous Wisdom, Scientific Knowledge, and the Teaching of Plants",[3272,2741,3030,3273],"botany","indegenous wisdom",[1381,1264],[],{"path":3277,"slug":3278,"title":3279,"author":3280,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3281,"threads":3284,"notes":1267,"passages":3285},"/reading/collected-ficciones","collected-ficciones","Collected Fictions","Jorge Luis Borges",[1334,3282,3283],"argentina","complexity",[1136,1122],[],{"path":3287,"slug":3288,"title":3289,"author":3290,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3291,"threads":3293,"notes":1267,"passages":3294},"/reading/computer-networks","computer-networks","Computer Networks, Fifth Edition","Andrew S. Tanenbaum, David J. Wetherall",[3292,1773,1122],"networking",[1122,1108],[],{"path":3296,"slug":3297,"title":3298,"author":3299,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3300,"threads":3302,"notes":1267,"passages":3303},"/reading/death-of-expertise","death-of-expertise","The Death of Expertise: The Campaign Against Established Knowledge and Why it Matters","Tom Nichols",[3301,1474],"education",[1122],[],{"path":3305,"slug":3306,"title":3307,"author":3308,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3309,"threads":3310,"notes":1267,"passages":3311},"/reading/devops-handbook","devops-handbook","The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations","Gene Kim, Patrick DuBois, John Willis, Jez Humble",[2142,1122,1120],[1122],[],{"path":3313,"slug":3314,"title":3315,"author":3316,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3317,"threads":3318,"notes":1089,"passages":3319},"/reading/mans-search-for-meaning","mans-search-for-meaning","Man's Search for Meaning","Victor Frankl",[1473,2815],[1264],[],{"path":3321,"slug":3322,"title":3323,"author":3324,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3325,"threads":3326,"notes":1089,"passages":3327},"/reading/rework","rework","Rework","Jason Fried, David Heinemeier Hansson",[1120,2043],[1122],[3328],[3329],"If you are trying to decide among a few people to fill a position, hire the best writer. It doesn’t matter if that person is a marketer, salesperson, designer, programmer, or whatever; their writing skills will pay off. That’s because being a good writer is about more than writing. Clear writing is a sign of clear thinking. Great writers know how to communicate. They make things easy to understand. They can put themselves in someone else’s shoes. They know what to omit. And those are qualities you want in any candidate.",{"path":3331,"slug":3332,"title":3333,"author":3334,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3335,"threads":3336,"notes":1267,"passages":3337},"/reading/tcp-ip-illustrated","tcp-ip-illustrated","TCP / IP Illustrated, Volume 1: The Protocols","Kevin R. Fall, W. Richard Stevens",[3292,1773,1122],[1122,1108],[],{"path":3339,"slug":3340,"title":3341,"author":3342,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3343,"threads":3345,"notes":1089,"passages":3346},"/reading/the-fellowship-of-the-ring","the-fellowship-of-the-ring","The Fellowship of the Ring","J.R.R. Tolkien",[3344],"epic fantasy",[1136],[3347],[3348],"The prime motive was the desire of a tale-teller to try his hand at a really long story that would hold the attention of readers, amuse them, delight them, and at times maybe excite them or deeply move them. ... I cordially dislike allegory in all its manifestations, and always have done so since I grew old and wary enough to detect its presence. I much prefer history, true or feigned, with its varied applicability to the thought and experience of readers. I think that many confuse 'applicability' with 'allegory'; but the one resides in the freedom of the reader, and the other in the purposed domination of the author.",{"path":3350,"slug":3351,"title":3352,"author":3213,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3353,"threads":3354,"notes":1267,"passages":3355},"/reading/the-laws-of-human-nature","the-laws-of-human-nature","The Laws of Human Nature",[1345,1120],[1172,1122],[],{"path":3357,"slug":3358,"title":3359,"author":3360,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3361,"threads":3362,"notes":1267,"passages":3363},"/reading/the-leaders-guide","the-leaders-guide","The Leader's Guide","Eric Ries",[1120,1122],[1122],[],{"path":3365,"slug":3366,"title":3367,"author":3360,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3368,"threads":3369,"notes":1267,"passages":3370},"/reading/the-lean-startup","the-lean-startup","The Lean Startup",[1120,1122],[1122],[],{"path":3372,"slug":3373,"title":3374,"author":3375,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3376,"threads":3378,"notes":1089,"passages":3379},"/reading/thinking-in-systems","thinking-in-systems","Thinking in Systems: A Primer","Donella H. Meadows",[3377,3283,1122],"systems",[1122],[3380,3382,3384,3386],[3381],"We can, and some of us do, celebrate and encourage self-organization, disorder, variety, and diversity. Some of us even make a moral code of doing so, as Aldo Leopold did with his land ethic: \"A thing is right when it tends o' to preserve the integrity, stability, and beauty of the biotic community. It is wrong when it tends otherwise.\"",[3383],"System structure is the source of system behavior. System behavior reveals itself as a series of events over time.",[3385],"The bounded rationality of each actor in a system may not lead to decisions that further the welfare of the system as a whole.",[3387],"Everything we know about the world is a model",{"path":3389,"slug":3390,"title":3391,"author":3392,"date":1243,"year":1221,"finished":3214,"finishedMonth":1289,"tags":3393,"threads":3395,"notes":1267,"passages":3396},"/reading/turings-cathedral","turings-cathedral","Turing's Cathedral: The Origins of the Digital Universe","George Dyson",[1773,1264,3394],"turing",[1108,1264],[],{"path":3398,"slug":3399,"title":3400,"author":3401,"date":3402,"year":1221,"finished":3403,"finishedMonth":1322,"tags":3404,"threads":3405,"notes":1267,"passages":3406},"/reading/a-farewell-to-arms-unabridged","a-farewell-to-arms-unabridged","A Farewell to Arms","Ernest Hemingway","2019-07-27","July 2019",[1277,1291,1278],[1136],[],{"path":3408,"slug":3409,"title":3410,"author":3411,"date":3412,"year":1221,"finished":3413,"finishedMonth":1366,"tags":3414,"threads":3416,"notes":1267,"passages":3417},"/reading/one-hundred-years-of-solitude","one-hundred-years-of-solitude","One Hundred Years of Solitude","Gabriel Garcia Marquez","2019-06-14","June 2019",[1277,1278,3415],"magical realism",[1136],[],{"path":3419,"slug":3420,"title":3421,"author":3422,"date":3423,"year":1221,"finished":3424,"finishedMonth":1655,"tags":3425,"threads":3426,"notes":1267,"passages":3427},"/reading/company-of-one","company-of-one","Company of One: Why Staying Small Is the Next Big Thing for Business","Paul Jarvis","2019-05-22","May 2019",[2043,2062],[1122],[],{"path":3429,"slug":3430,"title":3431,"author":3432,"date":3433,"year":1221,"finished":3434,"finishedMonth":1431,"tags":3435,"threads":3436,"notes":1267,"passages":3437},"/reading/a-little-life","a-little-life","A Little Life: A Novel","Hanya Yanagihara","2019-04-13","April 2019",[1277,1278],[1136],[],{"path":3439,"slug":3440,"title":3441,"author":3442,"date":3433,"year":1221,"finished":3434,"finishedMonth":1431,"tags":3443,"threads":3444,"notes":1267,"passages":3445},"/reading/hard-boiled-wonderland-and-the-end-of-the-world","hard-boiled-wonderland-and-the-end-of-the-world","Hard-Boiled Wonderland and the End of the World","Haruki Murakami",[1277,1278,1635],[1136],[],{"path":3447,"slug":3448,"title":3449,"author":3450,"date":3451,"year":3452,"finished":3453,"finishedMonth":1668,"tags":3454,"threads":3455,"notes":1267,"passages":3456},"/reading/how-the-internet-happened","how-the-internet-happened","How the Internet Happened","Brian McCullough","2018-12-14","2018","December 2018",[1942,1264,2702],[1122,1108,1264],[],{"path":3458,"slug":3459,"title":3460,"author":3461,"date":3462,"year":3452,"finished":3463,"finishedMonth":1275,"tags":3464,"threads":3466,"notes":1089,"passages":3467},"/reading/my-antonia","my-antonia","My Antonia","Willa Cather","2018-09-20","September 2018",[1291,3465],"nebraska",[1136],[3468,3470],[3469],"This was the road over which Antonia and I came on that night when we got off the train at Black Hawk and were bedded down in the straw, wondering children, being taken we knew not whither. I had only to close my eyes to hear the rumbling of the wagons in the dark, and to be again overcome by that obliterating strangeness. The feelings of that night were so near that I could reach out and touch them with my hand. I had the sense of coming home to myself, and of having found out what a little circle man's experience is. For Antonia and for me, this had been the road of Destiny; had taken us to those early accidents of fortune which predetermined for us all that we can ever be. Now I understood that the same road was to bring us together again. Whatever we had missed, we possessed together the precious, the incommunicable past.'",[3471],"In the course of twenty crowded years one parts with many illusions. I did not wish to lose the early ones. Some memories are realities, and are better than anything that can ever happen to one again. She asked me whether I had learned to like big cities. 'I'd always be miserable in a city. I'd die of lonesomeness. I like to be where I know every stack and tree, and where all the ground is friendly. I want to live and die here. Father Kelly says everybody's put into this world for something, and I know what I've got to do. I'm going to see that my little girl has a better chance than ever I had. I'm going to take care of that girl, Jim.' I told her I knew she would. 'Do you know, Antonia, since I've been away, I think of you more often than of anyone else in this part of the world. I'd have liked to have you for a sweetheart, or a wife, or my mother or my sister—anything that a woman can be to a man. The idea of you is a part of my mind; you influence my likes and dislikes, all my tastes, hundreds of times when I don't realize it. You really are a part of me.' She turned her bright, believing eyes to me, and the tears came up in them slowly, 'How can it be like that, when you know so many people, and when I've disappointed you so? Ain't it wonderful, Jim, how much people can mean to each other? I'm so glad we had each other when we were little. I can't wait till my little girl's old enough to tell her about all the things we used to do. You'll always remember me when you think about old times, won't you? And I guess everybody thinks about old times, even the happiest people.' As we walked homeward across the fields, the sun dropped and lay like a great golden globe in the low west. While it hung there, the moon rose in the east, as big as a cart-wheel, pale silver and streaked with rose colour, thin as a bubble or a ghost-moon. For five, perhaps ten minutes, the two luminaries confronted each other across the level land, resting on opposite edges of the world. In that singular light every little tree and shock of wheat, every sunflower stalk and clump of snow-on-the-mountain, drew itself up high and pointed; the very clods and furrows in the fields seemed to stand up sharply. I felt the old pull of the earth, the solemn magic that comes out of those fields at nightfall. I wished I could be a little boy again, and that my way could end there. We reached the edge of the field, where our ways parted. I took her hands and held them against my breast, feeling once more how strong and warm and good they were, those brown hands, and remembering how many kind things they had done for me. I held them now a long while, over my heart. About us it was growing darker and darker, and I had to look hard to see her face, which I meant always to carry with me; the closest, realest face, under all the shadows of women's faces, at the very bottom of my memory. 'I'll come back,' I said earnestly, through the soft, intrusive darkness. 'Perhaps you will'— I felt rather than saw her smile. 'But even if you don't, you're here, like my father. So I won't be lonesome.' As I went back alone over that familiar road, I could almost believe that a boy and girl ran along beside me, as our shadows used to do, laughing and whispering to each other in the grass.'",{"path":3473,"slug":3474,"title":3475,"author":3476,"date":3477,"year":3452,"finished":3478,"finishedMonth":1366,"tags":3479,"threads":3481,"notes":1089,"passages":3482},"/reading/make-your-own-neural-network","make-your-own-neural-network","Make Your Own Neural Network","Tariq Rashid","2018-06-01","June 2018",[3480],"machine learning",[1108],[],{"path":3484,"slug":1175,"title":3485,"author":3486,"date":3477,"year":3452,"finished":3478,"finishedMonth":1366,"tags":3487,"threads":3488,"notes":1089,"passages":3489},"/reading/simply-wittgenstein","Simply Wittgenstein","James C. Klagge",[1263,1751],[1172,1264],[],{"path":3491,"slug":3492,"title":3493,"author":3494,"date":3477,"year":3452,"finished":3478,"finishedMonth":1366,"tags":3495,"threads":3498,"notes":1089,"passages":3499},"/reading/soul-of-the-white-ant","soul-of-the-white-ant","Soul of the White Ant","Eugène Marais",[3496,3497],"biology","emergent phenomena",[1381,1172],[],{"path":3501,"slug":3502,"title":3503,"author":3504,"date":3505,"year":3506,"finished":3507,"finishedMonth":1554,"tags":3508,"threads":3510,"notes":1267,"passages":3511},"/reading/1984-new-classic-edition-unabridged","1984-new-classic-edition-unabridged","1984","George Orwell","2017-01-26","2017","January 2017",[1277,1278,3509,2978],"dystopia",[1136,1264],[],{"path":3513,"slug":3514,"title":3515,"author":3516,"date":3517,"year":3506,"finished":3507,"finishedMonth":1554,"tags":3518,"threads":3519,"notes":1267,"passages":3520},"/reading/anarchism-and-other-essays-unabridged","anarchism-and-other-essays-unabridged","Anarchism and Other Essays","Emma Goldman","2017-01-19",[2074,2978,1535],[1136,1264],[],{"path":3522,"slug":3523,"title":3524,"author":3525,"date":3526,"year":3506,"finished":3507,"finishedMonth":1554,"tags":3527,"threads":3528,"notes":1267,"passages":3529},"/reading/middlesex","middlesex","Middlesex (Unabridged)","Jeffrey Eugenides","2017-01-16",[1277,1278,1291],[1136],[],1793638581610]