HNHacker News
TopNewBestAskShowJobs

richdougherty

1,798 karma · joined August 12, 2011

https://rd.nz
submissionscomments
richdougherty··on Kafka is dead, long live Kafka
They may still use some sort of event/message system. Kafka is lower level than other sorts message queue systems and requires more work to get correct (dedupe, ordering, retry logic), but has great performance. It's often easier to choose a different messaging system though.
richdougherty··on Accessing Llama 2 from the command-line with the LLM-replicate plugin
Looks like it's here now: https://replicate.com/replicate/llama70b-v2-chat

As for pricing, that model's pages says: "Predictions run on Nvidia A100 (80GB) GPU hardware. Predictions typically complete within 17 seconds."

And the pricing page (https://replicate.com/pricing) says Nvidia A100 (80GB) GPU hardware costs $0.0032 per second.

So Llama 2 70B would "typically" cost under 17 x 0.0032 = $0.0544 per run.

richdougherty··on Sweden Sans
I agree, would love a mono version!
richdougherty··on Fast
A classic 20 year old article on the principle of Stop Energy.

"Stop Energy is not reasoned, it never takes into account the big picture, it is the mirror image of Forward Motion. In the Stop Energy model, everyone, no matter how small their stake in a technology, has the power to veto. Nothing ever gets done, and people who want to move forward are frustrated in every attempt to move. Unfortunately, Stop Energy is the rule, not the exception"

https://radio-weblogs.com/0107584/stories/2002/05/05/stopEne...

richdougherty··on Ask HN: Could you share your personal blog here?
https://rd.nz
richdougherty··on P1030680: Unbroken Enigma message (U534, 01 May 1945)
I mean I'd use known text of other messages to get some likely statistical properties of the message.

I'd make a fast approx check for some of these properties that can run during brute force, then feed anything that passes that check to a better check, then finally to a human (maybe nowadays put an LLM before the human stage).

There's a chance to miss the translation if it doesn't match other messages but this seems like a decent approach.

richdougherty··on Our Plan for Python 3.13
I mean that seems horribly tricky, but also totally doable.

Having read about JavaScript/Java VM optimisations in JITs and GC I would be surprised if a global state change like this is not manageable - think deoptimising the JS when you enter the debugger in the dev tools in your browser.

richdougherty··on Saga Pattern Made Easy
I think mrkeen is talking about a failure when handling a failure. E.g. when a cancellation step fails, what do you do?

The answer is, you model those as well and work out what to do. But it's more messy than you might think if you just model the first-order failure paths.

richdougherty··on March 20 ChatGPT outage: Here’s what happened
Support engineers and an official bug reporting channel would help. I noticed and reported the issue on their official forums at on 16 March, but got no response.

https://community.openai.com/t/bug-incorrect-chatgpt-chat-se...

I only reported it on the forums because there didn't seem to be an official bug reporting channel, just a heavyweight security reporting process.

As well as the actions they took to fix this specific bug, another useful action would be to have a documented and monitored bug reporting channel.

richdougherty··on March 20 ChatGPT outage: Here’s what happened
> Actions we’ve taken > > - [testing, assertions, log alerting, debugging]

I reported this bug in the forums (no response), because I couldn't find an official way to report bugs - at least it wasn't documented anywhere that I could find. The actions they've taken fix that bug, but not the next one. OpenAI should take an action to improve their bug reporting channels, so the next bug gets found more quickly.

https://community.openai.com/t/bug-incorrect-chatgpt-chat-se...

Other messages indicate issues with bug reporting too:

* https://news.ycombinator.com/item?id=35291943 * https://news.ycombinator.com/item?id=35295747

richdougherty··on Framework Laptop 16
That's really interesting to know. Thanks for mentioning it. The laptop sounds fantastic too: https://www.notebookcheck.net/Asus-ROG-Zephyrus-G14-GA402R-G...
richdougherty··on A world to win: WebAssembly for the rest of us
There is a WebAssembly proposal called "Threads".

https://github.com/webassembly/threads

"This proposal adds a new shared linear memory type and some new operations for atomic memory access. The responsibility of creating and joining threads is deferred to the embedder."

As for the current status, it is listed on the proposals page: https://github.com/WebAssembly/proposals

The "Threads" proposal is in "Phase 3 - Implementation Phase" which means it's starting to be implemented, but it hasn't reached "Phase 4 - Standardize the Feature" where 2+ browsers implement it. The final stage would be "Phase 5 - The Feature is Standardized. See https://github.com/WebAssembly/meetings/blob/main/process/ph...

richdougherty··on My daughter's school took over my personal Microsoft account
A few years ago I got an email saying that an unknown Microsoft account had been renamed from one of my email addresses to a new email address I don't own.

It appears that someone was able to link an MS account to my email with no verification, then rename the account, again with no verification.

Best case is that it's someone who used my email as a recovery email for their MS account and changed it. But with the mess of MS accounts, I'm always nervous they've got some residual control of my real account which is also linked to that email.

Unfortunately I've never been able to get confirmation from MS that things are OK. There are plenty of questions about this particular renaming issue on the web, but no answers.

richdougherty··on Show HN: Graph-based AI for longform writing
I would love a tool like this to combine requirements, comments and fragments of code into a larger program.
richdougherty··on MacType: Better font rendering for Windows
The dubious part for me is the way it's set at quite a strong level of pixel alignment, and (from memory) you can adjust it a bit but it not enough for all tastes - hence extensions like this.

I get that some people prefer it but a lot of people don't and it's frustrating to be stuck with it. My thinking is that unless there's clearly one best way, and if it's something people have strong opinions about, then a switch or knob to adjust is a good idea.

richdougherty··on MacType: Better font rendering for Windows
For those wondering, I'm pretty sure this is a Windows extension that changes Windows to use Mac/Linux style font rendering. This gives better glyph shapes compared to Windows' ClearType rendering which forces fonts to align with pixel boundaries - a dubious decision with no off switch in Windows.
richdougherty··on Open Assistant: Conversational AI for Everyone
Your point about needing large models in the first place is well taken.

But I still think we would want a curated collection of chat/assistant training data if we want to use that language model and train it for a chat/assistant application.

So this is a two-phase project, the first phase being training a large model (GPT), the second being using Reinforcement Learning from Human Feedback (RLHF) to train a chat application (InstructGPT/ChatGPT).

There are definitely already people working on the first part, so it's useful to have a project focusing on the second.

richdougherty··on Memory safety is the new black, fashionable and fit for any occasion
Rust's type system tracks ownership and one of the main reasons is so the compiler can automatically know when to free memory without runtime reference counting.
richdougherty··on DOJ Sues Google, Seeking to Break Up Online Advertising Business
https://archive.ph/oYXeF
richdougherty··on WebKit Quirks.cpp
We found a bug last time!

https://bugs.webkit.org/show_bug.cgi?id=222130

richdougherty··on Ten Years of TypeScript
I agree, there's doesn't seem to be any reason why you can't use types to express something like contracts. I think the general name for these kinds of types is 'refinement types':

"a refinement type is a type endowed with a predicate which is assumed to hold for any element of the refined type. Refinement types can express preconditions when used as function arguments or postconditions when used as return types"

- https://en.wikipedia.org/wiki/Refinement_type

There's even some literature linking contracts and types directly:

"Traditional static type systems are effective for verifying basic interface specifications. Dynamically-checked contracts support more precise specifications, but these are not checked until run time, resulting in incomplete detection of defects. ... This paper explores the key ideas and implications of hybrid type checking, in the context of the λ-calculus extended with contract types, i.e., with dependent function types and with arbitrary refinements of base types."

- https://users.soe.ucsc.edu/~cormac/papers/toplas09.pdf

richdougherty··on Caring for the only known full kākāpō feather cloak in the world
You may be able to see a real-life kākāpō by booking to see Sirocco, New Zealand's official spokesbird for conservation. I saw him once and he's pretty cool! Not sure if he's touring at the moment.

https://twitter.com/spokesbird

It wasn't quite as exciting as when Stephen Fry's film crew met him. The video of that encounter is the origin of the Party Parrot emote which you might have seen on Slack.

https://www.youtube.com/watch?v=9T1vfsHYiKY

https://slackmojis.com/categories/7-party-parrot-emojis

richdougherty··on Why A4? – The Mathematical Beauty of Paper Size
Yes I did! Thanks for pointing it out and very politely too. :)
richdougherty··on Why A4? – The Mathematical Beauty of Paper Size
I was wondering that too! I got to the end and still no explanation of 210×297mm.

Well, it turns out that it's based on the fact that A0 is defined as having an area of ~1m², then each subsequent size halves the area. So A4 has dimensions that give an aspect ratio √2 and an area of ~1/16m².

    A0: 1,189 mm × 841 mm = 999,949mm² ≈ 1m²
    ...
    A4: 297 mm × 210 mm = 62,370mm² ≈ 1/16m²
See https://en.wikipedia.org/wiki/Paper_size#A_series :

"The A0 base size is defined as having an area of 1 m² ... rounded to the nearest millimetre, 1,189 mm × 841 mm".

richdougherty··on Crawler Hints supports Microsoft’s IndexNow in helping users find new content
If it was widely used it's win-win. More timely updates and less traffic crawling pages which haven't changed. That's if it ever becomes a reliable signal of page changes.
richdougherty··on Crawler Hints supports Microsoft’s IndexNow in helping users find new content
I was going to say that well-known is only for stable paths, where you want to avoid collisions, not for paths with random keys... but you're right:

https://www.rfc-editor.org/rfc/rfc8615#section-3

   Registrations MAY also contain additional information, such as the
   syntax of additional path components, query strings, and/or fragment
   identifiers to be appended to the well-known URI, or protocol-
   specific details (e.g., HTTP [RFC7231] method handling).
So it could be: /.well-known/index-now/<key>

IndexNow would need to change the semantics of how they handle directories, as a key authorises only subdirectories.

I also notice there is an option for changing the filename of the IndexNow key file, but there is less flexibility about the directory it's hosted:

    https://<searchengine>/indexnow?url=http://www.example.com/product.html&key=af4c4e043c7d42afad6bdeeda948527d&keyLocation=http://www.example.com/myIndexNowKey63638.txt
This seems like a potential vulnerability as if an attacker knows a text file path that contains a known (hex?) string it looks they could use it as a key?
richdougherty··on Crawler Hints supports Microsoft’s IndexNow in helping users find new content
Not defending the standard, but I guess since this is a shared secret you don't want to put it at a well known location. There's a (slight) attack vector from having an attacker know the secret, since they can "launch" a crawl against a site. Maybe could get a crawler to access private URLs or something?

Another interesting feature I saw in the standard is that you can host keys in subdirectories too.

"the location of a key file determines the set of URLs that can be included with this key. A key file located at http://example.com/catalog/key12457EDd.txt can include any URLs starting with http://example.com/catalog/ but cannot include URLs starting with http://example.com/help/."

richdougherty··on Crawler Hints supports Microsoft’s IndexNow in helping users find new content
Here's the IndexNow standard that CloudFlare Crawler Hints is using:

https://www.indexnow.org/

The idea is that you can push a notification to a search engine when content changes instead of waiting for the crawler to notice.

https://<searchengine>/indexnow?url=url-changed&key=your-key

You can also submit more than one URL with a POST.

You can notify Bing at https://www.bing.com/indexnow?url=url-changed&key=your-key

If you notify the IndexNow API endpoint it notifies Bing plus other search engines on your behalf:

https://api.indexnow.org/indexnow?url=url-changed&key=your-k...

This announcement is about how CloudFlare can now do this automatically for sites it hosts.

Some other hosts and CDNs support IndexNow, eg Akamai. See: https://blogs.bing.com/webmaster/october-2021/IndexNow-Insta...

richdougherty··on No evidence for nudging after adjusting for publication bias
I think any alteration to behaviour is open to nudging, but perhaps you can explain more?
richdougherty··on No evidence for nudging after adjusting for publication bias
There are some good points you raise, and I think you're really testing the nuance of what nudging is. But nudges are perhaps more basic than you're thinking.

Nudges don't need to steer the user to a specific choice, just a behaviour change. Sticking with a conversion flow counts as a behaviour change.

Nudges don't need to be simple or understandable. They can be a set of complex changes where causation isn't clear. They just need to get results.

The only really hard requirement that would rule out a nudge is if you forced a choice or used financial incentives.

If you read the Nudge book you'll see that it's a political book, really. The authors introduce nudges as an alternative to hard regulation. Instead they propose that governments consider influencing behaviour in a softer way, but still leave the escape hatch open for people with strong preferences to choose what they want. This strikes a balance between state involvement and principles of liberty. (Or at least that's their argument.)

Because of this framing a nudge is defined mostly by what it isn't. It's not a nudge if it forces a user to a choice; a nudge is anything you do that changes what users do without forcing them.

This is what you've done with your series of changes that resulted in increased conversion. You've left all the choices open still, so users have as much freedom as before, but you've managed to predictably change user behaviour in a way that aligns with your goals. In other words, you've nudged them.

← PreviousPage 2 of 14Next →