Hacker News new | past | comments | ask | show | jobs | submit | MorganGallant's comments login

When is a gift not a gift?


This is a particularly clever post.

For those that don’t have experience running companies with permissive free tiers, free tiers often act as a honeypot for a certain category of users that (1) don’t and will never pay for your product, (2) complain loudly and often and (3) eat up your support time.

This category of user is equally toxic to any competitor’s platform. The best B2B companies paywall early and set the bar high.


Not my favourite language, but LevelDB (written in C++) is really great.


Would highly recommend Railway (https://railway.app) for this! Entirely serverless, meaning you pay for hardware usage, not the hardware itself. Most DBs that I use for small projects end up costing <$1/mo (which sits well under their free plan).


Seems like you know about, yet haven't watched War Games yet. Definitely an older one, but arguably one of the best — would highly recommend giving it a go.


Hey y’all, sharing something I threw together over the weekend. I’m really into engineering blogs (i.e. Netflix, Cloudflare, apenwarr.ca, etc.) and wanted a tool that would help me monitor these blogs for specific topics or ideas that I’m interested in (without me having to constantly check them for updates every few days). Did the whole thing semantically, i.e. using semantic similarity + matching thresholds as opposed to a traditional full-text / keyword-matching approach, which seems to perform better (since you don’t need to use the ‘right’ wording to get good results).

Thanks for checking it out, look forward to discussing in comments!

edit: typo


Been a long-time fan of Railway (https://railway.app) — seems like it would be a great option here.

If you wanna see pure magic, CMD+K —> PostgreSQL (or Redis). ~3s and you’re good to go.


Hey HN, hope y’all are having a good day so far! I come from a background of building virtual assistants, so I thought it would be interesting to reframe the search problem as if it was an input to a chatbot. Threw together a little demo of using code generation (mainly powered by Codex) to answer natural language queries about a dataset. For the purposes of this demo, I just used some fake transactions from Plaid sandbox mode, but I’m pretty excited about not only expanding this to other datasets but letting both individuals/companies use this on their own data. Seems like this could help a lot of people, myself included, use our own data to make better decisions. Would love to chat to more people about this - if you’re interested, mind sending me an email? It’s morgan at operand dot ai. Thanks!


The really interesting idea here is that once you change the frame of reference, or start from a different technical basis, features like Taildrop become incredibly easy to build and design - it seems like it almost built itself. It seems like the same goes for interfaces or platforms… once you have a computer in your pocket capable of 11T operations per second, you get a lot of stuff “for free” right out of the box.


That reminds me of https://franklinchen.com/blog/2011/12/08/revisiting-knuth-an...

Basically, Knuth was writing a beautiful but excessively low level program. His challenger wrote a dozen lines of shell-script.


Not "his challenger"; it was not a contest. It would be more proper to say "his reviewer, the inventor of Unix pipes, using the review column to advertise UNIX®". See a previous discussion here: https://news.ycombinator.com/item?id=22406070

Incidentally, a couple of days after that thread, the current fastest submissions (which, like Knuth, all use tries) were posted at the question https://codegolf.stackexchange.com/questions/188133/bentleys... mentioned in a sibling comment. (AFAICT that comment should say "200 times faster", not "30 times faster", but anyway in light of the original context it's not meaningful to compare the two approaches either for efficiency or ease of implementation or anything else.)


Thanks for the extra context!

Yes, my 'challenger' didn't mean to imply a formal contest.


Codegolf page with solutions up to 30 times faster than the McIlroy shell script solution - https://codegolf.stackexchange.com/questions/188133/bentleys...


Interesting, that they can only get 30 times faster with modern technology and more complications.

I guess, if you really wanted to solve this fast, you'd massively parallelize.

In any case, this was more about easy of implementation than about runtime speed.


Sure, once you "Bust a NAT" sharing is stupidly simple.

"Bust a NAT" is anything but easy, however.


Indeed. For those that started scratching their heads 'this is impossible', this deep dive from the Tailscale blog will be informative. Perhaps even entertaining, the birthday paradox may have a hand in it.

https://tailscale.com/blog/how-nat-traversal-works


However in situations where you have say a Juniper SRX scrambling both source and destination ports on both sides of your nat, the birthday intersect is 2^32 rather than 2^16.

With a Cisco ASA or Fortigate which tends to keep the same source port where possible you'll converge far more quickly. When there's a central server to help it's even quicker and most of the time will just work.

(sometimes it's not possible to keep the same port when source-natting -- with two devices from 192.168.0.1:9000 -> 1.1.1.1:53 and 192.168.0.2:9000 -> 1.1.1.1:53, the second will have to have a mapping to non-:9000 source IP, but in my experience, Cisco, Fortigate and Mikrotik (thus linux) all support the "only change if needed" option)


Surprised no one mentioned https://apenwarr.ca/log/ yet - such a great read!


I wonder if this is some sort of precursor work for the generics release? Feels like gofmt -r on steroids, and could be eventually used to do large scale transformations to the standard library?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: