I felt that captcha is over when I struggled to solve microsoft rotating planet captcha when I tried to restore account there. It looked like those IQ test questions.
I've been using my own telegram -> ai bot and its very interesting to see what others do with the similar interface.
I have not thought about adding memory log of all current things and feeding it into the context I'll try it out.
Mine is a simple stateless thing that captures messages, voice memos and creates task entries in my org mode file with actionable items. I only feed current date to the context.
Its pretty amusing to see how it sometimes adds a little bit of its own personality to simple tasks, for example if one of my tasks are phrased as a question it will often try to answer the question in the task description.
In addition to using a pager with sqlite3's fantastic text-only output .modes, if the CSV contains hyperlinks I use a custom UNIX filter I wrote that outputs simple, minimalist HTML. Then I view with text-only browser.
For example, this is how I use YouTube. I never use the YouTube website, with its gigantic pages and its "Javascript player", not to mention all of the telemetry. All the search results and information about videos is stored in SQL or CSV, viewed with a text-only sqlite3 output .mode, and optionally converted to simple HTML.
For me, this is better than a "modern" web browser that's too large for me to compile.
I use DuckDB for queries and Visidata for quick inspections.
Between those two, I can work with not only CSVs, but also JSON and Parquet files (which are blazing fast -- CSVs are good for human readability and editability, but they're horrendous for queries).
CLI CSV tools pop up every now and then, but there's too many of them and I feel that my use cases are sufficiently addressed with only 2 tools.
If you use jupyter check out what I'm building with Buckaroo. The aim is to have a table viewer that does the right/obvious thing for most data (formatting, sorting, downsampling large datasets, summary statistics, histograms). all customizable. Supports pandas and polars.
Slashing is part of the protocol and to slash somebody you have to prove it to the protocol that they broke rules of slashing. One of the rules is that you can't create two different blocks in the same slot (block number) i.e. you can't deliberately fork.
There is a designated place in the block of the beacon chain where you can put signatures of the different blocks in the same slot as a proof and nodes will slash validator that produced that signatures (update his balance). Anyone can find these signatures, and block proposers of the new blocks will include them into the chain.
I am one of the maintainers of the Go implementation of Ethereum proof-of-stake, called Prysm (github.com/prysmaticlabs/prysm) and also implemented a "slasher" in Go that can be used to slash malicious validators. Anyone can run a slasher and you don't need to have 32 ETH to do so. As long as your slasher software can prove that a validator committed a slashable offense, you can submit this proof to any full node to proceed with slashing the malicious actor. It is permissionless, global, and we only need a few honest slashers in the world for the system to work correctly
I know about that but thanks for your comment - I’ll clarify what I mean.
It’s just the specifics of how this works - slashing is part of the protocol in the sense that I described: when you are chosen to create a new block and you have proof that someone violated the rules then you include this proof in your proposed block and update balance. Any validator can do it including the smallest of home stakers.
Here we have slashing fields in the block body where you insert your proofs of slashable offense. There are functions with a “slash” in the name that describes precise state transition.
The hard part of slashing is finding these proofs because you have to do more work than necessary to detect slashing and produce proofs - that’s what this software does. It’s more expensive to run a slasher but you need only one and it does not matter who runs it, anyone can run it. The link that you sent says that this slasher broadcasts proofs by default - that way anyone can include it.
On either fork, anyone can submit proof of your equivocation and get you slashed.
There are currently over 400,000 full-fledged validators. The maximum supported number of validators is the number of ETH divided by 32, or about 3.75 million. Scaling is the reason the limit wasn't made even higher, by lowering the ETH per validator.
Your links do not say that there is a designated class of slashers. They just say that it is resource intensive relative to its rewards, so not everyone will want to be one. Anyone who chooses to, however, can be one.
Inactivity leak is an emergency measure to restore liveness when the network stops finalizing blocks. It happens when >33% of validators are offline(WW3 scenario), major bug in widespread implementation, etc.
Your link explains that.
ETH2 is friendly to home stackers - you may lose some profit by being offline sometimes, and in the worst case minor penalties are applied.
EDIT: If you are interested in a much better description of what happens if you are offline, see this:
That's common misinformation. The issue discussed in the review has no connection to what happened, and the narrative that it is the same issue, but it became exploitable after the update is incorrect too. It affects different part of smart-contract logic. Yes, it's pretty close at a glance—because you have zero-by-default problem somewhere close to Merkle tree.
Smaller programs are easier to understand and often you can be sure that they are correct just by looking at them.
Macros allows you to decompose and simplify problems in a way that is impossible with functions. Macros are especially good at removing boilerplate and writing syntactic glue code.
Since macros are programs making sure that they do what you meant them to do you can use similar techniques as you use for other programs: making them small and obvious, testing.
This protocol has some downsides - if you share the link with large adversarial group (e.g. your school) they can brute force your crush name and it’s basically no different then embarrassingly shouting out your crush name in public and it has problems with canonical names.
Instead we can alter it and fix this problems:
Bob will find out his crush’s public key, encrypt "you are my crush" message to it and post it with his own signature to public bulletin (blockchain can be good shelling point). When crush decrypts message they will see proper string, while everyone else will see gibberish.
- to solve problems with key distribution we can use "identity based encryption". it requires trusted third party (e.g. school administrators) but it solves problem for key generation of participants. With identity encryption bob can encrypt message to some canonical identity such as school email. Owner of that email can prove it’s identity to the third party and receive corresponding private key.
I can absolutely guarantee that the school generation would not naturally gravitate to the blockchain as a source for social interaction, since it's not (yet) running social media. I'm assuming TikTok (if it's common to post your own videos and not just consume?) or Snapchat (or whatever came next, that's probably old enough to be uncool by now I guess?)
EDIT: I just saw the suggestion that school administrators be identity providers for a crush-admission website. OK, now I'm _sure_ this must be satire. Well played.
Thanks to other people pointing out, I now see that there is still a fundamental problem — crush can see that you appointed them to be your crush without liking you back, and the solution is that:
1) everobody precommits to your crush set in advance
2) users use mpc protocol that will ensure that your crush reveals if both of you precommitted to each other. (I guess it's similar to "Yao millionaire problem" where two parties calculate "x < y" without revealing x and y. but you calculate "x == y" where x and y is values that you committed to previously and you dont reveal x and y)
Previous variant does not need any blockchain because you can just embed encrypted message to the web page similarly to the original hash variant (really it's the same as sending private message to your crush) but MPC variant probably needs blockhain because that's a perfect way to publicly precommit to something.
Note: there is still the possibility that you can precommit to "x is my crush" without x being your real crash to lure out if you are crush of x.
P.S. I think that's a good illustration of a service that can't be done without crypto and have similar properties.
And then someone will guess that the school administrators password is “StudentsSucks2022” and steal all the private keys they left in their documents folder.
You are correct, but I think "identity based encryption" protocols can run in MPC mode.
Multiple parties will generate distributed secret that will be used to generate private keys. Anyone can easily generate public key for any identity (e.g. email) for the given "key generator" setup using public data of this setup. But for a user to get their private key, they need to assemble secrets by proving their identity to multiple independent parties - you have to hack every one of them to restore the private key of user.
> i'm sure they will come to be used across lots of areas of the web and not just blockchain
Totally agree with this. After working closely with zk I noticed that it boosts your thinking about decentralized protocols in the same way as knowing about signatures or hashes.
Right now infrastructure for doing zk is in “alpha” stage and different proving systems and optimizations are fairly new and not widely used. I believe it will grow bigger It’s very exciting field.
(I worked on zk rollup called zksync but zk rollups are only one of the use cases for zk proofs)
I think that main web3 innovation is more like mindset innovation rather than more common technology innovation that improves performance, efficiency, etc.
Take bitcoin as an example, of course you can make internet money cheaper using centralized service but it would be bad because you have to put a lot of trust into someone’s hands. That culture and mindset grows into whole finance applications where you get defi and property rights where you get nft. Nft is not only digital art you can use nft to represent domain names and this will cut out authority middle man out of the equation - your keys your domain, it’s impossible to do with web2.
Some people dismiss these as important but that’s what people in crypto are concerned with - replacement of unnecessary middleman, gatekeepers, regulations with transparent cryptography and code. If you subscribe to this values than you add new constraints and previous solutions that can be better and faster no longer work.