“With funding from private investors,…”
Im guessing those private investors specifically requested not to be named.
HN user
[ my public key: https://keybase.io/ckwalsh; my proof: https://keybase.io/ckwalsh/sigs/EoHUhOGA1KPqL4CPOT3IDYzOKuO7uBnFYxQRJgXUY7c ]
“With funding from private investors,…”
Im guessing those private investors specifically requested not to be named.
Blackhole is the name of one of the services used in display-time malicious content filtering.
I’m guessing the urls in that db were either generating a ton of backend load, so they were pushed to devices, or perhaps are customized on a per user basis for some reason
I'm in the "Pro-Rust" camp (not fanboy level "everything must be rewritten in rust", but "the world would be a better place if more stuff used Rust"), and I love this post.
They saw some benefits to Rust, tried it, and continued to measure. They identified the Typescript/Rust language boundary was slow, and noticed an effect on their contributions. After further research, they realized there was a faster way that didn't need the Rust dependency.
Good stuff, good explanation!
I am also wondering if Meta still uses PHP or Hack
Meta’s WWW codebase is its oldest, and still written in Hacklang. Lots of internal tooling is also written in Hack.
I wouldn’t be surprised if there are more committed lines of Hacklang than any other language (although, a good chunk of that is codegen, vs other core languages where codegen is part of the build process).
Coming from a Meta background (not speaking on behalf of Meta):
"package/dependency management" - Everything is checked into a monorepo, and built with [Buck2](https://buck2.build/). There's tooling to import/update packages, but no need to reinvent pip or other package managers. Btw, Buck2 is pretty awesome and supports a ton of languages beyond python, but hasn't gotten a ton of traction outside of Meta.
"linting, formatting" - [Black](https://github.com/psf/black) and other public ecosystem tooling is great, no need to develop internally.
"why is type checking the exception" - Don't know about Astral, but for Meta / Google, most everyone else doesn't design for the scale of their monorepos. Meta moved from SVN to Git to Mercurial, then forked Mercurial into [Sapling](https://sapling-scm.com/) because simple operations were too slow for the number of files in their repo, and how frequently they receive diffs.
There are obvious safety benefits to type checking, but with how much Python code Meta has, mypy is not an option - it would take far too much time / memory to provide any value.
The "Memory Safety" of Rust is not that memory leaks are not possible, rather its how memory is accessed. Specifically, using "safe" Rust, it should be impossible to:
1. Access memory that hasn't been explicitly allocated to your program 2. Access memory that was was previously allocated and freed by your program 3. Access memory that could be modified by a separate thread / function of your program, outside of some locking mechanism.
I'm sure there's a more academic definition, and stronger guarantees, but those are the basics.
Now, these guarantees impose restrictions on how code is written, and runtime overhead to enforce. There are many cases where a human can write optimizations and ensure those guarantees in a way the compiler cannot verify. This is why Rust has an "escape" of writing "unsafe Rust", where the compiler does validate those guarantees. Unsafe Rust includes expanded primitives, such as "Box::leak()", that enable writing these optimizations, and may explicitly leak memory without maintaining a reference
If a program is written using purely safe Rust, it should not be possible for a malicious input / request to corrupt internal data structures, read memory that shouldn't be read, or all the other "interesting" things that get highlighted by Heartbleed and other big security vulnerabilities.
Note that I say "should not be possible" - the Rust compiler can and has had bugs that break those memory safety guarantees under certain conditions. They aren't common, but it's unfair to say "Rust is perfect and 100% safe"
I strongly recommend everyone learn Rust, at least to the point where you "grok" the borrow checker and what it's trying to enforce, even if you have no intention with regularly using Rust. After learning Rust, I found the patterns the borrow checker enforces incredibly useful when writing C++, and ensuring I don't make silly memory mistakes that may result in a crash or vulnerability.
Ah that makes sense. For sufficiently small values of N, a hardcoded allowlist isn't a problem.
You're probably right that RSA 4096 "just worked", and some library in their stack doesn't have elliptic curve support. And again, if N is small, the verification performance doesn't matter that much.
Nice find and writeup!
the legitimate ones I’d initially generated still worked
This spooks me. I take this to mean either:
- They are still using the compromised key for validation, meaning if you have access to any old token, you can still mutate that, maybe needing to play around with the issuing times
- They built an allowlist of all permitted tokens, and check that list first. In which case, might as well use random session ids instead of JWTs, and at the same point where the allowlist is being checked, mutate the request to inject a JWT that the backend can use.
Also, kind of curious why the switch to RSA4096 instead of elliptic curves, since they are generally faster / smaller.
+1 to this. I run Ubuntu 22.04 with microk8s. Keep all my yaml files in a local git repo, figured out how to hook up my NAS to provide storage via nfs.
It's definitely gone down a few times, but I've learned a TON tinkering with it. super easy to spin up a new hobby project, a nice web UI for seeing what the heck is going on.
I've completely borked it a couple times and survived one micro pc migration. Can't recommend it more
Do you happen to know where I can read about how ET and Mosh each establish their connections?
I have used Mosh for years and recently heard of ET, but when I tried it I experienced noticeable hangs that I don’t get with Mosh, and I went back.
I heard from several people that “ET is the new Mosh”, but it won’t be for me unless I can figure out/resolve those hangs
The 5 hours doesn’t surprise me.
I was on the jury of a federal fraud trial with 2 defendants with 15 charges, ~30 million in losses.
We were thorough and went through each count separately, including reviewing some of the evidence, and were done in maybe 8 hours spread across 2 days.
We ended up with a mixed verdict: one count not guilty for both, another not guilty for one. I fully believe they were aware and committed fraud for the not guilty counts, but the prosecutor wasn’t able to cross the “reasonable doubt” threshold in our minds for those specific instances.
Only thing we weren’t super careful about was the first requirement for Mail/Wire fraud, which is “Mail and wires” were used.
It was amusing that the prosecutors brought in a bank IT guy to explain that “the internet uses wires”, but not really something we questioned.
I really enjoy watching the judging of her apple pie: https://youtu.be/i0zRSANWj1I
Is there any way to tie an expectation of long term security support with legal protection of the product against competitors/reverse engineers/other parties that manufacturers may not want looking too closely?
I’m not suggesting granting additional protections to manufacturers, but codify an expectation of “if you abandon it, other people can come in and potentially salvage it”
NFS
At home I have a little Intel NUC running ubuntu hooked up to a 4 bay synology NAS.
I’m running several web apps, a git server, Plex, pihole, private CA, and keykloak, all on top of microk8s. It’s overkill, but I appreciated the opportunity to fiddle around and learn K8S without stress of external obligations.
I have two ingresses, one internal and one external facing. The external one is exposed via cloudflare and a micro vm (for multi level subdomains that cloudflare doesn’t support for free).
dyndns is handled by the router. It writes to a pseudorandom hostname, and cloudflare references it by CNAME.
It doesn’t get any significant amount of external traffic, but is good enough for family to use for the web apps + a yearly march madness pool (that can’t be hosted on yahoo/ESPN/etc due to a custom family rule set).
Any plans for OIDC support?
When kids first enter foster care, the state assumes care and tries to work with the parents to resolve whatever issues caused the kids to be removed. During this time, the kid ideally stays with another family member or friend, but with a random foster family if not. The parents remain the legal guardians and have opportunities to see their kids, coordinated by the state.
If reunification is determined to be impossible, the state goes to court to sever parental rights. This determination normally takes a year plus, and usually means the parents have checked out or are no longer trying to resolve the issues. Only once parental rights are severed is the child considered "legally free", and is eligible to be adopted into another family. In the ideal case, this is the family they were staying with before parental rights were severed, but not necessarily.
I haven't looked into the details of this article, but I assume these funds will be used for kids that have had parental rights severed, and were either adopted or "age out" of the foster care system.
Once in foster care, most kids are traumatized. Once parental rights are severed, it is incredibly difficult for parents to "re-adopt" their kid. I sure hope no parents are so short sighted to put their child through hell to reduce the cost of college.
I'm guessing along the lines of:
* Before hunters were corner cutting, the land was more desirable and I could have sold it for $X
* With hunters now corner cutting, the land is less desirable, due to the hunting activity, and can only be sold for $Y
* $X - $Y = $7 million
Zippy does use it, but I think the author was specifically referring to MyRocks
The value of paying Tailscale is
- You don't have to maintain the infra yourself. It is maintained by system experts, vs the necessity to learn such knowledge yourself
- You are going to get features earlier, as Tailscale is the leading implementation, and Headscale is trying to maintain compatibility
- You have a promise of a certain level of support depending on your plan, rather than relying on an open source community with no responsibility to provide support
It feels like Tailscale isn't trying to gatekeep the technology, they are trying to sell all the things that simplify/provide value for people who would like to use the technology.
No, I'm not an overly litigious person.
No clue. I had used it for maybe 10-100 of miles and didn't have any issues before this morning. The car's a bit dirty, maybe something's on the cameras?
Before this morning, I would be in exactly your shoes in terms of "this is pretty cool, I'm going to keep using it"
I have a Model 3, and was excited to get the FSD beta access about a month ago. I don't use it super regularly, but it's neat.
This morning I tried to turn it on, and the car immediately veered left into the oncoming lane on a straight, 2 lane road. Fortunately, there were no other vehicles nearby.
I immediately turned it off in the settings, and have no intention of re-enabling.
I really like this quote, but I can't find any reference to Adam Savage saying it.
Closest I can find is his concept of "First Order Retrievability"
Not <blink> the best HTML tag ever?
You don't need to be spending money on yourself for a fraud conviction.
I was on the jury of a federal fraud case, where the defendants took millions of dollars in customer funds and used it to make bad business decisions and/or placate earlier customers.
It was very clear to us that even though they lived a very simple life (old car, $1,500/month rented house), they wanted to build the biggest company in their industry, and fraudulently used their customer's funds to do it.
Similar to Facebook's Storm initiative: https://www.forbes.com/sites/roberthof/2016/09/11/interview-...
These exercises happen several times a year.
The foundational elements a blockchain provides - namely transparency and ownership of digital assets - are absolutely critical to our future as a society.
I'm not 100% sold, but I'm leaning that way, hence my phrasing of "While the technology is interesting and has some intriguing use cases".
I feel like the "good" use cases aren't particularly sexy however, and thus are in danger of getting lost. Additionally, there's a ton of people that want to throw "the blockchain" at a problem, and end up overcomplicating spaces that have no need for it.
As someone who lost 8 figures in crypto in 2017 ...
You could afford to lose 10+ million without your life being detrimentally impacted (at least I would assume, based on how calm you are about it). Most people can't. Most people can't imagine that amount of money.
I'm not a crypto fan. While the technology is interesting and has some intriguing use cases, it feels like all the big coins far away from actually becoming a legitimate currency, and most of the optimistic posts I read miss that.
Crypto is not stable. I think that's why so much money is flying into it. If the price of bread or milk goes up 10%, people get scared. In crypto, going up or down 10% is called "Wednesday". I'm aware of stablecoins, but the biggest ones (Tether, etc) all seem to A: be centralized, and B: be run by shady groups with whispers they could disappear at any moment. A breaks the promise that crypto is supposed to provide, and B only provides stability at a glance, until the whole house of cards tumbles apart (as it has).
The bigger problem is that crypto is unforgiving. OP's story is all about this. Sure, that's fine for techies who can afford mistakes, and banks or other who might have extreme security procedures, but Mom and Pop on a farm in Iowa are neither of those. When they get a phone call from the "IRS", they are happy to go buy Walmart gift cards and read off the codes, or set up a money transfer. Sometimes that money can be reclaimed, sometimes it can't. With crypto, there is no chance. The financial institutions that exist now are certainly rigged towards the bigger players, but Mom and Pop have a (slim) shot of seeing the money again.
Crypto is a fine gamble for those who can afford it, but I honestly doubt it will ever be an every day currency, because I can't see any concerted effort focused on solving those two problems. People can't afford to not know what everything costs at the grocery store, or that they could lose their entire savings by making a mistake when buying a Christmas gift. I don't think it's a great store of value either long term, because at least traditional stores of value (land, precious metals, commodities, etc) have uses to the entire population - blockchains provide no value to 73 year old grandma.
I don't know about Instagram, I don't really use it, but the FB page was definitely locked, not removed.