TraptedMind, [tantek] and KartikPrabhu joined the channel
#[jgmac1106][chrisaldrich] I have gotten so close on two really popular event plugins to be proper h-events that work with semantic linkbacks
#[jgmac1106]its one vcard hcard I haven't deleted yet.....messes me up every time...if you have time some day you could probably show me what I am doing wrong
#LoqiManaging kindle highlights with Python and GitHub
gRegorLove and [LewisCowles] joined the channel
#[LewisCowles]I don't know how all the write your own are coping. It's been a while since I've written greenfield without a team and It's kicking me places I'd forgotten about.
SpencerDub, [fluffy], [chrisaldrich], [xavierroy], cweiske, jjuran, uniquerockrz, strugee, [KevinMarks], [jeremycherfas], hs0ucy, [jgmac1106], KartikPrabhu, [datashaman] and [Jeff_Hawkins] joined the channel; nickodd and petermolnar left the channel
#[jgmac1106]is this true?: Tunes supports feeds that start with “https://”, but only from eight popular SSL certificate providers. If this feed uses HTTPS, this tests whether it uses a compatible certificate provider.
#[jgmac1106]• This feed uses the SSL certificate authority “*Google Trust Services*”, which is not compatible with iTunes.
#aaronpki could publish it back to the app store on my developer account if that would help [eddie]
garrettw, [Jeff_Hawkins] and [jeremycherfas] joined the channel
#[jeremycherfas]Hey [aaronpk] When Overland sends a trip notice to a micropub, what is the payload? Is is just the entire trip {} blob? I’m thinking of setting up something to receive only that.
#sknebelZegnat: e.g. there's the NIST randomness beacon: https://beacon.nist.gov/home, but I'm fairly sure you can also construct something useful that doesn't need external parties at all to get random numbers
#ZegnatI was thinking if you want to webmention me with the move you are making your pokemon use, something needs to decide whether it hits or not. And neither me or you are trusted enough to decide it ourselves as that would easily allow for cheating.
#ZegnatAlthough I do not know about beacon, are those verifiable random numbers?
#sknebelNIST publishes a sequence of random numbers. so you could say "lets use the NIST beacon broadcast in 5 minutes"
#ZegnatAh, yep, I have looked into that at some point, must have forgotten it was called beacon
#ZegnatThe problem with that one is the wait times I guess? E.g. you do an attack, then we need to wait for the number to see the result of it before I can make my move?
#takev[m]We could do that. Or just ping some sort of service that can do a webmention.
#takev[m]One issue I can think of is hidden information. Part of the strategy comes from both players selecting a move at the same time. So there needs to be a way to hide that information until the turn is executed.
#sknebelone way to "roll dice" with hashes: I publish a hash of some secret data. You say "I attack, random number decides if valid. Here's a random string of my choosing". I combine your string with my secret data, generate a result from that, reply "you lost. Here's my secret data, so you can verify you really lost"
#ZegnatThe service may have a post that is the start signal. Only after receiving a reply from both parties will the service show and update the results
#ZegnatYes. Or really any /unlisted post could work. As long as you only mention the third party you do not really need to protect the page any further than from casual browsing finding it
#aaronpkor maybe there's way to do it with cryptography? can two people publish something that can only be unlocked after both people publish it? heh
#takev[m]Yeah, I'm thinking hashes are the way to go.
#sknebelif you publish a hash it commits you to revealing a matching plaintext later
#ZegnatYes, I can commit to what move I want to make. But that does not solve whether my move will actually hit/miss/be critical. I still need random there.
#Zegnat(As we are specifically talking Pokémon battles.)
#sknebelcombine a seed from you and a seed from your opponent to generate randomness
#sknebelyour seed is committed (because you published a hash of it) but private before you reveal it (so the player going second can't create a seed that gives them the result they want)
#sknebelrevealing it allows the opponent to check you didn't cheat
#ZegnatAah. You would go “I will use data with hash(x) to decide whether your attack hit me.” Then I say “please add y to it”. Then the response is “the original data x + y gives a result if z”
#takev[m]Actually, one issue is that if both players use the same move twice in a row, we'll get the same results both times. So a third piece of information would be good. Maybe turn number?
#takev[m]Er, yeah, my client didn't load your comments.
#ZegnatTurn number is already known by both players, so that does not help
#takev[m]Okay, so both players generate a random hash. When they exchange moves, they also send that hash. Once both are obtained, they combine the two in a PRNG and generate random numbers in the order dictated by speed and priority?
#ZegnatBy the end of the conversation all secrets have been made public so all earlier made claims can be checked by both parties
#takev[m](Obviously, a bot or service could make this smoother, but in theory everything can be done manually)
#ZegnatThe example conversation only discussed hit/miss, but of course multiple random results can be pulled
#takev[m]The algorithm would probably be: For each pokemon, generate 1-N numbers. Assign them by speed and other factors. So, say we have a battle, and I've got a Pikachu and Zegnat has a Eevee. Eevee is faster. We generate 4 numbers, the first is chance to hit for Eevee, second is chance to crit for Eevee, third is chance to hit for Pikachu, fourth is chance to crit.
#sknebel(of course we have the entire social layer of "what does happen if you edit your post and then complain I didn't use the right secret" still. Sprinkle signatures on top? :P)
#ZegnatI guess that means both players first announce their move commits and the hashes of their secrets. Then both announce their secrets. And then the secrets are combined into a PRNG for x rolls? takev[m]
#ZegnatThat might make more sense than my example exchange where both players need to generate rolls
#sknebeltrue, if it's simultanous turns that's more like it
#Zegnatsknebel: surely I then need a third party to sign those again? :P
#Zegnatsknebel: yeah, in Pokémon the moves only resolve once both parties have picked their move.
#takev[m]sknebel: I'm less concerned with cheating. I think this is more of a proof of concept of what is possible. :P
#sknebelZegnat: no, you sign your post. I keep a copy and can show all your (nerdy enough...) friends that you posted that and then claimed you didn't, you cheat :P
#ZegnatSo for every move it will be 2 messages for each player, and then one message from anyone (either one of the players or a helper) with “dice rolls”
#Zegnat1. commit secret and move, 2. reveal secret and move after both players have committed, 3. roll
#takev[m]Okay, so we sign the moves and send the signature to verify that we've committed. Once both players have committed, we can generate hashes and send them to each other at the same time as we send the plaintext post. From there, we can calculate what has happened.
[Jeff_Hawkins] joined the channel
#takev[m]Maybe we send the current status (HP/Effect/Fainted) of our team to each other in order to verify that we've finished, and the next turn can start.
#ZegnatYou would send a hashed move (so it is blind for the other player) and the hash of your secret in the first message. Then the second message is both your move and your secret in the clear. Roll will be based on combining both clearsecrets.
#takev[m]Oh, one other thing. Your team is supposed to be a secretish. Like, they can know what the party is, but not really the items and stats. So perhaps at the start of the battle we send a hash of the party?
#ZegnatSo in that conversation the role of Oak could be anyone really, since it is just the generation of dice rolls
#takev[m]Oh good, that's far simpler than what I had in mind. I was thinking of doubles this entire time.
#takev[m]I think we just need to figure out how to mark this up, and we might be able to give it a spin soon.
#ZegnatAgain, I may have stumbled somewhere, I am super tired, but I *think* that flow is secret enough to work.
#takev[m]I think with good faith actors, and a limited move set, then absolutely.
#takev[m](I'm discounting things that hit a variable number of times, at the moment)
#ZegnatHonestly if you get it to work in plaintext first, you already have it working. You can then even do it cross-network with people who cannot add full mf2 markup anywhere.
#Zegnattakev[m]: one of the dice rolls could decide variable number of times. I do not remember the math on those moves though. Is it an equal distribution?
#ZegnatIf you are as likely to get 1 hit as you are to get 5 hits, you can just take any of the dice and mod 5, or something
#takev[m]It gets complex in that each of those can crit as well. Hence why for the first trial, I'd like to avoid them.
#ZegnatThis is why chess works very well when written out, and games like this get harder because people added rules that are only easy for computers :P
#jackyI'm working on that incidently for $work and doing provider logic is not bad at all
[jgmac1106] joined the channel
#[jgmac1106]gRegorLove yeah just add an input field checkbox to syndicate to https://indieweb.xyz/en/bookclub/ though be cool if kickscondor added a way to sort by p-name or indiebookclub had option for a read post or h-review
#gRegorLove[jgmac1106], re: indiebookclub and syndication, if a micropub endpoint listed indieweb.xyz as a syndicate-to destination, IBC could show that as a checkbox...
#gRegorLovethen if that box was checked, it would send an mp-syndicate-to command to your site. your site would need to handle the actual syndication.
#Loqi[gRegorLove] #15 Add micropub support for syndicate-to
#gRegorLoveThat's standard micropub, I can't claim any creative credit there :)
#[jgmac1106]... I still have to use telegraph. Known (and my Domain even less) do not recognize syndication endpoints
#gRegorLoveDoes anyone list indieweb.xyz as a syndicate-to in micropub?
#gRegorLoveDisregard that, I guess it doesn't matter... simplest implementation is to list "[ ] syndicate to [name]" based on what the mp endpoint returns, don't need a pre-defined list.