I’ve briefly considered Solid but, although it looked more popular, it also seemed way more complicated.
- Last 7 days
-
community.remotestorage.io community.remotestorage.io
-
-
thomaswc.com thomaswc.com
-
http://onlinelibrary.wiley.com/doi/10.1111/j.1468-0297.2005.01001.x/abstract;jsessionid=C4944AF2AD52BE909CC4D6F0AD0A8FE5.d03t03
It's nice that this is a PURL (by virtue of the DOI system), but we can do better than this.
-
-
www.openu.ac.il www.openu.ac.ilicse.dvi1
-
We envision a component generator with knobs thatlet a user choose among design decisions, akin to sim-ilar work for code generation from design patterns [1].Such a tool is sufficiently parameterized to generateany combination of implementation trade-offs on thespectrum from fully static to fully dynamic compo-nents. The components that result can thus exhibitjust the right combination of flexibility, maintainabil-ity, and performance, with a minimum of specificationand hackery on the developer’s part.
-
-
se.inf.ethz.ch se.inf.ethz.ch
-
for me, a software component is a reusable software element, typically some library classes, usually in source form (not binary form), which differs from Clemens Szyperski’s view
-
-
web.archive.org web.archive.org新しいタブ2
-
This is for:
Abramson, D.A. and Sosic, R. "Relative Debugging using Multiple Program Versions", Key Note Address, 8th Int. Symp. on Languages for Intensional Programming , Sydney, 3-5th May, 1995. In Intensional Programming I, World Scientific, ISBN 981-02-2400-1.
(From https://web.archive.org/web/19970504170226/https://www.cit.gu.edu.au/~davida/guard.html.)
Linked to archived paper: https://web.archive.org/web/19970504170226/https://www.cit.gu.edu.au/~davida/papers/islip.ps.Z
-
This is for:
Abramson, D.A. and Sosic, R. "A Debugging Tool for Software Evolution", CASE-95, 7th International Workshop on Computer-Aided Software Engineering, Toronto, Ontario, Canada, July 1995, pp 206 - 214. Also appeared in proceedings of 2nd Working Conference on Reverse Engineering, Toronto, Ontario, Canada, July 1995.
(From https://web.archive.org/web/19970504170226/https://www.cit.gu.edu.au/~davida/guard.html.)
Linked to archived paper: https://web.archive.org/web/19970504170226/https://www.cit.gu.edu.au/~davida/papers/case95.ps.Z
-
-
www.brycewray.com www.brycewray.com
-
Not many people ever ask me about it. Guess it’s kind of a niche-y subject.
-
if you put it out there as FOSS then you have to support it
-
The voice associated with the narrator is so buffoonish in this piece, it reads like it was written by someone who found themselves in the role of the layperson and was deliberately (and a bit unfairly) caricaturizing the professional. But it's not.
-
The author comes across as really obnoxious, with no willingness to provide arguments/rationale to his hypothetical interlocutor, just vibes—very "That's just not how it's done."
-
-
www.otherstrangeness.com www.otherstrangeness.com
-
a simple, unadorned site that tells them what they need to know at a glance
It would be great if businesses and individuals took seriously the matter raised in this post, but the irony of this statement is that it doesn't align with what you generally find on independently created-and-run websites; getting the info unadorned is usually best found the big platforms, because Facebook, etc. control the site design, and the userbase has to contend with just providing the information. And even if you find, say, the visual design of a platform's look and feel to be unappealing, it is at least uniform.
-
-
news.ycombinator.com news.ycombinator.com
-
To add onto this, I used to frequent a cafe near my old work and had quite a good rapport with the owner. One day I was going for lunch and wanted to check their menu, pick something new and then go order. When I went and ordered it she said she they no longer serve that and couldn't get onto the developer to change their menu on the site.
The professional developer class strikes again, obscuring the fact that creating a website is just desktop publishing—document preparation with URLs—and not any more complicated than that (but for the fact that there's an entire industry of folks making it so in their own self-interest).
-
- Mar 2026
-
fornever.me fornever.me
-
NuGet, the .NET package manager, was only introduced in 2010, so back in 2008 there wasn't a standard solution to distribute the project dependencies. The best option was to just include all the libraries in their source
Still true now.
-
-
github.com github.com
-
I think you have to install Android Studio or something. You may also need to set the following environment variable because Android development is extremely confusing: ANDROID_SDK_ROOT=C:\Users\YOUR_USER_NAME\AppData\Local\Android\Sdk
Tags
Annotators
URL
-
-
-
The C version of iburg is available for anonymous ftp from ftp.cs.prince-ton.edu in pub
Great example of why "The Web" is really about, as TBL says, URLs, and not HTTP-and-HTML (and/or CSS, JS, etc., i.e. "WHATWG-flavored hypertext").
This is like how early works in math and physics don't use recognizable mathematical notation (because it didn't exist yet) and instead defined and described things prosaically.
Not surprising to see here. RFC 1738 hadn't happened yet.
-
-
www.w3.org www.w3.org
-
Hey, traveller.
You're looking for https://www.w3.org/History/1992/ENRAP/Article_9202.pdf
-
-
news.ycombinator.com news.ycombinator.com
-
I wrote about an imaginary cloud service that would be about hosting forms for batch processing later this is similar to the workspace.zip in this article but this is used for the app itself.https://www.halfbakery.com/idea/Secure_20Form_20Endpoint_20S...
samsquire is user chronological on the halfbakery.
-
-
www.sqlite.org www.sqlite.org
-
To enable encryption, add an additional query parameter with the encryption key. For AES128 encryption use "password=KEY" and for AES256 use "password256=KEY". For example: sqlite3_open_v2("file:demo1.db?zv=zlib&password=abc123", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_URI, 0);
HTTP at least has a provision for specifying URLs with Basic Auth credentials. It's interesting that sqlite's
file-scheme URL parser didn't adopt an extension to the standard in that vein (RFC 8089 Appendix E, Section 1), instead of putting the key in the query string (which is another non-standard extension—not mentioned in the RFC at all). -
applies
Should be "apply".
-
copied
Should be "copies".
-
-
-
"I'm sorry you fuckers misrepresented what I thought by reporting literally what was said"
Perversely, the quote here and emphasis in the content, is a fabrication.
-
-
www.aaronboodman.com www.aaronboodman.com
-
Ok, so these steps aren't really "easy". Some of them will take months. Just figuring out how to use IRC will take awhile if you're new to it. I've purposely been vague on the details so you can figure it out on your own. You'll need ingenuity, a search engine, and a lot of patience.But I guarantee, 100%, for-sure, that if you complete my 5 step program, you will be able to easily find a good starting job programming.
Some observations:
-
While it isn't easy, it is at least as easy as getting into a good school, and going to class and making good grades for four years. And with that said:
-
Isn't this (the guarantee here—"guarantee"!) basically the same as the beliefs corresponding to the aforementioned bubble?
I think what Boodman failed to grasp at the time he first wrote this was that (b) many of those in his audience were persons who, having just invested four years into going to college with a reasonable expectation that it would pay off, weren't in a position (read: didn't have the resources) to suspend life for another 2-to-4 years trying to follow a plan like this (step #4 here—"Repeat[ing] steps 2 and 3 about 50 times"—is landing a patch to fix a new Chrome bug every two weeks) on the promise of an even more uncertain payoff, and—more perniciously—(b) a subset of those in his audience would have been those who were (more or less) already as capable as needed by the requirements of this process, but were in his audience nonetheless because, despite being so, it wasn't enough to "get them a good job" due to the stochastic nature of the market (incl. the fickle humans who are often gatekeepers in the "find a good job" process).
-
-
There has been an education bubble over the last few decades that has told kids that all they need to do to guarantee success is go to a good school, make good grades, and get a degree. The result is that in many fields, there is vastly more supply than demand.
-
-
gozala.io gozala.io
-
Initial prototype of browser.html was written in plain JS, but as scope grow it started to be unmanageable. React was new hotness, which we have explored but were disappointed by performance and a difficulty of working with non-standard web components. This lead me to develop reflex that featured swappable view drivers (doing virtual/real DOM diff/patch) and was heavily inspired by The Elm Architecture. DominionRunning complex JS UI logic in the UI thread meant dropped frame sooner or later.
Another way of approaching the implementation versus abstraction issue when it comes to misconceptions about programming languages and their toolchains/runtimes is to make "[programming languages are notation, and] notation is not machinery" something of a catchphrase.
This passage is something like an ideal target (case study is misapprehension).
-
-
web.archive.org web.archive.org新しいタブ1
-
Hey, traveler. You're looking for https://www.cs.ucf.edu/~leavens/FoCBS/.
-
- Feb 2026
-
letterboxd.com letterboxd.comAPI1
-
“It’s not about who’s got the most bullets. It’s about who controls the information.” —Sneakers (1992) Access to the Letterboxd API is available by request only.
Geez. What a villainous combination of sentences.
-
-
news.ycombinator.com news.ycombinator.com
-
grumpy people can criticize anything.I just think it’s a waste of emotional energy to get worked up
I wonder where on the scale of "waste of emotional energy" this person puts getting worked up about what other people are criticizing.
-
-
perkeep.org perkeep.orgPerkeep1
-
Commenters on HN https://news.ycombinator.com/item?id=45896130 have mostly been critical of Camlistore/Perkeep in terms of whether or not it's a fully baked app, and then go on to talk about alternatives like Linkding, Zotero, or the (confusingly, similarly) named Karakeep. I think that gets it wrong.
The right way is to think of all those as all having backends that are all deficient in their bespoke ways and as being potential frontends for your Camlistore data.
The right question to ask is, "Why are projects like Shiori and Timelinize their own thing instead of better ways to interact with Perkeep?"
-
-
perkeep.org perkeep.org
-
Mutable information is represented by storing immutable, timestamped, GPG-signed blobs representing a mutation request. The current state of an object is just the application of all mutation blobs up until that point in time. Thus all history is recorded and you can look at an object as it existed at any point in time, just by ignoring mutations after a certain point.
Git's "stupid content tracker" strategy of just snapshotting everything and treating storage/compression as a separate concern strikes me as the not-obvious-and-not-obviously-better-but-still-better approach and recording deltas as the obvious "solution" that turns out to be folly.
On the other hand, people have complained about Git stretched to other use cases, like with git-annex, being really slow.
This is worthy of close study.
-
-
web.archive.org web.archive.org新しいタブ2
-
A nice knock on of getting unzip working in love2d is I'm now able to load ods files (Libre Office's Calc format for sheets) directly.
Meaning I am able to hotload constants during runtime on file save without having to run an export from Calc.
Imagine if LibreOffice took table-editing and interoperability+sharing seriously and its native format for really simple tables like this were as simple as a plain text file with an HTML table in it.
(Or imagine if Web browser makers woke up and realized that, "People shouldn't need a copy of Excel or one of its clones to create/share/work on files with data like this.")
-
This would be much cooler if the TUI was a semi-general-purpose Web browser that happened to work really, really well with a certain highly opinionated, HTML-first frontend framework and that is what constituted the wire protocol from server-to-client.
The dearth of modern TUI-based Web browsers is a big disappointment.
-
-
nolanlawson.com nolanlawson.com
-
How do you deal with deleted statuses? Well, you have to remove them from the in-memory store, and the database, and then also go ahead and delete any statuses that boosted them or notifications that reference them
Or you could not. Put a badge in the UI that indicates, "Hey, this thing was deleted. We still have a copy, though, and that's what you're seeing here. Pinafore is working for you."
-
-
fvsch.com fvsch.com
-
The most popular static site generator, Jekyll, may have the best documentation pages of the lot. And yet, it still puts a bunch of technical language front-and-center, on the project’s home page: Jekyll’s core message, “Get up and running in seconds” This is developer-talk, because static site generators are tools made by developers for themselves and their peers.
This is the prime example I use to illustrate implicit step zero.
Tags
Annotators
URL
-
-
steve-yegge.blogspot.com steve-yegge.blogspot.com
-
OK: I went to the University of Washington and [then] I got hired by this company called Geoworks, doing assembly-language programming, and I did it for five years. To us, the Geoworkers, we wrote a whole operating system, the libraries, drivers, apps, you know: a desktop operating system in assembly. 8086 assembly! It wasn't even good assembly! We had four registers! [Plus the] si [register] if you counted, you know, if you counted 386, right? It was horrible.I mean, actually we kind of liked it. It was Object-Oriented Assembly. It's amazing what you can talk yourself into liking, which is the real irony of all this. And to us, C++ was the ultimate in Roman decadence. I mean, it was equivalent to going and vomiting so you could eat more. They had IF! We had jump CX zero! Right? They had "Objects". Well we did too, but I mean they had syntax for it, right? I mean it was all just such weeniness. And we knew that we could outperform any compiler out there because at the time, we could!So what happened? Well, they went bankrupt. Why? Now I'm probably disagreeing – I know for a fact that I'm disagreeing with every Geoworker out there. I'm the only one that holds this belief. But it's because we wrote fifteen million lines of 8086 assembly language. We had really good tools, world class tools: trust me, you need 'em. But at some point, man...The problem is, picture an ant walking across your garage floor, trying to make a straight line of it. It ain't gonna make a straight line. And you know this because you have perspective. You can see the ant walking around, going hee hee hee, look at him locally optimize for that rock, and now he's going off this way, right?This is what we were, when we were writing this giant assembly-language system. Because what happened was, Microsoft eventually released a platform for mobile devices that was much faster than ours. OK? And I started going in with my debugger, going, what? What is up with this? This rendering is just really slow, it's like sluggish, you know. And I went in and found out that some title bar was getting rendered 140 times every time you refreshed the screen. It wasn't just the title bar. Everything was getting called multiple times.Because we couldn't see how the system worked anymore!
This is a well-known passage by Yegge explaining why GeoWorks didn't attain success with their object-oriented assembly, and why their object-oriented assembly is the reason for not doing so.
A pithier and more succinct analogy of the bigger picture that Yegge is trying to communicate here—something like what Engelbart struggled to get people to understand resulted in his metaphor of a pencil taped to a brick—would be, "There's a reason why programmers aren't writing code on punch cards anymore (and it's not just because the market for the equipment and, accordingly, the equipment itself, all but vanished and is no longer available)."
-
-
rsdoiel.github.io rsdoiel.github.io
-
Static websites are simple to generate
-
If you are a developer WordPress isn't a huge barrier.
-
why content management systems were adopted on the Web. What you need is a way of getting to the HTML typing something easier to read and type. You need a simple way to manage the website structure for what you have written. Again there are programs that do this today. Unfortunately many are complex and come with their own steep learning curve.
So document the process for updating the site in an SOP, making sure they're written in sufficient detail to be executable (by an agent—a user agent—sans LLMs), and then host the documents that detail those procedures on your site, as first-class content.
"Updating the site" then entails 1. consulting the SOP, and 2. carrying out the procedure there (either manually, or having your agent do it).
This is all achievable on a static site, provided there are Web-accessible (and, ideally, CORS-enabled) endpoints to control what content appears there (like the GitHub API, to name one example).
-
-
news.ycombinator.com news.ycombinator.com
-
It's nuts that no mainstream browser has incorporated basic native table-editing controls by now. (They wasted no time adding JSON pretty-printers—unsurprising, really, given that their main actual concern is propping up the JS–industrial complex and the professional developer class and not real users, which they don't actually give a shit about, contra the Priority of Constituencies.)
There is and has been for a long time a huge opportunity for a "Photopea for CSV (and JSON)" to show up and take off.
-
-
github.com github.com
-
Almost all of the sources of the gpcp tools are written in Component Pascal. It is not possible to use gpcp until you have executable code of the tools. And you cannot build the executables from this source repository unless you already have a Component Pascal compiler. Most users should start by downloading a recent release
Tags
Annotators
URL
-
-
adactio.com adactio.com
-
We’ve all seen those codebases that contain mysterious arcane parts that nobody dares touch. coughWebpackcough
-
most front-end developers have normalised doing daily trust falls with their codebases
-
-
front-end.social front-end.social
-
Take interpreted vs compiled. Previously a property of the *language*
No, this was never the case.
now a property of the program
To re-iterate: that's how it's always been. Programming languages and compilers are two different things. To conflate them is a category error.
-
-
yieldcode.blog yieldcode.blog
-
HTML, which is not a programming language
Sure it is:
It's not really a debate, HTML is a markup language [1], not a programming language
This is a false dichotomy, and untrue on two points (a) that HTML is "not a programming language", and (b) that the stance you have taken is not up for debate.
You're using the term "programming language" as shorthand to refer to the subset of languages more rigorously referred to as Turing-complete general-purpose programming languages.* There are programming languages outside this subset that no less have set membership with the larger "programming language" superset.
A programming language is a programming language in the sense that they have come to exist with the advent of the stored program computer. Though HTML and other markup languages are not** Turing-complete general-purpose programming languages, they are used every bit as much to describe a stored program as a language you might encounter when opening a file containing G-code "instructions" for controlling a CNC machine.
* We had a similar (but not the same) silly recurring argument in the 90s where people, at a loss for words to accurately capture their thoughts and grasping at whatever came to mind, argued that there were two distinct classes: "programming languages" and "scripting languages"—a category error arising from the same phenomenon of mistaking loose, off-the-cuff shorthand for The Real Idea Behind the Thing That's Involved Here
** No overlooking the fact that HTML is a proper superset of CSS, a provably Turing-complete (though not general-purpose) programming language—and JS, which is, of course, a true general-purpose programming language
(Originally drafted in response to https://news.ycombinator.com/item?id=46747778)
-
-
arstechnica.com arstechnica.com
-
So, this is an attempt to provide a comprehensive description of the DOI system, why we use it, and why it doesn’t always work smoothly. Referencing, effort, and reward For most of our readership, reading an Ars science article is the beginning and end of their exposure to a topic. But we also have a notable population of scientists who read, and they may find themselves interested in reading the academic paper that led to our coverage. There are any number of good reasons for doing that: the paper may be relevant to their work, they may want details we did not provide in our coverage, they suspect we might have gotten something wrong and want to correct us, etc. As a result, some form of reference to the paper is a definite good—it’s a benefit for some of our readership, and may help correct errors that are read by the rest of our audience.
The state of { journalism, the Web–industrial complex, and understanding about the fundamentals of research and scholarship } are so poor that the staff actually had to justify something as simple as citing your sources.
(In 2010, but still… 2010!)
-
-
-
Oberon compilers for RISC-V exist and are in active development
-
-
www.reddit.com www.reddit.com
-
Yup. When I was in college, they assigned everyone with a task to design and develop a website for a local business founded by the elderly and for the elderly. Worked super hard (was just getting into web design and dev) and created, what I and my friends thought, was a beautiful site form scratch. I thought I had a good shot at winning but they ended up picking a website that was covered in one color and used a very basic free pre-built bootstrap theme. It even had a little footer that said ‘theme from xyz’ at the bottom of the page when they presented it to the client. Old people and their taste can be surprising.
The complainants' comments here are pure occupational psychosis.
See also: déformation professionnelle.
-
-
wren.io wren.io
-
Lua is more dynamic than Wren which makes its job harder. Lua also tries very hard to be compatible across a wide range of hardware and compilers. If you have a C89 compiler for it, odds are very good that you can run Lua on it. Wren cares about compatibility, but it requires C99 or C++98 and IEEE double precision floats. That may exclude some edge case hardware, but makes things like NaN tagging, computed gotos, and some other tricks possible.
With these words, you might expect that programs that target the Wren reference implementation are faster than those written in Lua. But (again), languages are not language implementations, and the language implementation matters; while Wren programs written for the reference implementation available here are generally faster than programs that run on lua.org's Lua implementation, they're not faster than programs that run on LuaJIT.
-
Languages come in four rough performance buckets, from slowest to fastest
No. Languages are neither fast nor slow. Only language implementations.
-
-
web.archive.org web.archive.orgPboxCh011
-
If you are an experienced MSWindowsuser you may be tempted to substitute back slash characters for the forward slashesshown above. Resist that temptation. The forward slash will work fine even withMSWindows and the back slash character will cause grief for users of other systemswhen you exchange documents between your computers.
If only it weren't 25+ years later (and the PowerShell folks hadn't regressed on Windows).
-
-
simonwillison.net simonwillison.net
-
Or... you can run the binary like this: uvx sqlite-scanner
... for people who have uvx installed.
-
publishing Go binaries to PyPI means any Go binary can be just a uvx package-name call away
... for people who have uvx installed.
-
-
github.com github.com
-
This repo also is not intended to be a complete language in any sense
k, but why not Oberon (with curly braces, of course)? It's both small and real/complete.
-
Since we are show casing the SoN IR, the language being implemented is less important. We're using a very simple language similar to C or Java, but with far fewer features.
Right. Okay.
Good.
-
-
-
To use Excalidraw as another example: they received more than twice as many PRs in Q4 of 2025 than in Q3.
This is what I would expect, slop generators or not. "Q3" includes summer and the start of the fall semester. "Q4" includes Thanksgiving and winter break.
-
this is the default experience of every public repository maintainer right now
"…on GitHub" (as with all things from people who speak myopically about "open source" but run all their projects on GitHub). They're talking about the GitHub userbase.
-
Even large PRs would be abandoned, languishing because their authors had neglected to sign our CLA.
"I'm not signing your CLA" is my position, and I'm not the only one who takes that stance. My contribution is available to upstream under the same license available to everyone else: the one that the project leaders chose to attach to the project. Take it or don't.
(They've settled on "don't". That's fine.)
-
-
di.day di.day
-
Die Internet-Browser Google Chrome, Microsoft Edge und Safari (Apple) dominieren das Internet. Sie basieren fast alle auf der gleichen Technik (Chromium)
Why do people who should be in-the-know make this mistake? This is one of the weirder variations—usually it's people thinking that Chrome is based on WebKit.
In this instance, they seem to be aware that Chrome isn't using WebKit, but do think that Safari is using "Chromium" (which is neither WebKit, nor Blink, i.e. the browser engine that Chrome is using—Chromium is an open source browser, not a browser engine…).
-
-
solar.lowtechmagazine.com solar.lowtechmagazine.com
-
There is no risk for carbon monoxide poisoning or fire.
Electric blankets account for over 5000 fires a year in the home
-
-
www.youtube.com www.youtube.com
-
@45:27
Blow: games for a while was known as the place where there were still a lot of really good programmers because we were forged in this fire of really difficult stuff, and I think that's become increasingly untrue. I think game programmers are reverting to the mean.
Or superinferior, even:
-
Blow: Maybe I should ship— I mean I would have to dig it out of source control and compile it again, which… OMG. Compiling a C++ program from 15 years ago is difficult.
Muratori: Mm-hmm.
Tags
Annotators
URL
-
-
kristoff.it kristoff.it
-
If you didn’t know any better, you would expect almost all normal users to have [2] and professional engineers to have something like [1], but it’s actually the inverse: only few professional software engineers can “afford” to have the second option as their personal website, and almost all normal users are stuck with overcomplicated solutions.
This is confusingly worded. The author is saying it is only the professionals (experts) who can "afford" the latter—not that only a small number of them can.
-
- Jan 2026
-
www.robinsloan.com www.robinsloan.com
-
Pretty basic! And yet, nothing on the internet presently allows me to do this
In 2021, I tried to convince Matt Baer, who was planning on creating a comments platform to accompany write.as, that this is what people would prefer someone to build instead.
-
-
arstechnica.com arstechnica.com
-
A lot of these third-party devices like tablets, they’re going cheap. Set-top boxes, they’re going cheap.
Because it doesn't take a high-end chip like an Nvidia GPU to play streaming audio/video.
-
-
www.fsf.org www.fsf.org
-
This post may or may not have been partially motivated by the OnlyOffice stated license requirements where they insist that the AGPLv3 does not permit removal of the original logo (and that it must appear in a certain location). See https://isitreallyfoss.com/projects/onlyoffice/
-
Please note that "copyright notice" is a notice that contains: the word copyright (or the (C) symbol), the year of first publication of the work, and the name of the copyright holder. Any other information is not part of a copyright notice.
Krzysztof does couch his explanation by saying that he's talking about the GPLv3's ALNs, but it's easy to confuse in proximity to the previous mention of GPLv2 (not least of all by folks who seem perpetually committed to misunderstanding what the FSF/GNU puts out—even when it has been painstakingly refined to be clear and unambiguous due to excruciatingly bad takes about what the FSF does or doesn't say about something).
The full text of GPLv2 Section 2(c) reads:
If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
This obviously covers a lot more than the elements of a copyright notice.
-
The GNU GPLv2 Sec. 2(c) requires people who modify the interactive program released under that license to cause it to print or display legal notices
Note that the full text of GPLv2 Section 2(c) is quite a bit longer than the subsequent quote, and it's very clear that the requirement is not limited only to the legal notices.
I mention this, because based on what Krzysztof goes on to say about the specific elements of copyright notices, one might get the wrong idea.
-
the exact wording is different between the GNU GPLv2 and the GNU GPLv3
This GPLv3 link actually links to "A Quick Guide to GPLv3": https://www.gnu.org/licenses/quick-guide-gplv3.html.
The appropriate URL is https://www.gnu.org/licenses/gpl-3.0.html.
(Note that the guide at the first URL is linked from page containing the GPLv3 at the second URL, and the link appears immediately below a "Skip to license text" link. My guess is that Krzysztof's aim was off and meant to copy the skip-to-section link but inadvertently landed on the link to the guide.)
-
-
news.ycombinator.com news.ycombinator.com
-
I don't want to learn another interface, or have to remember which site had which project.
-
What I'd really like to see is some kind of iframe that pins JS/wasm code within it to a particular bundle hash and prevents modification at runtime (even from chrome extensions).Something more like a TEE inside the browser of sorts.
So you want people to let you run code on their machine that makes it answer to you—some random nobody—instead of the person who is using, and very likely owns and paid for, the device in question.
Perhaps you would next like to see your neighbor to just give you their car and convince some local businesses to let you take over their employees, shops, cash registers, and other equipment to put them work for you as well.
-
I had some interesting luck with the generic approach to unzip the DOCX/XLSX/ODT/etc, then to the contents recursively apply other filters like XML and JSON formatters/prettifiers.
Right. No great reason not to just extract the DOCX/XLSX/whatever before checking it in, just like you would with any other ZIP (and good reason to: not doing so is going to unnecessarily bloat your repo, given the way Git works by keeping whole copies of files in the .git directory—not by storing diffs—why does that myth persist?)
-
MS Office's own XSLX and DOCX formats are trees of XML files, zipped.
This is why the solution* to the question, "How do I deal with my project's Office documents wrt the Git repo (i.e. check it in, track history, diff across versions)?" is "Unzip it; check in the contents."
* sort of—you'll find that some of these formats include a binary properties file, for which you need to use/run a disassembler before committing, so the contents of it, too, are best stored and tracked as text
-
I'd personally have preferred something binary instead
Tags
Annotators
URL
-
-
Local file Local file
-
In a discussion about social networks like Facebook, I ran across a pretty disheartening comment: > I feel like the HN community fails repeatedly to really grok this concept.
It's this one:
-
-
vastava.medium.com vastava.medium.com
-
I hope I come back and edit this once I have something better.
Don't edit (as in "replace"—which is not really possible, anyway Just publish a retraction/followup. (Separately—different URL.)
-
Perhaps the true town square is the web itself.
Exactly!
-
-
www.jwz.org www.jwz.org
-
In this document, I describe what is, in my humble but correct opinion, the best known algorithm for threading messages (that is, grouping messages together in parent/child relationships based on which messages are replies to which others.) This is the threading algorithm that was used in Netscape Mail and News 2.0 and 3.0, and in Grendel.
The contents of this page are a great candidate for smart documentation.
The fact that the reference implementation from Grendel ("Javagator") is in Java should make it straightforward to create port to mostly readable JS (limited mainly to the readability of the original).
-
-
modulovalue.com modulovalue.com
-
ZIP handles random access but originated from MS-DOS and has inconsistent Unix permission support. What we lack is something like "ZIP for Unix": random access with proper ownership, permissions, extended attributes, and ACLs.
Why/how do these make for a line-item criterion in a list of concerns for things necessary or useful to a compiler?
-
-
news.ycombinator.com news.ycombinator.com
-
assimpleaspossi
https://news.ycombinator.com/context?id=46746879
(Start here: https://news.ycombinator.com/item?id=46743683.)
-
-
overreacted.io overreacted.io
-
Why don’t we take some inspiration from Java? com.twitter.post
Java's inverted DNS-inspired package-naming sucks. Everyone invents domains that don't exist. And of course, some people don't even have a domain.
-
JSON. It being trivial to parse
JSON isn't a solution to needing to write parser. It's a solution that means you don't need to write a lexer.
-
So really, we’re left with just this: { text: 'no', createdAt: '2008-09-15T17:25:00.000Z' }
You have just reinvented twtxt, except now you have to name each post (mint/allocate a separate URL for it).
-
if the author later changes their display name or avatar, we wouldn’t want to go through their every post and change them there
Right. You wouldn't. Which means you can embed the author information there—because you're not going to go through and change them.
You can (and should) just leave them alone.
Author profiles on hardcover dustjackets don't change when the author changes affiliation or relocates or dies. Their forwards and prefaces don't change when available information on the subject evolves. This is all not just perfectly fine, but desirable.
-
-
candid.dev candid.dev
-
davDisplayName.SetValue("name")
Huh? Regular, ordinary elements in the W3C/WHATWG object model don't have a node "value".
So what does the
SetValuemethod here even do? -
Because WebDAV is so obtuse, you not only need to inspect the HTTP body, but also the headers!
I don't see why this would be surprising—or described as "obtuse". WebDAV is HTTP. Of course the headers matter.
-
-
fly.io fly.io
-
rebuilding stuff like node_modules is such a monumental pain in the ass that the industry is spending tens of millions of dollars figuring out how to snapshot and restore ephemeral sandboxes
It's almost as if subverting the VCS isn't actually a good thing…
-
-
emnudge.dev emnudge.dev
-
Many seem to think there is a path to Wasm replacing JavaScript within the browser—that they might not need to include a .js file at all.
(The author's point notwithstanding, you don't strictly need a
.jsfile. Browsers don't care about file extensions or even content types when it comes to<script>elements—which is probably what the author was referring to. In reality, you can shoot whatever you want—even HTML, served as text/html—through the browser's JS parser and it will attempt to execute it, so long as it's crafted in a way not to produce a syntax error under ECMA 262-compatible runtimes.) -
You might avoid megamorphic functions more easily by avoiding JavaScript.
This is not a very sensible claim. Take it in the context of the author's previous remarks:
This makes questions like “how fast is WebAssembly” a bit hard to answer. You don’t ask how fast algebraic notation is—it’s not a very sensible question.
Taken in the context of something like JavaScript, the language is only as fast as the engine running it.
There's nothing inherent to JavaScript that demands (or even whispers suggestively) that you should ignore the advice of the sort in the linked article, "my own talks often boil down to Hulk-style «ONE TYPE GOOD. TWO TYPE BAD!!!»"
-
this means access to programs you would not have been able to run otherwise. This includes image processing, ocr
This links to tesseract.js, which is an Emscripten-compiled project that predates WebAssembly by several years.
-
This makes questions like “how fast is WebAssembly” a bit hard to answer. You don’t ask how fast algebraic notation is—it’s not a very sensible question. Taken in the context of something like JavaScript, the language is only as fast as the engine running it. JavaScript the language has no speed, but you can benchmark JS engines like V8, SpiderMonkey, and JavaScriptCore. You can benchmark the IO libraries of JS runtimes like Bun, Deno, and Node. What people actually mean is “how useful are the constructs of this language to efficient mappings of modern hardware” and “what is the current landscape of systems taking advantage of these constructs”.
-
We don’t yet see major websites entirely built with webassembly-based frameworks.
Good.
-
-
slatestarcodex.com slatestarcodex.com
-
Consider a very formulaic conservative radio show. Every week, the host talks about some scandal that liberals have been involved in. Then she explains why it means the country is going to hell. I don’t think the listeners really care that a school in Vermont has banned Christmas decorations or whatever. The point is to convey this vague undercurrent of “Hey, there are other people out there who think like you, we all agree with you, you’re a good person, you can just sit here and listen and feel reassured that you’re right.” Anything vaguely conservative in content will be equally effective, regardless of whether the listener cares about the particular issue.
I've probably read this post half a dozen times over the last 10 years.
This is the first time that I've noticed (and—now—am able to appreciate) that this paragraph is deliberately crafted to, in part, have the same effect as what it's actually describing.
-
-
github.com github.come18e1
-
The e18e ("ecosystem performance") community and initiative is driving to improve performance across the JS ecosystem.
s/JS/NPM/
-
-
bvisness.me bvisness.me
-
This post was updated in November 2025 to remove a reference to a JS-ecosystem cleanup initiative which I no longer wish to support.
It was "e18e" https://e18e.dev.
See commit 03edd03c3268.
-
-
log.schemescape.com log.schemescape.com
-
It's 450 KB (static binary, including templates for this site, gzip compressed) It builds my ~140 page site in 300 ms (wall clock time, on an 11-year-old old laptop) It performs acceptably on a 28-year-old laptop, running NetBSD (Pentium 166 MHz) It's trivial to compile, requiring only a C compiler, GNU Make, sed, and sh
For comparison, ANPD—describing a static site generator as an LP doc that I published in response to Jared's Show HN thread for md2blog, is 126KB. It requires no compiler, because it uses the browser's JS runtime to execute (unlike md2blog, which requires you to download Deno or a binary with Deno embedded to run it).
Note also that the numbers here also differ from the ones Jared had at the time of publication, where he had originally written:
- It's ~270 KB (static binary + templates for this site, gzip compressed)
- It builds my ~140 page site in ~150 ms (wall clock time, on an 11-year-old old laptop)
- It performs acceptably on a 28-year-old laptop, running NetBSD (Pentium 166 MHz)
- It's trivial to compile, requiring only a C compiler, make, and sed
-
- Dec 2025
-
d1wqtxts1xzle7.cloudfront.net d1wqtxts1xzle7.cloudfront.net
-
https://doi.org/10.1145/234286.1057836.
This appears to be an error, as doi:10.1145/234286.1057836 today leads to a chapter in HOPL II for "A history of C++: 1979–1991" (and indeed the authors have linked to it under the appropriate entry elsewhere in the works cited section of this paper).
-
This is:
Cox, Brad J., Steve Naroff, and Hansen Hsu. 2020. “The Origins of Objective-C at PPI/Stepstone and Its Evolution at NeXT.” Proceedings of the ACM on Programming Languages 4 (HOPL): 82:1-82:74. https://doi.org/10.1145/3386332.
-
-
-
Git-based wikis like Gollum
by which the author means the types of wikis that aren't wikis.
-
-
engineering.grab.com engineering.grab.com
-
The monorepo has a total uncompressed size of 69.3 GiB, a fairly substantial figure. To put things into perspective, the Linux kernel repository, known for its vastness, currently stands at 55.8 GiB.
This perhaps puts things "in perspective", but somehow in a way that the author avoids attaining the (or, if you prefer, demonstrating) the corollary self-awareness that one would expect (having had things put into perspective, and all).
-
-
borretti.me borretti.me
-
Computers mediate every aspect of our lives
Now that's some solipsism.
-
I wish people's works were more online—more accessible (preferably, with stable, citable URLs). But to say that the people themselves should be more public in the sense that the author means here is just a continuation-without-lessons-learned of the modern (Facebook and onwards) social networking era.
It's great if all of a person's contributions to, say, mailing lists are preserved and available—and aren't just holes, missing from the record.* That's different from whether or not it's great to be able to click on that person's name, find a profile page for them, and then encounter an exhaustive, reverse chronological feed of all of their activity across all mailing lists. Mailing lists rarely enable this, but virtually every modern social network does, and they're actually built around it.
The former is topic-based indexing, and the latter is actor- (person-) based indexing. Actor-based indexing is bad, and we know that it's bad.
Actor-based indexing is like running into someone you know (or a stranger, even) at the post office and then, through some mechanism where their physical presence wired to some metaverse data source, being able to perform some tap/gesture at the virtualized floating bubble over their heads that lets you see all the public places where you would have seen them earlier that day if you had been at any one of those, and then having a log of every interaction for the day prior, and the day before that, and so on, stretching back over their entire life, including the grocery store, the restaurant, the houseparty they were at, their work, etc. This would be bad. That means it's not good. And it's not good "online", either, for the exact same reasons.
* as unfortunately, many Mastodon (and other ActivityPub-powered) interactions turn out; Mastodon happens to achieve the worst of both worlds!
-
-
onlinebooks.library.upenn.edu onlinebooks.library.upenn.edu
-
Brock, Lynn: Colonel Gore's Second Case
This is available at UT PCL:
https://search.lib.utexas.edu/permalink/01UTAU_INST/3307f/alma991020623129706011
-
-
devblogs.microsoft.com devblogs.microsoft.com
-
garbage-collected languages
That's "garbage-collected language implementations" (or, in this context, just "garbage collection").
Programming languages are languages. They're notation. They're inert. They can't have garbage collectors.
The presence of GC is a memory management implementation strategy—a choice—of a given programming language implementation. C, for example, is neither a "garbage-collected language" nor a "non-garbage-collected language".
GCC doesn't have a garbage collector for C programs, and neither does Clang, but GCC and Clang are not "C"; C is a programming language, and GCC and Clang are programming language implementations. You could write a C implementation in the vein of SpiderMonkey or the compiler/runtime from the golang.org toolchain (one designed to parse and run programs written C instead of JS or Go) if you wanted to.
-
-
www.jwz.org www.jwz.org
-
Every time I encounter Python I know I’m about to lose an entire day in build/dependency hell.
-
I don't know. All I know is that any time something depends on Python I end up wasting an hour figuring out how to set up its own entire VM or some shit just to sed a Makefile.
-
-
srconstantin.wordpress.com srconstantin.wordpress.comRa1
-
the sense of “everyone but me is in on the joke, there is a Thing that I don’t understand myself but is the most important Thing, and I must approximate or imitate or cargo-cult the Thing, and anybody who doesn’t is bad.”
I mentioned Rhesus ladders in another comment (https://hypothes.is/a/gvP9DmJfEeyj-zfV0Z4Zsw) and also the relationship to Chesterton's fence in reply to a comment from someone else (https://hypothes.is/a/r7YFemJgEeymEnOBlFNH5A), but this captures the spirit of my comments elsewhere about false diagnoses perfectly.
-
-
simonwillison.net simonwillison.net
-
Suggestion:
Given a URL, check whether a page (specified by another URL or by file upload) links to that URL, and if so where/how.
-
there’s no reason not to use it in HTML tools
Not quite.
-
-
simpleobservability.com simpleobservability.com
-
The first problem is that the build breaks on non systemd systems such as macOS. Since libsystemd is not available, you cannot build from or cross compile to Linux. You must build from a Linux system.
You can, you just can't easily do it with with clang or GCC.
This is a long-standing problem with compilers that the Zig folks and the Go folks have thankfully recognized as silly and decided to approach in a different way within their respective ecosystems.
-
-
news.ycombinator.com news.ycombinator.com
-
No such user.
NB: "davidy123" is vid
-
-
anil.recoil.org anil.recoil.org
-
The latter is significantly cleaner, since the "archival" version actually uses my blog feed instead of the original HTML. The feed reader version strips out all the unnecessary display gunk
-
-
www.trs-80.org www.trs-80.org
-
He looked at me incredulously and said, “Fortran is a compiler. It’s a computer program like any other. Only it happens to take source code as its input, and puts out machine code.” There was a long pause, then I said, “Someone wrote that program?” I was stunned. I don’t know where I thought the compiler came from — Mount Olympus, maybe?
Crenshaw's humility notwithstanding, I'm frequently caught off guard by frequent interactions with people whose conversational posture reveals that they have a similar conception of software like, say, Windows—their comments a manifestation of a seemingly total unwillingness to confront the fact that, no, some observable behavior in software isn't just how computers work, but that someone—a human programmer—sat down and decided to make it work that way—that it isn't just some natural property of computers that someone has coaxed out of one, and that other instances of software creation are not mere parlor tricks. They're procedures. They have to be conceived of and then worked out and (ideally) made airtight against a whole range of conditions.
-
-
jon.recoil.org jon.recoil.org
-
The fact that the above SVG still works after two decades is a testament to the durability of the format.
It's rather more a testament to the durability of W3C standards generally—something that is now under attack by WHATWG member orgs.
-
-
perell.com perell.com
-
Of all the tactics inspired by Nat Eliason, this is my favorite. As you’re writing, put “TK” anywhere you aren’t sure of a detail, or where you need to add more context later. One of the main reasons we stop writing or fall out of flow is getting stuck on some detail giving me trouble, and by dropping in a TK to come back to it later, I can maintain the flow. Why TK? Think of it as “To Come.” It reminds me to add more context later. That letter combination doesn’t appear in any English word, so when you CMD+F for it after you’re done writing, you’ll only find the instances where you used it as a place marker.
This entire section is plagiarized from Eliason. Bizarre.
-
-
andrewvittiglio.com andrewvittiglio.com
-
unless you’re an Evan Wallace level programmer — heads up, you’re not — the only way around it is to migrate to lower-level languages with more granular memory management
This doesn't follow.
It's way easier for a mediocre programmer to tune the naive implementation of a program in order to sidestep some of the GC costs than it is for the same programmer to pick up and capably wield a "lower-level language" that requires manual memory management. Anyone with the skills to do the latter is going to be capable of the former.
-
-
mastodon.social mastodon.social
-
I'm using typescript for my Bike Outliner 2's new extension system. It's great in every respect, except to take full advantage you need to setup a node dev environment and perform a build step.
-
-
pqnelson.github.io pqnelson.github.io
-
This is the question which you should really be asking yourself when considering literate programming as a solution, because it’s the question to be asked when looking at any proposed solution. What are you trying to accomplish?
It's recursion:
-
Note that in addition to the followup that the author has added to this article (in Feb 2025), he has written a subsequent Tutorial on CWEB article.
-
The goal in writing is to write for the reader. This is hard even under the best circumstances. Rewriting literate programs enjoys the worst aspects of both rewriting prose and rewriting code.
-
Probably the biggest hindrance to literate program today is that no one cares about preserving knowledge. Silicon Valley tech-bros don’t care about the humanities and believe that knowledge could never be lost (and, even if knowledge were lost, who cares anyways?).
-
defeats the purpose
Does it defeat the purpose, or is it a form of redundancy?
-
When programming, it’s not uncommon to write a function that’s “good enough for now”, and revise it later. This is impossible to adequately do in literate programming. It happens a lot more with explanations, and you see this in Crafting Interpreters where Nystrom refactors portions of code into new functions. This is impossible to adequately do in Knuth’s WEB (or CWEB) approach.
-
I’m not sure that Nystrom was even aware of the notion of “literate programming” when he wrote his book
-
I would argue the only example of a successful literate program is Bob Nystrom’s Crafting Interpreters
Same.
-
First write the problem statement
I'm amazed by the number of programmers who, having already written down how the problem gets solved, attempt to document/comment their code and don't realize that this is what should be their fundamental concern—what problem does this solve?
-
-
andrewkelley.me andrewkelley.me
-
This is a question that the music industry faced head-on, and they came up with EULAs
huh?
-
-
-
For those who don't know, Warner Bros keeps this anachronistic website online
-
-
unplannedobsolescence.com unplannedobsolescence.com
-
In Rust, the tooling can answer a lot more questions for me. What type is cookie_token? A simple hover in any code editor with an LSP tells me, definitively, that it’s Option<String>.
It's common enough to wonder about function behavior on null, undefined, etc., so consider "an LSP" (read: editor plugin) that could synthesize these annotations and insert the appropriate disclosure/disclaimer at the head of the function like this.
-
-
www.colbyrussell.com www.colbyrussell.com
-
What could be more beneficial to a user of free software than ensuring that its codebase is clean and comprehensible for study
Sheon Han proposes something similar in Wired in February 2023: Software Criticism. https://www.wired.com/story/software-criticism/
-
- Nov 2025
-
seriot.ch seriot.ch
-
The problem with this page is that the author is playing fast and loose with the words "parser" and "parsing". It's also not totally honest (or is yet again confused) about e.g. what the IETF RFCs say about parsing high precision numbers.
-
-
news.ycombinator.com news.ycombinator.com
-
The idea that the permanent record of the internet could hinge on the ethics of one stranger behind a server rack is deeply unsettling.
It doesn't. No one should be relying on archive.is to fill this role today. It's like never putting a passcode on your phone and just treating it accordingly—as an insecure/untrustworthy device—or proactively working to revoke a leaked API key as soon as you discover that it has been leaked and just assuming that a malicious actor has already come across it and is planning to put it to use even if they haven't already done anything.
-
-
getwacup.com getwacup.comWACUP1
-
It is however not being done as an open source project & there are other options out there if that's something you need your software to be. It does rely on open source libraries & a number of modified plug-ins for which their changes are being provided to comply with their code licensing requirements. Ultimately I don't want to spend the time to run a properly done open source project when there's no guarantee of any assistance vs the overhead involved & my time management isn't great so spending more time on project management isn't imho a good use of my time.
-
- Oct 2025
-
www.henrikkarlsson.xyz www.henrikkarlsson.xyz
-
my personal experience, which is that whenever I write what I think about a subject, it always turns out that my thoughts do not hold up on paper? No matter how confident I am in my thoughts, they reveal themselves on the page as little but logical holes, contradictions, and non sequiturs.
Pre-emptive note: it seems logical that the very next paragraph references Paul Graham directly; my very next move was going to be to connect the writer's self-reported experiences here with Graham on writing, had it not been the case that that job was already done.
As I've said before: I'm not in the same boat with Graham on the writing-is-thinking stance. The difficulty with seeing my own thoughts fixed in words after an initial pass is not in their inadequacy or their being a source of illusory and fleeting comfort with said illusion now made stark for everyone to see, but a mixture of (a) a lack of "punch", and/or (b) the places where a dishonest broker could exploit the yet-to-be shored up wording to suggest/assert the presence of some weakness in thought regarding the thing being argued for, where such purported weakness would be the real illusion.
The lack of satisfaction I feel when trying to capture my thoughts in English (my first language) isn't too far off from the lack of satisfaction at being able to comprehensively express a simple declarative in another language only because of the fact that don't know, say, the right word for the noun in that language. It doesn't lead me to agonize about how well-supported my observations about a backhoe are just because I've never been introduced to the word for backhoe in that language.
-
-
www.crummy.com www.crummy.com
-
I had no choice but to create a bot. Here's Secretly Public Domain
Following the demise of botsin.space (cf https://muffinlabs.com/posts/2024/10/29/10-29-rip-botsin-space/), the author evidently has the bot now posting to https://mas.to/@SecretlyPublicDomain instead.
Tags
Annotators
URL
-
-
botsin.space botsin.space
-
Traveller:
You are looking for https://mas.to/@SecretlyPublicDomain.
Tags
Annotators
URL
-
-
www.copyright.gov www.copyright.gov
-
21,441
I find it strange that this number differs from the one given on the previous page ("Totals...[…] 21,533").
Point 4.c. does indicate that "102 claims were rejected", but this is not the same the difference observed (which is 92), and it's stated that the 102 rejected claims come from "a survey [i.e. sample] of some 10,000 renewal applications".
-
-
www.reddit.com www.reddit.com
-
The U.S. copyright office wrote in 1961 that fewer than 15% of copyrights from 1924-1961 had been renewed.
This is a curious claim that I cannot substantiate. After looking around, I see the same claim in Wikipedia's article for Copyright renewal in the United States, but the cited source (Fishman, Stephen; 2010. The Public Domain: How to Find & Use Copyright-Free Writings, Music, Art & More) doesn't appear to provide a robust citation. (On page 287 in Chapter 15, Fishman writes, "The Copyright Office estimates that only about 15% of pre-1964 published works were ever renewed", unaccompanied by a footnote.) One also notices that 1961 and 1964 are not the same year.
I stumble across a similar claim ("a 1961 report from the U.S. Copyright Office estimates that 85% of the books never had the copyrights renewed") on lcgsco.org, which disappointingly turns out to be the website for "Larimer County Genealogical Society", with no link to the report in question.
The Copyright Office does make available its historical archive of annual reports at https://www.copyright.gov/history/annual_reports.html. Could its annual report be the one referred to? Searching for the string "renewal" in the 1961 annual report turns up two noteworthy occurrences (out of a reported nine):
-
on page 2, a claim related to renewals mentioning a "15 percent" figure
-
on page 16, a description of "Studies 29–31 [… including …] 31. Renewal of Copyright"
The full sentence on page 2 where the "15 percent" figure appears is actually that "The year's increase in registrations was nearly 3 percent, this was counting a 15 percent decrease in renewal registrations, the result of the corresponding decrease in original regisrations 28 years previously." This is, troublingly, not the same thing as fewer than 15% of copyright registrations until 1961 being renewed. (It is not even the same as only 15% of registrations up for renewal in 1961 being renewed.) It is a 15% decrease in renewals relative to the prior year, i.e., number of renewals in 1961 compared to the number of renewals in 1960. If this is the report that the is meant to be the source for those claims of 85% non-renewal, it then it fails verification.
I have also come across a reference for renewal figures in a 2008 article in D-Lib Magazine (Peter B. Hirtle, "Copyright Renewal, Copyright Restoration, and the Difficulty of Determining Copyright Status"). Footnote 4 there cites the same Study 31 (attributed to a Barbara Ringer). Interestingly, it is not cited as a way to substantiate the 15% claim, but instead that "only 7% of registered copyrighted books" were renewed. It's not clear from context whether that claim is meant to be about the full range of potential renewals up to 1961, or merely the subset of works up for renewal in 1961.
At the time of this comment, I have not yet looked into Study 31 itself. I expect it to contain answers.
-
-
-
www.copyright.gov www.copyright.gov
-
g a 15percent decrease in renewal registration
I've come across lots of claims online (e.g. https://lcgsco.org/the-majority-of-books-published-before-1964-are-free-of-copyrights/ and the current revision of the Wikipedia article on copyright renewal in the United States) that "A US Copyright Office study in 1961 found that fewer than 15% of registered copyrights had been renewed". I haven't been able to substantiate this claim, however.
Could this passage be the source? It clearly doesn't line up with the claim.
-
-
www.propublica.org www.propublica.org
-
“We think there’s no normal way to act on a 911 call,” said the lead investigator, Jessica Salerno, a social psychologist at ASU. Given the gamut of human emotion, she explained, anyone claiming to know the right and wrong way to speak during an emergency has seen too much television.
It's nuts that this has to be said.
-
-
www.reddit.com www.reddit.com
-
The clear hidden wink and nudge is “clearly this means she’s obviously 100% a plant from that side!” What else was said in that speech? Maybe show a whole 3-4 minutes? But that would be boring and you can’t do the whole show a fast snip and then wink wink at your audience about “aha but we all know what this really means don’t we folks!
/u/Choperollo describes something for which we have no name and would not be accurately described as a dogwhistle but still shares some similarities and is now common/prevalent enough that we would perhaps benefit from being able to refer to it by name to discuss it.
-
-
drshapeless.com drshapeless.com
-
I am just a hobbist. I enjoy using the cutting edge technology and framework just for fun. Now the fun is going to cost me money. I do not make any money with my service.
This is belied by earlier admission about how he's putting the library to work, at his work (and which even uses the word "professional"!).
-
-
pubsub.leastfixedpoint.com pubsub.leastfixedpoint.com
-
Tweetback looked promising but it seems to have rotted slightly. Or perhaps my node.js config wasn't in good condition? Either way it didn't work out of the box for me
-
-
landley.net landley.net
-
Since GPLv3 split "the GPL", a lot of programmers (and companies) categorically refuse to get GPL code on them anymore.
I have not come across that. I have only come across an allergy to GPLv3 in particular. And all those companies are seemingly happy to continue shipping GPLv2(+), as the next sentence indicates re Apple.
-
Before this, copyleft was simple and let programmers ignore most of the legal issues around software licensing. We had a universal receiver license acting as a terminal node in a directed graph of license convertibility, and had a simple binary decision: "is this license GPL compatible or not?" If it is, treat it like the one license we're familiar with, if not ignore it. And we're done, we don't have to be lawyers. But with GPLv3, you now have to police all your contributions because "it's GPL" doesn't mean "my project can use it".
I dunno. "Is this licensed as GPLv2-or-later (or compatible)?" still works (and is really the same question that was being asked all along)—nothing really has changed (except for the proliferation of projects that are a GPL for which the relevant answer is "no"—but, still, the question didn't change).
-
- Sep 2025
-
web.archive.org web.archive.org新しいタブ1
-
This page is a great example of why I don't use GitLab.
WTF.
-
-
arstechnica.com arstechnica.com
-
judgment
"settlement"?
-
a confidential resolution of all claims and will have no further public comment on this matter
Why shouldn't the resolution be available for reading at archive.org?
-
-
news.ycombinator.com news.ycombinator.com
-
From an optimistic perspective:
~10 articles per month sounds like the perfect publishing pace for a blog, and more academics should be blogging.
What if the submissions to the aforementioned low-quality journals were just a bunch of 6 pagers that were actually originally intended for syndication to the author's website and also just happened to also get wider distribution in those suck journals?
And a separate question: might it be conceivable that this could turn out to be an effective way to actually bootstrap high-quality research output and a healthy ecosystem of professional/academic blogs (in the vein of the parable of the pottery class https://austinkleon.com/2020/12/10/quantity-leads-to-quality-the-origin-of-a-parable/)?
-
-
riku.miso.town riku.miso.town
-
Response #1
It would be nice to be able to have good subject lines. I'm thinking that if you register your form, then you should also be able to register a template string that can be used to build a good subject line (like "Riku key request for riku@x.colbyrussell.com"—built from
Riku key request for ${email}).
-
-
behavioralscientist.org behavioralscientist.org
-
In my first year of college, I was biking back through campus one lovely fall day when I saw a large group of fellow students gathered enthusiastically around a truck from the California burger chain In-N-Out. Maybe they craved a taste of home. But in Michigan, where I was from, there are no In-N-Outs. I’d never heard of it. Feeling excluded from the burger party, I biked off in a huff to eat my lunch in the dining hall alone. I remember thinking, I’m not standing in line for a burger! What was my problem? As an 18-year-old, I certainly didn’t want to think of myself as feeling that I did not belong in college. And I definitely didn’t want to think that an In-N-Out truck could trigger that feeling. How ridiculous that would be.
Tags
Annotators
URL
-
-
www.theguardian.com www.theguardian.com
-
the look of quiet mortification on his face
-
-
xeiaso.net xeiaso.net
-
We all dodged a bullet
-
a near Jia Tan level
-
This is frankly a really good phishing email. Breaking it down: It greets the user personally with their NPM username. This makes it look personalized, so people are more likely to trust it. People are used to the idea of changing passwords for security. With that in mind, at a glance the idea of changing your two-factor auth credentials "for security reasons" isn't completely unreasonable. NPM has always been kinda weird compared to other open source package repositories, so them requiring something strange like that reads as reasonable. It sets a deadline a few days in the future. This creates a sense of urgency, and when you combine urgency with being rushed by life, you are much more likely to fall for the phishing link. It links to a website (I'm assuming it's on npm.help), and that website is used to get the two-factor credentials somehow and then start publishing new packages with the exploit code.
What many analyses fail to highlight is that NPM has been sending a lot of really pushy emails about two-factor authentication settings over the last couple years.
Perversely, this cargo culted best practice led to worse security.
-
These kinds of dependencies are everywhere and nobody would even think that they could be harmful.
-
-
jdstaerk.substack.com jdstaerk.substack.com
-
Even though some of the affected versions are currently being removed from npm, some are still available. So please use overrides in your package.json.A malicious package can still be pulled in if another dependency requires a vulnerable version range. Use the overrides feature in your package.json to force a specific, safe version of any package across your entire project.
Perhaps the most irresponsible thing of the last week is that among possible mitigations, to give priority to exercising even more features of the poorly conceived
package.json-based system, especially where it is redundant (but inferior) to a mitigation scheme that consists of checking the given source code revision into the revision control system.This omission is especially absurd in relation to stuff like the
has-ansipackage, which hasn't had a substantial change in years.
-
-
-
It works as well as you’d expect an operating system to work in a browser.
The author also keeps saying "operating system" like this as a euphemism for "desktop environment" or "graphical shell", which is kind of annoying.
-
Often times, I’ll want to refer to different pages at the same time. So I’ll CMD + click “a couple times” while browsing around and before I know it, I have 12 new tabs open – all indistinguishable from each other because they share the same favicon.PostHog.com has the same problem – especially as the site has grown from supporting a handful of paid products to over a dozen.As I looked for ways to solve this explosion of pages, I started to question many of the typical patterns that marketing & docs websites have today.Long-form scrolling. Oversized footers. Absurd whitespace.These website encourage scrolling, but just to get people to the bottom of the page? And then what?Why are we doing this? What if we just made better ways to consume content?That’s the idea behind the new PostHog.com.
The absolute last thing I want here is to delegate decisions about interaction style and the implementation of application-level affordances to the person supplying the content.
-
-
wordsmith.social wordsmith.social
-
always happy to have me on team photos to add some colour and progressiveness to the image
-
it was all a scam, that everyone else knew it was all a scam
Is there a word/encyclopedia entry for this? We need it.
-
-
-
There's some additionally complexity because of something called the "lexer hack". Essentially, when parsing C you want to know if something is a type name or variable name (because that context matters for compiling certain expressions), but there's no syntactic distinction between them: int int_t = 0; is perfectly valid C, as is typedef int int_t; int_t x = 0;. To know if an arbitrary token int_t is a type name or a variable name, we need to feed type information from the parsing/codegen stage back into the lexer. This is a giant pain for regular compilers that want to keep their lexer, parser, and codegen modules pure and plantonically separate, but it's actually not very hard for us! I'll explain it more when we get to the typedef section, but basically we just keep types: set[str] in Lexer, and when lexing, check if a token is in that set before giving it a token kind
It's strange how much appeal "the lexer hack" has for being such a bad solution to the problem.
The most reasonable thing is to just not care about whether your lexer can distinguish between whether an identifier refers to a type or to another sort of identifier. Just report that it's an identifier. In practice, this doesn't very much change how you have to implement the parser, and the symbol table can remain local to the higher-level parser machinery where it was always going to be anyway.
The lexer hack sucks.
-
-
-
You can see where we're going. If our goal is to minimize copying, it would be better to copy a fundamental type once than to generate a pointer, copy that, then dereference that pointer to get the underlying value. That is the crux of this subtle optimization trick.
This isn't subtle. It's intuitive and obvious, being presented as if it's non-obvious. I kept waiting for the punchline.
I guess you can get here if your main mode of thinking is dealing in opaque "best practices" like "use references because it makes your code faster".
-
- Aug 2025
-
www.fourmilab.ch www.fourmilab.ch
-
I video taped the interview in order to document any divergences
This struck me as an obviously good idea the first time I came across something similar where Wikileaks published their recording of an interview of Julian Assange by some large news organization (who published their own copy that they owned the rights to).
-
-
www.usenix.org www.usenix.org
-
we couldlearn from the history and design a better file format:• Each part of a format must be unambiguously located. Itis a bad idea to rely on fragile signature searching.• Conflicting data resolution should be clearly defined,ideally by avoiding redundant data in the first place.• Leave room for backward-compatible feature extensions.Make it clear whether an extension is enabled or not.• Fields that are allowed to be silently ignored should notcontain security-sensitive data. For example, the extrafields in ZIP should not contain filenames and sizes.
Ideally, one would (above all) maintain compatibility with at least ISO/IEC 21320-1:2015 and, as a baseline concern, follow the lead of the design of PNG and specify a means by which to identify definitively (a) whether a data block at a given offset is a ZIP-level "chunk" versus random noise, and if so (b) the extent—i.e. size—of said chunk, so that implementations know how to confidently determine the chunk boundaries to skip over them, even if they don't have intrinsic knowledge the offsets and bitwidths of the fields in that struct.
-
Normalize the ZIP file. To exploit ZIP parsing ambiguities,the attacker usually needs to carefully manipulate the fieldsof a ZIP file, which cannot be achieved by a regular ZIParchiver. Most ambiguities will disappear if the ZIP file isfirst extracted and then repacked. Therefore, if we care aboutonly the contents but not the integrity of the whole ZIP file,we can normalize the ZIP file by extracting and repacking itbefore processing.
This really seems like the best strategy—to ensure that Parser2 sees content the same way that Parser1 sees it, you can effectively give Parser2 Parser1's powers by having Parser1 "talk" to Parser2 by way of a specially prepared input. (It just happens to be the case that that input also looks like a ZIP archive.)
This does require some validation of the suitability for Parser1 and Parser2 to work together, but it's not any more difficult than the previous task at hand whereby you expect/require Parser1 and Parser2 to behave exactly the same for all inputs. The task is made slightly easier. And to this end, a test suite (derived from the work from this paper) could be distributed for the purpose of benchmarking implementations for compatibility matches.
This could be facilitated by the appropriate libraries/packages all being patched to support a "normalize" (i.e. "repack") operation (and for this to be the norm among all implementations) explicitly for this purpose.
-
there is no de facto standard
This is simply not true. The de facto standard is "the behavior of PKZIP, circa 30 years ago". Conveniently, PKZIP happens to be shareware (at least the versions of interest here). One confounding factor, as documented by Jason Summers's blog, is the difficulty of getting your hands on bonafide PKZIP originals. https://entropymine.wordpress.com/2019/07/27/will-the-real-pkz110-exe-please-stand-up/
-
The ZIP64EOCDR can be located based on the ZIP64 EOCDL, or bysearching for its signature
-
TheZIP64 EOCDL can be located by a fixed offset from the regu-lar EOCDR, or by searching for its signature
-
someparsers assume that the EOCDR immediately follows thecentral directory with no gap between them, and thus use thecentral directory size to determine its position
-
-
support.pkware.com support.pkware.com
-
Dear wanderer:
You are looking for https://support.pkware.com/pkzip/application-note-archives.
-
-
news.ycombinator.com news.ycombinator.com
-
ZIP is just not a very well defined format
The purported ambiguity in the implementor's notes is overstated. With exactly one exception, all of the concrete criticisms I've ever come across (including, unfortunately, some of the specific ones woodruffw echoed in the Astral blog post earlier this month) come down to implementors just flat-out doing the wrong thing (e.g. disregarding the central directory entirely), or, when presented with the choice of:
-
doing the obviously correct thing, versus
-
taking a really, really, really obtuse position that a particularly strained reading justifies an implementor's decision to do certain things (like trying to infer the position of the central directory instead of just using the field that is explicitly labeled for that purpose—bonus points if accompanied by complaints that the field is "redundant")
... they go for the latter, out of a seeming inability to say, "Whoops, how silly of me," and just fixing their damn (mental model and corresponding) implementation.
-
-
-
blog.pypi.org blog.pypi.org
-
These design considerations meant that the ZIP standard is complicated to implement, and in many ways is ambiguous in what the "result" of extracting a valid ZIP file should be.
Not really. The correct behavior is, well, correct. There are just a lot of people who either succumb to taking (frankly bizarre) shortcuts or stubbornly insist on reading the spec the wrong way.
-
multiple End of Central Directory headers
This surely means "multiple End of Central Directory records". To reject archives with multiple headers would mean accepting only archives that contain a single file.
-
The correct method to unpack a ZIP is to first check the Central Directory of files before extracting entries
-
-
news.ycombinator.com news.ycombinator.com
-
I commented on earlier HN threads re: removal of XSLT support from HTML spec and browswers, IBM owns a high-performance XSLT implementation
It's here: https://news.ycombinator.com/item?id=44955771
(NB: there is no more detail in the referenced comment than what is stated here.)
-
-
www.seangoedecke.com www.seangoedecke.com
-
WE DO NOT BREAK USERSPACE
If only full-stack developers actually cared about the user who is sitting in front of a Web browser (i.e. end users) as much as they cared about the "users" of their APIs who are sitting in front of a text editor (i.e., programmers).
-
-
daniel.haxx.se daniel.haxx.se
-
a server can send a header as a continuation of the previous header by adding leading whitespace
-
-
www.crowdstrike.com www.crowdstrike.com
-
Go’s ZIP archive extraction starts looking from the start of the compressed data.
-
-
news.ycombinator.com news.ycombinator.com
-
What a waste of total bandwidth and disk space everywhere.
What until you're motivated to articulate what you thought the value proposition of NPM-style build-time package fetchers actually ever was and then eventually settle into the realization of how little disk space has been saved in the whole scheme, how much bandwidth has been wasted on thousands of redundant package fetches, and the immeasurable amount of human toil and the resulting hit to the world's creative output from overlay version control systems instead of just leaving the version control to the DVCS that you're using.
-
-
immich.app immich.app
-
There is a user in the JavaScript community who goes around adding "backwards compatibility" to projects. They do this by adding 50 extra package dependencies to your project, which are maintained by them.
Of course, this is another example where people say "JavaScript" and mean "NPM".
-
Git can be configured to automatically convert LF to CRLF on checkout and CRLF breaks bash scripts.
The last time I looked, around 8 years ago, of the multiple settings that Git offers wrt line endings, there was no combination of any of any of them that would do the most reasonable thing, and all of the advice and documentation around use of these settings were wrong. The best course of action was to use the defaults and just deal with it.
-
Image dimensions in EXIF metadata are cursedThe dimensions in EXIF metadata can be different from the actual dimensions of the image, causing issues with cropping and resizing.
It's strange that EXIF even includes such properties—what's wrong with the image's existing dimension fields?
-
-
-
APPNOTE section 1.4.
This section doesn't appear in all revisions of the APPNOTE. Notably, it doesn't appear in revision 1.0, nor does it appear in 6.2.0, which is the basis for the ISO standardized ZIP spec.
-
Python's zipfile interprets it as relative to the EOCDR
Huh? For the reasons above, I would be very, very surprised if this were true and Woodruff isn't just confused. This would make it incompatible with the vast majority (virtually all) ZIP-producing software. (Is there any implementation which actually works this way?)
-
Unfortunately, the ZIP specification is ambiguous about the nature of this offset: it's not described as either absolute (i.e. from the start of the ZIP) or relative (i.e. from the EOCDR's own offset).
It would take a very strained reading to end up with a misunderstanding aligning with the latter behavior (and it's very unfortunate that the "relative"/"absolute" terminology was chosen here, as where "relative" appears in the spec, it is used to mean almost the exact opposite of how it's used here—the relativity of the "relative offsets" mentioned in the spec are explicitly described as being relative to the start of the "disk" (which in almost all cases constitutes the only "disk" comprising the archive—i.e. it's the offset from the start of the file).
-
-
news.ycombinator.com news.ycombinator.com
-
I don't think I've seen a single person bring up the classism inherent in dictating gentlemanly manners.
Here, or in general?
I do think about this a lot. This is a nice, succinct way to put it. (Critique, though: "classism" is not the best way to put it. For better or worse, "privilege" is probably one of the best words we have for this. Separately: Since "privilege" became a staple of common rhetoric, I've mused a lot about trying to convince people to minimize the focus on "privilege" (to avoid the familiar kneejerk reactions from those hearing it who have associated it with overuse), with the intent to be to sway people instead by speaking about privilege without actually using the word "privilege" and speaking exclusively in terms of affordances*.)
See: https://hypothes.is/a/TCB5zClKEeyrIOu9mp-5TA and
tag:"privilege vs affordance". (NB: Hypothes.is doesn't linkify the tag in the preceding annotation correctly.)
-
-
prog21.dadgum.com prog21.dadgum.com
-
find out that I didn't have the whole picture, the problem was messier than it first appeared, and there were perfectly valid reasons for the code being that way
I've tried using a hiking metaphor to describe a similar phenomenon (specifically, and perversely, as a preface when trying to explain second panel syndrome.
-
- Jul 2025
-
www.onebigfluke.com www.onebigfluke.com
-
When you own your domain name this is trivial.
It's not. It assumes that if you have your own domain, you're also able to configure/patch the server to be an active participant in the Webfinger protocol—you can't do anything to add Webfinger support to your static site, for example. This is one reason that makes Webfinger a bad protocol.
-
-
www.w3.org www.w3.org
-
Hence the difficulty in people seeing the point of getting Solid for just one app.
I explained in a post to Mastodon somewhere that the issue lies in trying to sell, to users, the infrastructure.
For Solid to succeed, it needs to get into the hands of people, and to get into the hands of people, it needs an app that incidentally uses Solid—you're never going to convince the majority of end users to adopt Solid on its merits. They need to experience it—something that TBL should be acutely aware of, since this is what drop adoption of the WWW.
-
-
muse.jhu.edu muse.jhu.edu
-
Students read each sentence out loud and then interpreted the meaning intheir own words—a process Ericsson and Simon (220) called the “think-aloud” or “talk-aloud” method. In this 1980 article, the writers defend thisstrategy as a valid way to gather evidence on cognitive processing.
Speaking (or typing, as in the case of transcription) has a substantially negative effect on my ability to process the same amount of information as silent reading.
Later, the authors of this paper state that subjects who were "uncomfortable" with reading out loud had the option to read silently.
I don't doubt the conclusions of the paper, but I suspect that reading aloud actually has a deleterious effect, especially for those who are performing the act of reading without showing signs of having achieved the comprehension desired.
-
-
news.ycombinator.com news.ycombinator.com
-
I use a jekyll/CI/static hosting workflow, and even though I make a zillion git commits a day, somehow branching, editing, PRing, and merging one to my website seems like friction.
This is at the root of the infamous "Blogging vs. blog setups" comic https://rakhim.org/honestly-undefined/19/.
The fact that this is true is also the entire basis for wikis. It is reasonable to find it irksome that people, perversely, refer to Git repos full of Markdown documentation as "wikis"—which they aren't. They are fully the opposite.
Tags
Annotators
URL
-
-
jackson.sh jackson.sh
-
I don't think the current affinity for third-party dependencies is particularly harmful
You should. It is.
-
I feel betrayed that hype did not lead me to Java sooner. Java is fun to write, productive, and gets an unfair reputation among new developers as a dinosaur.
See also lkesteloot's Java for Everything.
-
-
web.archive.org web.archive.org
-
However, the high-quality, widely-available free software that is most likely to get beginners hooked on programming – to turn users into programmers – are almost always written in a UNIX style. That's why my article focuses on this culture.
Note that while this isn't true now in 2025, it wasn't exactly true in 2013 when this post was written, either. Eclipse, IntelliJ, and NetBeans are all popular IDEs that were free and (in both senses) at the time this post was written.
-
This is:
Guo, Phillip. 2013. “The Two Cultures of Computing.” Blog. December. http://pgbovine.net/two-cultures-of-computing.htm.
-
How about we use Python to process real-world data and then draw a few charts? Okay sure, let's fire up our trusty 1960s-era text editor (not Microsoft Word) and write some code. Wait, first we need to install the proper add-on libraries such as NumPy and Matplotlib. [an hour of troubleshooting later, especially for Windows users ...] Okay, let's write some code. [type, type, type] Yeah, isn't this fun and intuitive? Python makes it all so easy ...
-
-
blog.jonudell.net blog.jonudell.net
-
Note how the Select declares the property id="lines". That makes lines a reactive variable.
That's a strange way to put it. Surely this makes
linesrefer to theSelectelement—and the properties (such aslines.valuebelow) are just natural, first-class properties of that element?If not, and there's something else going on here, that's an unforgivable overloading of the "id" attribute, which is already intrinsically significant in XML for orthogonal purposes. This needs to go.
-
You shouldn’t need a React-savvy front-end developer to help you make routine changes to your site.
Yeah. Web authoring is really just desktop publishing—except in its current state, foiled by the JavaScript industrial complex.
-
-
hypothes.is hypothes.is
-
These annotations com from the use of https://github.com/dwhly-proj/DailyJournal which sends you an email, waits for your reply, then posts it as a top-level annotation targeting the dummy URL
http://my.journaland tagged with DailyJournal.
-
-
-
Our video annotation capability works for public YouTube videos that have either human or machine-generated transcripts. The video you’ve selected does not have one or is a private video or is not a YouTube video.
@dwhly docdrop.org is broken.
-
-
www.forrestthewoods.com www.forrestthewoods.com
-
I declare that IMGUI performance is pretty gosh darn good! Some readers might have predicted IMGUI to be significantly worse as RMGUI. Instead we see numbers that are in the same ballpark.
Maybe, this is true, but it's not a conclusion we can draw from these tests. In choosing programs to benchmark, he selected notorious behemoths to pit against the IMGUI set—which, it should be noted contains stuff like Dear ImGui and EGUI, which aren't even apps.
And later, in the Windows benchmarks, he shows that the two apps—the only apps—in the IMGUI set actually perform worse than the others. The fact that RAD Debugger has a heavier power draw than clunky Electron apps of all thinks like VSCode should be considered evidence conclusive in the other direction.
-