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

The "Emacs doesn't have a file-tree" is when I stopped short and wondered what this person's background is in IDEs.

My emacs days are 1999 during my "functional or get out" phase, but my .emacs had close to 4000 lines in it, including xterm mouse support, a clone of midnight commander + sftp to a wehbost and deep integration with ctags/cscope/c++filt. There was even a line by line debugger with custom .gdbinit commands - look at the php project's gdbinit[1] if you want an idea of how to walk your own super special data structures.

You can't put Emacs in an IDE comparison and say anything about features without at least one person saying "well, actually".

I eventually switched to vim but that had to do with needing to ssh into 100k+ machines on support rotation & never having emacs on any of them.

[1] - https://github.com/php/php-src/blob/master/.gdbinit


He said the same about vim, but did everyone forget about netrw? Here, go into vim and type `:Ex`. You can also have mouse support. (Netrw can also do trees if you don't like the format, go look at `g:netrw_liststyle`)

My friend on eMacs say something similar, but you don't really need as many plugins as people typically use. There's lots of native ways to do things. It's totally fine to prefer NerdTree over the native netrw but it's not like you can't do file exploring. Hell, I use fzf most times (`:GFiles`). But what I don't like is when people confidently say "x can't do y" when it can. I'll give people a break if it requires plugins or complicated commands, but native ones? It just shows ignorance.

While we're on the topic, stop using Esc, use <C-[>. You don't need Esc. And type `set -o vi` into bash/zsh. It's still worth learning your tools. You'll find lots of solutions to problems that only exist because of ignorance. Maybe those solutions are better, but the bigger problem seems to be ignorance. It's fine to be ignorant too! There's a shit ton of docs, no one expects you to read it all. But it's a good place to start


I like capslock bound to esc.

There's nothing wrong with that. Everyone has their own vimrc, you do you.

But most people don't know about <C-[>, which works across your terminal, It isn't just a vim thing.


It also incorrectly says that Emacs has no mouse support. When you first open Emacs the default buffer has clickable links in it, it's impossible to miss the fact that Emacs has mouse support if you ever even open it.

Considering that the very first paragraph of their README has:

> toast is for the developer who wants to stay in their terminal without spending hours getting it up to snuff.

I think he knows you can get anything you want in emacs/vim. The pitch is that toast is batteries-included.


Mouse support and filetrees are included in both vim and emacs. The batteries are already included and have been for essentially ever

Plenty of easy configs for them too. Lazyvim has been pretty batteries included and easy to modify for me and I'm definitely the type that did not read much of the docs

I’m surprised you wouldn’t use TRAMP for remote access then?

Yeah, speedbar and dired are built-in. Speedbar by default still opens in a new frame I think, but in emacs 31 there’s a config option to make it open in a side window without any additional tweaking needed.

Sigh.

Long time ago, in mid-2000-s I tried to switch to Emacs or Vim from Visual Studio.

I wanted to have a simple project file tree as a side panel and multiple editor tabs on the right. I spent a week toying with various elisp scripts, Vim plugins, and digging out information from a then-moribund XEmacs mailing list.

And I couldn't do what I wanted in the end. Nothing worked seamlessly or reliably.

Can this be done out-of-the-box now?


> Can this be done out-of-the-box now?

Yes, with built-in packages there are at least two different ways - speedbar, or Dired in a side window. And what even "out-of-the-box" means? In Emacs-land packages are not like extensions in other editors and IDEs, they more like recipe books. You can collect literally over a thousand of them without ever explicitly loading them until that specific moment that happens once in a decade and you won't ever notice their presence until then. And there are tons and tons of different packages that do the sidebar directory listing - treemacs, dired-sidebar, dired-subtree, direx, ztree, etc. You seriously thought that in 50 effing years nobody, just nobody thought of making a sidebar directory tree that works in Emacs?

> Nothing worked seamlessly or reliably.

Skill issue. You. You couldn't figure it out. And then decided it can't be done, period. Brilliant.


  > Can this be done out-of-the-box now?
It always could be. Go into vim and type `let g:netrw_liststyle = 3` then `:Vex`. The window size won't be what you want, but is the core idea? Because if it is, you just set the liststyle in your vimrc and have netrw start on load, with proper pane location and width.

That or most people have used NerdTree for a decade


I see, so nothing has actually changed within the last 20 years.

A project tree is NOT a file list. It's a persistent panel that allows you to navigate within the project. It should also integrate with tools like recursive search (so it doesn't recurse into ignored folders like `node_modules`), build tools, code intelligence, and a debugger.


A lot has changed, but a lot of features have been there for a long time too. There's a reason people use neovim too

  > It's a persistent panel that allows you to navigate within the project.
Trivial to do with netrw. Again, NerdTree is a common alternative

  > It should also integrate with tools like recursive search (so it doesn't recurse into ignored folders like `node_modules`)
`:vim /re/ */* +`

Or checkout telescope, FZF, or rg. There's plenty of integrations

  > build tools
`:make`, `:grep`, `:compiler`. I mean you can do any terminal command...

Or plugins, dispatch.vim, overseer.nvim, vim-test

  > code intelligence
Ctags, or nvim has a LSP so I don't use ctags (or cscope) much anymore. Common plugins are: coc.nvim, ALE, vim-lsp, YouCompleteMe

  > debugger
termdebug Is native? Also check nvim-dap (Neovim), vimspector

Most of the plugins listed mostly just make things nicer, not add functionality that doesn't exist. There's a ton of native things I didn't even list.

I'm not saying you have to like it nor that it looks/works the way you like/want/are used to, but you're claiming the functionality doesn't exist and that isn't correct. If it want you argue over style, that's perfectly okay. The reason a lot of us use vim/emacs is because we customize the tools to what works best for us. That's one of their best features! You don't have to use vim, emacs, or any TUI. The tools you should use are the tools best suited to you. Full stop.

But I'll also add that I haven't seen a single thing VS Code or any GUI IDE can do that I can't do in vim while also using a lot fewer compute resources to accomplish it. Personally, I program better and faster in vim because I have years of experience in it and I'm at the point that reaching for the mouse just slows me down. The learning curve isn't that steep to get pretty comfortable in vim, but the depth is enormous and that takes a long time to master. But honestly, the latter is true about most tools. And frankly, I'd rather have a tool where I can keep progressing and do crazy things in than a tool that caps my limits or puts a huge barrier if I want to extend. I moved away from IDEs because I found I could do more in vim quicker. But that's me, not you. Your experience will certainly be different and there's nothing wrong with that. We're just different people and that's perfectly fine.

The only thing really being argued here is your claim that "x can't do y" and as a user of "x", I assure you, I can do "y"


As I said, nothing has changed.

Instead of a coherent IDE, you have a lot of semi-broken pieces that don't work well together.

And that's also why projects like this one are really helpful.



I don't know about emacs, but its definitely doable in neovim. I don't know if the built in file explorer suits your needs, but now that nvim has a proper built in plugin manager, it's just one line of config to install neo-tree or something like that.

`neo-tree` is indeed close to what I'd love to see in a real text-mode IDE. I'm going to play around with it.

Yes, speedbar, with speedbar-prefer-window set to t

Or use any of the various file tree packages in [M]ELPA


XEmacs has always been moribund. Use GNU Emacs.

> doesn't make you a martyr because you get anxious

Every person's biggest problem is their biggest problem and it eats up their life in the biggest way possible.

Maslow's hierarchy is not a "smaller and smaller" problems list, it is a definition of what your biggest problem is & the solutions just scarcer as you climb up the ladder.

It's close to 20 years since I wrote about the same "problem" [1] in my life and the intervening years have brought much more grief, toil and resilience. Death of several loved ones causes you to consider what a virtue sounds like an eulogy and what yours will sound like in the end.

As an aside, I've felt like literature & art was backwards in the way it was introduced to me - where the first came "man vs nature", then man vs fellow man & then a "man vs self" battle. After fighting self and others, most of us will succumb to nature instead.

So, whenever someone vents or complains, just remember that this is not a contest or at least rage bait, but to be seen as a genuine struggle within yourself that you have put to words.

There's an episode of "Person of Interest" where the AI singularity struggles to play chess as each move cuts the possible moves and the first move is paralyzingly hard for it. Some people are like that, but regret is a form of hope without feathers. It comes from a strong belief that if you could wind the clock back and start over, it would be all different.

I nearly fell into the trap of Nihilism there ("Consider the Total Perspective Vortex")

[1] - https://notmysock.org/blog/me/a-buffet-intellectual


> Weekly downloads number doesn't.

The ChatGPT app downloads a copy of LibreOffice when you ask it to make pptx files.

So I've downloaded LibreOffice 3 times this week without really paying attention to it.


Ironic since the headline implies that people are downloading it specifically to avoid AI features being shoved into our document editors.

> One model drafts a result, an independent read-only critic from a different model family reviews it

Multiple model vendors is key here, the cascade pattern doesn't need it, but the critique pattern does.

Last Nov, my team wrote a paper ("Team of Rivals") on the difference between using an OpenAI model to Critique an Anthropic model's output vs running a self-review agent loop on the same vendor.

The ablations [1] proved that neither company alone was better than using both.

The paper was a general response to "What does your company do that Anthropic can't?" but more so a demonstration of how to make something 90%+ good with models which eval at 60% or so (& Gas Town post unblocked our "this is a trade secret" argument about the paper).

[1] - https://github.com/t3rmin4t0r/critique-evals


My editor and gatekeeper use like the same model Opus 5. Different prompts and a kind of different input data. The gatekeeper receives the fact check results next to finished text. In the same time the editor already delivered them. As far as I remember over the entire period he removed 27 posts out of 187 that went through him. So I believe that different manufacturers are not mandatory. What matters I guess is not the difference in models but... the fact that the critic has a different input and doesn’t have their own text that needs to be defended. That's the point

> the fact that the critic has a different input and doesn’t have their own text that needs to be defended.

Different inputs are one point, but there is another problem: lack of diversity

Models from the same maker, share the same training and the same implicit bias. It is like if both reviewers had the same gender, race, and studied at the same university, and just got different book day before. Add fresh immigrant from rural asia, you get VERY different opinions, even with the same input book...

Plus practical aspects, Opus 5 is sometimes way too creative which is good for writting. GPT Sol is complete oposite, it is obsessed with crossing every T and verifying every dot. It complements Opus as reviewer!

If opus gets security sensitive questions, gets downgraded to sonnet and againdown to haiku, the same model will hit the same security block, and will not catch the issue. Model from another lab will very likely catch this.

Plus anthropic models love to smell their own farts, load bearing seems are fantastic...


I would answer why was a single model enough for this? The fact check provides a kind of explicit written list of what cannot be asserted. At the same time gatekeeper compares the text with this list. I would say this is not about taste or judgment it’s about comparing two documents. In addition some of the removed items are direct violations of this list like the post called the model "a top‑tier model" even though the fact check by the way explicitly prohibited presenting circulating benchmarks as established facts. As regarding the degradation to Sonnet and Haiku I don't have yet any data.


> I don't see how that's possible if the cache no longer stores the uncompressed data.

Zstd has a seekable format for frames, similar to pigz --independent works.

[1] - https://github.com/facebook/zstd/blob/dev/contrib/seekable_f...


Speaking of pigz, I've run into pigzpp[1], or rather its paper: "pigzpp: Fast, Parallel, Portable Compression for the Whole Stack"[2].

Turns out we can squeeze quite a bit more compression performance out of DEFLATE - ~10x in certain instances, 2x as a base minimum (read the paper for details).

[1]: https://github.com/thammegowda/pigzpp

[2]: https://arxiv.org/abs/2608.24153


Yes. This.

The good part is that at least there's some explicit C++ std::memory_order and std::sync::atomic::Ordering lets me pick where it really matters.

For example, I built a skew handling model which needed low overhead cross-thread counters, where Ampere and Graviton was different from the M1 mac in benchmark - even down to the same assembly on different systems (cmov specifically).


Assuming AI is a significant budget item for companies going forward, then this makes complete sense.

Someone's spending money and they can take a small % to move it from your account to an inference vendor's account. Except for this case you have to also ship tokens across.

If you see Ramp's counter point with launching router.com today, this move makes sense.

Because the next problem is cap budgets and block runaway spending.


CTEs are how you compose SQL.

I don't quite like how the same CTE lives in 60 different places in my codebase, but at least the WITH clause changed things for me.

Also really liked Snowflake's result_scan for composing chains, mostly because I don't rerun expensive parts again and again. You can use ->> as a shortcut, but I don't think it uses results caching internally to skip waiting for them to all re-run & actually optimizes the whole thing.


you create one view and have the ctes query that, to deduplicate the implementation


> energy efficient tires have much longer wet braking distance

This is a labelling law, not a "You can't buy the bumpy tires" law.

This improves the quality of my choice here, because I already look for the little snowflake on tires when buying them for the 3 weekends I drive in the snow.

I'd be revolting too if they banned all season tires over this, because I am not swapping winter tires for thanksgiving weekend, Xmas and ski week.

Also efficient tires don't mean driving becomes boring, a GT86 is on skinnies and that makes it more fun at 35mph in a tight corner than a BMW with pilot sports.

I think they're only calling out cost, because the skinny tires cost more money overall, but there is a net payoff period on bills.


> This is a labelling law, not a "You can't buy the bumpy tires" law.

No, the labeling part seems to be mostly secondary:

FTA

"designed to ensure that replacement tires sold in the state are at least as energy efficient, on average, as tires sold in the state as original equipment"


> I want to click together a model that is laser-focused on what I am doing

This is roughly what multi-agent systems are built for.

This is possible with models too, but "making one on the fly" is much easier with agent coordination rather than model weights, since they all speak the same language.

There is an IBM Mainframe vs Google Distributed system division here. Like Seymour Cray said - two oxen or 1024 chickens.

Chickens are harder to harness, so a lot of my work is in sled-dog territory for agent harnesses & command structures.


> This is roughly what multi-agent systems are built for.

I think I disagree. For some things, maybe that works - but think of a multi-agent system where one agent understands the code, and passes it off to the reasoning agent to figure out what the bug is. This system is going to suck. Because encoding enough info to figure out what the bug is would just be dumping every single line of the code.

So say agent 1 (reasoning) asks agent 2 (swift) to explain what is happening in File.swift. Anything agent 2 passes to agent 1 short of the entire code is a lossy transfer - and then the bug gets missed.


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

Search: