HNHacker News
TopNewBestAskShowJobs

neandrake

382 karma · joined January 19, 2015

Contact me: rare.chair3350@fastmail.com
submissionscomments
neandrake··on Bitwarden: Free, open-source password manager
Check out CodeBook, it’s not open source but it’s a 1-time fee for device type (windows, Mac, iPhone, android), up to five installs. I’ve purchased for phone, MacBook, and windows pc and been using for the past 5+ years and am satisfied with it. The product itself isn’t open source but the company which makes it does develop an open source module/extension of SQLite for encrypted database. All syncing is manually done, across Wi-Fi or it can use Dropbox or google drive.

https://www.zetetic.net/codebook/

neandrake··on Changing the Rules of Rust
This can be problematic when working on a project where updating the version of rust is difficult, limiting what libraries can be used - or ci/cd where devs may not have direct control of the environment. It’s less of a language compatibility issues and more deployment logistics issues.
neandrake··on Request: Re-open JPEG XL issue
Did google cite patents as one of the reasons they removed support initially? I thought it was all around lack of benefits and difficulty of maintenance.
neandrake··on Breaking java.lang.String
By what means? The only ways I would expect are either unconditionally duplicating the array or mutex, and I don’t think the mutex wouldn’t be simple. Adding a sync block on the input could be done but that’s assuming nothing else is locked on it (but probably points to there being a race condition elsewhere if there is..).

Unconditionally duplicating the array would use more memory and wouldn’t be faster.

neandrake··on Breaking java.lang.String
Coming back to this the answer is probably not strictly about concurrency and so there is a possibility something would need addressed about this.
neandrake··on Breaking java.lang.String
My thinking is the same. I doubt this is an oversight. Making the String constructor thread-safe would likely slow things significantly. Great point about things being assumed not thread-safe. The JDK is pretty thorough with documenting thread-safety.
neandrake··on macOS 14 will support JPEG XL
Lots of metadata about the image scan. Patient name/id, etc. and often physics related to the image scan such as the voxel size, units, properties of the imaging equipment, etc. DICOM is also used for other data that isn’t directly related to the visual image such as segmentation of the image, radiotherapy planning info, and so on. There are hundreds of dicom tags (the metadata entries) that can be in the dataset.
neandrake··on An introduction to lockless algorithms (2021)
Thanks for linking all these references!

I’m also new to a lot of these topics but recently read Rust Atomics and Locks which has helped my understanding quite a bit - at least keeping me above water reading all the discussion in this post. The examples are in Rust but the concepts are at the kernel/cpu level and apply beyond the language. I recommend it.

https://marabos.nl/atomics/

neandrake··on Mouse scroll wheel acceleration, implemented in user space
On Firefox I use ScrollAnywhere extension which I configure to use right-down drag to scroll large amounts with little movement. Helps tremendously with lengthy pages and I miss being able to use it in code editors.
neandrake··on NIST AI Risk Management Framework
Essentially yes, assuming MedGPT is marketed to clinicians as being a tool they can use for diagnosis/treatment.

The process is pretty involved, but to add some clarification - the "indications for use" or "expected use" are things the manufacturer are required to include with their device when submitting for 510k clearance from FDA, so that it can then be marketed for medical use. They can only market it as a medical device once it has 510k from FDA.

neandrake··on NIST AI Risk Management Framework
>In collaboration with the private and public sectors...

>The Framework was developed through a consensus-driven, open, transparent, and collaborative process...

It sounds like they collaborated significantly with parties likely involved with developing AI

neandrake··on NIST AI Risk Management Framework
No because google is not marketing their service for medical use. The doctor is responsible for the diagnosis/prescription, which they’re allowed to use any tool they deem necessary.

Medical devices are marketed for specific medical use, which doctors rely upon to do what’s medically expected. These devices will have an “expected use” and “indications for use” that largely cover how they are design/expected/tested for use. They need 510k clearance to be classified by the FDA as a medical device.

neandrake··on Ask Wirecutter: Can you recommend a not-smart TV for me?
Haven’t checked availability but OnlyTV would be fitting.
neandrake··on Learning BASIC Like It's 1983 (2018)
It’s been a few years but the book Code by Charles Petzold covers a number of those topics which I found interesting to learn about (but not study).

https://www.codehiddenlanguage.com/

neandrake··on Bitwarden PINs can be brute-forced
Codebook might be suitable. You can sync to Dropbox or google drive, or instead only sync between devices on the lan.

https://www.zetetic.net/codebook/

neandrake··on The Case Against Monkey Patching
Could you give an example? Most of the arguments in the post seemed to be focused on long-term maintenance. It does put a lot of faith in the upstream allowing contributions and making good decisions, especially when viewed through the lens of Ruby/Rails a belief that upstream continues to exist. To me though some of the arguments like submitting fixes is actually encouraging the reader to fork and make their own changes as opposed to using dynamic modification to behavior.
neandrake··on LastPass breach gets worse
+1 for Codebook. I’ve been using it for ~5 years and haven’t had an issue, I feel secure in managing where my vault is stored and haven’t had issues with syncing. It’s a one-time fee per device type - I paid for iOS, macOS, and Windows without any hesitation.

Additionally their support is really good. They added a feature on iOS version (and Android I assume) which copies the TOTP when you use codebook to auto fill a login. However it cleared the clipboard when the TOTP code expired which was sometimes too soon - I suggested they add a buffer of ~15-30 sec which most TOTP validators allow, giving the user a bit more leeway in pasting it. They added it in the next version.

Some cons though: They do lack Linux support. Syncing is manual (I think they mentioned the next big update will make it more automatic), and there aren’t any family/team sharing capabilities. For these reasons I would really only recommend it for tech-savvy individual use. I’ve recommended it to a few colleagues and they have had great experiences and continue to use it for several years now.

neandrake··on Cal.com: Open Scheduling Infrastructure
On Google Calendar as well as Fastmail Calendar there are options to create a share link for your calendar which only exposes availability but not any details of the events other than date/time/duration. It’s not granular other than that though. I use it to share my personal calendar with my work so I can e.g. schedule a doctor appointment with details and have that appear and affect availability in my work calendar - it just shows up as “Unavailable” with no other details.
neandrake··on Zstandard – Fast real-time compression algorithm
Runtime or real-time encoding is my guess.
neandrake··on Sapling: A new source control system with Git-compatible client
I've worked with Mercurial repos for 10+ years and only recently we've been migrating some of the smaller repos to Git primarily due to better supported tooling. Mercurial has done a great job in specific workflows especially with phases (which not everyone adopts) -- by default they disallow modifying public commits but allow modifying draft commits. I don't believe Git really has a similar concept, or at least not integrated at the same level. I recently read about `git push --force-if-includes` which seems like it's trying to address similar situations but mostly guessing based on comparing changesets present between two repos.

To your question about what/how Mercurial helps I'm guessing it's related to this, or other workflows enabled by Mercurial's Evolve/Topic features. It sounds like Sapling has adopted Evolve/Topics and making them functional on Git repositories though I'm not sure what it's doing under the hood.

neandrake··on Sapling: A new source control system with Git-compatible client
Facebook was a large contributor to Mercurial for a number of years [0]. They wanted to contribute to making Mercurial scale but it seems like they wanted to move faster and/or in a different direction than the Mercurial team wanted. Funnily I think they originally chose Mercurial for essentially hitting those same roadblocks from the Git community. Instead of continuing to contribute to Mercurial they forked and continued working on it internally, now released as Sapling.

Many companies/organizations won't hit the size/scale where this matters but there are certainly plenty of companies who have large repositories and contributors that would benefit from something like Sapling over Git/Mercurial. These tools start to become slow. Many addons have been created to ease the problem (LFS or Microsoft's VFSforGit, narrow/shallow checkouts, etc.) but they also add complications (LFS especially in my experience). Monorepos have their advantages [1], and even with disadvantages they exist and won't go away. It's more appealing to migrate a monorepo to a new tool that adds more benefits specific to monorepos than to break apart a monorepo into separate repos.

The architecture that's being moved into seems to be less decentralized which is what Git/Mercurial were initially pioneering. I believe Google has essentially also built their own server-side SCM [2] and made Git/Mercurial clients (or wrappers for a client). I believe Microsoft did something similar forking Git and/or making their own server-side SCM but I don't recall where I came across that.

[0] https://engineering.fb.com/2014/01/07/core-data/scaling-merc...

[1] https://trunkbaseddevelopment.com/monorepos/

[2] https://www.quora.com/Why-do-Google-employees-use-Piper-inst...

neandrake··on Sapling: A new source control system with Git-compatible client
It's difficult to find out information about the status of the oxidation project with Mercurial. I just noticed the 6.3 release earlier today and looked more into the rust support. I didn't get the feeling that most of Mercurial has been rewritten in Rust yet. The `hg help rust` information only lists a handful of features as gaining improvements from Rust, albeit they are likely core/essential components, as well as mentioning some/all of the work is experimental. The documentation here seems very much directed towards developers still.
neandrake··on Sapling: A new source control system with Git-compatible client
Since the sapling client is a fork from Mercurial does that mean it can also be used with Mercurial repositories in addition to Git repositories or is that not supported?

In order to work with Git repositories is this essentially the Mercurial client using hg-git on a converted repo under the hood?

neandrake··on GlueSQL: SQL database engine as a library
This idea sounds similar to Glean. I haven’t looked too much into it yet but tagged it for later.

https://glean.software/

neandrake··on Some Thoughts on Zig
I think it’s a typo and they meant unused parameters.
neandrake··on How to Animate Multiplayer Cursors
Here's a series of articles about client-server game architecture which I found tremendously interesting, and it's a bit more involved than what's explained in this article on cursor positions though I agree the basics are similar. It starts out explaining a naive approach, identifying the issues with that, and moving to more advanced solutions which involve prediction. The article also has a good explanation that goes a bit more in-depth to how the latency causes issues with the gameplay.

https://www.gabrielgambetta.com/client-server-game-architect...

neandrake··on Oh Shit, Git
I love mercurial’s solution of having phases for commits. Anything you created locally is Draft phase and can be mutated without “force”. Anything which was pulled or pushed is automatically marked as Public and is not easily mutated. Visualizing the commit graph also colors commits based on phase making it really easy to get a grasp of what’s going on.

Is there an extension or something for Git to have similar behavior to this?

neandrake··on 7-zip 22.00 – APFS, Posix TAR, high precision timestamps
I saw notes about improved support for tar which had my hopes up but it doesn’t look like any changes were made to make handling of compressed tar files easier. For both compressing and decompressing it’s a two step process with 7zip which is pretty frustrating. On Mac I use Keka which makes it really simple. On Windows using 7zip first you have to compress to tar then compress to gzip or other, same with decompressing to first extract the tar and then unpack the tar. Otherwise it’s fantastic for my use cases.
neandrake··on Commercial-Emacs
Could you link to what you’re referencing? I’m not familiar with X development but it looks like libXft had a 2.3.4 release around 10 months ago, which seems relatively active for X-related projects.

https://gitlab.freedesktop.org/xorg/lib/libxft

neandrake··on Overgrowth: Open-Source Announcement
Here's a video I've enjoyed of David Rosen giving a presentation at Game Developers Conference 2014 going over procedural animation used in Overgrowth.

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

← PreviousPage 2 of 6Next →