The example supplied is what I was trying to get at.
An empty dependency array means that the effect runs only once on mount. Same with memos and callbacks -- the value should remain stable. Here's a real world example of how I populate some state based on url query params:
I may end up using a more robust routing solution to keep in sync with query params if I ever want to spend the effort, but this is a naive solution that works alright.
A more simplified, generic example could be:
const [foo, setFoo] = useState();
useEffect(() => {
setFoo("bar");
}, []); // The eslint rule wants setFoo here despite the value being stable
They handed Elison a plea deal waving all charges except criminal tax violations, which she's unlikely to be found guilty of.
However, she was the principal co-conspirator, presiding over a bucket shop that drained 7 billion directly out of the accounts of FTX. As a Stanford finance graduate with trading experience, it's ridiculous to claim she was not aware of the "backdoor" source of Alameda's liquidity and the massive loses they accrued gambling with the money of FTX customers.
> They handed Elison a plea deal waving all charges except criminal tax violations
This is false. She pled guilty to wire fraud, conspiracy to commit wire fraud, conspiracy to commit commodities fraud, conspiracy to commit securities fraud and conspiracy to commit money laundering. The crimes she pled to carry a maximum sentence of 110 years. She was never charged with tax violations. She will receive credit for her testimony but she will certainly do prison time.
Agreed -- I believe the confusion comes from this sentence in the document:
"Moreover, if the defendant fully complies with the understandings specified in this Agreement, the defendant will not be further prosecuted criminally by this Office for any crimes, except for criminal tax violations, related to her participation in [the FTX scandal]."
IIUC, by "further" they mean "in addition to the 7 counts she pled guilty to [and could serve jailtime for]."
It's not false, it's my conjecture. Ellison just spent a total of 14 hours testifying against SBF and, according to court reporters present, denying her own responsibility for planning the fraud and saying she was simply directed to perform various criminal actions she was not aware the full implications of. It's nonsensical to believe she accepted responsibility for anything more in her plea deal, which will be the sole basis of her sentence.
The charges she faces before the plea deal carried a maximum sentence of 110 years and no mandatory minimum. According to several experts (*, she will likely walk away with no jail time or, at most, a few years in a minimum security jail. The prosecution against her was basically stayed - again, my conjecture - as we will find out in a few weeks time.
No, it's just false. She pleaded guilty to 7 charges already. We don't know what she'll be sentenced to for those crimes. That's a completely separate issue. She's already pleaded guilty. The source is the Justice Department.
"CAROLINE ELLISON, 28, is charged with and has pled guilty to two counts of conspiracy to commit wire fraud, each of which carry a maximum sentence of 20 years in prison; two counts of wire fraud, each of which carry a maximum sentence of 20 years in prison; one count of conspiracy to commit commodities fraud, which carries a maximum sentence of five years in prison; one count of conspiracy to commit securities fraud, which carries a maximum sentence of five years in prison; and one count of conspiracy to commit money laundering, which carries a maximum sentence of 20 years in prison.
...
"The statutory maximum sentences are prescribed by Congress and are provided here for informational purposes only, as any sentencing of the defendants will be determined by a judge. "
> They handed Elison a plea deal waving all charges except criminal tax violations, which she's unlikely to be found guilty of.
As someone else said, this is factually false on the charges she pled to.
Mainly, though, I don’t know what you mean by “which she’s unlikely to be found guilty of”. When someone pleads guilty, if the judge accepts the plea, there is no other finding of fact. She already is guilty. That’s what pleading is.
She’s already been found guilty (by virtue of her plea). What hasn’t happened is her sentencing.
They seem to be confusing an agreement not to seek further FTX-related charges except potential tax fraud charges with waiving the existing charges which she instead actually pled guilty to.
Pretty cool, interested to see where you take this. Have you checked out Hypothesis? It's a similar tool thats been around for a long time: https://web.hypothes.is/
Thanks. Ya, I actually spoke with the founder of Hypothesis a while back, and a former contributor who was looking into using Kontxt. Kontxt not only enables rich web collaboration, but it helps atomize the web to re-use key pieces in secondary contexts like a social network or in the future, to create new content. Kontxt takes a social first approach with many ways to share and follow with others.
Ash is an amazing framework for Elixir that comes with functionality very equivalent to DRF/filtersets/etc, admin, as well as automatic JSON APIs, GraphQL APIs, plus works great behind LiveView. The maintainer is extremely active and is about to release a much improved website for getting started and learning. I highly suggest joining the discord if you are looking for Django for Elixir.
Hey congrats, the product looks great! Love to see the rise of e2ee tools.
Why did you all decide to go with Storj, a fairly centralized distributed storage aggregator, rather than a decentralized storage network like Filecoin or Sia/Skynet?
Who pays for the storage on Storj? For a tool to be decentralized, the user needs a means to pay a node directly and the ability to seamlessly move between providers, ie interchangeable and zero lock-in. Does Storj allow crypto payments and this type of mobility?
Also noticed the app runs on Firebase/Google, are there plans to move away from this?
Reliability, performance, and a scalable infrastructure were strong selling points of Storj for us, and hence, we decided to go with them to provide a more seamless experience in terms of data upload and fetch. We also use Filecoin for immutability of user data, and as another layer of global redundancy.
Currently, we pay for storage/egress to Storj. Users can pay using dollars/crypto on our platform and we convert it to relevant Storj tokens to pay for storage. It is not automated yet, but yes we plan to automate it soon. Also, Storj does accept Storj tokens as payments.
About interchangeability, we plan to provide the migration functionality on our end to users.
We started with Firebase/Google because it was easy to setup. However, our team has been experimenting with different blockchains to sync the different file-ids and file-hashes. This would provide even more dApp developers to develop apps on top of Slik. We have a potential fit, and expect that to be integrated in H1'2022.
As many other comments suggest, I think it would be great to provide clear documentation to users that they can:
1. Run the entire app themselves, with their own chain/storage nodes etc - its the only way to really guarantee/prove the software is decentralized.
2. Access your data from both any centralized providers (such as yourself) or a local instance, ideally its so transparent you can literally select a different gateway in the app and keep working all within 5 seconds.
This is the bare minimum I would personally require before adopting a "decentralized" software tool.
Looks like you all are taking an incremental approach and not quite there, its a tough problem to solve but I wish you luck!
1. Users pay for their own storage, as directly as possible, otherwise they are not in control.
2. Any centralized APIs are fully interchangeable, ideally you can literally select a different gateway in the app, and keep working all within 5 seconds.
Yep I agree, among other things, Filecoin's ridiculous minimum specs definitely reduce the network's decentralization - really not a fan of this.
With Storj I cannot say I have run a node but the first (required) step is literally registering an account and providing all your personal details on the Storj website, if there is an advanced way around this, its not easy to find in the documentation.
Do services like Facebook Messenger or Twitter allow you to totally delete/redact messages, or is it just hiding the data from the user's view on one side?
I cringe every time a project uses the name "Skynet". First, it's overused. Second, it's literally the name of the AI project that went rogue and tried to kill all the humans in the Terminator movie universe. Not exactly the best association. Just find another name.
Truly remarkable result from the Sia core team after 5+ years of work!
It will be really interesting to see how the whole JAMStack "static is the new dynamic" movement (NextJS, Gatsby), and the immutable deploy URL pattern can benefit from being built on top of something like this![1]
useEffect(() => { doSomething(someState) }, [otherState])