I think the tech industry in general is taking advantage of the fact that software productivity is hard to quantify to say whatever they want about their AI productivity gains. Apparently we are past the point of having to justify anything and can just equivocate increased AI spend with success.
HN user
Cyphus
[ my public key: https://keybase.io/cyphus; my proof: https://keybase.io/cyphus/sigs/6Vtub-pZ-3OfzVApyjQlrtoPn-pkjeUmQTC61zevWII ]
what started as an experiment in productivity became a runaway success
Successfully burning through cash and tokens, alright, but what have they gotten out of it?
That feature is entirely optional and disabled by default. Atuin stores your shell history locally in a sqlite db regardless of whether you choose to sync it. I thought fzf was fast, but atuin makes it look slow by comparison.
I wholly agree, the response screams “copied from ChatGPT” to me. “Contributions” like these comments and drive by PRs are a curse on open source and software development in general.
As someone who takes pride in being thorough and detail oriented, I cannot stand when people provide the bare minimum of effort in response. Earlier this week I created a bug report for an internal software project on another team. It was a bizarre behavior, so out of curiosity and a desire to be truly helpful, I spent a couple hours whittling the issue down to a small, reproducible test case. I even had someone on my team run through the reproduction steps to confirm it was reproducible on at least one other environment.
The next day, the PM of the other team responded with a _screenshot of an AI conversation_ saying the issue was on my end for misusing a standard CLI tool. I was offended on so many levels. For one, I wasn’t using the CLI tool in the way it describes, and even if I was it wouldn’t affect the bug. But the bigger problem is that this person thinks a screenshot of an AI conversation is an acceptable response. Is this what talking to semi technical roles is going to be like from now on? I get to argue with an LLM by proxy of another human? Fuck that.
I 100% agree. It’s not so much the yaml as it is the templating. I originally wanted to say “since the invention of yaml/jinja” in the parent comment because that’s what I’ve gotten most of my gray hairs from (saltstack templating). Go templates are not jinja but fundamentally the same thing - they have no syntax awareness and effectively are just string formatters.
I took out the part about templating because I thought it made my comment too wordy, but ended up oversimplifying.
Seriously. I’ve lost at least 100 hours of my life debugging whitespace in templated yaml. I shudder to think about the total engineering time wasted since yaml’s invention.
The original iteration of Docker Swarm, now known as Classic, is deprecated. Maybe you were thinking of that?
Docker the company bet big on Swarm being the de facto container orchestration platform for businesses. It just got completely overshadowed by k8s. Swarm continues to exist and be actively developed, but it’s doomed to fade into obscurity.
You can scale the UI according to your preferences, but the real problem is that if your monitor’s ppi is not close to the macOS sweet spot of 220ppi (or an integer multiple thereof) you’re going to have aliasing issues with text and other high contrast elements.
https://griffindavidson.com/blog/mac-displays.html has a good rundown.
I’m in the same boat with a lot of these tools, but bat is different in that it’s compatible enough to be safe to alias to the command it's replacing[1]. You can continue to use cat as usual, with the benefit of getting syntax-highlighted output.
[1]: Assuming you use the `--paging=never` flag in your alias as the README suggests.
In regards to the tenting not staying in place, put some threadlocker on the bolts. It does wonders. I got some threadlocker to stop my adjustable bar stool feet from slowly unscrewing themselves and getting wobbly every week and it's easily the best purchase I've made all year. Anytime I see a loose door knob, chair leg, tripod mount, or adjustment screw, I throw some threadlocker on there and never have to tighten it again.
Outside of holidays and special events, they do indeed choose randomly from a dialogue bank. There’s actually multiple dialogue banks, one for each villager personality type.
The author's example serves as a counterargument to their point.
Relying on a feature that requires enabling an experimental flag in the latest version of Chrome to work is "leveraging the web" in the worst way.
I've been using codecompanion.nvim[0] combined with mcp-hub.nvim[1]. Code Companion works well for interactive chat but falls short for agentic coding. It's limited to some pre-configured and user-defined "workflows" which are basically templated steps with prompts, actions, and loops.
I've been meaning to give avante.nvim[2] a try since it aims to provide a "Cursor like" experience, but for now I've been alternating between Code Companion for simple prompts and Claude CLI (in a tmux pane next to Neovim) for agentic stuff.
[0] https://codecompanion.olimorris.dev/
Heavyset on iOS should fit the bill perfectly. It has everything I want in a workout tracker (weights based on percentage of training max, workout calculator, Apple Health integration) and nothing more. https://www.runloop.com/heavyset
I really want to dive in with Cue, but one thing that I got burned on when using jsonnet to generate CloudFormation templates years ago was lack of discoverability for newcomers to the repo.
Taking your sample code as an example, someone might look at the myapp deployment definition and ask: “does this deployment get created in the default namespace or does it automatically create a myapp namespace? What’s the default number of replicas? Are there any labels or annotations that get automatically added?” Etc.
On the flip side, there’s potential lack of “greppability.” The user may have found a problem with a deployed resource in, say, the development cluster, and go to grep for some resource-specific string in the repo, only to come up empty because that string is not in the source but rather generated at by the templating system.
To be clear, both of these problems can affect any method of generating config, be it yoke, helm, ksonnet, kustomize, or cue. It’s like a curse of abstraction. The more you make things into nice reusable components, the easier it is for you to build upon, and the harder it is for others to others to jump in and modify.
At least with Cue you get properly typed values and parameter validation built in, which puts it miles ahead of “everything is a string” templating systems like the helm templates the article complains about.
Ubuntu's installer supports bootstrapping ssh access with this method. Put in your GitHub username and it takes care of the rest. Works for interactive and headless installs.
I’ve yet to try WezTerm myself, but this single issue would make me switch back to Alacritty.
I did some searching and it looks like the issue might be fixed in latest nightly. See https://github.com/wez/wezterm/pull/5396
Is your dad running Windows? Windows firewall is known to block icmp traffic, a problem that neither Tailscale nor any other p2p VPN can solve.
"special" in the sense that unlike other extensions which are user-installed, this one is built into Chrome.
"hidden" in the sense that when I go to chrome://extensions it is not listed.
And as you already mentioned, it's a Chrome API.
Looks like they were accepted into the CNCF Landscape at least https://glasskube.dev/blog/cncf-landscape/
https://web.archive.org/web/20240106121752/https://thermoele...
(With thanks to @varenc)
That Go uses arbitrary-precision for constant expressions seems dangerous to me.
I'm somewhat baffled by this statement. If a Go program compared a constant expression float against a runtime computed float, it could have unexpected results, but comparing floats in general is dangerous. I don't see how this language quirk increases that danger in a meaningful way.
inefficient raycasts aren't some sort of pathological edge case.
You're right that raycasts aren't an edge case in terms of usage, but Juan Linietsky's point is that the inefficient path used for this API call is a rare exception to the efficient paths used by the vast majority of the API.
I don't blame you for switching from Darktable at all. Darktable can be quite powerful but it suffers from ease of use and discoverability issues. It's not reasonable for a photo processing application to expect its users to deeply understand how it all works under the hood in order to get good results.
As someone who did a deep dive into understanding DT's scene-referred modules, it changed the way I think of photo processing. I now have a hard time using any other photo software.
The wires are usually the first thing to go out for me too. Have you considered buying a pair of headphones with detachable cable?
Can you explain this one for me? I've always felt that unless one has a tenuous relationship with their employer, longer tenures mean more job security.
I suppose that given enough time in the same role, one would naturally get so comfortable that they can perform their job more or less on autopilot. Combine that with regular raises and I could see how they might be perceived as an expensive employee who doesn't put forth much effort relative to their peers. That would certainly make me worried about being targeted for layoffs. Is that the kind of logic the author is referring to?
It is also the opinion of the people who wrote the built-in webserver. If you try to run it in production mode, it'll emits this warning on startup:
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
I don't expect junior devs to have a sense for what is production-grade and what is not, but if they try to ship software that explicitly warns against being used in production, you've got a real liability on your hands.
It would be worth avoiding at that initial stage, but would be less and less of a factor as the company grows and matures.
I work for a startup with ~60 employees. The DNS was setup through GoDaddy by our CEO over 6 years ago when the company consisted of just founders.
Employee #1 updated GoDaddy to point to AWS for nameservers. We've been managing DNS through Route53 ever since. It's tech debt, sure, but migrating domain ownership to AWS gives us almost no benefits. I guess having more consolidated billing would be nice, but until finance complains at me I'm not bothering to change it.
It would pain me to find out that a candidate would red flag the company based on domain registrar. Then again, I don't know if I'd care to interview someone who makes such large decisions based on small details with no context.