<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: akater</title><link>https://news.ycombinator.com/user?id=akater</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 15 Apr 2026 22:05:39 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=akater" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by akater in "We should revisit literate programming in the agent era"]]></title><description><![CDATA[
<p>The question posed is, “With agents, does it become practical to have large codebases that can be read like a narrative, whose prose is kept in sync with changes to the code by tireless machines?”<p>It's not practical to have codebases that can be read like a narrative, because that's not how we want to read them when we deal with the source code.  We jump to definitions, arriving at different pieces of code in different paths, for different reasons, and presuming there is one universal, linear, book-style way to read that code, is frankly just absurd from this perspective.  A programming language should be expressive enough to make code read easily, and tools should make it easy to navigate.<p>I believe my opinion on this matters more than an opinion of an average admirer of LP.  By their own admission, they still mostly write code in boring plain text files.  I write programs in org-mode all the time.  Literally (no pun intended) <i>all</i> my libraries, outside of those written for a day job, are written in Org.  I think it's important to note that they are all Lisp libraries, as my workflow might not be as great for something like C.  The documentation in my Org files is mostly reduced to examples — I do like docstrings but I appreciate an exhaustive (or at least a rich enough) set of examples more, and writing them is much easier: I write them naturally as tests while I'm implementing a function. The examples are writen in Org blocks, and when I install a library of push an important commit, I run all tests, of which examples are but special cases.  The effect is, this part of the documentation is always in sync with the code (of course, some tests fail, and they are marked as such when tests run).  I know how to sync this with docstrings, too, if necessary; I haven't: it takes time to implement and I'm not sure the benefit will be that great.<p>My (limited, so far) experience with LLMs in this setting is nice: a set of pre-written examples provides a good entry point, and an LLM is often capable of producing a very satisfactory solution, immediately testable, of course.  The general structure of my Org files with code is also quite strict.<p>I don't call this “literate programming”, however — I think LP is a mess of mostly wrong ideas — my approach is just a “notebook interface” to a program, inspired by Mathematica Notebooks, popularly (but not in a representative way) imitated by the now-famous Jupyter notebooks.  The terminology doesn't matter much: what I'm describing is what the silly.business blogpost is largerly about.  The author of nbdev is in the comments here; we're basically implementing the same idea.<p>silly.business mentions tangling which is a fundamental concept in LP and is a good example of what I dislike about LP: tangling, like several concepts behing LP, is only a thing due to limitations of the programming systems that Donald Knuth was using.  When I write Common Lisp in Org, I do not need to tangle, because Common Lisp does not have many of the limitations that apparently influenced the concepts of LP.  Much like “reading like a narrative” idea is misguided, for reasons I outlined in the beginning.  Lisp is expressive enough to read like prose (or like anything else) to as large a degree as required, and, more generally, to have code organized as non-linearly as required.  This argument, however, is irrelevant if we want LLMs, rather than us, read codebases like a book; but that's a different topic.</p>
]]></description><pubDate>Sun, 08 Mar 2026 23:32:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47302810</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=47302810</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47302810</guid></item><item><title><![CDATA[New comment by akater in "The Art of Lisp and Writing (2003)"]]></title><description><![CDATA[
<p>There is a difference.  I write a Lisp program, and it runs everywhere Emacs does, including my Android device.  I wouldn't do that with Java, as thaw would be extremely impractical.  (I might be biased: I probably wouldn't be programming at all if Lisp didn't exist.)<p>Lisp is the №1 enabler of Stallman's “Freedom 1”.  Smalltalk might be close but I can't really say, and it doesn't look like I can install Pharo on my Android device.  Nothing else even comes close.</p>
]]></description><pubDate>Mon, 16 Jun 2025 22:25:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44293944</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=44293944</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44293944</guid></item><item><title><![CDATA[New comment by akater in "The Art of Lisp and Writing (2003)"]]></title><description><![CDATA[
<p>Could you provide an example of a Lisp program where macros are overused?</p>
]]></description><pubDate>Mon, 16 Jun 2025 21:54:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=44293754</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=44293754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44293754</guid></item><item><title><![CDATA[New comment by akater in "Graphics livecoding in Common Lisp"]]></title><description><![CDATA[
<p>> Bolting packages (module system) on top of symbols leads to some problems in practice.<p>Packages are namespaces, unrelated to modules.  They are not used to organize dependencies but to remove ambiguity of naming and to provide encapsulation.<p>> The progress in CL development is severely hampered by the set-in-stone standard, small pool of users<p>The language is extensible, compilers do get new features added, sometimes in a coordinated manner.  Standard being stable is not that significant an obstacle to moving forward; pool of users being small is much more noticeable.  Yet more noticeable is that community is less healthy than the Emacs one.  This comparison is valid because development in Emacs Lisp is attractive for the same reasons, unique to it and CL; they also happen to have extremely similar syntax.  Elisp is moving forward steadily, and in recent years quite rapidly.  CL would progress forward similarly, or better, had it had something like Emacs that provided that synergetic effect.</p>
]]></description><pubDate>Thu, 24 Apr 2025 10:48:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=43781144</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=43781144</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43781144</guid></item><item><title><![CDATA[New comment by akater in "Why does Lisp use cons cells? (1998)"]]></title><description><![CDATA[
<p>An ordered pair is a useful data structure, and it's beneficial to have special short names for accessors to its elements.  Humanity got very lucky with the names “car” and “cdr”.  Naggum does point that out.<p>Any rule about any language could be labeled a barrier to its success because any such rule contributes to the cognitive load, making learning the language slightly more difficult than it would be without that rule.  What matters more is how much cognitive load is there after you learn the rules.  Common Lisp is very successful at it.</p>
]]></description><pubDate>Wed, 09 Oct 2024 14:03:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41788116</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=41788116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41788116</guid></item><item><title><![CDATA[New comment by akater in "Why does Lisp use cons cells? (1998)"]]></title><description><![CDATA[
<p>Note that the value returned by cons is guaranteed to have type cons, and it is guaranteed that a fresh cons is created.  Neither is true for list*; note that its return type is t.</p>
]]></description><pubDate>Wed, 09 Oct 2024 12:42:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=41787293</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=41787293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41787293</guid></item><item><title><![CDATA[New comment by akater in "Why is it important for a matrix to be square? (2018)"]]></title><description><![CDATA[
<p>If by “abstract” linear algebra you mean “course that starts with the definition of vector space”, then it is geometric enough in the sense Artin talks about.<p>It is pedagogically a problem for people who ask questions like the one in topic.  But it can also be a problem when one encounters bilinear form and linear operator in practice but can't distingish between the two.  I can't think of a specific example but I was asked once about some problem (in electrical engineering, iirc) where the source of confusion was this; some transformations of a (square) matrix were natural while others were not.<p>Some people feel strongly about the topic—mostly those with “pure math” inclinations.</p>
]]></description><pubDate>Mon, 22 Jun 2020 00:55:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=23596565</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23596565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23596565</guid></item><item><title><![CDATA[New comment by akater in "Being Alone"]]></title><description><![CDATA[
<p>There may be different aspects to programs like this.  They may provide calls, they may provide some other features that are significant to understand their influence on users but non-obvious to non-users.<p>I never encountered FaceTime and I have avoided Facebook since I firnt saw it.  Also, curiously, I've recently observed a group of like-minded people divided, in a fairly confrontational manner, unable to listen to each other, with one side being, according to my observanions, overrepresented on Facebook, compared to another, and the other overrepresented on Twitter.<p>This can be attributed to “echo chamber” phenomenon, or to platform preference by leaders of opinions.  But my null hypothesis now is, Facebook actually changes its users to being worse communicators, unlike Twitter, and it contributes to users' feelings of isolation, significantly.  I'm sure details of means of communication matter.</p>
]]></description><pubDate>Mon, 22 Jun 2020 00:41:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=23596503</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23596503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23596503</guid></item><item><title><![CDATA[New comment by akater in "Why is it important for a matrix to be square? (2018)"]]></title><description><![CDATA[
<p>Another evidence that linear algebra concepts are terribly confusing when layed out without geometric background.<p>This had been criticised for decades.  Competently and popularly presented criticism goes back to at least as far as 1957 (Artin's Geometric Algebra; see discussion of determinants somewhere near the beginning) but linear algebra is still often presented decoupled from geometry.<p>I wonder though if there's purely algebraic approach to matrices that explains as much (or more) as geometric one.  Maybe approaching algebra of matrices consistently as an example of category algebra could be illuminating.</p>
]]></description><pubDate>Mon, 22 Jun 2020 00:25:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=23596425</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23596425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23596425</guid></item><item><title><![CDATA[New comment by akater in "Being Alone"]]></title><description><![CDATA[
<p>For a non-technical text about a basic, broadly-appealing topic, this has disappointingly high level of mentions of something called “FaceTime”.<p>I have not yet read it all but I already have doubts it's worth reading further after second mention if author just expects all readers to be on Facebook or be familiar with a particular program to connect to others, or with an experience of usage thereof.</p>
]]></description><pubDate>Mon, 22 Jun 2020 00:00:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=23596303</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23596303</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23596303</guid></item><item><title><![CDATA[New comment by akater in "Napster Founder Obtains New Patent for P2P-Polluting Anti-Piracy Tech"]]></title><description><![CDATA[
<p>So-called “anti-piracy” measures are futile.  As long as something can be played back, it can be recorded, copied, re-played.<p>If watermarks become an issue, people will develop methods to mangle watermarks and make them unreliable in figuring out the source of the leak.<p>Any attempts to prevent copying by technical means are at odds with public ownership and use of general-purpose computers.  The only reliable way to prevent people from making and sharing copies of data is to ban such computers or restrict their usage.</p>
]]></description><pubDate>Sun, 21 Jun 2020 23:37:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=23596213</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23596213</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23596213</guid></item><item><title><![CDATA[New comment by akater in "Russia lifts ban on Telegram"]]></title><description><![CDATA[
<p>> even if he was openly anti-Putin and supported opposition in any way<p>This implies he does not support opposition in any way.  This is not true.  He does support opposition rallies—when they are held to support his cause, true, but such is political climate in Russia that publically supporting those who vocally oppose the state policy is a domain for very few and quite brave.<p>When Libertarian Party of Russia was organizing a rally in 2017 to protest Telegram ban, Durov contacted the Party himself.  (I'm a member of LP RU.)<p>I don't count on Telegram security but Durov's public image and actions are certainly noticeable and appreciated by opposition.</p>
]]></description><pubDate>Thu, 18 Jun 2020 21:26:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=23568216</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23568216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23568216</guid></item><item><title><![CDATA[New comment by akater in "GitLab 13.0"]]></title><description><![CDATA[
<p>Works fine now, thanks!  Sorry I made noise like this, I tried to find alternative channels of communication that presumably should work when someone cannot login via web for any reason, and failed.</p>
]]></description><pubDate>Sat, 23 May 2020 08:58:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=23281315</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23281315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23281315</guid></item><item><title><![CDATA[New comment by akater in "GitLab 13.0"]]></title><description><![CDATA[
<p>It looks like it's now impossible to login to gitlab.com web interface via Tor.  I only post it here because it was a recent sudden silent change that made gitlab.com unavailable to some, and there does not seem to be a response.</p>
]]></description><pubDate>Fri, 22 May 2020 17:24:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=23274600</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23274600</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23274600</guid></item><item><title><![CDATA[New comment by akater in "Ask HN: Dear open source devs how do you sustain yourself"]]></title><description><![CDATA[
<p>> Live cheaply<p>> Be indepenedently wealthy<p>Both are very good suggestions.  And I don't think there are better ones around.</p>
]]></description><pubDate>Mon, 18 May 2020 20:43:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=23228103</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23228103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23228103</guid></item><item><title><![CDATA[New comment by akater in "Modern universities are an exercise in insanity (2018)"]]></title><description><![CDATA[
<p>There's a fairly well-known 2018 book on why education (higher and lower) is the way it is now:<p>Bryan Caplan,
“The Case against Education: Why the Education System Is a Waste of Time and Money”</p>
]]></description><pubDate>Sun, 17 May 2020 13:36:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=23211879</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23211879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23211879</guid></item><item><title><![CDATA[New comment by akater in "Should assisted death/suicide be legal?"]]></title><description><![CDATA[
<p>1. Everyone (except maybe for murderers and insane people) is a master of their body, so other people have no right at all to decide whether a sane non-murderer should be able to end his or her own life. This has nothing to do with any illness.<p>2. See 1.<p>3. When cognitive function is damaged severely, the person cannot make decisions on their own, including decisions on whether they should live or die.<p>4. All voluntary interactions are fine.</p>
]]></description><pubDate>Thu, 14 May 2020 19:59:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=23184587</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=23184587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23184587</guid></item><item><title><![CDATA[New comment by akater in "Ask HN: Why don't you have a blog?"]]></title><description><![CDATA[
<p>• I don't want to admin a server.<p>• I don't understand what does it mean “to own a domain name”, what kind of ID is it tied to.<p>• I'd have to write a spam-resilient js-free https-free comments system. It'd take time, it'd have to be based on PGP, and in the end nobody would use it.<p>So I just worship my Fediverse Instance Admin Deity instead, for now.</p>
]]></description><pubDate>Mon, 20 Apr 2020 00:29:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=22920027</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=22920027</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22920027</guid></item><item><title><![CDATA[New comment by akater in "Ask HN: What is the best way to learn Lisp in 2020?"]]></title><description><![CDATA[
<p>Unless you go with commercial Lisps, you likely won't get far without Emacs.<p>Thus, one option to consider (esp. if you're not fond of learning by the book) is to just start learning Emacs since you will need it anyway, use Emacs Lisp to configure it and learn the basics hands-on way. That will likely feel “different” enough already to change the way you think about programming, if that's one of the goals.<p>No need for books, no need to setup anything, you're simply dropped into a huge introspection-enabled sandbox that is about to become your main tool.</p>
]]></description><pubDate>Mon, 20 Apr 2020 00:15:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=22919947</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=22919947</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22919947</guid></item><item><title><![CDATA[New comment by akater in "Ask HN: Resources to grok Emacs and use it well?"]]></title><description><![CDATA[
<p>I believe it's important to find a community which would offer quality real-time help. I've seen some, and the really good one was not in English so I can't recommend it, I guess. Freenode emacs chat is said to be filled with offtopic; that's not my cup of tea but you might find it useful.<p>Members of said lovely community thoroughly recommended Mastering Emacs to newcomers as a number one introductory text which I since do as well—mostly because they did. I also recommend built-in tutorial.<p>As for packages,<p>• helm or some other fuzzy completion thing; make sure your M-x, C-h f, C-h v do offer fuzzy completion, it improves discoverability greatly. Recent (27?) Emacsen may have something like this out of the box.<p>• avy: jump to positions on screen<p>• there are several packages that offer insert/command mode including the famous evil-mode but it's a good idea to get used to defaults. “Mastering Emacs” has something on this. I've heard macOS supports default Emacs keys <i>everywhere</i> (not true for other systems)<p>• which-key can display keys and commands available at the moment, quite helpful from the start. You can actually find some of this information with context menu but it is less convenient. The issue with which-key is, you need to configure it to actually see its stuff. A config for it may be found in the link below<p>• <a href="https://github.com/a13/emacs.d/blob/master/README.org" rel="nofollow">https://github.com/a13/emacs.d/blob/master/README.org</a> is a cleanly written init file; if you want a starter config for package x, try searching there for (use-package x ..) expression, copy it to your init file, press C-M-x and it's applied (note: it will often download the package, too). Many popular packages and built-in features are covered. Tweak some parameters, C-M-x, observe the changes immediately.<p>• last but not least, to make use of many existing configurations out there, you will need use-package. So install it early and learn to load it on startup (see the very config above as a reference)</p>
]]></description><pubDate>Thu, 16 Apr 2020 04:47:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=22886160</link><dc:creator>akater</dc:creator><comments>https://news.ycombinator.com/item?id=22886160</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22886160</guid></item></channel></rss>