Hacker Newsnew | past | comments | ask | show | jobs | submit | more AlienRobot's commentslogin

For the brief time I used Windows 11 the amount of times I placed a window over another and then clicked on the wrong window because I couldn't tell at first glance where one started and the other ended was absolutely ridiculous.

I'm afraid that the core of the problem is something far more simple and fundamental.

The people designing desktop apps today simply never learned the conventions that make desktop applications good. They grew up with smartphone apps, web apps, electron apps, games, etc.

In fact, you can observe from things like JavaFX, Flutter, WPF, etc., that the trend has long been about the ability of easily creating custom widgets like you could with Javascript (or Flash), rather than the convenience of having a library of widgets that look and feel exactly the same as every other widget in the system.


"I couldn't tell at first glance where one started and the other ended "

Sometimes I am starting to feel like how my dad looked many years ago when I tried to teach him how to use Windows. He simply couldn't see the window borders. With the latest designs I am reaching this point too. I am struggling moving and resizing windows because I can't tell where the border is.


> couldn't tell at first glance where one started and the other ended

This was even worse in an RDP session. No drop shadows. I'm not sure who thought "everything should be flat and white" was a good idea.


> I'm not sure who thought "everything should be flat and white" was a good idea.

It's just the old Windows 2.0 look.


Windows 2 had plainly visible borders, with decent contrast depending on your colour settings, so you could see what ended where.


The UX designers copied the look, minus the colors, and without functionality. Whoever thinks, that an 1px border for a resizable element on a 4k display is ok, is insane.


The hotkey to allow move and resize from anywhere in a window is my favourite *nix window manager convention.

Windows finally implemented it via PowerToys: https://learn.microsoft.com/en-us/windows/powertoys/grab-and...


I must have missed that being added. I'll have to play next time I'm in front of one of my windows machines.


Even back when we had much fewer pixels on most displays, people knew 1px drag targets were a bad idea. Some UIs dos have single pixel borders, but tended to have extra decorations at the corners so there was something larger to interact with there, and/or implemented something like a control key making any point in the window a size/move target.


> look and feel exactly the same as every other widget in the system

Which is what? Windows natively has like 4 official looks. You can click around the 2 (!) settings programs and pop open windows for basically every framework windows has created (and deprecated) in the last 2 decades.


I genuinely don't understand how can this possibly be a problem long term.

It feels very obvious that the solution is to have a smaller model that can be trained exclusively on Java information to augment the older model. If the architecture doesn't support it currently, then that's what the architecture will look like in the future.

Otherwise you'd be arguing that, to serve users who want to an up-to-date LLM on topic X, you have to train the model on the entire ABC all over again.

It's simply ludicrous to have a coding LLM that needs to be retrained on the latest published poems and pastry recipes to generate Java.


But if I run the model locally I have to pay for it, whereas with Claude I can, oh wait I just hit my 5 hour free limit with 2 messages.


That isn't really a problem because the comment should just be posted hard-

wrapped. It looks better that way.


Only if viewed in a monospace font in a window wide enough to fit the entire line.


It proves that code, specifically any code in the form of bytes, is, too, language.


I like that. And if poetry can be defined as succinct use of language (perhaps a dubious assertion), then code can be poetry.


The real problem is people believing "plugins" are not full software.

If you install a dozen mini-apps from random developers you never heard about, you can't complain if one is malware.

Krita also has a plugin system based on Python. Any "plugin" has the same level of access as running a python script.

Personally I blame operating systems for not providing a way to isolate how programs interact with user files.


Krita: that is a decision by Krita(/GIMP) and not anything inherent in "plugins" or "python" - it could be a bubblewrap/firejail contained process, for example (other OSes have similar-ish options but there's always something, e.g. don't use cpython). They have chosen to continue to put their users at risk by not doing anything at all like that.

There are of course complications, costs, and downsides associated with doing that. It might not be worth it currently, or performance costs might be too high, or the community might be overwhelmingly using abandoned plugins that won't be updated, etc. It's still a decision to remain complacent until forced by attacks though, it's well beyond common knowledge that these things happen so you can't really call it ignorance.


Software engineers at large would benefit from playing World of Warcraft, and seeing the ongoing fight between Blizzard and add-on authors.

WoW's whole UI is built in the same Lua environment as add-ons, and Blizzard has implemented some interesting restrictions (like the taint system[0]) to prevent add-ons from completely automating gameplay.

0. https://wowpedia.fandom.com/wiki/Secure_Execution_and_Tainti...


World of Warcraft is one of the most popular MMO's ever made.

You simply can't expect every software that wants a plugin system to have the same security practices as the most used software in the world.

In fact, there are many reasons why you might want a plugin to have full filesystem and internet access, such as batch processing or simply adding things directly from webpages. Sandboxing this will just make plugins less useful.

In the end it's a problem of trust. You're installing software from untrustworthy developers because you trust the name of the application those plugins are associated with.

You could fix the problem in Obsidian, but the same problem will happen in other software. Some of which simply can't justify bothering with sandboxing plugins. This is just the way plugins are.


> You simply can't expect every software that wants a plugin system to have the same security practices as the most used software in the world.

I'm not saying that I think they should, or that I expect them to. I'm saying that it's one particular implementation of sandboxing that has a bunch of interesting properties, and that makes it worth studying.


If you happen to use the WoW example in the future, the wiki efforts moved from the fandom one to wiki.gg[0], as voted by maintainers and contributors in late 2023[1].

0. https://warcraft.wiki.gg/wiki/Secure_Execution_and_Tainting

1. https://wowpedia.fandom.com/wiki/Wowpedia:About_the_wiki#Bac...


Thanks! I've been meaning to read up on taint systems, looks interesting :)

I'm somewhat convinced that taint-influenced capabilities is a good future model to pursue. Computers are fast, I'm fairly confident that it chould be done at whole-computer scale and still be reasonable... though probably not with a million electron apps. Which is likely a good thing in aggregate (I say as a fan of web tech and the very compelling features such things offer. Great for minor or PoC, not for major pieces of software).


Exactly. When I use a scissor, I don't want the scissor to not work just because I'm not a "frequent scissor user," and then get told by someone who makes their breakfast with scissors that I'm doing it wrong. Most people will not be "frequent" anything users.


Most people also understand that, because they're not "frequent" users of a thing, they absolutely suck at using it, and set their expectations accordingly. In particular, they realize that doing anything non-trivial with the thing requires them to spend some learning and practice time, or asking/hiring a "frequent" user to do it for them.

So the reasonable response to being told you're holding your scissors wrong is to realize that yes, you most likely are holding your scissors wrong[0], and ask the other person for advice (or just to do the thing), or look up a YouTube video and learn, or sign up to a class, or such.

Expecting mastery in 30 seconds is not a reasonable attitude, but it's unfortunately the lie that software industry tried to sell to people for the past 15 years or so.

--

[0] - There's much more to it than one would think.


I’m interested in the “non-trivial” point as well, this seems to be a common refrain from the anti-LLM tech crowd, “LLMs aren’t good at doing anything non-trivial”, well is that really the case or is it just harder and one needs to put in more practice for more complicated tasks?

I don’t have an example off hand, but I know that it’s easy to dismiss something an LLM does as trivial if your work is extremely marginal. Most devs aren’t creating their own programming languages. I can’t help but think people who hold this opinion also think the work most software professionals do is “trivial” (“you’re just moving strings around, that’s not impressive/trivial”)


On the one hand there's simonw's concept of a "frequent LLM user" and then there's the actual vast majority of people using ChatGPT web app or one of the various Office CoPilots.


I should have said "frequent, expert LLM user".


If you make the example any more complicated, it makes sense.

A lathe operator isn’t any good if they don’t frequently operate lathes.

A articulated robot implementer needs frequent experience implementing robots to be any good.

That doesn’t mean lathes or robots are useless. Nor does it mean they have failed as products because they require expertise.

I do think it raises questions as to whether vast swathes of the population will be effective at using LLMs. Are they scissors, or a lathe?


I figure english is the next coolest programming language for scripting and compilation. So far people have been writing fun little demos with it, but now people are starting to place real demands on it, and you're starting to see actual programs needing to be built. Unsurprisingly this requires a bit more craft.


> I figure english is the next coolest programming language for scripting and compilation. So far people have been writing fun little demos with it, but now people are starting to place real demands on it, and you're starting to see actual programs needing to be built. Unsurprisingly this requires a bit more craft.

Perhaps that craft of using the exact subset of English has something to do with the correct selection of words and concise, yet expressive enough, expressions, in a fashion resembling creating a code.

A code that's meant to be understood by machines, we could call it "computer code". And said computer code could be used to create recipes, algorithms, let's call them "programs". Hey, I think I have ideas for 2 possible names for this process!


No wait, you think I'm being silly so that's why you're being a bit sarcastic back.

But seriously, you can put a shebang on an english text file now (if you're sufficiently brave), or feed it through something that spits out code on the other end (so you can proof read the consequences before executing them).

It's crazy, but this is 2026, and that actually ... just works. You can even do it locally, if you don't mind running a space heater.

Thing is, when you have the expressiveness and power of a full natural language (and you're already paying for it), why would you want to constrain yourself to a subset? That's not very practical. Why not use all of it? Computing was never about typing code into machines anyway. "Computer" used to be a human profession, until it got automated.

On the upside, there's thousands of years of documentation. On the downside, a lot said documentation is underspecified and/or straight wishful thinking. It's certainly an interesting avenue to explore.


> why would you want to constrain yourself to a subset? That's not very practical. Why not use all of it?

For the same reason math, physics, chemistry, etc figured out a long time ago that Koine Greek, Latin, French, German, English, etc aren't the best languages for science. Constraint gives focus, precision.

If you code novels, knock yourself out.


Let's actually look at this as if I'm serious for a second? Tell me this framing really can't work.

None-exhaustively:

Python has if, for, while, def, class and first class lists, dicts , functions ;

Forth has this stack machine concept, RPN, compilation-in-the-REPL when defining new functions.

Lisp has this code is data is code concept, and CAR, CDR, first class lists (obviously ), first class functions (in some of them) ... etc.

Machine code can (theoretically) be directly expressed in logic gates.

How about a quick look at what English supports:

Conditionals, iteration, abstraction, composition, delegation, exception handling, scope, naming, modularity; intent, priority, graduated precision, analogy, context-dependence; And.. the concept of semantic triples is built in as a syntactic primitive (subject-predicate-object), so you can even do a bunch of GOFAI right off the bat.

It's weird thinking of english as a programming language. But it kind of works like one if you want to, and computers can process it now?


I'm not saying English (or any other natural language) is not usable. It is, since it's a more complex language than programming language. All natural languages are supersets of current programming languages.

I'm talking about the opposite problem: these supersets are ambiguous, contradictory, vague. At the end of the day the thing that is programmed needs to be clear, unambiguous and ideally concise, too (performance in its million incarnations).

So yeah, I guess you can fix the ambiguous aspect with verbosity. Just write more words until you define everything you need to define more directly when using a formal language.

I would be extremely shocked if programming wouldn't require knowing a very specific, albeit huge, domain jargon.


Question isn't per-se "is English a great language to write the next sorting algorithm in?" . Probably not. Rust is quicker , and cheaper to execute besides. But there's entire classes of problem that English might be more useful for.

English assumes the target is an agent with memory/state in a given context. Ambiguity, verbosity, noise is strongly reduced by means of modelling the other agent's state, then only transmitting the required state diff. The receiver decodes by comparing the diff against the other side's predicted state and updating. [1] This kind of protocol would obviously be NUTS to build from scratch if you went about it as an engineer I'd think. But we have the hardware and software preinstalled in humans , and now my 3090 can run an (imperfect, but viable) decoder

Is it useful? Yeah, I think it actually is. English is able to encode things that are ambiguous, contradictory, vague... and get useful results. Not always; maybe not even often. As you say, skill required, but the option is there. Formal languages just crash.

It's interesting is what I'd call it.

[1] see also: Clark & Brennan's grounding theory in linguistics; Predictive coding in neuroscience; Delta encoding in compression; and Theory of mind in cognitive science. They all dance around the same shape, so this is roughly accurate I think.


In a semi-random sample of 10 recent articles on arxiv.org, 10 articles (100%) contained english language as the predominant part of the corpus. Where necessary mathematical notation was included.

So - you're not wrong that eg. mathematical notation is (often) used, as we both very well know. But English is really quite prominent!

And now computers can process both, where before they couldn't.

The engineering doesn't go away, not yet. Decomposition, abstraction, state management, blast radius containment O:-) . But now you can express much more of that in the language the arxiv papers are already written in.


> But seriously, you can put a shebang on an english text file now (if you're sufficiently brave)

That inspired me to figure out how to do exactly that:

https://til.simonwillison.net/llms/llm-shebang

  #!/usr/bin/env -S llm -f
  Generate an SVG of a pelican riding a bicycle
Thanks for the inspiration!


A .llm file extension might be in order :)


Oh, that looks pretty clean!


> But seriously, you can put a shebang on an english text file now (if you're sufficiently brave), or feed it through something that spits out code on the other end (so you can proof read the consequences before executing them).

The funky thing is that it's not just English. I could vibe code in Romanian, it would probably be hilarious :-)) Probably not for whomever would have to take over the app, though.


Eh? You should go for it! Do everything at least once, right? Pick some simple pet project, and get it off your bucket list!

If it wasn't on your bucket list to begin with, who cares: Now you can add it and complete it in one fell swoop ;-)


Everybody seems to want them to be scissors, or at least to treat them as such, but even still the reason everyone can use scissors so well is because they’ve practiced with them, right? You’re probably a lot better at using scissors now than the first time you did it, the functionality is just so simple it’s harder to notice.

To me learning to use LLMs is the same as doing anything else, you have to practice and put in the hours to get good. Maybe some harnesses will eventually allow LLMs to function more as scissors than lathes. This seems to be what Microsoft is trying to do by embedding Copilot in all their products and saying “choose the UI that works best for you”. If that doesn’t end up working we’ll need another paradigm for “non-technical” users to effectively operate computer assistants


Scissors tend to be reasonably straightforward, so there your analogy seems to hold, but upgrading to chopsticks, needles, and chainsaws tends to attract increasing amounts of "you're doing it wrong" in increasingly alarmed tones of voice.


Maybe the problem is that we're forking things.

We need to fork the concept of forking.

We need to start knifing.


One could argue that AI-generated content is already knifing the Web!

I suggest we start spooning the Web instead.


I see you’ve played knifey-spoony before.


TIL. I had never seen that clip, and I am fascinated that we landed there unintentionally. We in this thread just collectively won the Web for today.


Would have also accepted us landing on an Alanis Morisette reference.


I'm going to be honest. Wanting to create a whole new web from a website that feels less styled than those from the 90's doesn't give a lot of confidence.

What if the new web doesn't have a way to add navbars to webpages because this blog didn't have one so the author didn't see the point? Or numerous similar issues?

If you want to exchange .txt files you can do that already with FTP.


You have three options.

1. Ask a stupid question online and be called an idiot in your public record.

2. Go through the hassle of creating the nth throwaway account and get called an idiot in public, if you are allowed to post with a new account at all.

3. Ask ChatGPT and get told you are completely right.


My favorite thing with Claude lately is it tells me things like:

> I think this is a great thought, but I want to engage with it seriously rather than just agree, so for the sake of argument, ...

I keep telling it to be blunt, that I can take it, but it just can bring itself to offend me :)


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: