HNHacker News
TopNewBestAskShowJobs

mdaniel

8,137 karma · joined May 23, 2010

https://MatthewDaniel.com/

[ my public key: https://keybase.io/mdaniel; my proof: https://keybase.io/mdaniel/sigs/ovUHBxc--eowJt65GiqARinI6Y6Hg3J8CRC2EgGA5kE ]

submissionscomments
mdaniel··on Oq: Terminal OpenAPI Spec Viewer
Two things: folks care about Brew because its update story is nice; otherwise one needs to constantly revisit your /releases (or plug /releases.atom into their RSS reader) in order to know. It also offers very light "I got what I expected" behavior via their use of sha256, which your current setup won't participate in since you're only publishing .md5 anyway

That leads to the second thing which is that you said you "added binaries" but your release artifacts are .tar.gz which means that one now needs to `curl -fSL | tar -xzf - -C /whatever` and deal with whatever interior directory scheme you are using (I didn't check)

I suspect I may be throwing good commentary after bad, but if you did want to participate in Brew distribution, but don't want to go through their stupid PR process, you can retain control over your update schedule by creating a "Brew Tap" and then the consumer would (e.g.) `brew tap plutov/brew && brew install plutov/brew/oq` which also gets away from the naming collision

mdaniel··on The Grammar Checker That Gets Developers
Their "click here for the thing" is broken in the dumbest way

The goods: https://github.com/Automattic/harper (Apache 2)

Also, 'grammar' in this context is English grammar, not parsers, and no other languages

mdaniel··on My Favorite PostgreSQL 18 Feature: Virtual Generated Columns
It's possible the following argument is what you meant by "from the SQL syntax," and if so apologies for the noise

At least one demonstrable difference I can see between your recollection and this feature is that the column name being part of the DDL pushes the logic down into the DDL, versus every client having to carry that magic expression around with them. I think it's likely the age-old application-logic-client-side versus stored-proc camps

  db=# select id, cast(length(name) AS text)||'0' as silly from my_table
as compared to <<select id, silly from my_table>> for the consumer
mdaniel··on Claude’s memory architecture is the opposite of ChatGPT’s
I thought you were making an entirely different point with your link since the lag caused the page to view just the upskirt render until the rest of the images loaded in and it could scroll to the reference of your actual link

Anyway, I don't think that's the flex you think it is since the topology map clearly shows the beginning of the arrow sitting in the river and the rendered image decided to hallucinate a winding brook, as well as its little tributary to the west, in view of the arrow. I am not able to decipher the legend [that ranges from 100m to 500m and back to 100m, so maybe the input was hallucinated, too, for all I know] but I don't obviously see 3 distinct peaks nor a basin between the snow-cap and the smaller mound

I'm willing to be more liberal for the other two images, since "instructions unclear" about where the camera was positioned, but for the topology one, it had a circle

I know I'm talking to myself, though, given the tone of every one of these threads

mdaniel··on Nano11 cuts Windows 11 down to size, grabbing just 2.8 GB of disk space
to avoid bazillions of clicking, the goods: https://github.com/ntdevlabs/tiny11builder (which, of course, has no license specified for the repo; maybe that's on purpose given the funding.yml)
mdaniel··on How I solved PyTorch's cross-platform nightmare
> Python wheels that work on any linux (almost)

So, you're doubling down on OP's misnomer of "cross platform means whatever platforms I use", eh?

mdaniel··on Hot Chips 2025: Session 1 – CPUs
Some of the other posts have transcriptions (e.g. https://chipsandcheese.com/i/153651942/a-introduction-to-ibm... ) so I wonder if it was just posted too early for those to be ready?

Also, that IBM Power one piqued my interest because I wondered if there was going to be any mention of the OpenPOWER project <https://git.openpower.foundation/general/openpower>, but it seems no

mdaniel··on How I solved PyTorch's cross-platform nightmare
> Cross-Platform

  cpu = [
  "torch @ <https://download.pytorch.org/whl/cpu/torch-2.7.1%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl> ; python_version == '3.12'",
  "torch @ <https://download.pytorch.org/whl/cpu/torch-2.7.1%2Bcpu-cp313-cp313-manylinux_2_28_x86_64.whl> ; python_version == '3.13'",
  ]
:-/ It reminds me of Microsoft calling their thing "cross platform" because it works on several copies of Windows

In all seriousness, I get the impression that pytorch is such a monster PITA to manage because it cares so much about the target hardware. It'd be like a blog post saying "I solved the assembly language nightmare"

mdaniel··on $142 upgrade kit and spare modules turn Nvidia RTX 4090 24GB to 48GB AI card
> Clearly, this operation requires specialized soldering skills and access to appropriate high-end tools. [...] The technician also uploaded a leaked, modified firmware onto the GeForce RTX 4090 48GB. It is important to note that each graphics card possesses a unique GPU device ID, which contains all pertinent information. During the system initialization process, the firmware verifies whether the GPU device ID corresponds with the one embedded within the chip. Hacked firmware has been present for some time.

So, an interesting YouTube video, but the $142 is not the whole story here, both in terms of materials and way no in terms of wall clock time required

I appreciate that they did call out the total cost later in the article, along with re-mentioning the specialized tools and experience, but the headline here deserved extra "clickbait alert" call out

mdaniel··on Show HN: Bottlefire – Build single-executable microVMs from Docker images
Seems to use a SOCKS5 proxy over tun2socks[1] to then use the host's networking setup https://github.com/losfair/bake/blob/ddf1edaa9daf340bd167794... so I think the short version to your question is "proxy server"

1: https://github.com/xjasonlyu/tun2socks#readme

mdaniel··on Guy running a Google rival from his laundry room
I get the impression it's the volume of the folks who sing its praises. There was a web3 crowd for a while, Bitwarden champions would show up to any mention of a password manager, and (ahem) some AI champions can be over the top

In all of these cases, a reasonable counterpoint is that if it were that applicable for all audiences, one wouldn't need to sing its praises, it would sing its own praises

mdaniel··on Guy running a Google rival from his laundry room
That's what I was expecting this submission to be about, although to be honest I'm not certain that Marginalia would want the influx of a fastcompany sized tire kicking
mdaniel··on Show HN: Rift (Flexible Translator) – Build Languages in Days, Not Years
Friend, I don't think a readme constitutes a "Show HN"
mdaniel··on Ask HN: Is Palantir Apollo just an AWS competitor?
No, it's much closer to an ArgoCD replacement, if Argo could run Terraform plan+apply loops, too

There's quite a bit of documents out on their public site[1], although the Mission Manager that represents the other half of the story has its docs gated by authentication

1: https://www.palantir.com/docs/apollo/core/release-channels/ et al, plus one can get a sense of how apollo-cli works from their OpenAPI spec https://github.com/palantir/apollo-openapi/blob/develop/open...

mdaniel··on A new experimental Go API for JSON
I hear you, but I am not aware of anyone that tried XMLHttpRequest.send('<s:Envelope xmlns:s...') or its '<methodCall>' friend from the browser. I think that's why they cited "of the web" and not "of RPC frameworks"
mdaniel··on DuckDB NPM packages 1.3.3 and 1.29.2 compromised with malware
I would love this for every dependency manager, and double extra bonus for "the tag NOW isn't the tag from when the dep was published"

But, this coming from GitHub, who believe that sliding "v1" tags on random action repos is how one ends up with https://news.ycombinator.com/item?id=43367987

mdaniel··on DuckDB NPM packages 1.3.3 and 1.29.2 compromised with malware

  curl -f
I'm super sad they didn't make --fail the default, and people that don't care could opt-out with --no-fail
mdaniel··on DuckDB NPM packages 1.3.3 and 1.29.2 compromised with malware
Given a test of https:// news.ycombınator.com [1] it seems that no, hovering over the URL shows it in its rendered form

  data:text/html,<meta charset="utf-8"><body><a href="https://news.ycomb%C4%B1nator.com/login">login to news.ycombinator.com</a></body>
and only by clicking it and getting an NXDOMAIN does one see the Punycode:

> We can’t connect to the server at news.xn--ycombnator-1ub.com.

1: Ironically HN actually mutated that link, I pasted the unicode version news.ycombınator.com (which it seems to leave intact so long as I don't qualify it with a protocol://)

mdaniel··on DuckDB NPM packages 1.3.3 and 1.29.2 compromised with malware
No guessing required, DKIM was intact, but it was also sent via a transactional email service, so that's why https://gist.github.com/Qix-/c1f0d4f0d359dffaeec48dbfa1d40ee...
mdaniel··on DuckDB NPM packages 1.3.3 and 1.29.2 compromised with malware
Do they work there or not? I deeply appreciate that everyone's threat model is different, but I'd bet anyone that wants to create a new DNS record also has access to credentials that would do a ton more actual damage to the company if they so chose

Alternatively, yup, SOC2 is a thing: optionally create a ticket tracking the why, then open a PR against the IaC repo citing that ticket, have it ack-ed by someone other than the submitter, audit trail complete, change managed, the end

mdaniel··on Claude now has access to a server-side container environment
(a) it's not that GitLab just launched

(b) it's an allowlist rule, not rocket science

(c) where's all this mythical "agent gonna do all the things for me" world?

mdaniel··on Claude now has access to a server-side container environment
> Version Control

> github.com

pour one out for the GitLab hosted projects, or its less popular friends hosted on bitbucket, codeberg, forgejo, sourceforge, sourcehut, et al. So dumb.

mdaniel··on NPM debug and chalk packages compromised
Team https://no-color.org/ for life

One will not be surprised to see that Chalk chooses its own path via the stunningly opaque FORCE_COLOR=0 and is all :fu: to people who suggest otherwise <https://github.com/chalk/chalk/issues/547#issuecomment-11268...> One will especially enjoy the "get bent" response because I discovered that one issue by, you know, searching the issues <https://github.com/chalk/chalk/issues?q=is%3Aissue%20NO_COLO...>

mdaniel··on NPM debug and chalk packages compromised
Transport Layer Security, and has nothing to do with Identity. Take for example the perfectly valid certificate that was issued for npmjs[.]help which unquestionably does not belong to Microsoft/GitHub. Hell, even the certificate for npmjs.com is 'O=Google Trust Services' which doesn't sound like any of the business entities one would expect to own that cert
mdaniel··on NPM debug and chalk packages compromised
I want to live in a world where the 1Password CEO makes a formal apology for this failure, and applies the necessary internal pressure to treat any "autofill does not work" as a P0

The number of cases in this thread, about a malware attack basically because of 1Password, where people mention their bad experience with 1Password is really stretching the "no such thing as bad publicity" theory

mdaniel··on NPM debug and chalk packages compromised
> I do get it for free from work, but if I had to choose one myself I'd have to pay for I'd probably still pick 1Passwrod.

I wanted to highlight that "getting it for free from work" isn't a sweetheart deal offered just to OP, but a feature of 1Password for Teams, meaning all employees of a business that uses 1Password automatically have a Family license for use at home https://support.1password.com/link-family/

And, for clarity, it's merely a financial relationship: the business cannot manage your Family account, cannot see its contents, and if you have a separation event you can retain the Family account forever in a read only capacity or you can take over the payment (or, heh, I presume move to another employer that also uses 1Password) and nothing changes for your home passwords

mdaniel··on NPM debug and chalk packages compromised
I'm glad you've had such good experience with autofill consistently working for you. My experience has been closer to that of the sibling comments: 60/40 so I often just give up and copy-paste. I actually did try jettisoning 1Password for Proton Pass but that was even worse, so I went back

> without any migration strategy or import/export support

Since you're already a 1Password user, I wanted to draw your attention to the "Show debugging tools" in the "Settings > Advanced" section. From that point, you can say "Copy Item JSON" and it will give you the details you would want for rescuing the Passkey. Importing it into something else is its own journey that I can't help with

  {
    "overview": {
      "passkey": {
        "credentialId": "...",
        "rpId": "example.com",
        "userHandle": "..."
      },
    ...
    "details": {
      "passkey": {
        "type": "webauthn",
        "createdAt": 175.......,
        "privateKey": "eyJ...",
        "userHandle": "..."
      }
I would guess their "op" CLI would allow similar, but I don't have the magic incantation to offer, whereas that Copy JSON is painless
mdaniel··on DuckDB NPM packages 1.3.3 and 1.29.2 compromised with malware
That's only half the story, as I learned yesterday <https://news.ycombinator.com/item?id=45172213> since even with lock files one must change the verb given to npm/yarn to have them honor the lock file

So, regrettably, we're back to "train users" and all the pitfalls that entails

mdaniel··on NPM debug and chalk packages compromised
> Size: 3124 kB

Hey, that's a pretty good reproduction of npmjs

mdaniel··on Formatting code should be unnecessary
I say this fully cognizant of the thread in which it's posted, but these people are sick

https://astyle.sourceforge.net/astyle.html#_style=whitesmith

And then someone said: oh yeah? Hold my beer https://astyle.sourceforge.net/astyle.html#_style=pico

← PreviousPage 2 of 34Next →