[{"data":1,"prerenderedAt":822},["ShallowReactive",2],{"tags-pages-list-share":3},[4,59,246,357,707,754],{"id":5,"title":6,"body":7,"createdAt":45,"description":46,"draft":47,"extension":48,"image":49,"mastodonThread":49,"meta":50,"navigation":51,"path":52,"seo":53,"stem":13,"tags":54,"updatedAt":57,"__hash__":58},"content\u002Fshares.md","Shares",{"type":8,"value":9,"toc":41},"minimark",[10,14,31,34,38],[11,12,6],"h1",{"id":13},"shares",[15,16,17,18,25,26,30],"p",{},"I use Feedly to subscribe to a bunch of websites and blogs and such. When I see something that is interesting I tag it and bag it. Here is the ",[19,20,24],"a",{"href":21,"rel":22},"https:\u002F\u002Fthelackthereof.org\u002Fshares.rss.xml",[23],"nofollow","raw shares.rss.xml",". I also share thoughts or commentary on ",[19,27,29],{"href":28},"\u002Ftag\u002Fshare","the 'share' tag",".",[32,33],"shares-feed",{},[11,35,37],{"id":36},"tech-note","Tech Note",[15,39,40],{},"Feedly is a bit evil and doesn't give rss feeds for \"boards\" aka tags of my articles. So I bounce it through zapier and then through a nuxt route to get it to the above link. FUN!",{"title":42,"searchDepth":43,"depth":43,"links":44},"",2,[],"2024-07-06","I use Feedly to subscribe to a bunch of websites and blogs and such. When I see something that is interesting I tag it and bag it. Here is the raw shares.rss.xml. I also share thoughts or commentary on the 'share' tag.",false,"md",null,{},true,"\u002Fshares",{"title":6,"description":46},[55,56],"meta","share","2024-08-03","OyzfaeIXQyROqua84tzzguStpYwgRJ_97VsLOyIs4sE",{"id":60,"title":61,"body":62,"createdAt":237,"description":66,"draft":47,"extension":48,"image":73,"mastodonThread":238,"meta":239,"navigation":51,"path":240,"seo":241,"stem":242,"tags":243,"updatedAt":237,"__hash__":245},"content\u002FTLT - 2025.01.31 - Link Roundup (LLM-AI).md","Link Roundup (LLM\u002FAI)",{"type":8,"value":63,"toc":235},[64,67,74,232],[15,65,66],{},"My friend Brad asked about what I've been reading lately in the AI\u002FLLM space to keep up. Here's my link roundup! Things that have been on my rotation lately.",[15,68,69],{},[70,71],"img",{"alt":72,"src":73},"LLM Newspaper Dog Cartoon","img\u002FLLM_Newspaper_Dog_Cartoon.png",[75,76,77,89,99,113,123,133,149,165,192,206,216],"ul",{},[78,79,80,88],"li",{},[81,82,83],"strong",{},[19,84,87],{"href":85,"rel":86},"https:\u002F\u002Fwww.amazon.com\u002Fdp\u002F1098166302",[23],"AI Engineering: Building Applications with Foundation Models",": Great January-2025 catch up on consuming LLM\u002FAI usage in real world applications; enough background to Get It without being distracted by details",[78,90,91,98],{},[81,92,93],{},[19,94,97],{"href":95,"rel":96},"https:\u002F\u002Fsimonwillison.net\u002F",[23],"Simon Willison Website",": Follow for great links and chasing the dragon of new releases and thoughts",[78,100,101,108,109],{},[81,102,103],{},[19,104,107],{"href":105,"rel":106},"https:\u002F\u002Fllm.datasette.io\u002F",[23],"LLM CLI (Datasette)",": From Simon Willison, a very handy CLI tool for interfacing with LLMs. Once set up, I use this as a unixy native tool. Like ... ",[110,111,112],"code",{},"cat some_file.txt | llm -s 'Turn this into a CSV of street, city, state, zip' > data.csv",[78,114,115,122],{},[81,116,117],{},[19,118,121],{"href":119,"rel":120},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FLocalLLaMA\u002F",[23],"\u002Fr\u002FLocalLLaMA",": Reddit community all about running local LLMs; even if you only ever run things on other people's computer (API) it is interesting to know what might be happening on the other side",[78,124,125,132],{},[81,126,127],{},[19,128,131],{"href":129,"rel":130},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FClaudeAI\u002F",[23],"\u002Fr\u002FClaudeAI",": Latest and Greatest with Claude Stuff",[78,134,135,142,143,148],{},[81,136,137],{},[19,138,141],{"href":139,"rel":140},"https:\u002F\u002Fgroq.com\u002F",[23],"Groq",": Hardware accelerated LLM (also see ",[19,144,147],{"href":145,"rel":146},"https:\u002F\u002Fcerebras.ai\u002F",[23],"Cerebras",")",[78,150,151,158,159,164],{},[81,152,153],{},[19,154,157],{"href":155,"rel":156},"https:\u002F\u002Faider.chat\u002F",[23],"Aider",": Open source CLI coding assistant. They've been building up an ",[19,160,163],{"href":161,"rel":162},"https:\u002F\u002Faider.chat\u002Fdocs\u002Fleaderboards\u002F",[23],"Aider LLM Leaderboard"," which is interesting, especially the highlighted polyglot board (one model for architecture plan, another for low-level coding)",[78,166,167,174,175,180,181,185,186,191],{},[81,168,169],{},[19,170,173],{"href":171,"rel":172},"https:\u002F\u002Fsourcegraph.com\u002Fcody",[23],"Sourcegraph Cody",": There are several VSCode-embedded code assistants in this space, Cody is one to keep an eye on. Recently ",[19,176,179],{"href":177,"rel":178},"https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fcopilot\u002Fcopilot-edits",[23],"Copilot Edits"," has stepped up to a similar cross-file assistant too. There are a bunch of others; I'm not really psyched about switching from vim to vscode, and I ",[182,183,184],"em",{},"certainly"," don't want to switch to a proprietary editor, so I haven't spent much time with things like ",[19,187,190],{"href":188,"rel":189},"https:\u002F\u002Fwww.cursor.com\u002F",[23],"Cursor"," (yet)",[78,193,194,201,202,205],{},[81,195,196],{},[19,197,200],{"href":198,"rel":199},"https:\u002F\u002Fwww.youtube.com\u002F@matthew_berman\u002Fvideos",[23],"Matthew Berman (YouTube)",": He does videos with some demos and commentary that is pretty fun; I may not always agree, but even knowing what the latest ",[182,203,204],{},"topics"," are is very helpful!",[78,207,208,215],{},[81,209,210],{},[19,211,214],{"href":212,"rel":213},"https:\u002F\u002Fchangelog.com\u002Fpracticalai",[23],"Practical AI Podcast",": I listen to podcasts when I commute or go for longer drives, which isn't often but often enough that I've listened to some good episodes both here and on other ChangeLogs.",[78,217,218,225,226,231],{},[81,219,220],{},[19,221,224],{"href":222,"rel":223},"https:\u002F\u002Fwww.latent.space\u002Fpodcast",[23],"Latent Space: The AI Engineer Podcast",": I've only listened to a few of these, but it is on top of my feed list in ",[19,227,230],{"href":228,"rel":229},"https:\u002F\u002Fantennapod.org\u002F",[23],"AntennaPod"," currently",[15,233,234],{},"... I think that'll do for now!",{"title":42,"searchDepth":43,"depth":43,"links":236},[],"2025-01-31","https:\u002F\u002Fmastodon.social\u002F@awwaiid\u002F113928577927928238",{},"\u002Ftlt-2025.01.31-link-roundup-(llm-ai)",{"title":61,"description":66},"TLT - 2025.01.31 - Link Roundup (LLM-AI)",[244,56],"blog","-xVWZ-BRMop2ee0RMuWeZXqIXg2FZdpv3gwiZUaOW-s",{"id":247,"title":248,"body":249,"createdAt":348,"description":349,"draft":47,"extension":48,"image":322,"mastodonThread":49,"meta":350,"navigation":51,"path":351,"seo":352,"stem":353,"tags":354,"updatedAt":348,"__hash__":356},"content\u002FTLT - 2024.03.28 - Notes From Peter Kriens Video.md","Notes From Peter Kriens Video",{"type":8,"value":250,"toc":344},[251,259,264,272,275,288,291,296,299,310,317,323,326,329,333],[15,252,253,254],{},"Some notes and thoughts on Peter Kriens' video, as ",[19,255,258],{"href":256,"rel":257},"https:\u002F\u002Falloytools.discourse.group\u002Ft\u002Fthe-use-of-alloy-and-llms\u002F449\u002F2",[23],"posted on the Alloy Discourse",[260,261,263],"h2",{"id":262},"notes-and-quotes","Notes and Quotes",[15,265,266,267],{},"Video: ",[19,268,271],{"href":269,"rel":270},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_j3SdIGqYG8",[23],"Peter Kriens - Thoughts on Alloy, Formal Models, and Software Engineering (youtube)",[15,273,274],{},"In this talk, Kriens talks about the practicalities of formal modeling, highlights flaws in a focus on correctness, and advocates for models as a way to elucidate our thinking about a problem or system.",[276,277,278],"blockquote",{},[15,279,280,284,287],{},[70,281],{"alt":282,"src":283},"Peter Kriens - Programmer In The Loop","img\u002FPeter_Kriens_-_Programmer_In_The_Loop.png",[285,286],"br",{},"\n\"Although I really enjoy Alloy, there is a wide gap between formal languages and implementation languages and there seems to be no bridge in sight\"",[15,289,290],{},"Kriens says he often finds himself using Alloy or other tools to initially explore a problem, get a rough model set up to explore the space, and then abandon it quickly and moving to implementation. The \"prose\" of the initial problem has to be processed by a programmer to get to the implementation, rather than using the formal model further down the development lifecycle.",[276,292,293],{},[15,294,295],{},"\"Once we have an implementation, although there have been attempts, as far as I can see that is a long way to go before we can automatically create test from a model\"",[15,297,298],{},"OK interesting. Challenge accepted.",[276,300,301],{},[15,302,303,307,309],{},[70,304],{"alt":305,"src":306},"Peter Kriens - Prose to Implementation","img\u002FPeter_Kriens_-_Prose_to_Implementation.png",[285,308],{},"\n\"Prose is also not digestable by our computers. Although AI made impressive progress in pattern recognition, understanding prose is as far off as it was in the 1960's, almost 60 years ago. The developers must interpret the prose and translate their understanding to the proper use of the API. The computer is too stupid to provide any help here, except for the formatting maybe.\"",[15,311,312,313,316],{},"This talk was from 2020 .... oh how the world has changed in four short years! We now have Large Language Models which can do some ",[182,314,315],{},"impressive"," understanding of prose.",[15,318,319],{},[70,320],{"alt":321,"src":322},"Peter_Kriens_-_Model_as_Elucidation","img\u002FPeter_Kriens_-_Model_as_Elucidation.png",[15,324,325],{},"Krien goes on to explore the idea of taking our high-level prose of a problem, the sort of things that we might leave in comments in our code, and replacing it with a very usable version of a formal model to serve as an \"Oracle\", a probe-able system to ask questions about the specification while building and maintaining the implementation. It could also generate verified test cases and mocks, and generally could provide inconsistencies and validate guarantees in an ongoing way.",[15,327,328],{},"Kriens did some experiments with DSL or other tooling to generate target system tests and such. He explored using reflection in the Java type system for expanding\u002Fannotating alloy and using it to generate Java. He also highlights some specific data structures and how they'd map from an imagined Alloy++ onto Java objects.",[260,330,332],{"id":331},"ideas","Ideas",[75,334,335,338,341],{},[78,336,337],{},"Build some re-usable alloy for common scripting language data structures -- scalar, array, hash",[78,339,340],{},"Any value in generic \"object\" as a thing with instances, methods?",[78,342,343],{},"Use Alloy as a straight up way to generate mock data; a deeper version or an enhancement or layer on top of FactoryBot",{"title":42,"searchDepth":43,"depth":43,"links":345},[346,347],{"id":262,"depth":43,"text":263},{"id":331,"depth":43,"text":332},"2024-03-28","Some notes and thoughts on Peter Kriens' video, as posted on the Alloy Discourse",{},"\u002Ftlt-2024.03.28-notes-from-peter-kriens-video",{"title":248,"description":349},"TLT - 2024.03.28 - Notes From Peter Kriens Video",[244,355,56],"recurse-center","e4W0L9cl6xIwjUfmhV_jcLSCHQZiRxPCKDWYlbjSxWw",{"id":358,"title":359,"body":360,"createdAt":697,"description":364,"draft":47,"extension":48,"image":698,"mastodonThread":699,"meta":700,"navigation":51,"path":701,"seo":702,"stem":703,"tags":704,"updatedAt":705,"__hash__":706},"content\u002FTLT - 2023.04.22 - Chokepoints.md","Chokepoints",{"type":8,"value":361,"toc":695},[362,365,374,389,392,395,398,632,635,638,647,650,665,672,675,678,681,688,691],[15,363,364],{},"Notes from the Changelog interview with Cory Doctorow on Chokepoint Capitalism",[15,366,367,370,371],{},[70,368],{"src":369},"\u002Fimg\u002Frobot_lemonade_stand.jpg"," ",[182,372,373],{},"Lemonade stand operated (or perhaps supervised?) by a robot. Image by Bing Image Creator.",[15,375,376,377,382,383,388],{},"While driving to and waiting for Millie (the car) to get maintenanced, I listened to ",[19,378,381],{"href":379,"rel":380},"https:\u002F\u002Fchangelog.com\u002Fpodcast\u002F535",[23],"Examining capitalism's chokepoints",", an interview with Cory Doctorow discussing his book ",[19,384,387],{"href":385,"rel":386},"https:\u002F\u002Fcraphound.com\u002Fcategory\u002Fchokepoint\u002F",[23],"Chokepoint Capitalism",". This touched on all sorts of things, but right up at the front was an off-topic question - How is Cory so prolific?",[15,390,391],{},"Among some other things, Cory suggested that ... well, that practice makes perfect. And that instead of just copy\u002Fpasting a link into slack like I usually do, I should write up some notes trying to capture, for other people, what I found interesting or special about the link. So yeah. Good idea. Let's do that.",[15,393,394],{},"Problem: I don't really have or want \"blog\" software. I ran my site as a publicly-editable wiki for like 20 years. It is now a nuxt-content-driven static site, basically. Super easy to open a file in vim and edit more-or-less markdown. But do I do that? No, not really. So of course, then I'm like ... if only I could run a command to pop open my editor and start writing writing writing away. Great!",[15,396,397],{},"Turns out I already did that, made a horrid little shell script that goes like this:",[399,400,404],"pre",{"className":401,"code":402,"language":403,"meta":42,"style":42},"language-sh shiki shiki-themes github-light github-dark monokai","#!\u002Fbin\u002Fbash\n\nset +x\n\nFILE_DATE=`date '+%Y.%m.%d'`\nTEMPLATE_DATE=`date '+%Y-%m-%d'`\n\nTITLE=${*:-Untitled}\nNEWFILE=\"TLT - $FILE_DATE - $TITLE.md\"\n\necho \"Creating: $NEWFILE\"\n\ncd ~\u002Ftlt\u002Fthelackthereof\u002Fcontent\ncp -n \"Blog Template TLT - 2023.01.01 - Blog Template.md\" \"$NEWFILE\"\nperl -pi -e \"s\u002FTEMPLATE_TITLE\u002F$TITLE\u002F\" \"$NEWFILE\"\nperl -pi -e \"s\u002FTEMPLATE_DATE\u002F$TEMPLATE_DATE\u002F\" \"$NEWFILE\"\nvim \"$NEWFILE\"\n","sh",[110,405,406,415,420,431,436,457,472,477,494,517,522,537,542,551,571,597,620],{"__ignoreMap":42},[407,408,411],"span",{"class":409,"line":410},"line",1,[407,412,414],{"class":413},"s8-w5","#!\u002Fbin\u002Fbash\n",[407,416,417],{"class":409,"line":43},[407,418,419],{"emptyLinePlaceholder":51},"\n",[407,421,423,427],{"class":409,"line":422},3,[407,424,426],{"class":425},"sTrkL","set",[407,428,430],{"class":429},"sstjo"," +x\n",[407,432,434],{"class":409,"line":433},4,[407,435,419],{"emptyLinePlaceholder":51},[407,437,439,443,447,450,454],{"class":409,"line":438},5,[407,440,442],{"class":441},"sMOD_","FILE_DATE",[407,444,446],{"class":445},"sC2Qs","=",[407,448,449],{"class":429},"`",[407,451,453],{"class":452},"srTi1","date",[407,455,456],{"class":429}," '+%Y.%m.%d'`\n",[407,458,460,463,465,467,469],{"class":409,"line":459},6,[407,461,462],{"class":441},"TEMPLATE_DATE",[407,464,446],{"class":445},[407,466,449],{"class":429},[407,468,453],{"class":452},[407,470,471],{"class":429}," '+%Y-%m-%d'`\n",[407,473,475],{"class":409,"line":474},7,[407,476,419],{"emptyLinePlaceholder":51},[407,478,480,483,485,488,491],{"class":409,"line":479},8,[407,481,482],{"class":441},"TITLE",[407,484,446],{"class":445},[407,486,487],{"class":441},"${",[407,489,490],{"class":445},"*:-",[407,492,493],{"class":441},"Untitled}\n",[407,495,497,500,502,505,508,511,514],{"class":409,"line":496},9,[407,498,499],{"class":441},"NEWFILE",[407,501,446],{"class":445},[407,503,504],{"class":429},"\"TLT - ",[407,506,507],{"class":441},"$FILE_DATE",[407,509,510],{"class":429}," - ",[407,512,513],{"class":441},"$TITLE",[407,515,516],{"class":429},".md\"\n",[407,518,520],{"class":409,"line":519},10,[407,521,419],{"emptyLinePlaceholder":51},[407,523,525,528,531,534],{"class":409,"line":524},11,[407,526,527],{"class":425},"echo",[407,529,530],{"class":429}," \"Creating: ",[407,532,533],{"class":441},"$NEWFILE",[407,535,536],{"class":429},"\"\n",[407,538,540],{"class":409,"line":539},12,[407,541,419],{"emptyLinePlaceholder":51},[407,543,545,548],{"class":409,"line":544},13,[407,546,547],{"class":425},"cd",[407,549,550],{"class":429}," ~\u002Ftlt\u002Fthelackthereof\u002Fcontent\n",[407,552,554,557,561,564,567,569],{"class":409,"line":553},14,[407,555,556],{"class":452},"cp",[407,558,560],{"class":559},"s7F3e"," -n",[407,562,563],{"class":429}," \"Blog Template TLT - 2023.01.01 - Blog Template.md\"",[407,565,566],{"class":429}," \"",[407,568,533],{"class":441},[407,570,536],{"class":429},[407,572,574,577,580,583,586,588,591,593,595],{"class":409,"line":573},15,[407,575,576],{"class":452},"perl",[407,578,579],{"class":559}," -pi",[407,581,582],{"class":559}," -e",[407,584,585],{"class":429}," \"s\u002FTEMPLATE_TITLE\u002F",[407,587,513],{"class":441},[407,589,590],{"class":429},"\u002F\"",[407,592,566],{"class":429},[407,594,533],{"class":441},[407,596,536],{"class":429},[407,598,600,602,604,606,609,612,614,616,618],{"class":409,"line":599},16,[407,601,576],{"class":452},[407,603,579],{"class":559},[407,605,582],{"class":559},[407,607,608],{"class":429}," \"s\u002FTEMPLATE_DATE\u002F",[407,610,611],{"class":441},"$TEMPLATE_DATE",[407,613,590],{"class":429},[407,615,566],{"class":429},[407,617,533],{"class":441},[407,619,536],{"class":429},[407,621,623,626,628,630],{"class":409,"line":622},17,[407,624,625],{"class":452},"vim",[407,627,566],{"class":429},[407,629,533],{"class":441},[407,631,536],{"class":429},[15,633,634],{},"But now, if I'm thinking of Cory's advice, I might actually be juggling several drafts or jotting down some partial thoughts. Next thing you know, I'm trying to write a CLI in Typescript (for reasons) and .... not writing a blog post. As my niece says, The Struggle Is Real!!!",[15,636,637],{},"Anyway. Where was I? Oh, capitalism.",[15,639,640,641,646],{},"I've been playing with ",[19,642,645],{"href":643,"rel":644},"https:\u002F\u002Fopenai.com\u002Fblog\u002Fchatgpt",[23],"ChatGPT"," a lot and even set myself up with the paid version to experiment with GPT-4. It's a fascinating tool and intriguing to explore. I find that to get interesting or useful things out of it, I must change what I feed in. It's not quite like a Markov chain bot or an Alexa Q&A; it's more like a brainstorming tool that has been fed The Internet. Right off the bat, I can't really expect answers that The Internet doesn't know, especially technical ones. If there's no hint of an answer on Stack Overflow, it's probably not going to come up with one here. Next, you have to feed it with some context. If you approached someone in a café and asked them to give you an itinerary for a vacation you're going on, they could do it, but they'd do a poor job if you didn't give them some information about your tastes and goals.",[15,648,649],{},"A significant part of this is exploring the question for myself - now what? What comes next? What do we do with this? How will it change things?",[15,651,652,653,658,659,664],{},"Many of my friends, acquaintances, and connections on ",[19,654,657],{"href":655,"rel":656},"https:\u002F\u002Fmastodon.social\u002F@awwaiid",[23],"Mastodon"," and elsewhere discuss how these Large Language Models (LLMs) are violating their creative and copyright rights by slurping it all in, mashing it all up, and spitting it all out (sometimes without much mashing) without citing their original work. Some of these same friends think that ",[19,660,663],{"href":661,"rel":662},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAaron_Swartz",[23],"Aaron Swartz"," was over-prosecuted for exfiltrating JSTOR science articles. My sympathies are mixed here. I want people to be compensated for their labor and creativity, and I want information to be free, and I don't want monopolistic middlemen to leverage an advantage in the middle without adding value. I personally publish most things under a license that explicitly or implicitly allows my content to be republished, remixed, etc., ideally with a citation. But I'd be happy with being cited as being an incorporated part of every output. I think the LLM publishers should say, \"Here is the dataset that we trained on and every contribution to it.\" And then I'd even be proud to be part of it.",[15,666,667,668,671],{},"The podcast. Remember the podcast? The podcast delves into what happens when humans are not only augmented by machines, LLMs among them, but also ",[182,669,670],{},"controlled"," by the machines. Cory calls this the Reverse-Centaur. Furthermore, what happens when the economic system is further twisted to where you are stuck in this situation, controlled by monopolistic, possibly non-value-adding middle players? This he calls Chickenized Reverse-Centaurs. They break down in some detail what this currently means, and it is scary. I have to remember how fortunate I am, celebrate it, and see if I can help others obtain some control over their lives as well.",[15,673,674],{},"Still, the Centaur concept is powerful. Tools can help us do things faster and better. Having the right tool for something can change a project from hours to minutes. I'd like to know how LLMs can accelerate us, and selfishly me, in day-to-day life.",[15,676,677],{},"I sometimes discuss global warming with my father-in-law. He thinks it's a scam on many levels. I generally take the mainstream view that we should probably be more scared than we are, although I also believe that we should accept the fact that the Earth is increasingly becoming a garden, and we need to make it an awesome one. Anyway, he sends me some lengthy and somewhat complicated videos on climate science and alternative models. YouTube has transcripts. I could feed the transcript to ChatGPT and have it give me a summary and critique some of the points.",[15,679,680],{},"But can I trust it?",[15,682,683,684,687],{},"One of the differences between modern Capitalism and Ideal Capitalism is that Ideal Capitalism is founded on the idea of information transparency. Efficiency in a market is all about setting the right price based on all the correct factors, as I understand it. So what happens when we don't know the real cost of something, like global warming? The price is too low. But what happens when we have the ",[182,685,686],{},"wrong"," information, when things we think are true are actually bad summaries from an LLM that have added a bit of false detail for fluidity? When humans do that on purpose, it is fraud, corruption, embezzlement, and scams. Will LLMs and similar technology accidentally amplify that, making markets even less efficient? Not to mention that efficient and humane are not the same thing. Ahhhhhhh.",[15,689,690],{},"So many things.",[692,693,694],"style",{},"html pre.shiki code .s8-w5, html code.shiki .s8-w5{--shiki-default:#6A737D;--shiki-dark:#6A737D;--shiki-sepia:#88846F}html pre.shiki code .sTrkL, html code.shiki .sTrkL{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .srTi1, html code.shiki .srTi1{--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":42,"searchDepth":43,"depth":43,"links":696},[],"2023-04-22","img\u002Frobot_lemonade_stand.jpg","https:\u002F\u002Fmastodon.social\u002F@awwaiid\u002F110243919367988037",{},"\u002Ftlt-2023.04.22-chokepoints",{"title":359,"description":364},"TLT - 2023.04.22 - Chokepoints",[244,56],"2023-04-23","_8EI6mvTzZt9I0_xrgZxLMmg6HuwoHhgoiRlJT91ruo",{"id":708,"title":709,"body":710,"createdAt":747,"description":714,"draft":47,"extension":48,"image":49,"mastodonThread":49,"meta":748,"navigation":51,"path":749,"seo":750,"stem":751,"tags":752,"updatedAt":747,"__hash__":753},"content\u002FTLT - 2020.01.20 - Link Roundup.md","TLT_-_2020.01.20_-_Link_Roundup",{"type":8,"value":711,"toc":745},[712,715],[15,713,714],{},"Cool things I saw on the internet at some point:",[75,716,717,724,731,738],{},[78,718,719],{},[19,720,723],{"href":721,"rel":722},"https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fperformance\u002Frail",[23],"Google model for (web) performance measurement, RAIL",[78,725,726],{},[19,727,730],{"href":728,"rel":729},"https:\u002F\u002Fquartzy.qz.com\u002F1332213\u002Fmillennial-reading-habits-have-changed-the-definition-of-a-classic\u002F",[23],"Millennial Reading Habits",[78,732,733],{},[19,734,737],{"href":735,"rel":736},"https:\u002F\u002Ffo.am\u002Factivities\u002Fmidimutant\u002F",[23],"midimutant, a neat use of Genetic Algorithm to train a synthesizer",[78,739,740],{},[19,741,744],{"href":742,"rel":743},"https:\u002F\u002Fwww.johannes-bauer.com\u002Fcompsci\u002Fecc\u002F",[23],"Crash course on Elliptic Curve Cryptography",{"title":42,"searchDepth":43,"depth":43,"links":746},[],"2020-01-20T14:30-05:00",{},"\u002Ftlt-2020.01.20-link-roundup",{"title":709,"description":714},"TLT - 2020.01.20 - Link Roundup",[244,56],"bcL8OLbmnzknP9PvPfJc5Fr_ewo29IraAPkvj2DDuwQ",{"id":755,"title":756,"body":757,"createdAt":814,"description":42,"draft":47,"extension":48,"image":49,"mastodonThread":49,"meta":815,"navigation":51,"path":816,"seo":817,"stem":818,"tags":819,"updatedAt":820,"__hash__":821},"content\u002FTLT - 2018.07.23 - Link Roundup.md","TLT_-_2018.07.23_-_Link_Roundup",{"type":8,"value":758,"toc":812},[759],[75,760,761,779,791],{},[78,762,763,768],{},[19,764,767],{"href":765,"rel":766},"https:\u002F\u002Fwww.theatlantic.com\u002Fmagazine\u002Farchive\u002F2008\u002F07\u002Fis-google-making-us-stupid\u002F306868\u002F?single_page=true",[23],"Is Google Making Us Stupid?",[75,769,770,773,776],{},[78,771,772],{},"I have a big stack of books that I've made ... fairly little progress on",[78,774,775],{},"Maybe the internet is eating my brain!",[78,777,778],{},"So now I will post links and bullets",[78,780,781,786],{},[19,782,785],{"href":783,"rel":784},"http:\u002F\u002Fblog.plover.com\u002Fmath\u002Ftelugu.html",[23],"Base-4 fractions in Telugu",[75,787,788],{},[78,789,790],{},"Interesting explanation of the traditional Telugu fraction numbering. Also draws comparison to the traditional English measures",[78,792,793,798],{},[19,794,797],{"href":795,"rel":796},"http:\u002F\u002Fblog.plover.com\u002Fprog\u002Fgit-remote-branches.html",[23],"Git remote branches and Git's missing terminology",[75,799,800,803],{},[78,801,802],{},"Presents a better understanding of git remote branches, highlighting that to really comprehend what's going on you must acknowledge the implicit local branch that is your cache of the upstream (such as origin\u002Fmaster)",[78,804,805,806,811],{},"I'm a little worried that I'm going to end up linking half of MJD's blog posts. Oh well, they are great. Example, ",[19,807,810],{"href":808,"rel":809},"http:\u002F\u002Fblog.plover.com\u002FUnix\u002Fdev-null.html",[23],"\u002Fdev\u002Fnull Follies"," has a hilarious nerdy punchline.",{"title":42,"searchDepth":43,"depth":43,"links":813},[],"2018-07-23T00:59-04:00",{},"\u002Ftlt-2018.07.23-link-roundup",{"title":756,"description":42},"TLT - 2018.07.23 - Link Roundup",[244,56],"2018-07-23T01:03-04:00","yZwZ_Y6JSj5GthiA58bfniBVTLWP-waYBgVxkQBypPc",1778988316016]