HNHacker News
TopNewBestAskShowJobs

TuringTest

4,474 karma · joined September 28, 2012

Send me a note at turingt+fromhackernews (at) gmail.com

I hope the spam filter will respect it!

submissionscomments
TuringTest··on Vibe coding as a coding veteran: from 8-bit assembly to English-as-code
Sure, and you could program all your code in punch cards to not depend on those fancy new video screens. Double plus if you codify it in assembler so that you don't depend on compilers.
TuringTest··on The Expression Problem and its solutions (2016)
If you have to handle specific behavior for the new method in an existing type, of course you will need to add a new implementation of the method for that type.

As I understand the Expression problem, the limitation of programming languages is that they force you to modify the previous existing types even if the new behavior is a generic method that works the same for all types, so it should be enough to define it once for all classes. A virtual method in the base class should be able to do that.

TuringTest··on The Expression Problem and its solutions (2016)
I'm thinking, didn't inheritance and abstract methods work to solve the problem?

I know inheritance has its own severe problems, but adding a generic abstract method at the base class could create reusable code that can be accessed by any new class that inherits from it.

P.S. ah ok, it's mentioned in the article at the Visitor section.

TuringTest··on Vibe coding as a coding veteran: from 8-bit assembly to English-as-code
> Until you lose access to the LLM and find your ability has atrophied to the point you have to look up the simplest of keywords.

You can locally run pretty decent coding models such as Qwen3 Coder in a RTX 4090 GPU through LM Studio or Ollama with Cline.

It's a good idea even if they give slightly worse results in average, as you can limit your spending of expensive tokens for trivial grunt work and use them only for the really hard questions where Claude or ChatGPT 5 will excel.

TuringTest··on You Have to Feel It
Rationalism is overrated anyway.

All rational thought depends on its axioms/premises, and there's no rational way to define a new axiom - by definition they are asserted from scratch, so you need to depend on gut feeling to choose a good axiom over a bad one.

Rationalism "only" works to discard or modify some subset of your axioms when you discover that they lead to incompatible conclusions; which is a good outcome if you want to achieve a consistent theory, of course; but it doesn't help in selecting one consistent theory over a competing one. Again, those preferences are led by emotions.

TuringTest··on Seedbox Lite: A lightweight torrent streaming app with instant playback
Wouldn't an app like this stop working after a few uses?

As I understand, the protocol penalizes users that don't contribute to the upstream, although I never checked the details.

Or do this kind of app keep changing the identity to avoid getting downgraded? Does Stremio work like this too?

TuringTest··on Grok generates fake Taylor Swift nudes without being asked
> She asked for a “spicy” image and she got exactly that.

But, but, what it just she wanted to see her in a Spice Girls costume??

TuringTest··on Linux Reaches 5% Desktop Market Share in USA
> Basically if the higher percent is due to less desktops overall instead of a major uptick in Linux desktops, it is not really much to celebrate.

So, the true meaning of the "Year of the Linux Desktop" was that in the end there would only be a single unit left?

TuringTest··on Intelligent Agent Technology: Open Sesame! (1993)
I've always wondered why this capability (detecting repetitive patterns and offering an auto-complete option to apply it to the whole collection) is not more pervasive.

It's a very good interaction pattern, it would be more and more viable given increasing computing power and better understanding of context thanks to LLM, and would increase productivity and reduce boredom with little intrusive effects.

So why is nobody offering this feature in data-heavy UIs? (Except for Excel's column auto complete, which it's hit or miss but incredibly useful when it works).

TuringTest··on How the economics of multitenancy work
Back in the ancient era of the mainframes, this "multitenancy" concept would have been called "time sharing".

It looks like everything old is new again.

TuringTest··on In 2025, venture capital can't pretend everything is fine any more
True, but the religion of the Singularity that fueled this round of financing was premised on this improvement growing exponentially fast, thanks to the support provided by the current version of AI tools. There's no sign this will happen anytime soon.
TuringTest··on Notation as a Tool of Thought (1979)
> APL makes it really convenient to take a different tack. Instead of designing abstractions, we can carefully design our data to be easily operated on with simple expressions. Where you would normally see a library function or DSL term, this approach just uses primitives directly

But in doing that, aren't you simply moving the complexity of the abstractions from the functions code into the data structure? Sure you can use generic operators now, but then you need to carefully understand what the value pairs represent in terms of domain logic and how to properly maintain the correct structure in every operation. Someone reading the program for the same time will have just the same difficulties understanding what the code does, not in terms of primitives, but in terms of business domain meanings.

I mean there is an improvement in your approach, but I don't think it comes from putting the complexity at a different place, but because this way you get to see the code and the actual actual values at the same time.

I have the insight that what makes complex programming easy is this juxtaposition of runtime data and code operations visible together. That's why IDE tools have building better and better debuggers and inspectors to let you see what the program is doing at each step.

In that context, creating new good concise abstractions is a good thing, wether you abstract parts of the operations or parts of the data structure.

TuringTest··on Notation as a Tool of Thought (1979)
Seeing that diamond metaphor, and then learning how APL sees "operators" as building "functions that are variants of other functions"(1), made me think of currying and higher-order functions in Haskell.

The high regularity of APL operators, which work the same for all functions, force the developer to represent business logic in different parts of the data structure.

That was a good approach when it was created; but modern functional programming offers other tools. Creating pipelines from functors, monads, arrows... allow the programmer to move some of that business logic back into generic functions, retaining the generality and capacity of refactoring, without forcing to use the structure of data as meaningful. Modern PL design has built upon those early insights to provide new tools for the same goal.

(1) https://secwww.jhuapl.edu/techdigest/content/techdigest/pdf/...

TuringTest··on Notation as a Tool of Thought (1979)
> If you mean LLMs, I actually view them as a regression with respect to basically every one of the "characteristics of notation" desired by the article.

LLMs are not used for notation; you are right that they're not precise enough for accurate knowledge.

What LLMs do as a tool is solving the Frame Problem, allowing the reasoning system to have access to the "common sense" knowledge that is needed for a specific situation, retrieving it from a humongous amount of background corpus of diverse knowledge, in an efficient way.

Classic AI based on logical inference was never able to achieve this retrieval, thus the unfulfilled promises in the 2000s to have autonomous agents based on ontologies. Those promises seem approachable now thank to the huge statistical databases of all topics stored in compressed LLM models.

A viable problem-solving system should combine the precision of symbolic reasoning with the breadth of generative models, to create checks and heuristics that guide the autonomous agents to interact with the real world in ways that make sense given the background relevant cultural knowledge.

https://en.wikipedia.org/wiki/Frame_problem

TuringTest··on No code is dead. Long live vibe coding
Developers are not deterministic either ;-)

What matters is if the current output after each request complies with the given specifications, and if it's possible to solve the bugs until the code converges into stability.

TuringTest··on No code is dead. Long live vibe coding
> how do you know that the code it just created actually does what you want it to

I believe that problem can be solved, and will be with the correct new tools.

I think a new type of "low-code" programming language will evolve tailored for domain experts that don't know coding, but understand how to guide an LLM.

The development environment should be a crossover between a project-management tool (Jira or Azure devops style) with literate programming: something that allows organising all the separate parts that compose the program in a way understandable by the human and the AI bot.

Online notebooks are a good first step in that direction, in special the "reactive" kind where the runtime logic does not depend on the order you change things in the page.

TuringTest··on But what if I want a faster horse?
The classical answer of why more hardware resources are needed for the same tasks is that the new system allows for way much more flexibility. A problem domain can be thoroughly optimized for a single purpose, but then it can only be used for that purpose alone.

This is quite true for LLMs. They can do basic arithmetic, but they can also read problem statements in many diverse mathematical areas and describe what they're about, or make (right or wrong) suggestions on how they can be solved.

Classic AIs suffered the Frame problem, where some common-sense reasoning depended on facts not stated in the system logic.

Now, LLMs have largely solved the Frame problem. It turns out the solution was to compress large swathes of human knowledge in a way that can be accessed fast, so that the relevant parts of all that knowledge are activated when needed. Of course, this approach to flexibility will need lots of resources.

TuringTest··on Parser Combinators Beat Regexes
You can typically trick them into thinking that you're returning an object with a single method ;-)
TuringTest··on Open-Source Is Just That
The article is deliberately ignoring the history of software, which in the 90's gave a very clear definition of "open source" by the OSI as a synonym of "free software", which also historically means the four freedoms defined by Richard Stallman.

You may want to ignore what words have come to mean and try to derive a literal meaning from their constituent words, but then you need to fight established common use.

TuringTest··on What if we made advertising illegal?
You've just described how laws actually work - but we have created modern judiciary system so that it will tend to produce outcomes considered fair by the majority. Algorithmic enforcement of justice without human deliberation of case-by-case specifics would be worse that the worst horror stories about soulless bureaucracies.

That's why we have judges and lawyers, so that the outcome can be decided as a communal process instead of just one person deciding what is punishable - even if the person is the developer building the automated justice dispenser and they'll be not around when the decision is taken, it would still be made by the whims of a single enforcer.

TuringTest··on A love letter to the CSV format
It could, but it doesn't want to. The whole MS Office dominance came into being by making sure other tools can't properly open documents created by MS tools; plus being able to open standard formats but creating small incompatibilities all around, so that you share the document in MS format instead.
TuringTest··on I won't connect my dishwasher to your cloud
> Yea - I know. Works much better to upsell "wifi enabled"

A good marketer could give a catchy name to sell the advantages of that system too. Top of my head I can think of "near-fi", but certainly could be done better.

TuringTest··on Pantograph: A Fluid and Typed Structure Editor
You might enjoy the experimental editor Lapis.

This Pantograph somewhat reminds me of that lightweight structure editor, though Lapis is able to find regularities on the fly without a need to follow a perfect tree structure, just by finding bottom-up syntax of language elements (mostly HTML and basic data types).

https://en.wikipedia.org/wiki/Lapis_(text_editor) (Look at the links for an archived download page)

TuringTest··on Every System is a Log: Avoiding coordination in distributed applications
Excuse me for sounding rough, but - isn't this reinventing comp-sci, one step at a time?

I learned about distributed incrementally -monotonic logs back at the late 90s, with many other ways to do guaranteed transactional database actions. And I'm quite certain these must have been invented in the 50s or 60s, as these are the problems that early business computer users had: banking software. These are the techniques that were buried in legacy COBOL routines, and needed to be slowly replaced by robust Java core services.

I'm sure the Restate designers will have learned terribly useful insights in how to translate these basic principles into a working system with the complexities of today's hardware/software ecosystem.

Yet it makes me wonder if young programmers are only being taught the "build fast-break things" mentality and there are no longer SW engineers able to insert these guarantees into their systems from the beginning, by standing on the shoulders of the ancients that invented our discipline, so that their lore is actually used in practice? Or am I just missing something new in the article that describes some novel twist?

TuringTest··on The Tyranny of Structurelessness (1970)
> As far as the market goes, I think part of the problem is that most industries are not true free markets, AKA: high competition, low barriers to entry.

That sounds like the classic "if all you have is a hammer, all problems look like nails".

It's true that decentralised decision making can make good use of local information. But you're ignoring the kind of problems that are created by decentralisation itself, so they can't be fixed by more of it.

A system that is being optimized with only local information is prone to getting stuck in local minima, situations which can be very far from the true optimum.

To escape from the local minima you need to gather global information compiled from the whole system, and use it to alter the decisions that individual actors would make from just their locally achievable information.

That's the role of regulation, and why regulated markets work better than chaotic ones. Regulation can make individuals coordinate to achieve larger goals than what's possible without it. And to enforce effective regulation you need some kind of authority, which is centralised.

Of course that raises the question of how that authority is created and what goals does it set; for that, we get politics, with various groups trying to influence what the authority will decree and whose interests it will pursue harder.

TuringTest··on The Tyranny of Structurelessness (1970)
I'd recommend The Fractal Organization,[1] or any other about Viable System Models.[2]

This framework based on cybernetic science provides good heuristics to both understand and design complex social structures.

[1] https://www.amazon.com/Fractal-Organization-Creating-sustain...

[2] https://en.wikipedia.org/wiki/Viable_system_model

TuringTest··on Ross Ulbricht granted a full pardon
> chomsky would present examples like this for decades as untracktable by any algorithm, and as a proof that language is a uniquely human thing

Generatove AI has all but solved the Frame Problem.

Those expressions where intractable bc of the impossibility to represent in logic all the background knowledge that is required to understand the context.

It turns out, it is possible to represent all that knowledge in compressed form, with statistical summarisation applied to humongous amounts of data and processing power, unimaginable back then; this puts the knowledge in reach of the algorithm processing the sentence, which is thus capable of understanding the context.

TuringTest··on Haskell: A Great Procedural Language
Haskell can be taught as recursive programming, learning about accumulator parameters and high order functions. A background in logic (which most programmers have to some degree) is more useful than an approach in math in that regard.
TuringTest··on Run Python in the Browser Effortlessly
> What does it matter if they are doing that with a mouse or with a keyboard?

It happens to matter a lot, in large part by a cognitive principle that most programmers should know, but very few do: recognition vs recall.

Text prompts in general are much harder to use because the user needs to remember the name of the command they need to type, which is a cognitive task way more difficult that recognizing the shape of a UI control with a recognizable command name on it.

> What, like this doesn't happen with GUI applications?

You're right that GUIs are not immune to terrible design, I still remember when open source developers but UIs for their software that were mere a front-end layout of the command line, and you needed to understand in full the inner workings of the app to use the UI.

However nowadays anyone who builds GUIs for a living has been trained in the principles of usability and has some knowledge of mental models and putting user needs upfront, so that style is avoided by everybody but the most isolated do-it-yourself programmers.

TuringTest··on Run Python in the Browser Effortlessly
*> Am I alone in thinking it is perfectly acceptable to ask a non-technical user to open a command line and type something?*

You're not alone, but that doesn't make it right; rather it puts you in the large bucket of developers that have no idea of:

1) how and why common non-technical people use computers, and

2) why asking them to perform actions they don't understand is a terrible idea both in terms of usability (because the process is difficult, intimidating and error prone) and security (because you're training them to follow instructions that can easily put their system in risk when requested by a malicious actor).

If the actions to follow are really that simple, they should be automated in full; there's no reason why you would show the users anything more complex that a start button to trigger a script, and a confirmation dialog explaining the risks (and maybe requesting elevated permissions).

But if the process is not so simple that it can be automated behind a single button, then why on heaven would you expose them to an interface that requires a complex interaction (copy/paste various large texts from a web page), shows cryptic messages as feedback, and gives no clue on what to do next if any step has errors?

← PreviousPage 4 of 34Next →