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

Hangon on a second, you paid dell support and they knowingly let you run production on kit with known total irreversible data loss bugs? Da. Fuq?!?


To be fair, there was not much Dell could do as their PERC cards were all rebranded Adaptec and later LSI. Adaptec was the gold standard for ages, but I assume was enshitified somewhere along the way. The long term result was that the entire hardware raid world ditched Adaptec for LSI and/or software RAID (eg ZFS). Dell (in those days, not sure if it's still the case) had excellent support. There was a bug on another server model where the onboard video card would eventually fail and fry the motherboard. Even years later out of support, Dell would for free replace it if it failed with whatever new model equivalent existed.

I left the company before things were totally resolved, but I think dell ultimately gave people who complained LSI cards, but it took awhile for those to be designed and manufactured to fit the internal drive slot. Most people who were also using external arrays moved to third party ones or other hardware.

Some background from an OpenBSD dev:

https://nickh.org/warstories/adaptec.html


milkdrop and project m, those were the days.

Why aren’t these really a thing anymore? Does anyone know any non-shit way to get nice visuals from apple music or spotify or whatever these days?


If you look at [1] you can see some derivations from Milkdrop/Project M.

There were a lot of other, good visual plugins and software. VJ software, specifically, but also Libvisual just abstracts input and output, therefore allowing you to use all of these (supported) visualization plugins on any supported media player. It isn't much developed anymore these days, but this is the correct way forward.

Looking at the actors in Livisual [3] G-Force is decent but also a couple may be missing from earlier Libvisual releases. You may also like Lemuria [4]. Winamp's AVS is also FOSS [5].

[1] https://en.wikipedia.org/wiki/MilkDrop

[2] https://github.com/Libvisual/libvisual

[3] https://github.com/Libvisual/libvisual/tree/master/libvisual...

[4] https://github.com/dr-ni/lemuria-2.1.1

[5] https://en.wikipedia.org/wiki/Advanced_Visualization_Studio


Also, I'm working on AVS still, from time to time: https://github.com/grandchild/vis_avs/tree/dev



Agreed. I would love Plex (or PlexAmp and then cast) to have some built in visualizations. And I have no idea why some of those streaming EDM channels on YouTube aren't doing music visualizations rather than ten second loops of video.


There are some visualizers in the Mac App Store. I'm using Ferromagnetic right now and like it well enough. There are still visualizers in Apple Music left over from the iTunes days but they're kind of lame.


I stumbled onto one years ago by accident, maybe an Easter egg or something. I came back to my computer (Mac) after several hours of iTunes playback to see a hitherto unknown visualization running, with fairly primitive-looking graphics by today's standards. It was not any of the visualizations available in iTunes at the time.

I filed a bug on it with Apple and they got back to me asking how the hell I had invoked this, because they'd never seen it before. Never did get to the bottom of it.


Intentional pun?


Milkdrop and Project M are both available as vis plugins for Foobar2k, on Windows at least: https://www.foobar2000.org/components/view/foo_vis_milk2


Project M is still around. I use it to project visualisations at house parties.


This looks cool, Im quite uninformed about xml databases and xquery though, and I had foolishly assumed I had quite a broad exposure to tech stacks.

Whats this stuff used for?


I use XQuery to transform XML data. Whatever can be done with XSLT can also be done in XQuery. It is a functional language and, unlike XSLT, it is supported by more tools for newer versions (XSLT > 1.0 is only supported by Saxon, as far as I know). Overall, it feels much more modern and ergonomic for querying and transforming XML. Best of all: XQuery 3.1 supports JSON natively — I have also adopted it for JSON in some ETL pipelines.

Check Wikipedia for more information: https://en.wikipedia.org/wiki/XQuery


It’s not even technical reasons my org has loads of oracle it’s compliance. We have to have vendor support for the data layer for certain financial applications which leaves us with only the companies willing to do the insane dance that is involved in getting vendor certified with my bank (6 months on avg, hundreds of pages of legal documents).

It narrows the field, at least for us, to microsoft, ibm, oracle and mongo.

So we’re all in on mongo, as it goes, but I wouldn’t really balk at running some stuff on the giant oracle clusters now and again.


Ingress-Nginx is commonly internet facing though; I think everyone wants at least base image and ssl upgrades on that component…


In which case it's even more important that the updates are not a huge amount of work.


immutability?

    Interactive Elixir (1.19.0) - press Ctrl+C to exit (type h() ENTER for help)
    iex(1)> x = 1
    1
    iex(2)> x = 2
    2
    iex(3)>

What's immutable about elixir? It's one of the things which I MISS from Erlang -- immutability.


This is like saying Haskell doesn't have immutability because it has the state monad, or that rust doesn't because you can shadow with let.

Data is immutable and thats much more important than whether local variables can be modified imo.


Shadowing is not mutability. The former isn't affected by control flow nor does it affect closures.


What you wrote is roughly equivalent to this in C:

  {
    const int x = 1;
    {
      const int x = 2;
    }
  }
which is to say, there are two different `x` in there, both immutable, one shadowing the other. You can observe this if you capture the one that is shadowed in a closure:

  iex(1)> x = 1
  1
  iex(2)> f = fn () -> x end
  #Function<43.113135111/0 in :erl_eval.expr/6>
  iex(3)> x = 2
  2
  iex(4)> f.()
  1


> Most systems handle this defensively with locks and runtime validation.

So i work at an org with 1000s of terraform repos, we use the enterprise version which locks workspaces during runs etc.

everywhere else i’ve worked, we either just use some lock mechanism or only do applies from a specific branch and CI enforces they run one at a time.

My question is: who is this aimed at and what problem is it actually solving? Running terraform isn’t difficult - thousands of orgs handle it no problem - the issues I have with it with it have never been around lock contention and race conditions..


Hello, CTO of Terrateam here, the creators of Stategraph.

As you said, the common practice is to use locks on state to guarantee that operations don't step on each other. This works, however the cost is that if it takes 5 minutes to perform an operation, only one person can be doing an operation at a time, so if 5 devs are modifying infrastructure, the last one has to wait 25 minutes just to get back the plan, even if those 5 people are not changing overlapping resources in the state.

The way that most people deal with this is they take their infrastructure and break it up across multiple root modules, and then when those root modules, break it up again, etc.

Stategraph is solving the problem of getting all of the performance benefits of breaking up your root modules without breaking up your root modules. It dynamically determines which resources each of those 5 devs are operation on and, if the resources do not overlap, can run them in parallel.

That means Stategraph is manipulating state in a bit more sophisticated way than standard Terraform/Tofu, and we need to be careful we don't get it wrong.


I'm not sure I would want this even if I could have it TBH. Engingeering org size is about ~200 with infra/sre/ops around ~25.

Different teams want to move at difference cadences. At a certain scale splitting up things feels a little more natural (maybe I am stockholmed by prior limitations with TF though or just used to this way of operating now).

But even then, we're moving to k8s operators to orchestrate a bunch of things and moving off terraform apart from the stuff that doesn't change much (which will eventually get retired as well). Something like https://www.youtube.com/watch?v=q_-wnp9wRX0

Terraform variable management is our larger problem (now/nearterm) when we have to deploy numerous cells of infra that use the same project/TF files with different variables. Given the number of projects/layers of TF getting cell specific variables injected is meh.

Those variables are instance size, volume size, addresses, IAM policy, keys etc.

This is in the b2b saas world with over a million MAU. We've got islands of infra for data soverignty, some global cells where each cell can communicate back / host some shared services (internal data analytics, orchestration tooling, internal management tooling and the like).


The way I look at it is that TF has a limitation on state size. And when you hit that limit, you have to either slow down a ton or do a (big) refactoring.

As comparison, if a programming language forced you to split your software into multiple executables when you got to a certain number of functions, I think, almost universally, we would say that it's not a production language. That is a stupid limitation and forcing development work on users because of stupid limitations is disqualifying.

But for TF, even if we are refactoring it because the tool is doing it, we tell ourselves that it's a good idea anyways because of good software practices. But splitting infrastructure over multiple root modules is, in my analogy, the same as being forced to do it over multiple executables. It comes with a lot of unnecessary limitations.

With Stategraph, you can choose to split your infrastructure over multiple root modules, if that is what you want to do, not because you don't have a choice.

V1 of Stategraph is a drop-in TF/Tofu replacement, but once it's there, you can see a path to something more like k8s operators, without having to do any migration of infrastructure.


Back in the day, before git, we had RCS. Developers would just lock files when they worked on them, and then unlock when they were done. Or you'd copy a folder manually ("branch") to work on things concurrently and then punch them in the shoulder when they forgot to unlock master so that you could lock it and check in. It worked absolutely fine, there were loads of workarounds!


Yeah I get the sense that terraform change application is solved by just serializing all changes? The concurrent applies isn’t that big of a deal?


> The concurrent applies isn’t that big of a deal?

That depends. There are many organizations (we talk to them) which have plans and applies that take 5 - 10s of minutes, some even close to an hour. That's a problem. We talked to one customer that a dev can make a change in the morning and depending on the week might have to wait until the next day to get their plan, and then another day to apply it, assuming there are no issues.

If you're in that position you have two options:

1. Just accept it and wait. 2. Refactor your root module to independent root modules.

(2) is what a lot of people do, but it's not cheap, that's a whole project. It's also a workflow change.

Stategraph is trying to offer a third option: if your changes don't overlap, each dev can run independently with no contention.

Even if one doesn't think contention over state is a big deal, I hope that one can agree that a solution that just removes that contention at very little cost is worth considering.


> There are many organizations (we talk to them) which have plans and applies that take 5 - 10s of minutes, some even close to an hour. That's a problem. We talked to one customer that a dev can make a change in the morning and depending on the week might have to wait until the next day to get their plan, and then another day to apply it

That's us. Especially because our teams are distributed across NA/Eastern Europe/Japan. So getting a lock is a problem because you have to wait for someone else to finish, then getting the required reviews is a problem because you have to wait for people from other timezones to come on, then by the time you're ready to re-plan after the reviews someone else has taken the lock, then you have to wait for them,...


If there was a time to insert a Jobs "you're holding it wrong" I think it would be here...


They were, in fact, not holding it wrong


Agreed and well said!


We have gpt-5 and gemini 2.5 pro at work, and both of them produce huge amounts of basically shit code that doesn’t work.

Every time i reach for them recently I end up spending more time refactoring the bad code out or in deep hostage negotiations with the chatbot of the day that I would have been faster writing it myself.

That and for some reason they occasionally make me really angry.

Oh a bunch of prompts in and then it hallucinated some library a dependency isn’t even using and spews a 200 line diff at me, again, great.

Although at least i can swear at them and get them to write me little apology poems..


On the sometimes getting angry part, I feel you. I don't even understand why it happens, but it's always a weird moment when I notice it. I know I'm talking to a machine and it can't learn from its mistakes, but it's still very frustrating to get back yet another here's the actual no bullshit fix, for real this time, pinky promise.


Are you using them via a coding agent harness such as Codex CLI or Gemini CLI?


Via the jetbrains plugin, has an 'agent' mode and can edit files and call tools so on, yes I setup MCP integrations and so on also. Still kinda sucks. shrug.

I keep flipping between this is the end of our careers, to I'm totally safe. So far this is the longest 'totally safe' period I've had since GPT-2 or so came along..


Ah come on that’s not what they’re talking about. Feeling a bit down — sure some upbeat music may nudge you out of it, but loss like losing people isn’t being fixed with a mixtape.


They’ve never worked on a real soa/multi-team/microservices project with more than 20 separate deployments before and assumes no one else does.


20? That's still on the small end.


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

Search: