diff --git a/content/bookmarks/-playing-chess-in-postscript.md b/content/bookmarks/-playing-chess-in-postscript.md index 2b2c1bf0..f29fffc7 100644 --- a/content/bookmarks/-playing-chess-in-postscript.md +++ b/content/bookmarks/-playing-chess-in-postscript.md @@ -9,14 +9,14 @@ references: type: entry name: A Chess Engine in PostScript summary: Here is a quick overview about the making and inner working of PSChess. +summary: 'A curious person implements a chess program in an unlikely place: on your + printer.' tags: - creativity - curious - tech - why-not --- -A curious person implements a chess program in an unlikely place: on your printer. - I’m always slightly blown away by people who build something because they want to explore and “why not”, rather than for any particular utility. This project is no exception! It’s been a while since I files this link away for future me to read, and I now conveniently have a printer to be able to try it on, so I’ll definitely be reading the follow up post and trying it out if I can! diff --git a/content/bookmarks/adventures-raising-the-next-generation.md b/content/bookmarks/adventures-raising-the-next-generation.md index f9f7d671..dc07ae50 100644 --- a/content/bookmarks/adventures-raising-the-next-generation.md +++ b/content/bookmarks/adventures-raising-the-next-generation.md @@ -13,6 +13,8 @@ references: summary: It has been some time since I posted on this blog.  Writing posts that are good enough for me to consider posting takes a reasonable amount of effort, and since my last post I embarked upon a … +summary: What a wonderful read! I’m not a parent (yet?) but I found myself eagerly + reading every section here, despite this article’s length! tags: - parenthood --- diff --git a/content/bookmarks/boundary-issues.md b/content/bookmarks/boundary-issues.md index 57780375..6bee26ae 100644 --- a/content/bookmarks/boundary-issues.md +++ b/content/bookmarks/boundary-issues.md @@ -12,6 +12,7 @@ references: summary: How boundaries became the rules for mental health—and explain everything Lily Scherlis author: Lily Scherlis +summary: How boundaries became the rules for mental health—and explain everything --- An extremely interesting article that helped me realise how different my definition of what “boundaries” are seems to differ from what contemporary usage is! diff --git a/content/bookmarks/bullshit-not-hallucination.md b/content/bookmarks/bullshit-not-hallucination.md index e2874311..b5c3fbb9 100644 --- a/content/bookmarks/bullshit-not-hallucination.md +++ b/content/bookmarks/bullshit-not-hallucination.md @@ -13,6 +13,8 @@ references: interest in large language models: machine learning systems which produce human-like text and dialogue. Applications of...' author: Slater, Joe +summary: A well reasoned paper on why AI-generated falsehoods should be called bullshit, + not hallucinations. tags: - AI - Philosophy diff --git a/content/bookmarks/cultivating-new-ideas.md b/content/bookmarks/cultivating-new-ideas.md index f9ba6ffc..8ad331d8 100644 --- a/content/bookmarks/cultivating-new-ideas.md +++ b/content/bookmarks/cultivating-new-ideas.md @@ -12,6 +12,7 @@ references: summary: Solitude, creativity, Bergman, Grothendieck, and the pursuit of great ideas. author: Henrik Karlsson, Johanna Wiberg +summary: Solitude, creativity, Bergman, Grothendieck, and the pursuit of great ideas. tags: - creativity - self-help diff --git a/content/bookmarks/fancy-math-doesn-t-make-simple-math-stop-being-true.md b/content/bookmarks/fancy-math-doesn-t-make-simple-math-stop-being-true.md index 5855cb7f..810bc83e 100644 --- a/content/bookmarks/fancy-math-doesn-t-make-simple-math-stop-being-true.md +++ b/content/bookmarks/fancy-math-doesn-t-make-simple-math-stop-being-true.md @@ -11,6 +11,7 @@ references: name: Fancy math doesn't make simple math stop being true summary: on butts and instrumental variables author: dynomight +summary: on butts and instrumental variables tags: - measurement --- diff --git a/content/bookmarks/google-as-the-commoditiser-of-the-early-web.md b/content/bookmarks/google-as-the-commoditiser-of-the-early-web.md index a5f059ee..4e327806 100644 --- a/content/bookmarks/google-as-the-commoditiser-of-the-early-web.md +++ b/content/bookmarks/google-as-the-commoditiser-of-the-early-web.md @@ -10,6 +10,8 @@ references: type: entry name: Google shattered human connection summary: Open Source Freelancer +summary: An interesting take on why the internet can feel soulless, and some implied + ways to counter that. tags: - tech --- diff --git a/content/bookmarks/i-don-t-want-to-host-services-but-i-do-.md b/content/bookmarks/i-don-t-want-to-host-services-but-i-do-.md index 184dbd26..96338f3e 100644 --- a/content/bookmarks/i-don-t-want-to-host-services-but-i-do-.md +++ b/content/bookmarks/i-don-t-want-to-host-services-but-i-do-.md @@ -13,6 +13,8 @@ references: shouldn’t host services for others. Yet, I am self-hosting services and I even teach people how to do it.' author: Thibault Martin +summary: A concise and smart article talking to those of us interested in offering + hobby networked services to others. tags: - homelab - tech diff --git a/content/bookmarks/in-defense-of-myers-briggs.md b/content/bookmarks/in-defense-of-myers-briggs.md index 90638505..971af62a 100644 --- a/content/bookmarks/in-defense-of-myers-briggs.md +++ b/content/bookmarks/in-defense-of-myers-briggs.md @@ -12,6 +12,8 @@ references: summary: examines claims that the big five personality traits is more scientifically valid than the myers briggs personality indicator author: dynomight +summary: examines claims that the big five personality traits is more scientifically + valid than the myers briggs personality indicator --- I fit the eNxP model by this article's assertions, and it feels representative enough to be useful. I like the idea of these tools to label & understand yourself _particularly_ because you can figure out where you _don't_ fit the model/where the label _isn't_ useful. diff --git a/content/bookmarks/it-s-humans-all-the-way-down.md b/content/bookmarks/it-s-humans-all-the-way-down.md index 1bdf8b82..bf268ab0 100644 --- a/content/bookmarks/it-s-humans-all-the-way-down.md +++ b/content/bookmarks/it-s-humans-all-the-way-down.md @@ -12,6 +12,8 @@ references: summary: Writing about the big beautiful mess that is making things for the world wide web. author: Jim Nielsen +summary: Writing about the big beautiful mess that is making things for the world + wide web. tags: - AI --- diff --git a/content/bookmarks/limits-to-economic-growth.md b/content/bookmarks/limits-to-economic-growth.md index a546ecfd..4df72541 100644 --- a/content/bookmarks/limits-to-economic-growth.md +++ b/content/bookmarks/limits-to-economic-growth.md @@ -10,6 +10,8 @@ references: name: Limits to economic growth summary: Nature Physics, doi:10.1038/s41567-022-01652-6 author: Thomas W. Murphy +summary: A fascinating (and relatively short) read on why economic growth has multiple + factors limiting it entire before the end of the century. tags: - economics - learn diff --git a/content/bookmarks/moneylike.md b/content/bookmarks/moneylike.md index 25f2c877..d2444e43 100644 --- a/content/bookmarks/moneylike.md +++ b/content/bookmarks/moneylike.md @@ -12,12 +12,12 @@ references: summary: The magazine of the science fiction, fantasy, and horror field with news, reviews, and author interviews author: locusmag +summary: Cory Doctorow describes why money feels so _necessary_, and why cryptocurrencies + don’t. tags: - economics - politics --- -Cory Doctorow describes why money feels so _necessary_, and why cryptocurrencies don’t. - A very interesting read indeed! I’ve not looked into the origins of money before, but Cory’s explanation of the ideas behind _Debt: The First 5,000 Years_ is extremely thought provoking. It certainly explains why money can feel so… oppressive. ### Highlights diff --git a/content/bookmarks/neologisms.md b/content/bookmarks/neologisms.md index 89d61685..9082c72b 100644 --- a/content/bookmarks/neologisms.md +++ b/content/bookmarks/neologisms.md @@ -9,6 +9,8 @@ references: type: entry name: Neologisms summary: A collection of interesting words that have recently been coined +summary: I love creating or finding words for niche (or expanding) concepts and areas. + These highlighted ones are particularly great! tags: - words --- diff --git a/content/bookmarks/okay-color-spaces.md b/content/bookmarks/okay-color-spaces.md index e914c01c..68849206 100644 --- a/content/bookmarks/okay-color-spaces.md +++ b/content/bookmarks/okay-color-spaces.md @@ -11,6 +11,7 @@ references: name: Okay, Color Spaces summary: What is a “color space?” author: Eric Portis +summary: An excellent explanation of colourspaces and their uses today. tags: - color --- diff --git a/content/bookmarks/ongoing-by-tim-bray-osqi.md b/content/bookmarks/ongoing-by-tim-bray-osqi.md index 497fc07e..eed36c3e 100644 --- a/content/bookmarks/ongoing-by-tim-bray-osqi.md +++ b/content/bookmarks/ongoing-by-tim-bray-osqi.md @@ -14,6 +14,8 @@ references: employs software engineers. Its mission would be to improve the quality, and especially safety, of popular Open-Source software. author: Tim Bray +summary: This is an inspiring (and well thought through) approach to a problem on + a lot of folks’ minds after the XZ attack. tags: - tech --- diff --git a/content/bookmarks/shaping-the-future.md b/content/bookmarks/shaping-the-future.md index 5d63f1b1..6de84847 100644 --- a/content/bookmarks/shaping-the-future.md +++ b/content/bookmarks/shaping-the-future.md @@ -15,6 +15,8 @@ references: side effects of some technologies that you're probably already becoming familiar with. Note that this is a long blog entry — even by my verbose standards — so you'll need to hit on the "continue reading" link to see the whole thing.) +summary: What does the future of technology hold, to a predictive thinker in the year + 2007? --- What does the future of technology hold, to a predictive thinker in the year 2007? diff --git a/content/bookmarks/slop-is-the-new-name-for-unwanted-ai-generated-content.md b/content/bookmarks/slop-is-the-new-name-for-unwanted-ai-generated-content.md index c10f7a10..2adedfc8 100644 --- a/content/bookmarks/slop-is-the-new-name-for-unwanted-ai-generated-content.md +++ b/content/bookmarks/slop-is-the-new-name-for-unwanted-ai-generated-content.md @@ -11,6 +11,8 @@ references: summary: 'I saw this tweet yesterday from @deepfates, and I am very on board with this: Watching in real time as “slop” becomes a term of art. the way that “spam” …' +summary: I will be using this word from here on! Unreviewed AI-generated drivel is + now “slop”. tags: - AI - words diff --git a/content/bookmarks/some-asshole-is-signing-your-name-to-stupid-letters.md b/content/bookmarks/some-asshole-is-signing-your-name-to-stupid-letters.md index 3ece5ff3..f9daedd8 100644 --- a/content/bookmarks/some-asshole-is-signing-your-name-to-stupid-letters.md +++ b/content/bookmarks/some-asshole-is-signing-your-name-to-stupid-letters.md @@ -11,6 +11,8 @@ references: name: Some asshole is signing your name to stupid letters summary: A legal letter of note author: Shaun Usher +summary: I love this approach to replying to someone whose message you’d rather not + handle directly! tags: - comedy - communication diff --git a/content/bookmarks/the-home-as-a-place-of-production.md b/content/bookmarks/the-home-as-a-place-of-production.md index c556dc33..264faf2d 100644 --- a/content/bookmarks/the-home-as-a-place-of-production.md +++ b/content/bookmarks/the-home-as-a-place-of-production.md @@ -11,6 +11,7 @@ references: name: The home as a place of production summary: Diverse work and the joy of making author: Karen Rosenkranz +summary: Diverse work and the joy of making --- Bringing more creation into our homes as a way to feel connected to our surroundings and communities. I couldn't appreciate this article more! diff --git a/content/bookmarks/the-tilted-political-compass.md b/content/bookmarks/the-tilted-political-compass.md index 699aa306..5b205f85 100644 --- a/content/bookmarks/the-tilted-political-compass.md +++ b/content/bookmarks/the-tilted-political-compass.md @@ -12,6 +12,8 @@ references: summary: I'm not a fan of the popular Political Compass. Here I explain why, list what makes a good 2-by-2 and rederive the meaning of the political left and right. Read more (10 min, 3300 words). +summary: I _really_ like the framing of this political compass & how it provides more + insight into where people exist on it. --- I _really_ like the framing of this political compass & how it provides more insight into where people exist on it. diff --git a/content/bookmarks/the-tyrany-of-obviousness.md b/content/bookmarks/the-tyrany-of-obviousness.md index 4d8828dd..1837079c 100644 --- a/content/bookmarks/the-tyrany-of-obviousness.md +++ b/content/bookmarks/the-tyrany-of-obviousness.md @@ -11,6 +11,7 @@ references: name: Breaking the Tyranny of Obviousness summary: We are stuck in a hell of frictionlessness. author: P.E. Moskowitz +summary: A superb read, especially for me as I look for more depth in life. tags: - Miriscient - curious diff --git a/content/bookmarks/the-web-s-grain.md b/content/bookmarks/the-web-s-grain.md index b4cf8549..1b1461f5 100644 --- a/content/bookmarks/the-web-s-grain.md +++ b/content/bookmarks/the-web-s-grain.md @@ -11,8 +11,10 @@ references: name: Frank Chimero · The Web’s Grain summary: Frank Chimero’s Personal Website author: Frank Chimero +summary: A wonderful presentation on the limitations of the web, and how to adapt + to them and foster our joy in the web as a medium. I love it! --- -A wonderful presentation on the limitations of the web, and how to adapt to them and foster our joy in the web as a medium. I love it! + ### Highlights diff --git a/tools/import/omnivore/main.go b/tools/import/omnivore/main.go index 53c65a50..e8d97712 100644 --- a/tools/import/omnivore/main.go +++ b/tools/import/omnivore/main.go @@ -107,7 +107,10 @@ func outputArticle(article Article, outputDir string) error { fm.Date = article.BookmarkDate.Format(time.RFC3339) } - article.Annotation = strings.TrimSpace(article.Annotation) + summary, body := shared.ExtractSummary(article.OriginalSummary, strings.TrimSpace(article.Annotation)) + if fm.Summary == "" { + fm.Summary = summary + } if len(fm.Title) == 0 { fm.Emoji, fm.Title = artEmoji, artTitle @@ -138,7 +141,7 @@ func outputArticle(article Article, outputDir string) error { } fmt.Fprint(hugoPost, "---\n") - fmt.Fprintln(hugoPost, linkHashtags(article.Annotation, fm.Tags)) + fmt.Fprintln(hugoPost, linkHashtags(body, fm.Tags)) if len(article.Highlights) > 0 { fmt.Fprint(hugoPost, "\n### Highlights\n") diff --git a/tools/shared/text.go b/tools/shared/text.go index ebb5a4f6..14ba1906 100644 --- a/tools/shared/text.go +++ b/tools/shared/text.go @@ -74,3 +74,21 @@ func ExtractLeadingEmoji(str string) (string, string) { return parts[0], strings.TrimSpace(parts[1]) } + +const maxSummaryLength = 140 + +func ExtractSummary(inSummary, inBody string) (outSummary, outBody string) { + outBody = inBody + if len(inSummary) <= maxSummaryLength { + outSummary = inSummary + } + + parts := strings.SplitN(inBody, "\n\n", 2) + if len(parts[0]) <= maxSummaryLength { + outSummary = parts[0] + parts = append(parts, parts[0]) + outBody = parts[1] + } + + return outSummary, outBody +} diff --git a/tools/shared/text_test.go b/tools/shared/text_test.go index 3c3b0c8d..97e83821 100644 --- a/tools/shared/text_test.go +++ b/tools/shared/text_test.go @@ -23,3 +23,23 @@ func TestExtractLeadingEmoji(t *testing.T) { assert.Equal(t, c[2], text) } } + +const someLongText = "Here's some longer text that will stand in for a body of a post. The first paragraph is longer than 140 characters, but it also has additional paragraphs.\n\nLike this one." + +func TestExtractSummary(t *testing.T) { + originalSummary := "The original summary, as provided by the article." + shortSummary := "Some short summary." + + cases := [][]string{ + {"Short summary", originalSummary, shortSummary + "\n\n" + someLongText, shortSummary, someLongText}, + {"No summary", originalSummary, someLongText, originalSummary, someLongText}, + {"Only summary", originalSummary, shortSummary, shortSummary, shortSummary}, + {"Long original summary, no summary in my text", "original" + someLongText, "mine" + someLongText, "", "mine" + someLongText}, + } + + for _, c := range cases { + summary, body := shared.ExtractSummary(c[1], c[2]) + assert.Equal(t, c[3], summary) + assert.Equal(t, c[4], body) + } +}