{"version":"https://jsonfeed.org/version/1","title":"Заметки Тима","home_page_url":"https://timmarinin.net/","feed_url":"https://timmarinin.net/notes/en/feed.json","items":[{"id":"https://timmarinin.net/notes/32/","url":"https://timmarinin.net/notes/32/","title":"Translated article about unions > optionals","content_html":"<p>Decided on a whim to translate the short article from the last year about TypeScript unions: <a href=\"https://timmarinin.net/2026/prefer-union-over-optional\">Prefer union over optional</a>.</p>","date_published":"Invalid Date"},{"id":"https://timmarinin.net/notes/31/","url":"https://timmarinin.net/notes/31/","title":"New article: ssereload(1) introduction","content_html":"<p><a href=\"https://timmarinin.net/2026/ssereload\">ssereload</a>.</p>","date_published":"Invalid Date"},{"id":"https://timmarinin.net/notes/30/","url":"https://timmarinin.net/notes/30/","title":"Tidy First? — great short read","content_html":"<p>I've read the <em>Tidy First?</em> by Kent Beck. It is refreshingly short: if tidyings are \"the cute, fuzzy little refactorings that nobody\ncould possibly hate on,\" then this book is a fuzzy little <em>Refactoring</em>.</p>","date_published":"Invalid Date"},{"id":"https://timmarinin.net/notes/29/","url":"https://timmarinin.net/notes/29/","title":"Hono","content_html":"<p>I'm trying out <a href=\"https://hono.dev/\">Hono</a> for a small project, it is an express-like framework, with the primary feature being that the resulting app is runnable on a plethora of platforms, from Node.js/Deno/Bun to Cloudflare Pages.</p>\n<p>So far I've got nothing frustrating to report, which is suspicious.</p>","date_published":"Invalid Date"},{"id":"https://timmarinin.net/notes/16/","url":"https://timmarinin.net/notes/16/","title":"Working through \"100 days of SwiftUI\"","content_html":"<p>I'm trying to learn SwiftUI, via the <a href=\"https://www.hackingwithswift.com/100/swiftui\">100DaysOfSwiftUI</a> (just finished day 39).</p>\n<p>SwiftUI in simple cases I've encountered so far seems to me very succinct: you want a list, you write <code>List {}</code>. You want some text, you write <code>Text(\"some text\")</code>. Trailing closures are weird at first, but now I think I'm missing them in writing TypeScript.</p>\n<hr>\n<p>(I'll update the note after I get more experience with SwiftUI)</p>","date_published":"Fri, 21 Jul 2023 20:00:11 GMT"},{"id":"https://timmarinin.net/notes/15/","url":"https://timmarinin.net/notes/15/","content_html":"<p><a href=\"https://github.com/Flet/rejected-github-profile-achievements\">Rejected Github Profile Achievements</a></p>\n<p>I'd have:</p>\n<ul>\n<li>Procrastinator</li>\n<li>Secret Santa</li>\n<li>Monkey Wrench (multiple times)</li>\n<li>Works On My Machine</li>\n</ul>","date_published":"Tue, 11 Jul 2023 18:09:27 GMT"},{"id":"https://timmarinin.net/notes/14/","url":"https://timmarinin.net/notes/14/","title":"New release of webmention: 0.5.0","content_html":"<p>I've released new version (0.5.0) of crate <code>webmention</code>.</p>\n<p>This release got new versions of nom &amp; select, nothing more is changed. I do not expect that this would require any changes in code of users.</p>\n<p><a href=\"https://crates.io/crates/webmention\">crates.io</a>.</p>\n<p>Follow-up work would be to re-enable tests that got stale (which would require work on Cabin)</p>\n<p>Cross-posted to <a href=\"https://mas.to/@marinintim/110695148893334820\">mas.to/@marinintim</a></p>","date_published":"Tue, 11 Jul 2023 17:14:08 GMT"},{"id":"https://timmarinin.net/notes/13/","url":"https://timmarinin.net/notes/13/","title":"feed.atom returns","content_html":"<p>I've added <a href=\"https://timmarinin.net/feed.atom\">/feed.atom</a> to Cabin, which lists recently published notes (not articles, though).</p>\n<p>In other news, I've fixed the published dates in JSONFeed.</p>","date_published":"Sun, 02 Jul 2023 02:14:15 GMT"},{"id":"https://timmarinin.net/notes/12/","url":"https://timmarinin.net/notes/12/","content_html":"<p>Я решил начать новую, нерегулярную серию коротких заметок про баги, с которыми я сталкиваюсь, и которые мне кажутся интересными. Может из этого сформируется какая-то Всеобъемлющая Теория Багов, возможно нет.</p>\n<p>Первый эпизод: <a href=\"https://timmarinin.net/on-bugs/1\">Фантомное кэширование</a></p>","date_published":"Thu, 11 May 2023 17:55:46 GMT"},{"id":"https://timmarinin.net/notes/7/","url":"https://timmarinin.net/notes/7/","title":"Shea’s Law","content_html":"<blockquote>\n<p>(Shea's Law) The ability to improve a design occurs primarily at the interfaces. This is also the prime location for screwing it up.</p>\n<p>— Akin's Laws of  Spacecraft Design, <a href=\"https://spacecraft.ssl.umd.edu/akins_laws.html\">https://spacecraft.ssl.umd.edu/akins_laws.html</a></p>\n</blockquote>","date_published":"Wed, 29 Mar 2023 17:23:00 GMT"},{"id":"https://timmarinin.net/notes/6/","url":"https://timmarinin.net/notes/6/","content_html":"<blockquote>\n<p>Interface matters to me more than anything else, and it always has. I just never realized that. I've spent a lot of time over the years desperately trying to think of a \"thing\" to change the world. I now know why the search was fruitless -- things don't change the world. People change the world by using things. The focus must be on the \"using\", not the \"thing\". Now that I'm looking through the right end of the binoculars, I can see a lot more clearly, and there are projects and possibilities that genuinely interest me deeply.</p>\n<p>Bret Victor: email (9/3/04)<br>\n(via <a href=\"http://worrydream.com/quotes/\">http://worrydream.com/quotes/</a>)</p>\n</blockquote>","date_published":"Wed, 29 Mar 2023 17:15:00 GMT"},{"id":"https://timmarinin.net/notes/1/","url":"https://timmarinin.net/notes/1/","title":"Notes are live","content_html":"<p>This is a first note published on <a href=\"http://timmarinin.com/\">timmarinin.com</a>.</p>\n<p>Cabin supports a bit of <em>Markdown</em>.</p>","date_published":"Wed, 29 Mar 2023 01:06:00 GMT"}]}