HN user

astine

5,365 karma

Employed bum.

You can find out more about me here: http://www.theatticlight.net/

topcolor=8888ff

Posts29
Comments1,854
View on HN
theatticlight.net 11y ago

Why systemd is taking over

astine
4pts0
www.space.com 12y ago

Russia Calls for Ban of US Military Launches Using Russian Rocket Engines

astine
3pts0
www.businessinsider.com 12y ago

A Wall Street Bank Initiated Coverage On Bitcoin and Identified a Fair Value

astine
2pts0
theatticlight.net 12y ago

My Experience with MongoDB

astine
1pts0
sebastianmarshall.com 13y ago

Sleeping On Time Very Underrated

astine
3pts0
theatticlight.net 13y ago

SQL schemas should have documentation strings

astine
1pts0
thedailywtf.com 13y ago

Ask WTF: Learning The Business

astine
46pts10
theatticlight.net 13y ago

Why Git Needs an Editable History

astine
1pts0
phantomjs.org 14y ago

PhantomJS: Headless webbrowser

astine
1pts0
theatticlight.net 14y ago

Functional Parsing With Clojure

astine
1pts0
news.ycombinator.com 14y ago

Ask HN: Aside from parallelism, what applications are there for concurency?

astine
1pts0
theatticlight.net 14y ago

Leaky Clojure Macros

astine
47pts11
theatticlight.net 14y ago

Blackout Day, The Public Consciousness, and a general defense of Slacktivism.

astine
1pts0
www.terminally-incoherent.com 14y ago

Howling Banshees or Striking Scorpions (Simulations to pick Warhammer units.)

astine
1pts0
theatticlight.net 14y ago

URI Prefix Middleware for Clojure Ring

astine
9pts1
www.theatticlight.net 14y ago

Facebook happy birthday bot

astine
3pts0
www.catholicnewsagency.com 15y ago

Vatican hopes iPod can bring silence to Rome’s churches.

astine
2pts0
www.needlebase.com 15y ago

Very neat webscraper

astine
1pts0
feedproxy.google.com 16y ago

Flaws of Hierarchical File System

astine
6pts2
www.dreamsongs.com 16y ago

Richard P. Gabriel: The Art of Lisp & Writing

astine
59pts14
www.danga.com 16y ago

Distributed FS: MogileFS

astine
20pts5
asdf-install.blogspot.com 16y ago

Call by Common Lisp

astine
3pts0
www.terminally-incoherent.com 16y ago

Repeating HTML Table Headers on Each Printed Page

astine
27pts3
ipinfodb.com 17y ago

IP geolocation database

astine
56pts10
go.theregister.com 17y ago

Death by Internet

astine
9pts7
www.terminally-incoherent.com 17y ago

Problems with zip files as folders.

astine
2pts1
www.terminally-incoherent.com 17y ago

AppJet: Another cloud application framework

astine
27pts8
www.terminally-incoherent.com 17y ago

Serializing JS Objects into Cookies

astine
1pts0
www.terminally-incoherent.com 17y ago

Python, Telnet and GUI-fying Legacy Apps

astine
2pts0

If you think it's silly because it's not a restaurant you go to, imagine if Coca-Cola replaced their script logo with some generic sans-serif one. Don't you think the outrage would be real?

I can't imagine being upset at something like that. I'm sure there would be people upset, given the nonsense that happened in the 80s, but being personally invested in corporate branding has got to be the saddest sort of parasocial relationship possible.

So why not just think in terms of lists, which can be nested, rather than cons-cells, which are only rarely used for anything other than to construct lists?

Because, as he continues:

Worse, any proper list can have improper list as elements. So, you can have a list of cons, or cons of lists, cons of cons, list of lists, or any mix. The overall effect of the cons is that it prevents lisp to have a uniform high level treatment of lists, with the result that development of functions that work on tree are inconsistent and few.

In other words, the fact that the implementation details for lists are so exposed means that you have to be careful when interacting with 'lists' that turn out not to be actual lists. There is no type information, either at compile or runtime, that ensures that what you're dealing with is actually a list and not something else. So you can't _actually_ think in terms of lists; you have to think in terms of cons cells which are probably lists but might not actually be so.

You'll have an equivalent of a cons cell in any linked list implementation, but you won't necessarily interact with it as a user. Look at the standard library implementation of a linked list in C# for example (https://learn.microsoft.com/en-us/dotnet/api/system.collecti...). You see methods for looping over a list, for accessing elements, for insertions and removals, but not much for directly accessing a list's nodes and manually constructing a list out of those nodes. That part is abstracted away.

I think that the author's complaint is that cons cells are too low level a construct to be exposed so prominently to the user. I think he would prefer that it was abstracted over with some higher level interface the way a lot of other language do it. He mentions Clojure as a Lisp that gets it right in his opinion and that's exactly what Clojure does. Cons cells are still available as a construct, but the default method for interacting with lists is a set of higher level functions that also work on arrays and other sequences and don't require that you think as much about the implementation of the lists.

Xah's complaint appears to be that cons cells are too low level a construct to expose to the user. He seems fine with lists in general but just dislikes how they are implemented in Lisp. If I were to implement a list in a non-Lisp language (like C or whatever,) it would likely internally include a struct called "Node" that filled the same purpose as cons cells do in Lisp. However, users of this hypothetical 'list' usually wouldn't directly interact with these "Nodes"; they would mostly be an implementation detail, as appears to be the case for most list implementations other than Lisp's. I think that Xah is wishing that was the case for Lisp as well.

Right. Presumably a car idling for ten minutes produces less pollution than a car being driven for ten minutes, but a car that is driven for ten minutes and idled for an additional ten produces more pollution than either of them. Any pollution produced by cars idling in bad traffic is superadded to the pollution produced in transit so improving the flow of traffic should reduce pollution even if the total number of cars remains steady.

Correlation may not imply causation, but where there is causation there usually is correlation. So, if there is a rise in homelessness there is likely some factor contributing to that and if a factor is correlated there is a good chance that it's causal. Homelessness may caused by multiple factors but if it's increasing and those factors are mostly remaining static then looking for the one that is also increasing seems like a good bet.

a camp fire gets plenty hot for blacksmithing - just wait for the coals and then blow on them

Maybe if you're working with bronze or copper, but iron forging requires much higher temperatures than a campfire can provide. That's why the iron age took place after the bronze age, forges capable of making iron workable were not yet invented. It wasn't a trivial invention.

I also think the gruellingly slow death of legacy media and rise of bluesky and X (and mastodon) is a net positive for society, if only for the reason that ~tweets can be immediately and transparently rebutted, whereas brainwashing ‘news’ programs can’t.

The problem with this logic is that for the most part, new media isn't replacing legacy media; it's simply placing new layer of filtering in front of it. The vast majority of people sharing information on these platforms aren't journalists doing their own research. Instead, they're getting their information from journalists and just applying their own filtering and spin. "Rebuting" usually just involves linking to different news sources. You were always better just reading the legacy media in the first place.

Presumably because he owns the site. You would think this would be the one place that PG didn't get much pushback on his opinions. I'm not too surprised though; he hasn't been very involved here for years so the culture has shifted.

Because then you wouldn't be doing unit testing; you'd be doing integration testing. You'd also probably not be testing the database in a realistic configuration and thereby missing the whole point.

Testing against a real database is an example of integration testing. Using mocks is for unit testing. Ideally, you want to do both. Unit testing entails isolating particular components for testing which is important because it let's you be more precise in what exactly you're testing. Using mocks also makes it easier to run automated tests because it means you don't need to have a database or credentials handy during the build process.

Integration testing is also important because the closer you get to running things in a production environment, the more likely you are to detect issues. Some things just won't be apparent until you start running code in production or near production. The thing to understand though, is that you want to do both if you can, not either-or.

Yes, that's true, but the problem is that these past four years have been bad for everybody, so they remember the Trump years as being better than they actually were.

This is probably one of the most dickish comments I've read in a while. I have tourettes too. I would never use it as a weapon to diminish other people's difficulties. Just because my problems are manageable doesn't mean other people's are.

The dinosaur to birds comparison isn't a particularly good one. Birds are cladistally dinosaurs, that is, the common ancestor of all birds was a dinosaur. In that sense, there are no birds that are not also dinosaurs.

That's not true with modern humans and neanderthals. A tiny amount of their dna remains in some human populations, but neanderthals are not the common ancestor of all humans. We are all descended from early homo sapiens and the tiny amount of neanderthal dna that persists is totally swamped by the homo sapiens dna.

I agree. Robots.txt is a suitable means of preventing crawlers from accidentally DOSing your site, but it doesn't really give you any protections as to how your content is used by automated services. The current anything-goes approach is just too exploitable.

No Known Bugs 2 years ago

I think that prioritizing fixing bugs, especially security related bugs, over new features makes sense for most software projects. The problem comes from defining bugs. Is a bit of unexpected behavior a bug if it doesn't impact users? The article defines bugs as unmet product requirements but if that's the case I don't think the difference between a bug-fix and a new-feature is that clear because new features also help meet product requirements. Perhaps what they mean is that a bug is any regression from what they currently believe the system to be doing.

I do think a lot of this has to do with the size of the project. In smaller projects with fewer requirements, it's easier to define what is considered "working", but as projects grow that becomes harder and harder, partly because meeting all of the requirements becomes harder but also because the requirements interact with each other in unexpected ways making it harder to even figure out what even is required. And of course the volume of bugs increases, eventually making it impossible to completely stay on top of them even if you give up on new features altogether. A bug-tracker becomes necessary eventually.

That's not what the GP said. They said Huberman's incorrect statements on something they understood made them more skeptical regarding his other statements, not that these other statements were definitely wrong because the first statements were wrong. It's about judging Huberman's reliability as a source of information, not deciding whether he's correct or not, ie whether it makes sense to take Huberman at his word or whether one should doublecheck the things that he says.

But imagine if our C/C++/Java/Rust/Go/etc. compilers were like "syntax error, but ehhhhh you probably meant to put a closing brace there, so let's just pretend you did". That would be a nightmare of bugs and security issues.

That's how Perl ended up the way it is.

You can talk about free will without talking about morality in the same way that you can talk about ICBMs without talking about nuclear war. Sure you can do it, but complaining when other people discuss both things together is silly.

On the contrary, morality has everything to do with free will. It's one of the central motivations of the concept and always has been. From the greeks right up through the enlightenment, the question was always "in what sense are we capable of making responsible choices," with that term 'responsible' just dripping with moral implications. Without the moral implications, free will would not have the place it does in our cultural ethos.

They did mention it. The Smithsonian piece is a response to it. They even link to the same IUGS press release that the Guardian uses as a source.

It's not necessarily an either-or situation. Increased population can enable increased technological sophistication and increased technological sophistication can in turn enable an even larger population. This can be a self-reinforcing process. Anyway, I think your referencing the rgeen revolution which happened in the last hundred years while the GP is referencing the rise of agriculture.

You can lay a foundation for a building in a couple of days and then spend however long you want building the whole rest of your house on top of that. If later you find out that the foundation has cracks or is otherwise compromised and you want to replace it without replacing the whole building, it's going to take a lot more than a few days to fix it.

I'm not certain of your point? Marx admits that LTV doesn't explain prices much earlier than the third volume; it's cental to his whole point, that the difference between the 'value' of a good and what a capitalist is able to sell it for represents exploitation. That's not a straw-man and asu_thomas was wrong to suggest it was.

This is not really true. "Power" in a social context proceeds from social relationships. A king only has power if people buy into the idea that he has power. In other words, any power beyond individual brute force is a social construct. Even the idea that the state has a monopoly on violence is a social construct, (and is often not true, even in practice.) So social power depends on the ideas that people in a society hold generally, such as ideas about rights and ownership. So it's often those ideas that define the power relationships in society rather than the other way around.

Um, no that's not correct. It's true that the origin of the labor theory of value is philosophers like Locke arguing that labor is the source of all value, but in the context that Marx was writing, Smith and Riccardo had popularized the notion that the market value of a good was proportional to the amount of aggregate labor that went into it. To his credit, Marx demonstrated that the market value of a good was not actually proportional to the amount of labor that went into it but he didn't abandon the idea that value of a good was somehow proportional to the labor used to make it.

Marx: "Let us now take two commodities, for example corn and iron. Whatever their echange relation may be, it can always be represented by an equation in which a given quantity of corn is equated to some quantity of iron, for instance 1 quarter of corn == x cwt of iron. What does this equation signifify? It signifies that a common element of identical magnitide exists in two different things, in 1 quarter of corn and similarly in x cwt of iron. Both are therefore equal to a third thing, which in itself is niether the one nor the other. Each of them, so far as it is exchange-value, must therefore be reducible to this third thing. [...] As use-values, commodities differ above all in quality, while as exchange-values they can only differ in quantity, and therefore do not contain an atom of use-value. If then we disregard the use-value of commodities, only one property remains, that of being products of labour."

In other words, Marx excludes use-value (what normal economists call "utility") as being a factor in the price of a commodity, apart from needing to exist at all (he reduces its relationship to a boolean relationship,) and makes it a function of labor quantity. This is so central to his argument that it comes up in the first few pages of Capital.