<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: cycloptic</title><link>https://news.ycombinator.com/user?id=cycloptic</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 20 Jun 2026 18:33:00 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=cycloptic" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by cycloptic in "Plan 9 from Bell Labs in Cyberspace"]]></title><description><![CDATA[
<p>That's what I mean though, I see the theme, but it seems to me to be about the same as trying to fit everything into an HTTP REST API, it all falls apart when something comes along that breaks the abstraction. For example if you have something that wants to pass a structure of pointers into the kernel, you can't reasonably do that with 9p, so now you've got a special case. The debug APIs can still only return a direct memory mapped pointer to the process memory as a special case, the normal case is doing copies of memory regions over the socket, no matter how large they are. If you want to add compression to your VNC thing, or add some more complex routing to your network setup, you have to start adding special daemons and proxies and translation layers into another socket, which is not really different from what you would be doing on a more traditional Unix. Or is there another way plan9 handles these?</p>
]]></description><pubDate>Tue, 23 Mar 2021 20:03:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=26559709</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26559709</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26559709</guid></item><item><title><![CDATA[New comment by cycloptic in "Plan 9 from Bell Labs in Cyberspace"]]></title><description><![CDATA[
<p>Ok I see, that helps, thank you. That seems to be mostly similar to evdev on Linux after all, except it requires you to use coroutines instead of having an option for a poll/select type interface.<p>To me the problem with saying "no special cases" seems to make it quite limited on the kernel side and prevent optimization opportunities. For example if you look at the file node vtables on Linux [0] and FreeBSD [1] there are quite a lot of other functions there that don't fit in 9p. So you lose out on all that stuff if you try to fit everything into a 9p server or a FUSE filesystem or something else of that nature.<p>[0]: <a href="https://elixir.bootlin.com/linux/v5.11.8/source/include/linux/fs.h#L1820" rel="nofollow">https://elixir.bootlin.com/linux/v5.11.8/source/include/linu...</a><p>[1]: <a href="https://github.com/freebsd/freebsd-src/blob/master/sys/kern/vnode_if.src" rel="nofollow">https://github.com/freebsd/freebsd-src/blob/master/sys/kern/...</a></p>
]]></description><pubDate>Tue, 23 Mar 2021 19:08:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=26558995</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26558995</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26558995</guid></item><item><title><![CDATA[New comment by cycloptic in "Plan 9 from Bell Labs in Cyberspace"]]></title><description><![CDATA[
<p>How is that conceptually different from IPC? The graphics system appears to somehow pass mouse and keyboard events to the client programs over a channel. At least that part seems similar to an Unix X11 setup where this would be done over a socket.<p>I guess I just don't see what is conceptually the difference here versus something like doing basic HTTP over a TCP socket, it seems like the same kind of multiplexing. Either way, you still have to deal with the same issues: can't pass pointers directly, need to implement byte swapping, need another serialization library if you want the format to be JSON/XML or if you want a schema, etc... So in cases where that stuff isn't important, channels would come in handy, but of course that is now getting closer to a local Unix IPC. Am I getting this right?</p>
]]></description><pubDate>Tue, 23 Mar 2021 18:42:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=26558613</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26558613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26558613</guid></item><item><title><![CDATA[New comment by cycloptic in "Plan 9 from Bell Labs in Cyberspace"]]></title><description><![CDATA[
<p>>No more broken than mmap of nfs.<p>Right, I get that's what you meant, it doesn't seem to really change much versus NFS, or DCOM, or whatever. So it's unclear what benefit is being provided by 9p here.<p>Also upon further research I am not sure what you mean by this is the only option, plan9 seems to suggest use of channels for other types of IPC interfaces, which seem to not be the same as 9p and are not necessarily network serializable. (Or are they?)</p>
]]></description><pubDate>Tue, 23 Mar 2021 18:02:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=26558093</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26558093</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26558093</guid></item><item><title><![CDATA[New comment by cycloptic in "Plan 9 from Bell Labs in Cyberspace"]]></title><description><![CDATA[
<p>>there's no other option for accessing resources<p>That seems like it would create difficulties in porting software there. Please correct me if I'm wrong but the original plan9 appears to also have no support for shared memory or for poll/select.<p>>Backfilling IO on page fault is really all mmap does, conceptually.<p>For read-only resources yes, for handling writes to the mmapped region, that seems quite broken.</p>
]]></description><pubDate>Tue, 23 Mar 2021 17:29:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=26557648</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26557648</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26557648</guid></item><item><title><![CDATA[New comment by cycloptic in "Plan 9 from Bell Labs in Cyberspace"]]></title><description><![CDATA[
<p>>You no longer have to wonder what happens if you try to create a Unix socket on an NFS file system, and then mmap it<p>How does that work? I don't know the details of any implementation, but 9p the protocol appears not to have any concept of mmap: <a href="https://9fans.github.io/plan9port/man/man9/intro.html" rel="nofollow">https://9fans.github.io/plan9port/man/man9/intro.html</a><p>I think I see what you mean about 9p not being that special, it doesn't seem much different than if Windows decided to export every system-level API as a DCOM object, that would also get you the same kind of "the whole universe is networked" kind of deal.</p>
]]></description><pubDate>Tue, 23 Mar 2021 16:41:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=26557040</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26557040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26557040</guid></item><item><title><![CDATA[New comment by cycloptic in "Plan 9 from Bell Labs in Cyberspace"]]></title><description><![CDATA[
<p>I'm guessing these applications do not have any kind of animations or smooth scrolling? That would be a simple test, make your web browser or your image viewer fullscreen in 4K and see if there is lag in the scrolling/panning/zooming.</p>
]]></description><pubDate>Tue, 23 Mar 2021 16:17:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=26556770</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26556770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26556770</guid></item><item><title><![CDATA[New comment by cycloptic in "Godot Engine Web Editor"]]></title><description><![CDATA[
<p>Yes -- so if the company falls behind, maybe using some open source code could help you keep up. At least that's what I've felt looking at things on github/gitlab/etc has helped with, if done the right way :)</p>
]]></description><pubDate>Mon, 22 Mar 2021 16:38:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=26543183</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26543183</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26543183</guid></item><item><title><![CDATA[New comment by cycloptic in "Godot Engine Web Editor"]]></title><description><![CDATA[
<p>Then that sounds like you would want it to be an optional plugin, or a compile time flag that could be enabled for customers who want it? Why not do it, if that's what the customers asked for?<p>I get what you are saying and it definitely applies to the core architecture of the product, but if you have a large number of customers each with their own needs then I would be surprised if there were zero parts of the product that were modular or interchangeable.</p>
]]></description><pubDate>Mon, 22 Mar 2021 16:32:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=26543092</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26543092</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26543092</guid></item><item><title><![CDATA[New comment by cycloptic in "Response to Flatkill.org"]]></title><description><![CDATA[
<p>I am not sure I see what the significant difference is, I've heard of security escapes happening in both Docker and in various hypervisors. Either way there is a risk of some privilege escalation bug that allows access to the full RAM. I think if you want isolation, both of them lose out to having a separate firewalled off machine. Also I think the companies running heavy Linux workloads on Docker are probably not interested in the ability of Qubes to run Windows or Mac, just my read on the situation from talking to some of them.<p>I don't know about snap but from what I have seen of flatpak, it allows for different versions of the same package to be installed, not many package managers are supporting that currently. (Nix and Guix being some notable exceptions, and those should be able to re-use some of the sandboxing bits from flatpak if they need to) Of course, that is one of the main benefits to building this on top of filesystem overlays, and why it requires a different approach from a traditional package manager, i.e. it's not just a duplication.<p>Edit: Live migration actually does work for containers, take a look at CRIU. (I don't know the current status of this being integrated in Docker) I never even saw this as being opposing technology anyway, for example if you need to you could migrate a container in or out of a VM.</p>
]]></description><pubDate>Mon, 22 Mar 2021 16:23:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=26542981</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26542981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26542981</guid></item><item><title><![CDATA[New comment by cycloptic in "Response to Flatkill.org"]]></title><description><![CDATA[
<p>I don't see what you mean. Qubes is great, but it is not the same thing as Docker, flatpak, or snap. Are you saying Qubes should somehow be changed so that it works similar to Docker? And if so, why wouldn't you just use Docker?</p>
]]></description><pubDate>Mon, 22 Mar 2021 15:57:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=26542608</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26542608</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26542608</guid></item><item><title><![CDATA[New comment by cycloptic in "Godot Engine Web Editor"]]></title><description><![CDATA[
<p>I am not saying it would be easy, it would definitely be work that someone would have to do. I'm more saying that the Godot authors would not try to threaten you or consider you a threat, it's more likely they would want to help you. Of course as a business you would not do it if your customers weren't going to pay the cost to make it worth it.<p>I don't know enough about the implementation of C# and Swift to say for sure, but it does seem like the open sourcing of that would making it easier to do things like port some standard library component or algorithm over from one to the other, or perhaps do something like building a Swift implementation for the CLR.</p>
]]></description><pubDate>Sun, 21 Mar 2021 22:43:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=26534854</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26534854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26534854</guid></item><item><title><![CDATA[New comment by cycloptic in "Godot Engine Web Editor"]]></title><description><![CDATA[
<p>I still don't see what you mean. It sounds like you are saying the real threat would be if they had no other features that could let them stand out in the market, at which point a competitor would be able to beat them by lowering the price, possibly to zero. That can be done by any competitor and has very to do with the license -- my point is that the open source license on that "competing product" actually helps them, by allowing them to make use of the same thing without having to pay that initial investment again. And the first initial investment you made isn't lost as long as you keep a path to retaining those customers.<p>To put it another way, if the actual problem to the business is that they are falling behind on feature velocity and don't have the head count to keep up, re-using some features from open source code could actually help there.</p>
]]></description><pubDate>Sun, 21 Mar 2021 22:40:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=26534820</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26534820</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26534820</guid></item><item><title><![CDATA[New comment by cycloptic in "Godot Engine Web Editor"]]></title><description><![CDATA[
<p>I don't see how it is a threat. Assuming Godot obsoleted all their code entirely, that would still be a boon -- that's now code they don't have to spend time maintaining anymore, and they can just reuse that and focus on their core competency. (Maybe it's hosting, I don't know enough about this business)<p>Different languages actually isn't as bad an issue with this type of thing, as the idea with running it in the browser is that it all compiles down to Javascript or WASM.</p>
]]></description><pubDate>Sun, 21 Mar 2021 18:36:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=26532710</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26532710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26532710</guid></item><item><title><![CDATA[New comment by cycloptic in "Godot Engine Web Editor"]]></title><description><![CDATA[
<p>Well, of course it would take work to compose them together, but then the pay off is that you might be able to say customers are getting the "best of both worlds."<p>If their customers are also asking them for hosted Godot, maybe they should also offer that as another product offering, at a competitive price, and then use that as a sales funnel into their other products? That is usually the way it goes with these open source bits.</p>
]]></description><pubDate>Sun, 21 Mar 2021 16:09:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=26531435</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26531435</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26531435</guid></item><item><title><![CDATA[New comment by cycloptic in "Godot Engine Web Editor"]]></title><description><![CDATA[
<p>I am not sure why you would feel threatened even if there was overlap. Godot is MIT licensed, so if your customers started asking for features from Godot or for compatibility with Godot, you could just copy the code straight from them without any hassle.</p>
]]></description><pubDate>Sun, 21 Mar 2021 14:57:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=26530915</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26530915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26530915</guid></item><item><title><![CDATA[New comment by cycloptic in "Flatpak – a security nightmare – 2 years later (2020)"]]></title><description><![CDATA[
<p>From that perspective, moving to OpenBSD seems mostly pointless as currently the best practice there if file permissions are too strict seems to be "comment out some unveil lines and recompile the program." Not really an improvement IMO.<p>From that angle if the permission dialogs bothered you then you could just recompile flatpak to unconditionally approve all dialogs. (Maybe there is even a setting for this already?) Of course as a sibling comment has said, this would be pretty dangerous, almost equivalent to using windows without UAC, or sudo with NOPASSWD.</p>
]]></description><pubDate>Sun, 21 Mar 2021 12:05:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=26529799</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26529799</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26529799</guid></item><item><title><![CDATA[New comment by cycloptic in "Flatpak – a security nightmare – 2 years later (2020)"]]></title><description><![CDATA[
<p>The safest way to do it would be to implement it with seccomp so you unconditionally block those syscalls.</p>
]]></description><pubDate>Sun, 21 Mar 2021 12:02:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=26529779</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26529779</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26529779</guid></item><item><title><![CDATA[New comment by cycloptic in "Building a shared vision for Async Rust"]]></title><description><![CDATA[
<p>>If you're expecting a blocking system call, and actually get a brand new background thread that's polling, it's quite reasonable to be frustrated.<p>It really isn't if the documentation doesn't outright say that it's single threaded and not thread safe. For a lot of simpler use cases where you just want to ship a thread-safe API (e.g. application does not have its own thread pool) then it just makes sense in a lot of cases to use some kind of automatic thread pooling. The caller does not have to know or care how the internal state machine is implemented.<p>If you have implemented your own thread pool it seems you should know enough to dig down enough to the lower layers to where you can get to that blocking syscall, or least to the point where you can strip off the O_NONBLOCK flags yourself.</p>
]]></description><pubDate>Fri, 19 Mar 2021 17:57:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=26516390</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26516390</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26516390</guid></item><item><title><![CDATA[New comment by cycloptic in "Building a shared vision for Async Rust"]]></title><description><![CDATA[
<p>The systems that use it as a native threading model are obsolete, but there's also this sentence there:<p>>Cooperative multitasking is used with await in languages with a single-threaded event-loop in their runtime, like JavaScript or Python.<p>There's no reason rust can't have an executor that does the same, and you only use that within the event loop on your one or two HTTP worker threads. If you're waiting in a thread for an HTTP request to return, that's never going to be CPU-bound. I still am failing to see what the problem here is besides a complaint about some rust crate only supporting a multi-threaded executor, which again is a different problem than whether it's done with async futures or not. One could just as easily write some C code that forces the use of threads.</p>
]]></description><pubDate>Fri, 19 Mar 2021 17:30:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=26516014</link><dc:creator>cycloptic</dc:creator><comments>https://news.ycombinator.com/item?id=26516014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26516014</guid></item></channel></rss>