This isn't quite accurate. If you look at the new IO branch[1] you'll see (for example) most of the std.fs functions are gone, and most of what's left is deprecated. The plan is for all file/network access, mutexes, etc to be accessible only through the Io interface. It'll be a big migration once 0.16 drops.
> Do I have to refactor? No, the old API works flawlessly
The old API was deleted though? If you're saying it's possible to copy/paste the old stdlib into your project and maintain the old abstractions forward through the ongoing language changes, sure that's possible, but I don't think many people will want to fork std. I copy/pasted some stuff temporarily to make the 0.15 migration easier, but maintaining it forever would be swimming upstream for no reason.
Even the basic stuff like `openFile` is deprecated. I don't know what else to tell you. Zig won't maintain two slightly different versions of the fs functions in parallel. Once something is deprecated, that means it's going away. https://github.com/ziglang/zig/blob/init-std.Io/lib/std/fs/D...
Oh, I guess that's a fair point. I didn't consider the change from `std.fs.openFile` to `std.Io.Dir.openFile` to be meaningful, but I guess that is problematic for some reason?
You're of course correct here; but I thought it was reasonable to omit changes that I would describe as namespace changes. Now considering the audience I regret doing so. (it now does require nhe Io object as well, so namespace is inarticulate here)
That is literally a breaking change, so your old code will by definition not work flawlessly. Maybe the migration overhead is low, but it’s not zero like your comment implies
> I didn't consider the change from `std.fs.openFile` to `std.Io.Dir.openFile` to be meaningful, but I guess that is problematic for some reason?
Because you explicitly said that existing code would continue to work without `std.Io`.
> Code you write tomorrow, will likely have a new Io interface, because you want to use that standard abstraction. But, if you don't want to use it, all your existing code will still work.
I like Zig, but it does not have a stable API. That's just how it is.
> Because you explicitly said that existing code would continue to work without `std.Io`.
Because I'm not conflating passing an Io object, (what everyone expects to be mandatory) and existing APIs moving into the Io namespace (an API change that can only be considered significant if you're trying to win an argument on reddit).
These are drastically different changes, and only one can be considered a meaningful change.
> I like Zig, but it does not have a stable API. That's just how it is.
The last 3 minor version upgrades, required a diff in all of my projects. All of them could have been fixed with exclusively sed -i to update namespaces. None of them required real attention, or logic changes.
In one repo I made the namespace changes in isolation. After some time I then went back and rewrote a few blocks to take advantage of the features, runtime speed improvements, and generally improved code quality granted from the new API.
I don't expect zig's API to be stable, and I regret it if my comment gave you a different impression. But I stand by my comments because I respectfully refuse to ignore the pragmatics of using zig. Calling moving a function between namespaces breaking API change can be argued as technically correct, but bordering on being intentionally misleading.
That's a fine default stance. But uBO is one of, and some would say the only, extension that you should evaluate on its own merits rather than stereotyping with the rest of the category.
They aren't doing it with the intent to damage his business. They're just doing something they would have done anyway.
You can't claim tortious interference just because someone throws a wrench in your business plans. Sanborn has about as much of a case as Microsoft has against Linus Torvalds for creating Linux and hurting their sales of Windows. (I'll give you this one for free: none.)
> They aren't doing it with the intent to damage his business.
That’s arguable. They sent him an email concerned about the harm of disclosure with the upcoming auction. They then apparently got offended by the offer of money to sign an NDA which calls their future motives into question as they now had a beef with the guy.
Saying the actions themselves were not improper is also a defense, and could be perfectly viable even if they had beef with the guy.
"To be improper, interference must be wrongful by some measure beyond the fact of the interference itself, such as a statute, regulation, recognized rule of common law, or an established standard of trade or profession."
They don't need a defense: nobody has yet stated a claim!
NAL but in copyright it’s not making a copy that’s problematic, it’s making that copy available to others. Anyone can take a picture of Mickey Mouse; one only has a problem when they start to sell it.
This cryptography solution is more akin to mathematics. And mathematics isn’t covered by the copyright law.
Civil penalties can be imposed when make a single copy without a fair use exception, this is why pre BitTorrent people got into trouble for downloading music for themselves. The government doesn’t care unless you get sued but they will enforce the lawsuit if you lose.
Criminal investigation and penalties occur with wide scale commercial distribution of copyrighted works.
They copped the actual message in its entirety not just a cryptographic formula. Further, his hand written notes may have creative expression even if the process itself isn’t protected by copyright. Similar to how software code is protected.
Would "personal research" qualify for a fair use exception?
In any case it would not seem reasonable for Sanborn to sue these two guys for "copyright infringement" when all they did was study his own works that he donated to the library for the others to study. This would probably tarnish his reputation forever.
Fair use isn’t so easily to determine based on individual criteria, you’re not allowed to copy a full book for personal research but to copy a paragraph is likely fine. Where exactly the line is drawn is what the courts decide after the fact, but let’s photograph everything and send them to someone else to read isn’t likely to qualify for fair use.
Also, he doesn’t need to be the person suing here. The auction house can sue based in part on a copyright breach because that’s not something they had permission to do even without owning the copyright. The idea is to separate fair from unfair competition, if your competitor is using slave labor that’s not something you’re allowed to do. It’s not directly impacting you but the indirect effects from such actions also matter.
I disagree. All the major browser vendors have invested into the ads space to some degree. I'd rather have my content blocker built by someone without a conflict of interest.
> And to your point about portability, if you're stuck on a non-linux OS, VNC/RDP aren't pretty but they'll get the job done.
If you can make them working. Sorry you can't connect if user is logged on this computer. Whoops RDP session is active, so I will show you this black screen after typing your username and password until user disconnects (Why not kick out the user?). VNC is even bigger pain when you need to boot up server from SSH and sometimes restart it when it gets stuck.
While on Windows you can just install TightVNC and it works. No screwing with screens. On MacOS you can just tick Remote Screen Sharing, put your VNC password and it just works. Even Android can do that droidVNC-NG, But Linux is such a PITA to make VNC or RDP working.
And RDP also assumes that you are running X11 and not Wayland.
Right, that's why I said RDP isn't pretty if you aren't on Linux. Windows insists on creating a separate desktop for each session. IIRC it has something to do with licensing, they don't like simultaneous users using one Windows license.
> While on Windows you can just install TightVNC and it works.
If you're resorting to installing third-party apps, you can install TightVNC on Linux too, and it just works. Though I found krfb performs better on my network, ymmv.
> And RDP also assumes that you are running X11 and not Wayland.
RDP is just a protocol that describes the bytes going over the network. Why would it care about your display server? There are VNC and RDP servers for both X11 and Wayland. Just install one that's supported by your system.
Though if you're on linux, you don't have to deal with the VNC/RDP jank at all. Just use ssh -X or waypipe and it's way snappier.
I use ssh -X all the time (actually I have -X permanently enabled so it's always there - for the targets where I want to use it).
However, if there's any combination of latency and heavy X traffic (which can be found in surprising places), ssh doesn't cut it. Then a VNC is necessary. The difference can be as much as ten minutes of waiting for the GUI to come up, or nearly instantly if I have a VNC running.
Since we're here, I'm just waiting for them to implement drag-and-drop on KDE. Right now it only works on GNOME, and although Ghostty is great I'm not going to switch to GNOME just for a terminal emulator.
The README is obviously AI-generated, complete with fake testimonials. The whole project is surely just slop. I would not touch this with a 50-foot pole.
It's very minimal-boilerplate. It's done an exceptional job of eliminating procedural, tedious work, and it's done it in a way that doesn't even require macros! "Template Haskell" is Haskell's macro system and it's rarely used anymore.
These days, people mostly use things like GHC.Generics (generic programming for stuff like serialization that typically ends up being free performance-wise), newtypes and DerivingVia, the powerful and very generalized type system, and so on.
If you've ever run into a problem and thought "this seems tedious and repetitive", the probability that you could straightforwardly fix that is probably higher in Haskell than in any other language except maybe a Lisp.
I find of all languages, Haskell often allows me to get by with the least boilerplate. Packages like lenses/optics (and yes, scrap your boilerplate/Generics) help. Funny package, though!
If the headline is true, this guy values the AI at $41.73, but his own time at $0/hr. If that's how we're measuring things, then my development team costs $0 a month.
From my perspective I didn't have a development team before. I have one now. I guess I am a member of that team now. But I hadn't thought of it like that -- another strange dimension to working Copilot (and its ilk).
This is disconnected enough from how these words are normally used that the statement, and its downstream conclusions don't have a clear interpretation.
Also, I don't value Copilot at $41.73. What actually happens is that GitHub charges me $41.73. I value it at way more. The consumer surplus here is substantial, IMHO.
[1]: https://github.com/ziglang/zig/blob/init-std.Io/lib/std/fs.z...
> Do I have to refactor? No, the old API works flawlessly
The old API was deleted though? If you're saying it's possible to copy/paste the old stdlib into your project and maintain the old abstractions forward through the ongoing language changes, sure that's possible, but I don't think many people will want to fork std. I copy/pasted some stuff temporarily to make the 0.15 migration easier, but maintaining it forever would be swimming upstream for no reason.
reply