HN user

watson

1,032 karma

https://github.com/watson

https://twitter.com/wa7son

Posts36
Comments152
View on HN
news.ycombinator.com 6mo ago

Ask HN: Best Email AI Assistant?

watson
2pts1
medium.com 1y ago

A Student Who Revolutionized Hash Tables and Shattered a 35-Year-Old Myth

watson
5pts0
www.reuters.com 2y ago

EV startup Fisker files for bankruptcy

watson
22pts14
arstechnica.com 2y ago

Apple plans to update new iPhones without opening the box

watson
4pts0
www.bbc.com 2y ago

Bank of Ireland ATM bug allows withdrawal of unlimited amounts

watson
2pts0
github.com 6y ago

Backport: A CLI to automate backporting of commits on a GitHub repo

watson
3pts1
thenewstack.io 7y ago

On Amazon Open Distro: What the Fork, Amazon?

watson
3pts0
github.com 7y ago

A curated list of computer history videos, documentaries and related folklore

watson
5pts0
www.elastic.co 8y ago

Elastic launches App and Site search SaaS products

watson
1pts0
data.worldjusticeproject.org 8y ago

Countries Ranked in Rule of Law Index

watson
1pts0
mafintosh.com 9y ago

Node.js: Breaking Core vs. Stability First

watson
3pts0
medium.com 10y ago

Digital Nomad: I’m Not Living the Dream

watson
4pts1
opbeat.com 10y ago

How we instrument Node.js

watson
11pts0
github.com 10y ago

List of computer history videos, documentaries and folklore texts

watson
3pts0
www.youtube.com 10y ago

Creating a Virtual Printer Using Node.js [video]

watson
75pts41
www.youtube.com 10y ago

Make Printers Great Again: Creating a virtual printer using Node.js [video]

watson
1pts0
www.github-followers.com 11y ago

Show HN: See your GitHub followers based on rank

watson
2pts3
www.youtube.com 11y ago

Baggage X-Ray Machine teardown and reverse engineering

watson
2pts1
www.youtube.com 11y ago

Building a working adding calculator using dominos [video]

watson
8pts0
translate.google.com 11y ago

Polar Researchers are four meters from drilling down into the Lake Vostok

watson
27pts5
github.com 11y ago

Programming language subreddits and their choice of words

watson
1pts0
blog.spreedly.com 12y ago

Merge Pull Request Considered Harmful

watson
271pts111
www.youtube.com 12y ago

World Time Zones explained [video]

watson
2pts0
fridriksson.tumblr.com 12y ago

A startup postmortem with a happy ending

watson
62pts30
www.youtube.com 12y ago

Reverse engineering the Linotron 202 typography [video]

watson
3pts1
www.quora.com 12y ago

Which Open Source software projects are vital for the internet?

watson
6pts0
blog.ted.com 12y ago

How to create the perfect made-up language

watson
1pts0
blog.notdot.net 12y ago

Damn Cool Algorithms: Log structured storage (2009)

watson
3pts0
medium.com 12y ago

Maybe the real reason teens are leaving Facebook (2013)

watson
3pts0
fridriksson.ghost.io 12y ago

Simple organic traffic fire hose tactics for your app

watson
1pts0
Claude Opus 4.6 6 months ago

I've heard rumors this might be Sonnet 5 rebranded as Opus 4.6. But why? Profit? WDYT?

MacOS has this feature under Settings -> General -> Language & Region -> Preferred Languages. Here you can have an ordered list of languages you wish apps and websites (I _think_ only works for Safari) to use. I don't know how widespread this is in other OS'es or browsers.

Promises are a nice success story, but without async/await it wasn't really necessary to standardize

One benefit of standardisation that's not tied to async/await is that the JavaScript engines has been able to do performance optimisations not otherwise possible which benefit Promise-heavy applications

The ISP sets up rack-cabinets full of equipment in central buildings where the “last mile” fiber terminates, close to the neighborhoods that they service. Each ISP that provides service to the area needs to have their own equipment there. This is how they differentiate and how one ISP can do 1Gbps while another might be able to do 2Gbps. Simply because they have installed different equipment. The fiber itself can of course support much more

When I read the title, I honestly thought this was an official LEGO thing. This is exactly why it's important for a company like LEGO to protect its trademark.

I realize this is just an homage to LEGO and I'm sure they know and appreciate that. But they still need to defend their trademark. If they don't, anybody could just use their name for whatever they wanted - even things they DO NOT want to be associated with.

You're free to just depend on ci-info directly if that's all you need of course. The is-ci module does give you one added benefit however: It allows you to run this on the command line:

$ is-ci && echo "I'm running in a CI environment"

But of course that could technically be baked into ci-info. It's just more convenient to use with npx and to reason about if it's a self-contained module

Hi, co-creator of volkswagen here. Just some fun trivia about the project, which Kenneth and I obviously made as a joke years back when Volkswagen got caught cheating:

The Node module actually works. If you use it, it will make all your tests pass.

When writing the code, I put the logic for detecting if code is being run on a CI server into a separate node module called is-ci[1] (which the volkswagen module then depends on). That module (later split out into ci-info[2]) turned out to be so useful for actual work, that today it's being used by both React and the npm cli.

I only found this out recently. Imagine the surprise when a tiny part of a joke project you created years ago turns out to be one of your most popular open source projects :D

[1] https://www.npmjs.com/package/is-ci [2]: https://www.npmjs.com/package/ci-info

Hi, co-creator of volkswagen, is-ci, and ci-info here. I extracted is-ci into its own module during the time I wrote volkswagen. It then turned out a lot of people wanted a module like that for actual useful things. But they wanted more info than simply "is this a CI server or not" (which was all that volkswagen cared about). So I made ci-info and moved the logic into that module and then made is-ci inherit from that, so to not have to duplicate the logic

It's very similar to bittorrent but with a few key differences. For one, bittorrent doesn't allow you to update/add files in a dataset once you've shared the torrent. Dat does. Dat also has versioning built in.

IPFS seems to me to be a bit over-engineered whereas dat is a lot more simple/low level - something that suits my way of working really well.

I'll try to answer your question, but it's been a while since I last looked at it, so I might get some/most of this wrong - so don't shoot me:

As far as I know git isn't good at storing binary data. Git depends on line breaks to be able to diff and make change sets. If you store a binary file in git and make an update to it - even though that update only changed 1 byte, the entire new version of the file is stored again. Dat uses Rabin fingerprinting to intelligently slice binary files into chunks that are less likely to change. That make dat a lot more efficient at storing, versioning, and syncing videos, images, and other large binary files.

Everything you put into dat is encrypted and unique key pairs are used for each shared item. Only the people you share the public key with can access the data. That doesn't address the expiry use-case, but it allows you to completely control who have access to what. Does that address your fine-grained permission needs?

Edit: The keys are very short (64 bytes), so they can easily be copy/pasted, tweeted and what have you :)

English is not my native language, but shouldn't the headline have read "SFO near miss would have triggered aviation disaster"? "Might" seems to indicate that something else happened afterwards as a possible result of the near miss

Hi tophattom, I'm happy that you like our platform, and thanks for your feedback :)

1) With the new version of Opbeat which will be based on Elasticsearch, you have the ability to perform any custom query you like. That should hopefully take care of that part

2+3) I'm not 100% sure what the app development plan is. But I'll make sure to tell the right people :)