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

That is a beautiful api.

Absolutely not. The value isn't in the cloud storage. The value is in the client (DropBox in my case) seamlessly working across all my devices.

This sounds like a problem already solved without the need for proprietary clients.

Ignoring the disaster that is their branding/naming.

Copilot is _amazing_. Everyone is hyping about Claude, but I'm way more productive with the copilot cli. The copilot cloud agent is great, and copilot code review is great (we also tried the new very expensive claude code review - it was slow and expensive).

Forget that it's Microsoft, forget that everything is Copilot and go and give it a shot.


> Copilot is _amazing_.

Do you mean Github Copilot? If not, which Copilot are you recommending? Can you give a link to where it can be purchased or trialed?

I'm genuinely interested in trying out whatever you're recommending; but it highlights the problem, that I literally don't know what you're actually referencing.


maybe a different thing but trying to work with copilot as part of the microsoft apps (e.g. automation flows) feels like it has zero reasoning ability, just says the same thing over and over like a chatbot rather than LLM.

I don't know if you're kidding, but I agree with you. I use the Copilot CLI in VS Code and Visual Studio and it works better than anything else. I do use Claude models with it....

I find a lot of devs I’ve worked with don’t even know about copilot CLI and just think copilot is the VS plugin

Due to microsoft’s confusing naming


Nice try, Nadella!

At work, they gave everyone a GitHub Copilot license whether they wanted one or not, which meant it started spewing nonsense on all our PRs. (I had them remove my license again.)

I don't use LLMs, but a coworker who does said that Copilot was one of the worst of the lot.


I find the differences between the CLIs pretty minor. GitHub and Kiro are the only ones allowed at my job, and GitHub is fine.

What many people who don't use the GitHub Copilot CLI don't seem to be aware of is that it's not limited to GPT models. I mostly use it with Gemini and Opus, for instance.


How much is it?

Huge fan of https://github.com/mermaid-js/mermaid, not the prettiest things but enough to scratch the itch.

You know you can just paste mermaid into excalidraw?

It has a mermaid WYSIWYG editor and once the diagram is inserted you can edit it, move objects, add text just like you had drawn it directly in excalidraw.

I usually enter mermaid and then move things around to my liking rather than drawing from scratch.

You can also paste csv in, it's been a while since I've done it but I think it even generates a chart.


Author here: I use mermaid lot as well and for some things like process flows, and to model interactions it it outrules excalidraw and posts will follow where i need exactly that. but to visualize things high level i find excalidraw way nicer.

I made it so that anyone who writes mermaid in HN comments, can see it inline comments, when the OJ extension is installed.

https://oj-hn.com/assets/mermaid-light.png


Mermaid is awesome, since it has broad support, can be committed to repos, and can be created and edited very easily by LLMs.

I appreciate performance as much as the next person; but I see this endless battle to measure things in ns/us/ms as performative.

Sure there are 0.000001% edge cases where that MIGHT be the next big bottleneck.

I see the same thing repeated in various front end tooling too. They all claim to be _much_ faster than their counterpart.

9/10 whatever tooling you are using now will be perfectly fine. Example; I use grep a lot in an ad hoc manner on really large files I switch to rg. But that is only in the handful of cases.


Whenever you have this kind of impressions on some development, here are my 2 cents: just think "I'm not the target audience". And that's fine.

The difference between 2ms and 0.2ms might sound unneeded, or even silly to you. But somebody, somewhere, is doing stream processing of TB-sized JSON objects, and they will care. These news are for them.


I remember when I was coming up on the command line and I'd browse the forums at unix.com. Someone would ask how to do a thing and CFAJohnson would come in with a far less readable solution that was more performative (probably replacing calls to external tools with Bash internals, but I didn't know enough then to speak intelligently about it now).

People would say, "Why use this when it's harder to read and only saves N ms?" He'd reply that you'd care about those ms when you had to read a database from 500 remote servers (I'm paraphrasing. He probably had a much better example.)

Turns out, he wrote a book that I later purchased. It appears to have been taken over by a different author, but the first release was all him and I bought it immediately when I recognized the name / unix.com handle. Though it was over my head when I first bought it, I later learned enough to love it. I hope he's on HN and knows that someone loved his posts / book.

https://www.amazon.com/Pro-Bash-Programming-Scripting-Expert...


Wow that takes me back. I used to lurk on unix.com when I was starting with bash and perl and would see CFAJohnson's terse one-liners all the time. I enjoyed trying my own approaches to compare performance, conciseness and readability - mainly for learning. Some of the awk stuff was quite illuminating in my understanding of how powerful awk could be. I remember trying different approaches to process large files at first with awk and then with Perl. Then we discovered Oracle's external tables which turned out to be clear winner. We have a lot more options now with fantastic performance.


Why are half the forum posts on there all about AI? Yikes


Also as someone who looks at latency charts too much, what happens is a request does a lot in series and any little ms you can knock off adds up. You save 10ms by saving 10 x 1ms. And if you are a proxyish service then you are a 10ms in a chain that might be taking 200 or 300ms. It is like saving money, you have to like cut lots of small expenses to make an impact. (unless you move etc. but once you done that it is small numerous things thay add up)

Also performance improvements on heavy used systems unlocks:

Cost savings

Stability

Higher reliability

Higher throughput

Fewer incidents

Lower scaling out requirements.


Wait what? I don't get why performance improvement implies reliability and incident improvement.

For example, doing dangerous thing might be faster (no bound checks, weaker consistency guarantee, etc), but it clearly tend to be a reliability regression.


First, if a performance optimization is a reliability regression, it was done wrong. A bounds check is removed because something somewhere else is supposed to already guaratee it won't be violated, not just in a vacuum. If the guarantee stands, removing the extra check makes your program faster and there is no reliability regression whatsoever.

And how does performance improve reliability? Well, a more performant service is harder to overwhelm with a flood of requests.


"Removing an extra check", so there is a check, so the check is not removed?


It does not need to be an explicit check (i.e. a condition checking that your index is not out of bounds). You may structure your code in such a way that it becomes a mathematical impossibility to exceed the bounds. For a dumb trivial example, you have an array of 500 bytes and are accessing it with an 8-bit unsigned index - there's no explicit bounds check, but you can never exceed its bounds, because the index may only be 0-255.

Of course this is a very artificial and almost nonsensical example, but that is how you optimize bounds checks away - you just make it impossible for the bounds to be exceeded through means other than explicitly checking.


Somes directly like other commenters touch on. Less likely to saturate CPU quickly. Lower cost to run so can have more headroom.

But also the stuff you tend to do to make it fast makes it more reliable.

Local caches reduce network traffic. Memory is more reliable than network IO so it improves reliability.

Reducing lookup calls to other services (e.g. by supplying context earlier in the dependency chain) makes it faster and more reliable.

Your code will probably branch less and become more predictable too.

And often the code is simpler (sometimes not when a performance hack is used)


Less OOMs, less timeouts, less noisy neighbors problems affecting other apps


But even in this example, the 2ms vs 0.2 is irrelevant - its whatever the timings are for TB-size objects.

So went not compare that case directly? We'd also want to see the performance of the assumed overheads i.e. how it scales.


Which is fine, but the vast majority of the things that get presented aren’t bothering to benchmark against my use (for a whole lotta mes). They come from someone scratching an itch and solving it for a target audience of one and then extrapolating and bolting on some benchmarks. And at the sizes you’re talking about, how many tooling authors have the computing power on hand to test that?


> "somebody, somewhere, is doing stream processing of TB-sized JSON objects"

That's crazy to think about. My JSON files can be measured in bytes. :-D


Well obviously that would happen mostly only on the biggest business scales or maybe academic research; one example from Nvidia, which showcases Apache Spark with GPU acceleration to process "tens of terabytes of JSON data":

https://developer.nvidia.com/blog/accelerating-json-processi...


All files can be measured in bytes. :)


You, sir or ma'am, are a first class smarty pants.


Who is the target audience? I truly wonder who will process TB-sized data using jq? Either it's in a database already, in which case you're using the database to process the data, or you're putting it in a database.

Either way, I have really big doubts that there will be ever a significant amount of people who'd choose jq for that.


There was a thread yesterday where a company rewrote a similar JSON processing library in Go because they were spending $100,000s on serving costs using it to filter vast amounts of data: https://news.ycombinator.com/item?id=47536712


That's a really great perspective. Thanks for sharing!


I get the sentiment, but everybody thinks that, and in aggregate, you get death by a thousand paper cuts.

It’s the same sentiment as “Individuals don’t matter, look at how tiny my contribution is.”. Society is made up of individuals, so everybody has to do their part.

> 9/10 whatever tooling you are using now will be perfectly fine.

It is not though. Software is getting slower faster than hardware is getting quicker. We have computers that are easily 3–4+ orders of magnitudes faster than what we had 40 years ago, yet everything has somehow gotten slower.


True. I feel like the main way a tool could differentiate from jq is having more intuitive syntax and many real world examples to show off the syntax.


The syntax makes perfect sense when you understand the semantics of the language.

Out of curiosity, have you read the jq manpage? The first 500 words explain more or less the entire language and how it works. Not the syntax or the functions, but what the language itself is/does. The rest follows fairly easily from that.


For better or worse, Claude is my intuitive interface to jq. I don't use it frequently, and before I would have to look up the commands every time, and slowly iterate it down to what I needed.


Maybe look at it from another perspective. Better performance == less CPU cycles wasted. Consider how many people use jq daily and think about how much energy could be saved by faster implementations. In times like this where energy is becoming more scarce we should think about things like this.


> Consider how many people use jq daily and think about how much energy could be saved by faster implementations.

Say a number; make a real argument. Don't just wave your hand and say "just imagine how right I could be about this vague notion if we only knew the facts"


I agree, but in this age of widespread LLM use, that's only marginal.


Was about to post exactly this... It is impressive engineering wise, but for data and syntax, ease of use or all the great features, I care about that more. Speed isn't that important to me for a lot of these tools.

If I/you was working with JSON of that size where this was important, id say you probably need to stop using JSON! and some other binary or structured format... so long as it has some kinda tooling support.

And further if you are doing important stuff in the CLI needing a big chain of commands, you probably should be programming something to do it anyways...

that's even before we get to the whole JSON isn't really a good data format whatsoever... and there are many better ways. The old ways or the new ways. One day I will get to use my XSLT skills again :D


I absolutely understand what you're saying. It makes complete sense. But I will never, ever shake the sense that software that isn't as fast as possible is offensive, immoral, delinquent -- the result of sloth, lassitude, lack of imagination, and a general hostility toward our noble Art.

"Fast enough" will always bug me. "Still ahead of network latency" will always sound like the dog ate your homework. I understand the perils of premature optimization, but not a refusal to optimize.

And I doubt I'm alone.


Then this is for the handful of cases for you. When it matters it matters.


I agree for some things, but not for tools or "micro-software" like jq that can get called a LOT in an automated process. Every order of magnitude saved for the latter category can be meaningful.


> I see the same thing repeated in various front end tooling too. They all claim to be _much_ faster than their counterpart.

>

> 9/10 whatever tooling you are using now will be perfectly fine

Are you working in frontend? On non-trivial webapps? Because this is entirely wrong in my experience. Performance issues are the #1 complaint of everyone on the frontend team. Be that in compiling, testing or (to a lesser extend) the actual app.


Worked on front end for years. Rarely ever hear people talking about performance issues. I was among the very few people who knew how to use the dev tools to investigate memory leak or heard of memlab.

Either the team I worked at was horrible, or you are from Google/Meta/Walmart where either everyone is smart or frondend performance is directly related to $$.


"performance is directly related to $$"

It is. Company size is moot. See https://wpostats.com for starters.


There are some really fast tools out there for compiling FE these days, and that's probably to what they refer. Testing is still a slog.


Uh, I've worked for a few years as a frontend dev, as in literal frontend dev - at that job my responsibility started at consuming and ended at feeding backend APIs, essentially.

From that I completely agree with your statement - however, you're not addressing the point he makes which kinda makes your statement completely unrelated to his point

99.99% of all performance issues in the frontend are caused by devs doing dumb shit at this point

The frameworks performance benefits are not going to meaningfully impact this issue anymore, hence no matter how performant yours is, that's still going to be their primary complaint across almost all complex rwcs

And the other issue is that we've decided that complex transpiling is the way to go in the frontend (typescript) - without that, all built time issues would magically go away too. But I guess that's another story.

It was a different story back when eg meteorjs was the default, but nowadays they're all fast enough to not be the source of the performance issues


Yes

I don't think I remember one case where jq wasn't fast enough

Now what I'd really want is a jq that's more intuitive and easier to understand


> Now what I'd really want is a jq that's more intuitive and easier to understand

Unfortunately I don’t recall the name, but there was something submitted to HN not too long ago (I think it was still 2026) which was like jq but used JavaScript syntax.


Fair, but agentic tooling can benefit quite a lot from this

Opencode, ClaudeCode, etc, feel slow. Whatever make them faster is a win :)


The 2ms it takes to run jq versus the 0.2ms to run an alternative is not why your coding agent feels slow.


Still, jq is run a whole lot more than it used to be due to coding agents, so every bit helps.

The vast majority of Linux kernel performance improvement patches probably have way less of a real world impact than this.


> The vast majority of Linux kernel performance improvement patches probably have way less of a real world impact than this.

unlikely given that the number they are multiplying by every improvement is far higher than "times jq is run in some pipeline". Even 0.1% improvement in kernel is probably far far higher impact than this


Jq is run a ton by AIs, and that is only increasing.


I can't take seriously any talk about performance if the tools are going to shell out. It's just not a bottleneck.


It's not running jq locally that's causing that


I don't think I'm quite bored. I'm exhausted/fatigued with the pace.


Yes it feels like a full time job just to try to keep up. And I’ve been in AI for close to 10 years so I feel like I have to keep up at least a minimum.

An other thing for me is that it has gotten a lot harder for small teams with few ressources, let one person, to release anything that can really compete with anything the big player put out.

Quite a few years back I was working on word2vec models / embeddings. With enough time and limited ressources I was able to, through careful data collection and preparation, produce models that outperformed existing embeddings for our fairly generic data retrieval tasks. You could download from models Facebook (fasttext) or other models available through gensim and other tools, and they were often larger embeddings (eg 1000 vs 300 for mine), but they would really underperform. And when evaluating on general benchmarks, for what existed back then, we were basically equivalent to the best models in English and French, if not a little better at times. Similarly later some colleagues did a new architecture inspired by BeRT after it came out, that outperformed again any existing models we could find.

But these days I feel like there is nothing much I can do in NLP. Even to fine-tune or distillate the larger models, you need a very beefy setup.


This.

I don't know how I'm burnt out from making this thing do work for me. But I am.



Yeah I don't think humans were meant to create things faster than they could understand them, but, here we are


> Desktops showing the taskbar positioned on the bottom, top, left and right side of the screen

Welcome to the 90s?

They are so far off track. I'm basically never leaving Windows 10.


I'm waiting for a wired bone conducting headset (mic included), so far only Chinese producers for that market.


You're not buying the ones available...because they're chinese?


The trouble with XML has never been XML itself.

It was also about how easy it was to generate great XML.

Because it is complicated and everyone doesn't really agree on how to properly representative an idea or concept, you have to deal with varying output between producers.

I personally love well formed XML, but the std dev is huge.

Things like JSON have a much more tighter std dev.

The best XML I've seen is generated by hashdeep/md5deep. That's how XML should be.

Financial institutions are basically run on XML, but we do a tonne of work with them and my god their "XML" makes you pray and weep for a swift end.


Maybe rather: how easy it was to generate rotten XML. I feel you there.

The XML community, though, embraced the problem of different outputs between different producers, and assumed you'd want to enable interoperability in a Web-sized community where strict patterns to XML were infeasible. Hence all the work on namespaces, validation, transformation, search, and the Semantic Web, so that you could still get stuff done even when communities couldn't agree on their output.


Surely this is a product of the fact that XML is just more extensible (it’s in the name after all).

If you tried to represent the data (exactly) from any of the examples in the post, I think you’d find that you’d experience many of the same problems.

Personally, I think the problem with XML has always been the tooling. Slow parsers, incomplete validators


I adore DuckDB.

Did a PoC on a AWS Lambda for data that was GZ'ed in a s3 bucket.

It was able to replace about 400 C# LoC with about 10 lines.

Amazing little bit of kit.


It really is one of the greatest open source gifts of recent years.


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

Search: