skysight-inc/HackerNews huggingface dataset:
> As you said yourself, microservices do work well for large companies, so why pretend it doesn't?

Same reason we don't teach people anything about driving an 18 wheeler when they apply for their regular driver's license. A small minority of drivers will ever even have to think about the topic and when they do, they'll seek out a specialized trucker school or their employer will guide them through the process using institutional knowledge. There is zero value to exposing people with learner's permits to the nuances of driving massive trucks.

Unlike the truckers, however, tech bloggers have hyped up the concept of microservices as a panacea to all developers, resulting in a disastrous cargo cult. There is no interesting conversation to be had about microservices in this context. That discussion is going to be had with all the other senior-most engineers in an organization because any org incapable of such an in-depth discussion internally should not be using microservices.
You mean, overstated? As in, they're taking a tiny effect that many not exist, and putting it out as if it could matter?

I don't see how this could be understated. The effect they found is basically zero.

https://ars.els-cdn.com/content/image/1-s2.0-S19313128230021...

And worse, even if you buy their story, the effect goes down to zero by 6 months.

This to me doesn't say "Let's make a big study there's gold here". It says "There's nothing here and we're wasting our time".
> F#, Swift and Rust have a perfect error handling mechanism.

Rust's is good but not perfect. I often find myself missing stack traces (there are solutions but they're not easy to use), and you're still constrained to a single type of error per function, which means you see a proliferation of specialized error types that are mutually incompatible and have to be converted back and forth.
One thing I don't get (and would honestly appreciate if was explained to me) is how the Result monad differs significantly from Go's error handling, other than being a "true" monad. Most Rust code I see does things like (from the docs):

let greeting_file_result = File::open("hello.txt");

let greeting_file = match greeting_file_result {
Ok(file) => file,
Err(error) => // handle err
};

It isn't much different from:

file, err := os.Open("hello.txt")
if err != nil {
// handle error
}

I've come to appreciate Go's simple solution as you get pretty much 90% of what you want from an operation that might produce an error (either the value or an error), and the flow control aspect of it is more explicit than with exceptions.

Maybe I don't get Monads, but it seems pretty much equivalent for the common use case.
So, the original MVC was designed in the context of green-screen terminal systems. In that context, this “design pattern” really isn’t a design pattern per se; it’s just a formalism over the code you’d inevitably write to make such a system work. In a green-screen system:

• the “view” is the terminal buffer state — not even a “virtual DOM” version of it, but literally the buffer state itself (under 3270 protocol, properties like “editable” are basically bits in the TTY buffer applied per-cell — you can think of them like ANSI TTY-cell background colors and not be far off.) Think of it as an mmap(2)ed file in backend memory, holding structs of almost the same type as the view, save for OS-syscall-time remapping to prune out the form labels.

• the “model” is the ADT over the record-oriented mainframe datafile backing the terminal (How does the model know how to change the view? Because it’s a very thin abstraction: fields in the view-state, and fields in the DB state, are 1:1, with no parsing or serialization — leading to things like passwords only being stored in the DB at the size of the form-field for them.)

• the “controller” is the serial line-discipline that interprets the key codes sent from a TTY into editing actions like “overwrite a character” or “backspace”, and applies those actions to the data in the model (how does it know what part of the model is active? “Spatial databases” have something like a hierarchical navigation-path DB cursor as part of their descriptor state. Switching the active view is a model state change!)

• you need an “editor” separate from the “controller” because otherwise every character edit action sent to the TTY would provoke an instantaneous commensurate change in the DB data. If you need to store and validate live edits before committing them to the DB, then you need an editor “proxy” object to hold that “draft” state.

All in all, pretty different from anything we’re doing these days. Or is it? Depends on where you draw the line of abstraction! In modern terms:

• the classical MVC “controller” is the frontend or per-component view controller — observing the client’s actions and feeding them into the system as events.

• the classical MVC “view” is the API query result set, databound through the client DOM components. If your app is server-side rendered, it’s the HTML DOM itself as loaded into the browser!

• the classical MVC “model” is the entire backend, through its API

• the classical MVC “editor” is the changeset — a CQRS Command-in-draft. (In a HATEOAS context, an HTML form is also this.)
Because most of us use Redis for vastly more than a kv. Memcached is excellent if you only have basic cache needs.
> Model updates View, View sees User, User uses Controller, Controller manipulates Model.

> This makes a lot of sense to me, and I think I understand it pretty well.

It looks simple at first glance, but it actually makes zero sense under closer inspection.

Let’s take a simple example. A table of users. You take a table from the database and put it into an html tag table. Wait, who is “you”? The model? Do you want your model to know about html? The view? Do you want your view to know how to connect to a db? The glue code for them? If so, then it is the model-view-controller-glue, not model-view-controller.

This is why what the author calls Apple-MVC is far more common. It is just hexagonal architecture. You take different components that take care of their own area of concern and glue them together to fit specific needs of your app. That glue code is called “controller” in that case. It is intuitive and simple; and thousands of junior developers probably reinvent that type of architecture every day.
This article, if accurate (and I think it is), has serious implications for the food supply, and the economy, of not only the West but the entire country.
Are you opposed to filing a bug in Nixpkgs for your application? Alternatively, are you willing to point to your application or its package in Nixpkgs so that someone else can do so?
What's the radical changes no large organization is willing to make?
What show was that?
Yes, implemented it at my current company and my previous company. It's definitely worth spending the time to learn opentelemetry since its rapidly becoming the standard interface for observability signals, particularly tracing.

Roadblocks:
- Some backend providers still don't support opentelemetry format. Notably the number that do support it have increased dramatically over the past year. For those who don't natively support opentelemetry, you'll likely want to use the opentelemetry collector to translate to the format of choice
- There's a fair amount of difference in maturity level depending on the language you're using. For example, python's opentelemetry ecosystem is very mature whereas rust's ecosystem was lagging behind.
- Tracing is probably the strongest aspect. While metrics and logs are supported, they're definitely lag behind in terms of the TLC they're given

Tidbits of note:
- Opentelemetry collector has rapidly become the go-to agent of choice. It has leapfrogged vector.dev in terms of features, and I'm seeing some enterprises choose to use it as their customer-facing agent (ie GCP's agents are clearly opentelemetry + plus some extras)
- As more companies support opentelemetry as a format, there's less of a need for opentelemtry's format translation feature.
Who says they can’t? I can’t find it just now, but I recall reading an article about some firm that approached a number of SVB depositors offering to buy the rights to their deposits at a discount (probably a steep discount at that). This was on or about that Friday or Saturday, before the government announced they would cover more than the FDIC limit.
I’m getting Virgin Galactic vibes. They’ve cut a lot of corners over there and they’re starting commercial flights this summer despite not having I’m convinced the most-safe aircraft. They’re out of money and they’re out of time. That’s what it always seems to come down to, not so much “time vs money” but “safety vs money”.
Previously discussed in 2021: https://news.ycombinator.com/item?id=29275887
Those seem like things you'd do multiple places and it would be a good idea to make them into a function.

If you have a one-off, defer is nicer looking but using is perfectly capable of doing the job:

function defer_it(callback) {
return { [Symbol.dispose]: callback };
}

// will look better with using void
using _ = defer_it(()=>logger.log("exit"));

Or use DisposableStack() as another comment in this thread mentions.
The US government's global anti-corruption envoy is named Rich Nephew. That still kills me every time he's in the news.
Maybe they were handling the bags before customs on international arrivals and that they were looking for certain bags that they new to be well loaded. And that they were actually closer to "receiving" than "stealing". To afford to pay an accomplice $2000 per shift, I can't see how they could be making enough unless it was something more like I described than like stealing from random bags
The thing this appears to be missing is the ability to capture the part of the stack between the try and hurl as a first-class value and reify it later, although the toss/return is not too dissimilar as toss does capture the stack and return reifies it. It's close to multi-prompt due to multiple catch branches, so I would describe it as a one-shot, multi-prompt, second-class delimited continuation.

A bit more powerful are multi-shot, multi-prompt, first-class delimited continuations, which you can then use to implement exceptions themselves with multiple catch blocks.
With the new function calling feature you may not need the second system. Only present options to ChatGPT that are valid. Feed it updated state information as JSON. Have it describe and elaborate on what the game engine is doing, or use functions to invoke entity creation that can then be tracked by the engine.

So for example the engine can do combat rolls and the LLM can give each a unique description of the type of attack and defense. Each monster or treasure can get its own unique description generated by the LLM that matches the stats given by the LLM.
It’s not your content, it’s theirs. Here comes the part where they sell access to the firehose and historical data instead of selling NFTs and making the mobile app worse like they have for the last few years, because the “value” is in that now. The money taps ran dry, but not for AI, sorry.
Yes I read that
Lemmy has the same issue as Mastodon: what instance do I join?

When looking at the "migrate from Reddit" page the two obvious ones are lemmy.world and beehaw.org. But now they don't federate with each other, so it's down to more special-interest and smaller instances where it's not really clear what some of the rules might be, just to be able to see posts from both of these bigger instances.

The comparison is always made to picking a place for your email where Gmail/Yahoo/Hotmail were all "the same", but that's not really true for federated social networks. There's quite a bit more mod actions that could significantly influence your reach or experience with the wider fediverse.
Could I request an invite to check it out?
There is more than just hope to rely on.

Diverse Double-Compiling[0] can provably detect this class of attack.

[0]https://dwheeler.com/trusting-trust/
Well, something went wrong and one of the things that could go wrong is the air supply. I wouldn't be a passenger for any amount of money, these are experimental tools, not joy rides.
It's not even really about static compilation. NixOS (and many Linux distros) include tons of dynamically linked C applications that just do a way, way better job of compatibility. Imagine if GNU grep were as fussy about only being built against 1 version of glibc as many Python libraries and applications seem to be about their dependencies.
I remember that being the mindset from industrial robotics: you're not modeling the device, you're modeling a device you can prove is weaker than the actual device.
The big issue is that there is no consensus on "fun". You could make a "fun" platformer but you're not converting people who don't like paltformers (even if they make a few exceptions like Mario or Celeste. You're probably not making the next Mario, though). If the game is boring to that audience the solution shouldn't be to change genre. Not unless your goal is to attract a general audience.

So "the game isn't fun" needs a lot more context on who is saying it, and is useless otherwise. Do they like your genre? Are they miscommunicating what sounds like a game design issue when it could be an art/sound issue? Did they just grab your game in a bundle/gamepass and weren't really in the mood to play your game?

It's all speculation. And it's probably better to find better feedback than try to psycho-analyze every comment that way.
The killer feature of Rust's Result isn't actually the monad itself, it's the ? operator. Being able to concisely say "if there's an error, bail out by returning it" gets you pretty close to exception-level convenience with just a bit more explicit syntax showing where an error might come from.
> you choose for Wikipedia to state it as 350kW.

The precise sentence from Wikipedia is, "It can use Combo 1 (CCS1) or Combo 2 (CCS2) connectors to provide power at up to 350 kilowatts (kW) (max 500 amps),[1] although higher values are coming" which is true. Higher power levels are here. 700 kW CCS chargers are a practical reality.

Did you watch the video or not? I'm thinking not.

> Interesting that you keep bringing up Tesla.

How is it interesting? We are precisely talking about Tesla's plug versus the CCS type 2 Combo plug. You are falsely claiming that the Tesla plug can do something the CCS plug cannot. What else am I going to bring up?

I find it remarkable that when the practical realities are put right in front of your face you still deny them. That's some highly effective brainwashing. That's what Tesla has done to you.
As a concrete example, if you look at an electric grid map of South Korea (here is one: https://www.e2news.com/news/articleView.html?idxno=236289), you will find that POSCO, Hyundai Steel, and Samsung Electronics have their own substations.
True, but remarkably fun stories.

As an aside, there should be an AI encabulator.
I'm waiting for the comment(s) to tell me why this isn't as scary as it sounds.

> it’s 25 times higher than what farmers have paid for the last 75 years.

Just another catastrophe that I naively thought, 15-years ago, wouldn't explode as an issue in my lifetime.
There is a diagram of a process that reads the MySQL commit log and uses that to send Memcache delete commands. Not exactly groundbreaking.

But I would also guess that FB would have to explain lots of their middleware concepts in order to explain how data in the database maps to memcache keys defined in middleware.

Personally, I think the hard part is ensuring the entire company/system accesses data through the correct abstractions (eg. the newest data model code) and does not bypass the data model code (eg. by hitting the database directly).
Nice! I was looking for something similar recently to organize our slack channels, gets messy quickly. Does it support labeling the questions and have statistics generated on a weekly/monthly basis?
This comes down to ideological reasons. The engineer that is/was leading the embedded integration subproject feels like the platform support components (filesystem partitioning, bootloader, devicetree config, etc.) of installing a distribution on the hardware should not be a concern of the distribution itself[1].

I don't necessarily agree on all points as most distributions approach this quite differently, but it's an interesting premise. There are other projects that attempt to attack this problem but I'm unsure if any have gained a critical mass.

[1] https://discourse.nixos.org/t/planning-for-a-better-nixos-on...
This is under water. Radio/Cell do not penetrate beyond a few centimeters. Communicating underwater is usually done via acoustics.
> the math says the market doesn't work out.

I get it. But if that's true we should be able to make it easier for firms to build competitors and worst case, nothing happens right? The fact is power companies enjoy things like access to public land or rights to use poles, often granted to only them explicitly. If they are truly a natural monopoly they won't need the effective legal monopoly protection.
I don't know what to tell you; the Cayman Islands for years has been ranked top of the list of tax havens and money laundering locations for years and years.

Those are just facts.

https://www.republicworld.com/world-news/rest-of-the-world-n...
AutoCAD definitely was CLI-based, with menus and dialogs basically filling in parameters to the commands. But in the late 90s or so Autodesk got religion and decided that AutoCAD should be a Windows product and follow Microsoft UI guidelines, so I don't know how well they stuck with the "command line underneath" over the years.

Early in AutoCAD's history, Autodesk did add loops and conditionals to its CLI -- with Lisp! Type an open paren and the command line became a REPL. You could define new commands, directly manipulate entity data structures, and have all the control structures Lisp affords -- not Common Lisp, it was way simpler, but it was powerful.

To this day, wayward mech engineers still sometimes ask Autolisp-related questions on unrelated Lisp fora, such as r/lisp.
> We clearly don’t have much intellectual common ground here.

There's nothing at all intellectual about your blanket denial of practical realities. You've been brainwashed. It's sad to see.

EVBox and Alpitronic have deployed 400 kW chargers. Repsol deployed 400 kW chargers 4 years ago. Nxu has a 700 kW CCS charger.

Look, here are all the links again. Have a read and a watch and try to break free of your brainwashing:

https://insideevs.com/news/375020/repsol-most-powerful-charg...

https://electrek.co/2023/06/08/evbox-400-kw-ev-charger/

https://www.youtube.com/watch?v=bbgChK9VDjI

https://www.youtube.com/watch?v=T4ZWN_-a2j4

https://www.youtube.com/watch?v=sEJ2KtzMeh8

https://www.youtube.com/watch?v=Mm5shAEITA0
This article is a shortened version of the much longer (but still written for a non-expert audience) paper: https://arxiv.org/abs/2303.16200
What sort of retrieval augmented generation system are you working on?
> The reason most foreign investors use Caymanian intermediaries is actually just that transparency, particularly when they’re being scrutinized by foreign regulatory bodies and don’t want their money to disappear into a Delaware numbered company.

> It is, however, a particularly easy place to keep global funds in a law abiding and transparent way.

I don’t doubt that Cayman is strict for individuals like yourself opening bank accounts, but the regulations on companies are a different story. It’s a well-known tax haven on the global scene.
Among us and Fall Guys are the definition of games that just happened to be at the right place at the right (and completely unpredecent) time. Among us especially was one that was released for years before it became viral. Party games are a whole is a hard genre to crack (especially on console) but COVID had people stuck and seeking such content

For a AAA example, Lawbreakers is probably one of the more recent stories. It was a game made by a director behind the acclaimed Gears of War (Epic's biggest series until Fortnite) thst was like Overwatch, but released a year after. Of course the game wasn't made in a year. But had it released 2 years earlier it might have been able to reach a bigger crowd rather than slowly fade into a niche cult following.
A bit pedantic.

It’s just a design principle not a scientific law.
I don't know about costs but phosphorus is a limited resource and more than 70 percent of the world's supply of phosphates is controlled by one country: Morocco.

Some estimates put "Peak Phosphorus" as early as 2030 but unsurprisingly, that claim is highly contested.
“Reflections on trusting trust”

It's only 3 pages and worth the read:

https://dl.acm.org/doi/10.1145/358198.358210

https://dl.acm.org/doi/pdf/10.1145/358198.358210
SFTP is basically just SSH, the only thing it shares in common with FTP is the name.
> A centralized service is still much more usable.

There are some tweaks and modifications that can make the decentralized nature of these services still appear centralized.

Specific to lemmy adding the ability to categorize communities and sort by said categories (ala multireddits) would go a long way.

Additionally adding some type of search in the sidebar to find other like communities would help.

There’s already some bookmarked etc that will modify URLs to format them to your instance correctly. I would bet this gets committed to the core UI app at some point.

Making sign ups easier would go a long way too. Some of the drama with bigger instances defederating will help sort this out. I wouldn’t be shocked if there’s a proxies sign up service that will randomly put you on an instance once most of the above is sorted.

Finally, being able to transfer your account will be huge.

Keep in mind some of these services are brand new (ie: Kbin) And others are seeing very rapid growth that’s helping them mature quickly (ie: lemmy).
Outcomes matter.
Elligator is both very cool and surprisingly less useful than one might expect. It does what it promises, but there really aren't all that many situations where it's really important to conceal the fact that you're exchanging Curve25519 keys.

The most common encrypted protocols advertise the cipher suite they're using, so there is little value in concealing the format of the keys being exchanged. And protocols trying to hide their existence entirely are pretty uncommon.
> * VPTERNLOGD (your swiss army railgun for bitwise logic, can often fuse 2 or even 3 ops into one)

I wonder if this would be useful for implementing cryptographic algorithms.
He does say who cares at the end but I def agree was feeling this the whole time
This is some top tier gaslighting, man. You know as well as I do that people put money in the Cayman islands to dodge taxes. You're behaving like someone at the Cheesecake Factory being offended when someone says their food is high calorie.
That’s not true at all. Apple was founded in 1976. Nine months later Markkula was added to the cap. table, in 1977, thanks to his investment. Early investor and employee, yes, founder, no.
Yes. But you wrote "The Bible warns..". I think the parent comment commented on the fact that you quoted the Bible, a book about a potentially man made god for the point you were making.

I don't take a side in this but I can see where they are coming from.
I used "Power Delete Suite" to delete all my comments. Everything over 3 months old, came back a little over 24 hours later.

Edit: Now less sure of this statement. I just had more "come back", all in the same subreddit. So it now appears I'm seeing comments I couldn't previously see because that sub was still private. This makes me less sure the comments I saw previously "came back" rather than being the same issue.