<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: djs55</title><link>https://news.ycombinator.com/user?id=djs55</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 24 Oct 2026 15:12:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=djs55" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by djs55 in "Docker is weird"]]></title><description><![CDATA[
<p>(Joining the reunion thread) I was just explaining to a new starter yesterday why Docker Desktop used the codename "pinata". Also I reckon some of the more advanced ideas from back then are still relevant today, probably even more now that everything is changing (or can be changed) with agents. Hope all is well!</p>
]]></description><pubDate>Fri, 23 Oct 2026 09:06:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=50206258</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=50206258</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50206258</guid></item><item><title><![CDATA[New comment by djs55 in "A decade of Docker containers"]]></title><description><![CDATA[
<p>(co-author of the article and Docker engineer here) I think WireGuard is a good foundation to build this kind of feature. Perhaps try the Tailscale extension for Docker Desktop which should take care of all the setup for you, see <a href="https://hub.docker.com/extensions/tailscale/docker-extension" rel="nofollow">https://hub.docker.com/extensions/tailscale/docker-extension</a><p>BTW are you trying to avoid port mapping because ports are dynamic and not known in advance? If so you could try running the container with --net=host and in Docker Desktop Settings navigate to Resources / Network and Enable Host Networking. This will automatically set up tunnels when applications listen on a port in the container.<p>Thanks for the links, I'll dig into those!</p>
]]></description><pubDate>Sat, 07 Mar 2026 21:45:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47291756</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=47291756</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47291756</guid></item><item><title><![CDATA[New comment by djs55 in "I'm Peter Roberts, immigration attorney who does work for YC and startups. AMA"]]></title><description><![CDATA[
<p>I believe even with the visa it’s still up to the immigration agent. I came close to trouble once when asked for my H1B visa petition document (not the visa in the passport). I had a photocopy and was told that wasn’t enough and although they’d let me in this time they expected to see the original in future. I also travelled with a letter from my employer explaining where I worked, job title etc as extra documentation just in case to derisk further.</p>
]]></description><pubDate>Sat, 13 Apr 2024 09:43:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=40021806</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=40021806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40021806</guid></item><item><title><![CDATA[New comment by djs55 in "Why workers are calling BS on leaders about returning to the office"]]></title><description><![CDATA[
<p>I feel exactly the same way. College had just the right amount of private space, lots of shared spaces for social occasions / group working and a maintenance department to look after all the tedious domestic repairs. Bliss</p>
]]></description><pubDate>Thu, 03 Jun 2021 20:52:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=27387140</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=27387140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27387140</guid></item><item><title><![CDATA[New comment by djs55 in "QEMU 6.0"]]></title><description><![CDATA[
<p>Do you mean TSG? From <a href="https://wiki.qemu.org/ChangeLog/6.0#TCG" rel="nofollow">https://wiki.qemu.org/ChangeLog/6.0#TCG</a><p>> TCG
> Added support for Apple Silicon hosts (macOS)</p>
]]></description><pubDate>Fri, 30 Apr 2021 09:56:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=26991536</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=26991536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26991536</guid></item><item><title><![CDATA[New comment by djs55 in "M1 dev setup with a virtual Linux box"]]></title><description><![CDATA[
<p>(I work for Docker on the M1 support)
I'm glad it's working for you! There's a bug in the recent Docker Desktop on Apple Silicon RC build which affects some users of vagrant at the provisioning stage when the new ssh key is copied into the machine. It turned out that the permissions of `/dev/null` inside `--privileged` containers were `0660` (`rw-rw----`) instead of `0666` (`rw-rw-rw-`) In case you (or someone else) runs across this there's an open issue with a link to a build with the fix: <a href="https://github.com/docker/for-mac/issues/5527#issuecomment-817188600" rel="nofollow">https://github.com/docker/for-mac/issues/5527#issuecomment-8...</a></p>
]]></description><pubDate>Sun, 11 Apr 2021 10:39:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=26769278</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=26769278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26769278</guid></item><item><title><![CDATA[New comment by djs55 in "Making hibernation work under Linux Lockdown"]]></title><description><![CDATA[
<p>Thank you for this -- I've been bothered by my Windows PC not sleeping properly for the best part of a year. `powercfg lastwake` indicated the Ethernet adapter and then disabling the option "Wake on Pattern Match" has allowed the computer to sleep soundly.</p>
]]></description><pubDate>Sun, 28 Feb 2021 09:43:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=26292041</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=26292041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26292041</guid></item><item><title><![CDATA[New comment by djs55 in "M1 Macs Review"]]></title><description><![CDATA[
<p>Don't worry, we (at Docker) have been working on Apple Silicon support for a while. The command-line tools work under Rosetta 2 but the local VM inside Desktop will take a little bit longer to port. Just in case you haven't seen it there's some further info on Docker+M1 in the blog post: <a href="https://www.docker.com/blog/apple-silicon-m1-chips-and-docker/" rel="nofollow">https://www.docker.com/blog/apple-silicon-m1-chips-and-docke...</a></p>
]]></description><pubDate>Thu, 19 Nov 2020 16:21:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=25151010</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=25151010</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25151010</guid></item><item><title><![CDATA[New comment by djs55 in "Moderna Covid vaccine candidate almost 95% effective, trials show"]]></title><description><![CDATA[
<p>Thousands (30) of people are in the trial, half were assigned randomly to the control group. So far 95 people in the trial have caught COVID and, when they unblinded the data, they discovered that 90 of those infections where in the control group. Since participants were randomly assigned into the test group vs the control group and so both groups should have the same amount of exposure, this is a strong signal that the vaccine was effective. Here's an article about Moderna's trial with a link to their 135 page (!) design doc <a href="https://www.livescience.com/moderna-vaccine-trial-protocol.html" rel="nofollow">https://www.livescience.com/moderna-vaccine-trial-protocol.h...</a></p>
]]></description><pubDate>Mon, 16 Nov 2020 15:27:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=25112834</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=25112834</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25112834</guid></item><item><title><![CDATA[New comment by djs55 in "Leaving OCaml"]]></title><description><![CDATA[
<p>I do OCaml programming on Windows and I found that it was a bit confusing at first with too many different ports and install options. However once I settled on <a href="https://github.com/fdopen/opam-repository-mingw" rel="nofollow">https://github.com/fdopen/opam-repository-mingw</a> I was fine. To my surprise I was able to extend existing C bindings to use Win32 APIs fairly painlessly (for example <a href="https://github.com/mirage/mirage-block-unix/commit/7cf658f8a9956c51f053b39eb397b3628b7ee207" rel="nofollow">https://github.com/mirage/mirage-block-unix/commit/7cf658f8a...</a> ) . I did have problems with I/O scalability at first but I fixed these by using libuv via <a href="https://github.com/fdopen/uwt" rel="nofollow">https://github.com/fdopen/uwt</a> . The core compiler and runtime are rock solid on Windows. Docker (where I work) ships OCaml/Windows binaries to lots and lots of desktops with no problem.<p>Apart from the too-many-ports problem, I think the main remaining problem is that too many 3rd party libraries require Unix-isms to build, like shell scripts. This necessitates the presence of cygwin for build (but not at runtime). However the ongoing "dune-ification" of the OCaml universe should help fix this since dune can do everything directly from OCaml code. I'm really looking forward to being able to open a powershell window and type "git clone"; "dune build" and have everything just work.</p>
]]></description><pubDate>Wed, 04 Nov 2020 10:17:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=24987805</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=24987805</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24987805</guid></item><item><title><![CDATA[New comment by djs55 in "Try OCaml"]]></title><description><![CDATA[
<p>Yes -- opam and dune are complimentary. I normally use dune (formerly known as "jbuilder") as the build system within my packages, which I then publish and install via opam. Dune does the fast incremental builds, while opam deals with version constraint solving, downloading and general package metadata.<p>There are some interesting experiments combining the two more closely -- take a look at "duniverse" <a href="https://github.com/avsm/duniverse" rel="nofollow">https://github.com/avsm/duniverse</a> which is a prototype system which would use opam to solve package version constraints and download the sources, allowing dune to build everything at once. The nice thing about this is that you could patch one of your dependencies and then dune will be able to perform an incremental build, as if all the code was in one big project. I'm personally hoping this will help speed up Mirage development as it can be time-consuming to propose a change to an interface and then find all the places that need changing (a cost of having lots of small repos versus a big monorepo)</p>
]]></description><pubDate>Sun, 09 Sep 2018 10:39:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=17945265</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=17945265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17945265</guid></item><item><title><![CDATA[New comment by djs55 in "Try OCaml"]]></title><description><![CDATA[
<p>Are you trying to avoid linking against Cygwin at runtime or trying to avoid Cygwin in the build environment too? In my case I use Cygwin in the build environment (see <a href="https://github.com/moby/vpnkit/blob/master/appveyor.yml" rel="nofollow">https://github.com/moby/vpnkit/blob/master/appveyor.yml</a>) using Andreas Hauptmann's <a href="https://github.com/fdopen/opam-repository-mingw" rel="nofollow">https://github.com/fdopen/opam-repository-mingw</a> but I end up with an executable which doesn't require the Cygwin dll at runtime.<p>I'm looking forward to the day when I won't need Cygwin even in the build environment. Since the OCaml compiler itself works fine on Windows and modern build systems like "dune" are also Windows-friendly I'm fairly optimistic this can happen soon. I think it'll mostly be a matter of removing accidental Unix-isms  (like unnecessary use of symlinks) in the build scripts.</p>
]]></description><pubDate>Fri, 07 Sep 2018 18:52:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=17936730</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=17936730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17936730</guid></item><item><title><![CDATA[New comment by djs55 in "Introduction to Functional Programming in OCaml"]]></title><description><![CDATA[
<p>I think `opam` failed to find `jbuilder` on the `$PATH`, even though (presumably) `opam` has built it and installed it in it's own `bin/` directory. Try running `eval $(opam config env)` to update the `$PATH` and trying the commands again.</p>
]]></description><pubDate>Thu, 23 Aug 2018 17:29:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=17829051</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=17829051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17829051</guid></item><item><title><![CDATA[New comment by djs55 in "An introduction to libuv (2016)"]]></title><description><![CDATA[
<p>There's a very good OCaml binding: <a href="https://github.com/fdopen/uwt" rel="nofollow">https://github.com/fdopen/uwt</a> . It works really well in the networking component of the Docker for Mac and Windows desktop apps (see <a href="https://github.com/moby/vpnkit" rel="nofollow">https://github.com/moby/vpnkit</a>)</p>
]]></description><pubDate>Thu, 16 Aug 2018 15:06:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=17775230</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=17775230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17775230</guid></item><item><title><![CDATA[New comment by djs55 in "Unix system programming in OCaml (2014)"]]></title><description><![CDATA[
<p>The 1.5% that's in the hyperkit repo is the shim to the Mirage block layer. The qcow2 implementation that's normally linked in is from <a href="https://github.com/mirage/ocaml-qcow" rel="nofollow">https://github.com/mirage/ocaml-qcow</a> .</p>
]]></description><pubDate>Thu, 12 Jul 2018 07:19:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=17512803</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=17512803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17512803</guid></item><item><title><![CDATA[New comment by djs55 in "New implementation of Git in OCaml"]]></title><description><![CDATA[
<p>I'm also an OCaml old timer and I think I can relate too. I believe the recent tooling changes are going in the right direction and will eventually fix several of these problems, for example:<p>There's a push to remove "optional dependencies" which are the reason why opam dependencies rebuild again and again: <a href="http://rgrinberg.com/posts/optional-dependencies-considered-harmful/" rel="nofollow">http://rgrinberg.com/posts/optional-dependencies-considered-...</a> For example in the Mirage project we've been working on this <a href="https://discuss.ocaml.org/t/ann-major-releases-of-cohttp-conduit-dns-tcpip/571" rel="nofollow">https://discuss.ocaml.org/t/ann-major-releases-of-cohttp-con...</a> but it has caused some breakage here and there.<p>jbuilder (from Jane Street) is excellent: expressive, easy to understand, builds packages extremely quickly, is actively developed, has minimal dependencies and a lovely manual <a href="http://jbuilder.readthedocs.io/en/latest/" rel="nofollow">http://jbuilder.readthedocs.io/en/latest/</a> It takes care of generating boilerplate for other tools like merlin (which to be honest I never got around to manually configuring). There's also work to integrate it with utop <a href="https://github.com/janestreet/jbuilder/issues/114" rel="nofollow">https://github.com/janestreet/jbuilder/issues/114</a><p>jbuilder also supports building multiple libraries in one big source tree, so we could switch to a package lockfile model: the author uses opam to create a solution to the package constraints and checks in the specific versions known to work, the build clones the dependency sources and jbuilder builds it all simultaneously. I'm keen to try this on one of my larger projects so that "git clone; make" just works, irrespective of where the host OCaml comes from.<p>PPX syntax extensions depend on specific compiler versions, so when (for example) homebrew updates to OCaml 4.05 you might find that extensions you need have not been ported yet. ocaml-migrate-parsetree aims to fix this problem <a href="http://ocamllabs.io/projects/2017/02/15/ocaml-migrate-parsetree.html" rel="nofollow">http://ocamllabs.io/projects/2017/02/15/ocaml-migrate-parset...</a><p>There's obviously still plenty of work to do, but I think things are improving!</p>
]]></description><pubDate>Sat, 26 Aug 2017 17:43:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=15106475</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=15106475</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15106475</guid></item><item><title><![CDATA[New comment by djs55 in "Proposal for namespacing in OCaml"]]></title><description><![CDATA[
<p>I don't know the answer to the mix old/new compilers question but it looks like it's only the directory structure of the compiled artefacts that's important rather than the directory structure of the source code. It looks like you could keep all your source in one directory (unlike Java IIRC) and then compile it with `-I` and `-P` options.</p>
]]></description><pubDate>Mon, 17 Jul 2017 13:57:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=14788508</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=14788508</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14788508</guid></item><item><title><![CDATA[New comment by djs55 in "What’s New in Docker 1.13?"]]></title><description><![CDATA[
<p>(I work on Docker for Mac.)<p>Apologies for the inconvenience this has caused.<p>There was a race condition in a previous release which could allow multiple hypervisor instances to open the Docker.qcow2 simultaneously. Unfortunately this can corrupt the file by allocating the same physical block (cluster) twice, resulting in bad things happening. When this file-locking bug was fixed we also added an integrity check which checks the structure of the Docker.qcow2 on every application launch. For safety the app refuses to start if corruption is detected.<p>I believe that in these cases, the corruption happened in the past and is now being detected since the upgrade. Unfortunately if the app refuses to start it makes it difficult to reach the "Reset to Factory defaults" menu option. The workaround described here <a href="https://github.com/docker/for-mac/issues/1159#issuecomment-273899215" rel="nofollow">https://github.com/docker/for-mac/issues/1159#issuecomment-2...</a> is to remove the qcow2 and restart the app. Unfortunately containers and images will need to be rebuilt.<p>For what it's worth after the integrity check and the locking fix went in, I've not seen any recurrence of this error. Please open an issue if you see any other problems!</p>
]]></description><pubDate>Fri, 20 Jan 2017 10:21:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=13442747</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=13442747</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13442747</guid></item><item><title><![CDATA[New comment by djs55 in "Ask HN: Is it just me or do a lot of people not know how stock options work?"]]></title><description><![CDATA[
<p>In the past I worked for a UK company from the UK which was owned by a US parent, where employees in the UK were granted options in the US company under the HMRC Enterprise Management Incentives (EMI) scheme: <a href="https://www.gov.uk/tax-employee-share-schemes/enterprise-management-incentives-emis" rel="nofollow">https://www.gov.uk/tax-employee-share-schemes/enterprise-man...</a> . I think without the scheme if I had exercised an option (whether to hold onto the share or to sell immediately) then I would have owed income tax on the difference between the strike price and the current value i.e. the discount my employer effectively gave me. I think I would have owed the tax even if I was forbidden to sell the stock (e.g. if the company had stayed private). With EMI there was no income tax on exercise and I only owed capital gains tax when I eventually sold the stock.</p>
]]></description><pubDate>Tue, 20 Dec 2016 21:18:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=13224109</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=13224109</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13224109</guid></item><item><title><![CDATA[New comment by djs55 in "Disk space usage leak in Docker for Mac"]]></title><description><![CDATA[
<p>I'm looking forward to trying APFS, particularly support for sparse files. But you're right, it'll take while before we can rely on it.</p>
]]></description><pubDate>Tue, 29 Nov 2016 18:40:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=13065155</link><dc:creator>djs55</dc:creator><comments>https://news.ycombinator.com/item?id=13065155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13065155</guid></item></channel></rss>