HNHacker News
TopNewBestAskShowJobs

tailrecursion

346 karma · joined April 3, 2009

submissionscomments
tailrecursion··on Apple's new 'Switch to Safari' campaign details why you should ditch Chrome
I've always liked and preferred Safari. The only reason I moved away was that as a Mac gets older, there comes a point where you can't update the OS, and that means Safari falls behind. Even that's not a problem for me, but web standards were always changing and after a while certain things won't work.
tailrecursion··on Anthropic Bans Cruelty to Claude, Still Won't Say What It Protects
Am I the only one surprised that Anthropic isn't more interested in allowing a full range of behaviors for information gathering purposes? You can't learn about cruelty if you're suppressing it, and you can't learn about people's behavior if their behavior is constrained to a tight set of rules that doesn't allow criticism. The younger generation today seems really into judging people, blaming people, and insisting on conforming to superficial behavior rules, while at the same time having very little curiosity about why things are the way they are - why are people cruel anyway? If it's bad, why do people act that way.

Anthropic might learn, for example, that a large part of the cruelty is a reaction to something the AI is doing or not doing. Not possible?

tailrecursion··on Altair Basic Interpreter Source Code (1975) [pdf]
One of the things I'm often curious about is how various BASIC interpreters organize memory for string storage. You'd think there's some way to reclaim memory after an expression involving intermediate strings is finished. But you don't see descriptions for how BASIC works in this regard.
tailrecursion··on Squeak 6.1
Yes. I don't know Swift, but it appears that Swift's protocol and class are similar to Java's interface and implementation (class), and defining a protocol would be required in Swift in order to define a generic table.LOOKUP(key) operator.
tailrecursion··on Squeak 6.1
Smalltalk's been enormously influential and successful... There is however a better way of understanding objects. Namely, "objects" are [defined to be] processes, "messages" are asynchronous, and Smalltalk's message invocations are indirect function calls. I know what you're thinking: "But no OO PL works like that. You won't understand anything that way." That's true: this suggested reframing won't help you understand any popular OO language, because they use indirect function calls instead of asynchronous message passing.

The indirect function calls of Smalltalk don't transform the semantics of programming. It's still data structures and algorithms. You can, if you adopt Kay's ideas wholesale, write programs where individual letters in a text typeset themselves (as Kay describes). I'm arguing that that model of programming is more accurately articulated in an async message passing frame.

Smalltalk's function calls do have an important benefit, which is polysemy. I'm stealing that word and not using it quite right. The benefit is you can define ideas that are not algorithmic. You can for instance define many methods for LOOKUP(key,table) that works for many data structures, and now you've defined not a recipe, but an idea that transcends recipes. Any recipe R that uses LOOKUP automatically works with all the data structures that LOOKUP works with, even though R itself may be a specific recipe for a specific data structure of its own.

That's a tremendous benefit, and it's worth using OO features to take advantage. But even so you're still living in an algorithms and data structures world. Polysemy is a linguistic feature and does not cause a mechanical or paradigmatic change.

Asynchronous messaging however does change how algorithms are designed, in much the way that Alan Kay anticipated, and also in a way that models real world entities in direct fashion. But everyone understands this part already.

So how is this a "better" way of thinking about objects? 1) It emphasizes the advantage of polysemy, which in my experience OO pedagogy tends to overlook, even though most everyone utilizes OO partly for that purpose; 2) It explains why OO programs remain organized as algorithms and data structures; and 3) it welcomes combining "object" techniques with A & DS techniques in the same program or function or even the same line of code. They are completely compatible, in the sense that the language or library or database is not "OO" or "non-OO".

tailrecursion··on What happened to TheNumbers.com
Do the AI labs in the U.S. publish the AWS IP address sets that their crawlers use? Is that not an effective way to block those crawlers anymore?
tailrecursion··on LG monitors silently install software through Windows Update without consent
I'm starting to think that complaining about these kinds of practices isn't having an effect.
tailrecursion··on Someone at YouTube Needs Glasses: The Prophecy Has Been Fulfilled
I understand you about the implied contract. I think it's more complex than that. People were making videos before the promise of ad revenue, and they were better videos. If people go away who make videos for money - which will never happen - it would be an improvement overall. If ad blockers do win, YT could edit their ads into the videos themselves making an ad blocker's job harder. YTers who want money could make their own independent deals with advertisers, as some do today. And YT can always charge money - as they do right now with premium. But if YT did that for all tiers, they couldn't dominate and they'd have competitors spring up. They know that. They also know if they ever asked anyone whether they agree to watch ads, most would say No. The prevalence of Ad blockers are proof that people don't want to watch the ads. But, as you point out, we do accept the free content. The thing is the world would likely be better if YT would charge everyone for access. Judging from video quality these days a lot of YTers could be doing something more productive than what they're doing now - I mean in an objective sense, better for economic health. But the real reason for these $0 tech services is to stifle competition and prevent the market from working. And that works to everyone's detriment. Basic economics doesn't function without prices.
tailrecursion··on Someone at YouTube Needs Glasses: The Prophecy Has Been Fulfilled
I'm not generating revenue for a lot of companies who are in the advertising business. That's not the definition of piracy. Find another word.
tailrecursion··on Someone at YouTube Needs Glasses: The Prophecy Has Been Fulfilled
I agree with this. There was no meeting of the minds, no contract. But, the terms in the Google account probably include something about the terms for viewing youtube videos.
tailrecursion··on Someone at YouTube Needs Glasses: The Prophecy Has Been Fulfilled
No, piracy is defined as stealing a vendor's exclusivity by making copies and putting them up on a web site. Ad blocking is not the same as making copies and distributing.

You might as well argue that covering your ears during a TV advertisement is piracy. That's a strange definition of the word if I ever saw one.

tailrecursion··on CPUs and GPUs to Become More Expensive After TSMC Price Hike in 2026
Judging by the response to the parent come back, evidently TSMC deserves the high prices it will be charging. Why?

It's unrealistic to expect just anyone to start up a new fab. But if not one person among billions will start up a new fab it points to intrinsic difficulty or unpleasantness or lack of prestige in the task. A correctively high price has all kinds of advantages for the society.

I haven't seen any argument that difficult tasks shouldn't be priced high. Only name calling.

tailrecursion··on Why engineers can't be rational about programming languages
The story at the beginning proves that choosing your VP is significantly more important than choosing a PL.
tailrecursion··on Why engineers can't be rational about programming languages
> I was daunted by making the jump to C, then c++ and python. Only over time did I overcome the nerves and move on with Java, [...]

It sounds as if you did skip C++ and moved to Java instead. If so you serendipedously avoided the one language that's likely to cause problems. C++ doesn't work like the rest of the languages on your list, and it really is as full of land mines as people say - even though, with a good process, evidently it can be managed.

tailrecursion··on Why engineers can't be rational about programming languages
Let the team choose the language they're most familiar with or most happy with. Then if they choose the wrong one, get a different team.
tailrecursion··on Why engineers can't be rational about programming languages
> A new language / style / technology / whatever very often will leave us less competent.

This may be a big factor in rejecting unfamiliar languages. Over time the brain trains itself to grok a specific syntax, and understanding becomes partly automatic: we look at a Java program and our brain injects meaning into our consciousness. If we then look at APL or Lisp, however, that training on Java doesn't apply and the automatic injection doesn't function. We're left having to read the symbols directly, and it's unsettling not having the auto-assist. It makes us feel we "can't" understand the language, when it would likely take a couple weeks of immersion to change that impression.

tailrecursion··on Roadmap for improving the type checker
I too appreciate detail-free programs, and I wonder at the value of including all the typedecls and pointer markings, and lifetime markings, and mutability markings interleaved with the logic. Some people I guess believe that the details are "part of the program" and they aid understanding. Do you buy that?

I find that sometimes typedecls aid understanding, but they get in the way if they're the least bit complicated. I'm better off reading the program. I never had problems understanding Lisp programs for some reason.

tailrecursion··on Why the open social web matters now
> [...] show people posts from the people they follow or that the people they follow liked.

Yes, this is a good system. It'll work particularly well at filtering spam because people largely agree what it is. One thing that will happen with your system is people will separate into cliques. But that's not the end of the world. Has anyone implemented Anthony's idea of using followees' likes to rank posts?

tailrecursion··on Zoo of array languages
Yes the symbols in a way are the letters of APL, and the phrases are the words.
tailrecursion··on Zoo of array languages
I never did any real programming in APL, but I studied it over about 2 months. When you get used to the symbols, reading spelled-out words feels like reading in slow motion, or being stuck in molasses.

Most (not all) APL code I've seen uses very short names, often one letter names, for function names. And APL programmers are famous for cataloging "idiom" which are short phrases for common subroutines. In other words, it's best practice to repeat 3- or 4- symbol phrases instead of defining a subroutine.

Of course, there's nothing about an array language that requires using symbols; but for some reason most do.

tailrecursion··on The German automotive industry wants to develop open-source software together
I saw a video where a mechanic replaced a pack on his Model S with a 100Wh pack. There were some minor issues of fit, which he had all figured out. There was a connector change and some sheet steel around the edges that needed changing out to make it physically fit. The procedure was to keep a table under the vehicle, lower the vehicle so that the pack rested on the table, remove the last retaining bolts on the bottom, and lift the car back up. Reverse for install except he had to align it first. He estimated it would take 2 hours total. This car was designed for fast pack exchange. The coolant connections were self connecting and disconnecting.

Then came the software. The amount of complexity and jargon and issues and roadblocks that come out of nowhere is extraordinary. You have to dive several layers deep in a menu system to do step 1, then get hung up on opening a "gateway", then dive down the same menu to do step 2 of a 2-step process. He had another problem that kept him busy but what impressed me is the amount of time and complexity to do the simplest things. He wasn't performing many steps, but just getting to the step required rebooting, waiting, pressing the brake pedal to see when it was time to move the right turn signal stalk, didn't work, go back, do something else for 10 minutes, try again, it seemed endless.

German automotive companies have historically been terrible at software. Just because Tesla hasn't simplified or integrated their various software components yet, doesn't mean others can't do it nicer. But any company that doesn't value software like the Americans do is going to have a real tough time with the EV software problem.

tailrecursion··on The need for memory safety standards
If Google has failed so far to resolve mem safety issues in their decades old giant code base, then I'd rather hear standardization ideas from someone who succeeded. If G succeeded at resolving those issues, then that's a concrete positive example for the rest of industry to consider following. They ought to lead by example.

It seems like decades-old giant code bases are precisely the ones hardest to migrate to memory safety. That's where coercion and enforcement is needed most. You and I don't need to be told to start a new project in not-C++ do we? Nearly every trained programmer has been brainwashed (in a good way) with formal methods, type systems, bounds checking, and security concerns. Now those same people who champion this stuff say it isn't enough, and therefore we need to do more of the same but with coercion. That's a failure to understand the problem.

tailrecursion··on The need for memory safety standards
The article in question is published on Google's blog. Has Google resolved memory safety issues in its C++ code base? Did G port their code base to Rust or some other memsafe language? What's preventing them from doing that by themselves?

What's preventing Microsoft, or Apple, or the coagulate Linux kernel team, or any other kernel team, from adopting memsafe technology or practice by themselves for themselves?

The last thing we need are what are evidently incompetent organizations that can't take care of their own products making standards, or useless academics making standards to try to force other people to follow rules because they know better than everyone else.

If the team that designed and implemented KeyKos, or that designed Erlang, were pushing for standardized definitions or levels of memory safety, it would be less ridiculous.

At the same time, consciousness of security issues and memory safety has been growing quickly, and memory safety in programming languages has literally exploded in importance. It's treated in every new PL I've seen.

Putting pressure on big companies to fix their awful products is fine. No pressure needs to be applied to the rest of the industry, because it's already outpacing all of the producing entities that are calling for standards.

tailrecursion··on The Onion buys Infowars
[flagged]
tailrecursion··on The Onion buys Infowars
I notice you don't make a definite claim that it wasn't stolen. You're annoyed by the fact others believe it was, based on what you feel is insufficient evidence, yes?

But if you can prove it wasn't, I'm interested

tailrecursion··on The Onion buys Infowars
> Because I'd much rather my grandma get a COVID vaccine than trying to find a source of Ivermectin or hydroxychloroquine.

So the misinformation didn't affect your decision making. Instead, the misinformation you were exposed to was corrected by your exposure to more, better information.

tailrecursion··on The Onion buys Infowars
I agree with the first part totally, and you're probably right I invented something there. I only meant that free speech / "more information helps" seems to resonate with the right, and censorship seems to resonate with the left. Not so?
tailrecursion··on The Onion buys Infowars
Those are all valid disadvantages of community notes, and free speech in general.

How do you explain that there are smart people who have known about these very disadvantages for many years, and still respond positively to "the solution to misinformation is more/better information"?

I don't suppose you know of a solution (to a problem that I admit I haven't fully specified) that has no disadvantages. The proposed solutions I've seen appearing on the left are frightening.

tailrecursion··on The Onion buys Infowars
I take it that left wingers feel that "community notes" isn't effective or sufficient to combat right wing beliefs that are wrong?

The people on the right seem satisfied for now that they can "combat misinformation with more information". (That's a misquote by the way, I believe he said better information, not more. On second thought, he may have said it both ways.)

Has anyone discussed why the right believes this can work, and the left doesn't?

tailrecursion··on The Onion buys Infowars
One of the two echo chambers was bound to be correct in terms of vote counting.
Page 1 of 5Next →