skysight-inc/HackerNews huggingface dataset:
> Some errors are unexpected and should stop the program; you want to use exceptions for those.

Precisely the opposite: exceptions are a fail-fast mechanism that gives you an alternative to terminating the program.

Now, as slx26 mentioned, it's only half of the story. Most APIs (including .NET) document exceptions badly, they're not discoverable, and if you try to use them to _recover_ from a condition, you're in for a world of pain. The workflow is usually: attach the debugger, try to make the exceptional condition happen, inspect relevant info in the debugger and write the catch block.

I wish that programming languages supported some contract-like mechanism of declaring: "This method can throw only X, Y and Z". If the method throws anything else, a system-defined "UnexpectedException" would be thrown, encapsulating the invalid one. C++ used this model once upon a time, but they went away from it due to runtime costs and it being little-used. (Also, it terminated the program instead of rewrapping the exception.)

Exceptions are first-class values, but few programmers treat them as such, probably because the programming language allows them to do so. So we should start by fixing PLs.
Many safety critical systems in Ada ban the usage of dynamic allocation and Unchecked_Deallocation by adding "pragma Restrictions (No_Heap);" and "pragma Restrictions (No_Dependence => Ada.Unchecked_Deallocation);" at the top of the file where the main subprogram is located (application entry). The tradition when these pragma are in effect is to define the entities used in the application in arrays. The sizes of the arrays need not be defined at compile-time but can be determined at application startup (run-time). It means the sizes of the arrays can be specified in configuration files and vary depending on the hardware support the application is installed upon. Just because the entities/objects are located at indexes in an array it doesn't mean that they need to know about it and can point to other objects using access-to-object type variables (references). The problem with dynamic allocations is the risk of memory fragmentation and the performance of the application may "mysteriously" degrade over time. One also runs the risk of running out of heap memory unless the application checks for example there is at least 5% memory left on the device for the heap allocation to be successful.

Also note that one can run into memory leak problems using automatic garbage collected languages. I've personally needed to track down memory leaks in both C# and Javascript applications. Thankfully this rarely happens. It indicates that even when working in an automatic garbage collected language a developer needs to be aware of potential memory issues and think carefully about architecture.

Glad to hear you were successful in the project (with 100s of developers)!
There's a place for both. Error values for conditions that your client will want to handle, and exceptions or panics for all the fatal failures.
Yep, all hail the mighty

#define CHECK(com_expr) hr = (com_expr); if (FAILED(hr)) { return hr; }

Ah, the memories... glad I don't have to touch it ever again. "And a million other things that, basically, only Don Box ever understood, and even Don Box can’t bear to look at them any more".
My manager would ask everyone would to raise their hands from keyboard randomly in a half-joking manner... to ensure everyone is focusing to the meeting, and not working.

or, point out "hey you have something else on screen because white screenlight flashed on your face"

Leaving this company in a month, although they're paying me 2x the local average SE salary here in Sweden.
Network scanner: Discover all IP address on your network
The hate is real
As an autistic person, I think this is a useful lesson for the neurotypical population on what we go through in daily life. Zoom fatigue seems to be very much like the social fatigue aspies tend to experience - where non-verbal cues are scrambled and hard to interpret to the point you spend a large amount of mental energy to try to compensate.

Welcome to our world, "normies" :-).
> For example, Java's parseInt [1] throws a NumberFormatException if the string can't be parsed. IMHO this is terrible design.

It's unergonomical design, but it's the _correct_ design: the method is declared to return an int, and it can't fulfill its promise: throwing an exception is the right thing to do.
Chess is a great analogy. Now, because of great computers, folks can choose to play against a “master” chess player whenever they like, whether they have an internet connection and a proper rank or not.

Being able to jam with an AI group of your favorite jazz bests seems like a great stand-in for when you can’t get a real trio or quartet together, and if sufficiently good at attending to the ideas of the “live player”, would probably “raise all boats,” making better composers overall.
The Google Client SDK does an awful lot of stuff. In order to do them all in an efficient way it shares code.

It's definitely the case that if you only want the one call out of the whole thing then you could get by with only a small chunk of that code, but writing the Client SDK so that each feature was entirely independent would be a lot more work for them.

So they make their lives easier, and you get to have an extra 37MB of code on your client.
> Now I have been using Vorta (UI for Borg) https://github.com/borgbase/vorta for a long time and everything is fine.

Same. I really like it. Also sending my backups to https://borgbase.com which was relatively painless to setup.
Would love an open source godot-based board game emulator.
> the interests of workers and customers are often at odds with each other

I've never heard any such stories from an actual workers coop. I'm not saying it can't exist from a theoretical perspective, but i don't think workers/users interests are "often at odds" since i can't think of a single real-life example.
Do these things, have SRE suck less
Yes, Lightroom has nothing to do with it. Seems like that’s simply the app that the author is using to view the files.

The title of this post should be changed to “file transfers from MacOS to Synology NAS causes file corruption”

It’s a known issue with no fix at the moment.
May I interest you in looking at Java? It has some interesting lessons wrt your proposition.
The review is about composition in the score domain, not synthesis in the audio domain.

Check Differential Digital Signal Processing for state-of-the-art data driven synthesis in th audio domain.
You can't just "lower the voltage on any chip" while preserving timings and reliability. These chips will be designed from scratch to run at that kind of voltage, which very few chips are.
Oops, right, bit rusty on C++...
Same for me. I prefer buying FLACs (or actual CDs) of the music I want to have and keep it on my devices, so there's no future risk of losing it (I do have backup). Plus, streaming requires a working connection, uses more energy, etc... so as you say, it's (very) good for discovery, but has many downsides too.

And actually, I think that in many cases piracy happens because it's the easiest option, not because people wouldn't be willing to pay. But this is a bit off topic ;)
> My understanding based upon reading the article, an the comments here, is that Apple's proprietary Time Machine format is to blame here for this corruption.

How did you get that? From reading the article it sounded like they just moved their RAW files to the NAS (no Time Machine involved). One thing they use for backup is Time Machine, the RAW files came from a USB drive that they had wiped, but they forgot to attach it during any backup so they were omitted from the Time Machine backup. The details were light in the post so I'm inferring most of this. I'm not sure how "Apple's proprietary Time Machine format" (it's a disk image and the actual data is just files) were to blame.

Time Machine on a NAS (unrelated to Synology) can have problems. macOS generally tells you "verification" failed and recommends starting a new backup...which sucks, is time consuming, and you're at risk of data loss during the initial backup, but is way better than keeping around a corrupt backup. I've used a Time Machine network backup as one form of backup for many many years; both hand rolled and on a Synology. The times I get a corrupted backup I've: manually mounted the backup disk image while a backup started or I disconnected or closed my laptop while backing up. I'm not sure if the problem is on Apple's end or on the server's implementation of Time Machine or the SMB or AFP implementation. I've generally been able to "repair" these backups by running disk utility (fsck) and changing the value in a config file, but that can take a very long time over a network and I'm not sure I'd trust that backup anyway.

I think the cause of the problem was close to what the author suspects. Something got corrupt in reading, transferring, or writing the data. Maybe it was non-ECC ram, bits flipped in transit (due to hardware or protocol), or a corrupt disk. The source data seemed ok since he could recover it, the disks appear ok since they wrote ok a second time--but maybe it wrote to a different area of the disk? I've had RAM issues that only showed up under certain circumstances. Maybe "Enable data checksum for advanced data integrity" was on the second time? I kind of think confirming data was written correctly and using a filesystem that protects against bitrot (or keeping hashes of the files yourself) are the most accessible ways to prevent this. Unfortunately, knowing the hashes no longer match means you just know the files are corrupt and won't help you unless you have another copy.
I'd rather have another gas engine from China now than this shit.
This is not the case if you set cpu request the kubelet (actually cri) will configure cpu.shares controller
Tesla crashes into police car just as it's being investigated similar crashes
Probably not worth it to do incremental I think. At least, unless your reporting queries take ages (now that I say that, I can practically guarantee that someone is going to think it’s normal to have a report run for several days)

Either way, my point was that if the final output is a few static HTML files, it’s probably not too much of a problem to save literally every iteration of a report.
From my Reading of the GA reports it was a Hand count of the Presidential Vote only, not of all Races.

I would hardly call that a Full Audit... but I will stand corrected in that one other state besides AZ is did a hand recount.

1 of 50 states, 14 of 435 Congressional Districts, and a small fraction of total races....
Quora's not a great resource anymore. It's just peoples' opinions boosted by an echo chamber.

This is probably the only good content that existed on there before it became a cesspool: http://qsf.cf.quoracdn.net/best_of_quora_2010-2012.pdf
> I wish that programming languages supported some contract-like mechanism of declaring: "This method can throw only X, Y and Z". If the method throws anything else, a system-defined "UnexpectedException" would be thrown, encapsulating the invalid one

Boy, do I have some news for you... Like about 25 years old news. Did you ever try java?
I'm not going to write you a crash course in medical device quality systems, but I'll mention the Failure Mode and Effects Analysis (FMEA). FMEAs are a core component of any risk management plan. In an FMEA, Failure Modes (what can go wrong) are identified and linked to Hazards and potential Harms that could result from the Failure Mode. The separate documentation that identified Hazards and Harms will have a Severity for each Harm. The FMEA will use that Severity and an engineering assessment of Occurrence probability for the Failure Mode to calculate risk. Mitigations (product requirements that reduce the likelihood of harm) are added until the occurrence is reduced to the point that residual risk is acceptable.

Further reading: ISO 13485 (quality system) ISO 14971 (risk management) IEC 60812 (FMEA)
No one is clamoring for it because it isn't good enough yet, same reason no one is asking for AI designed houses, or business logos, or food. But that doesn't mean it can't get there eventually. It's also a very interesting scientific question, wrapped up with big questions about the nature of creativity and the capabilities of machines.
Second-Largest US Mortgage Lender to Accept Payment in Bitcoin
This remind me of the dark forest hypothesis.
Firefox Containers is a great feature that deserves more credits. This feature allows us to avoid tracking, while at the same time ensuring the convenience of use and does not require the user to change their habits. Do you want to limit facebook? Create the container, set the default facebook.com opening in it, and use the browser as before. This should be a standard feature in any browser.
Unfortunately, despite being a nightmare, SMB seems to be still be the best option for networked filesystems on macOS. AFP is now officially deprecated/unsupported, and the NFS client seems to be even worse than Samba/SMB. One last hope was macFUSE/sshfs, however this seemed also to be more or less broken when I tried it (extremely slow speeds, issues with disconnecting, etc).
Hm, I've been trying to learn godot, but I kinda keep hitting walls I'm not sure how to navigate. I pretty much get the idea, for a simple platformer, you'd build your enemies, players and level elements as scenes, and then you use godot as a level editor to build your level, instantiating these scenes.

However, I'm seriously struggling to think some different scenarios. For example, how to structure the application in order to have some procedurally generated contents for a level and how to add that into the godot structure.

Or, another thing was I had some situations where it feels like I need to parametrize a packed scene with some other instances of a packed scene. Think of a toolbox filled with tools, which are again instances of other packed scenes. That grew into a really weird monster pushing paths of instances around, but became very unwieldy quickly.

At that point I'm confused if I have a mental block because I'm thinking incorrectly about the problem, or if godot is not a good fit for stuff like that, or if there is a great way to structure this in godot.

Dunno. Somewhat rambling, but maybe someone has some pointers there.
Lakera AI Is Looking a Senior Software Engineer in Zurich
Startup Success Starts with Traction: What It Is and How to Find It
You can also set Lightroom to write sidecar xmp files, which means every edited raw file will also have its own copy of the edits kept alongside it.

Coupled with using a good directory structure, that significantly lessens the impact of losing a catalog file.
https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
Best of Quora (2012) [pdf]
Like many here I had the exact same issue mentioned by the poster, Time Machine on Synology just kept failing, with incredibly unhelpful error messages that basically said, let's trash and backup again.

I used AFP which was recommended back then and that worked really well for years (since 2011). But since (maybe) Catalina, issues started creeping up and it would just randomly fail. It used to be once in a while, then it became a weekly occurence before I gave up.

Samba isn't better, my mounted shares get randomly disconnected overnight fairly often too (even now on Monterey), and switching from the old Synology to a fresh dedicated NAS machine didn't change a thing.

At that point I think in general it's just "local networking" that became less reliable around that time, whether it's some power saving feature, or something else up the stack, I don't know.

The only scenario where Time Machine works flawlessly for me is using an external SSD drive for backup, formatted as APFS. At least for now.
French Appeal Court affirms decision that copyright claims on GPL are invalid
I'm not sure I understand how this is relevant. In C++, arr[non_existent_index] is UB both if arr is an std::vector and if it is a C-style array. In Go it's a runtime error instead.

Sure, std::vector::operator[]() is not just syntax sugar for *(v+i), but I don't think any of this is relevant for the discussion at hand, unless I'm missing something.
This (well, worse corruption than this) is one of my worst data nightmares. Losing pictures of my children, relatives who are now deceased, etc.

I know it may sound like overkill, but I switched from a Synology NAS to ZFS for the checksumming specifically to avoid this fate.

Not a knock on Synology specifically; I amazing all are about the same in this regard. What I wish is that there were a consumer friendly low power NAS running ZFS … (?) so I don’t have to maintain a server.

(And a weekly sweep to AWS glacier to be sure)
Can you give a bit more details, if possible? Do you sell a product? Is it a content site?
Intel EVO
Intel® is known for partnering with leading laptop manufacturers to co-engineer an impressive series of laptops. One of these is the Intel® Evo™, which was designed to meet up with the fast-paced, technology lifestyle that most people today look out for.
Intel recently released Intel® Evo™ as the second edition of the Intel Athena program. Whenever you see the Intel® Evo™ branding, you can identify that laptop as one that has passed some particular number of tests and meets the new criteria set with the recent Tiger Lake advancements. Some of the Evo™ specifications that Intel® set make these laptops much better than many others.

Source: https://www.lenovo.com/us/en/faqs/intel/intel-evo-platform/
Well. SMB is a Microsoft's proprietary protocol. Of course, the windows implementation will be better.
Full title too long for HN "French Appeal Court affirms decision that copyright claims on GPL are invalid; must be enforced via contractual dispute"

There was a brief HN discussion on the initial ruling 2 years ago https://news.ycombinator.com/item?id=24478769 the case just went to appeal earlier this year.

Note that the last HN discussion never really happened, it gathered both too many votes and flags in 20 minutes and got automatically hidden, only to be unblocked by a mod later. It would be great if you could refrain from flagging this time, even if the ruling comes as a culture shock to you.

I assure you it is not clickbait. The authors of GPL software are really spending years and a fortune in court only to have all their copyright claims dismissed. The ruling passed the High Court (TGI), the Appeal Court and the CJUE.
Why not enable AFP on your Synology additionally to SMB?
It's a trade I'm willing to take for simplifying reasoning about non-happy-paths.
Try catch is great in theory but it's super easy to shoot yourself in the foot with in bigger projects, either because it's non exhaustive or someone took the easy way out and made a catch which isn't fine grained anough.
> Does a panic count as "handling" the error?

> You, the programmer, know whether some particular error is something you can cope with or not and it's appropriate to panic in the latter case.

Please don't. I've seen enough libraries whose authors had exactly this mindset; I do not enjoy when some fifth-party dependency thrice-removed, upon encountering an unexpected circumstance, decides that it can't bear to live in this cruel world any more and calls "abort()", killing the entire process: which happens to be a server process, running multiple requests in parallel for which a failure to serve any single request for any reason whatsoever does not warrant aborting all other request.
Yes. What I'm thinking of are _not_ checked exceptions, at least not at compile-time.
I had the same issue in 2019 with a GoPro during bioluminescence kayaking. Cellphones seem to handle it slightly better.
Bad Apple but It's a VS Code Auto-Formatter
How to Prepare for Your Eventual Return to the Office
I feel like i share your positive view of Godot, yet i'm afraid that it might take somewhere close to a decade for it to become a viable alternative to Unity, since a lot of engineering effort has gone into it.

Currently, in comparison to Godot, Unity is better in regards to:

- C# as a first class citizen, really good performance, especially with DOTS
- extremely wide platform support, especially in regards to consoles
- many optimizations and functionality such as occlusion culling and LODs out of the box
- modern render pipelines that are geared towards lower end devices (URP), while others that are suited for more visually stunning projects (HDRP and i'd argue that also the default pipeline)
- a huge amount of tutorials, articles and examples of how to do something
- the biggest asset store of any game engine out there, providing everything from AI plugins, character controllers, inventory systems, real time occlusion culling solutions, billboarding solutions, model LOD generation solutions, dialogue systems and anything else that you could think of, really; it's an excellent source for throwing together prototypes and yoinking a few ideas of other developers after looking at their code
- really big share of the market is taken up by Unity, so professionally it makes sense to use it and learn it
- this also means that most of the external tools that one might want to use also integrate really well with Unity

However, Unity is also a lot worse in other aspects:

- there is no networking solution that's actively supported
- DOTS and URP/HDRP were both haphazardly thrown together and feel broken
- frankly, in the past 3-5 years, it seems like Unity doesn't know what it wants to be and as a consequence feels inconsistent
- the closed source nature of it is also a pretty big problem for many projects

Who knows where the industry will be in 10 years, but personally i hope that Godot succeeds where jMonkeyEngine, Xenko/Stride, NeoAxis and many others have failed.
It's the correct design only if we assume that the design space didn't allow for a different return type. Kotlin for example offers toIntOrNull (https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-...) as an alternative.
I have a media server I keep movies and TV shows on, and connect to Samba from my Mac. I agree, the performance is ridiculously bad. Part of it, I suspect, is Finder.

I wonder if NFS works any better? Or maybe Apple's old AFS/AFP, which I think used to be more solid than SMB on Macs? Though I read something about Apple deprecating (or removing?) AFP support recently.

Are there any other options?
Linux/BSD Command Line 101: Using Awk, sed, and grep in the Terminal
AFP support is gone in MacOS. Apple doesn’t recommend it.

SMB is all we have left unfortunately.
There’s also NFS but it seems to be just as slow as SMB on MacOS.
In addition to backups, error correction data is a must for things you care about. With PAR2 you can add that to any type of file: https://en.wikipedia.org/wiki/Parchive
Yup, unless the game absolutely needs to be running in the Unreal Engine, or absolutely needs to be made out of stuff from the Unity asset store :)

I think if there's any ambiguity about what might be best, and asking 'what engine' is actually a question at all, then Godot is probably the answer. If it's not really a question because you already know you require certain kinds of rendering or asset store dependency/workflow, then you've probably already settled on the engine that optimizes for those needs… but if it's more of a negotiation among competing needs, Godot rapidly becomes relevant.
It shows how much people distrust big surveillance tech that snake oil like this can thrive.
Thank you. I kept asking myself why I was reading a debate in 2021 about a language that defaults to (GET OFF MY LAWN) all caps. Learning about Ruby pry made it all worth it.
Can you elaborate then?
It was a very conscious decision by go devs. To enforce local error fixes instead of the usual wrap and throw the exception again.
Agreed. I’m researching changing my unraid server over to ZFS as soon as possible. Looks very doable although my hope is that the developers support it out-of-the-box sometime soon.