Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Oct 18 22:18
    bioshazard edited #1019
  • Oct 18 22:17
    bioshazard edited #1019
  • Oct 18 22:09
    bioshazard commented #935
  • Oct 18 22:09
    bioshazard commented #935
  • Oct 18 22:08
    bioshazard opened #1019
  • Oct 18 17:29
    capitalistdog commented #1017
  • Oct 18 17:28
    capitalistdog closed #1017
  • Oct 18 17:28
    capitalistdog commented #1017
  • Oct 17 08:28
    amark commented #1015
  • Oct 17 07:28
    amark closed #1018
  • Oct 17 07:28
    amark commented #1018
  • Oct 16 17:22
    kunaimaster opened #1018
  • Oct 16 17:21
    yisiliu commented #1015
  • Oct 16 17:08
    capitalistdog commented #1017
  • Oct 16 17:05
    danlugo92 commented #1017
  • Oct 16 16:28
    capitalistdog commented #1017
  • Oct 16 16:25
    amark commented #1017
  • Oct 16 16:25
    capitalistdog edited #1017
  • Oct 16 16:24
    capitalistdog opened #1017
  • Oct 16 16:01
    amark commented #1015
Jacob
@jacobpdq
I'm asking because OWL, N3, have these kinds of protocols embedded in their resource locators.
Jacob
@jacobpdq
could it be
wss://gunserver.com/#identifier, 'gun'
(protocol)
such as in var exampleSocket = new WebSocket("wss://www.example.com/socketserver", "protocolOne"
i.e. if I wanted to declare a triple, or some kind of RDF store... what would I put in there as the uri or identifier? @Dletta
Mark Nadal
@amark
@jacobpdq hiii :) may want to try discord now http://chat.gun.eco , I've always been anti-domain/protocol/etc. identifiers, as the only usefully meaningful thing that can be self-enforced is cryptographic identifiers, next up I do think it may be ok for schema identifiers to be embedded into it... which is kinda what a protocol is doing, but I think these should be optional/flexible/not-rigid. Finally, you'd probably want to do something like gun://soul never a domain or specific server, as the soul is the lookup for it, the servers shouldn't matter at the end of day.
munzir
@munzx
Hi! I have got to test gun about a year ago, and I am back again and saw great progress but again am not sure if it works for me as I didn't find any answer to a simple question, how cam I make sure that my db will only hold the data I want e.g. deleted items will be permanently removed
munzir
@munzx
Sorry if you found my message rude
Anyway thanks for efforts
*the
Ender Minyard
@genderev

Okay, I think I have a really simple question. How do you access the number of keys for a certain path?

I have function gun.get("genderev").map().on(function(k,v){...} }) and it returns two defined keys. How do I write a function to access the number of defined keys? I've spent a good amount of time trying to figure this out alone because it seems so simple. I had problems with async and sync mixups when I tried to use a simple array.

Mark Nadal
@amark
@munzx hmm, https://gun.eco/docs/Delete still probably represents the current "status" of things. Altho we did just add https://gun.eco/docs/Forget which may be useful as a feature, but may not address technical concerns?
@genderev what do you mean the number of defined keys? Like {a: 'foo', b: 'bar'} has 2? .get('node').on(x => console.log(Object.keys(x).length))?
gunchatbridge
@gunchatbridge
[D] jabis: ping
Jabis Sevon
@jabis
test
Mark Nadal
@amark
bridge.
gunchatbridge
@gunchatbridge
[D] marknadal: online.
[D] marknadal: 😄 🙂 ❤️
[D] jabis: <@!178314946201780224> there's some problems with discord lib, and gun had died fantastically
[D] vegard: <@!178314946201780224> I'll answer any questions about the subscribe method or if anyone has questions about Svelte. subscribe() uses stable APIs apart from Gun.node.soul(), getting the key/soul of the data and of course the isMap check. But I guess the latter won't ever change...
[D] marknadal: <@!648558515463651338> oh my! line 1168... what version? soul should definitely be string, not undefined! (oo? <@!636489182214357002> ?)
[D] cywalker: Hi <@!178314946201780224> & all,
[D] cywalker: so .soul() .... should we carry on using it or???
[D] cywalker: or go back to ._# thingy
[D] marknadal: Everybody!
I had an incredible day of extremely high profile meetings today.
Yes, I'm sure not as exciting as getting code done :P
But if they keep going well next couple of weeks, it could be big! Or... fail 😛 you'll know.
I promised I'd resume coding beginning of August, and I actually made some great progress until I hit needing to update the ack system to handle put that get split up into smaller writes. I have a design for it from months ago now, but always tricky if right to implement. Trying to still tackle that while I'm also doing the meetings.
[D] cywalker: 1 other quick question on souls as well... is there any chance of a soul having ~ as last character?
gunchatbridge
@gunchatbridge
[D] jabis: <@!178314946201780224> fbcb369 HEAD@{0}: clone: from https://github.com/amark/gun.git
[D] marknadal: <@!139291366869041153> BTW my PANIC test smoothly streams 10K chat messages now 😛 to keep up with your apps! Tho this new version not released yet, gotta ^ everything.
[D] marknadal: <@!717954438756565024> I'd encourage ._# so you don't have to use the shim.
[D] jabis: I don't really upkeep the codebase, just host the bot and have a looksie every now and then 🙂
[D] marknadal: <@!717954438756565024> a soul could be anything, but SEA shouldn't encode ~ at end.
[D] cywalker: lol... since I'd got into gun I was changing what I'd done ages ago from _# to .soul()!
[D] marknadal: sowwy lol
[D] jabis: version seems to be 0.2020.301 according to pm2 metadata
[D] vegard: <@!178314946201780224> Cool, great work!
[D] marknadal: <@!717954438756565024> just keep code as is then
[D] cywalker: <@!178314946201780224> all good! cheers
gunchatbridge
@gunchatbridge
[D] marknadal: that'll be a good reason for me to update the shim over time too, when I finally allow for non-JSON graphs, for those, how it'll be structured will be slightly different and might as well have node.soul( work for all of them.
[D] marknadal: <@!648558515463651338> ok I just checked, yes I added a check for this on current version so it won't crash there anymore.
Actually, maybe you're a good person to bounce my split-ack thoughts against.
gunchatbridge
@gunchatbridge
[D] marknadal: The gist is I keep wanting to switch everything to radix trees internally, but that'd cause breaking changes so I'm trying to save that for later - I'm tackling enough in the CPU scheduler.
[D] marknadal: Tho I'm also terrified the CPU scheduler is just gonna "load balance" heavy work over time, and that'll blow out RAM even more than current.
gunchatbridge
@gunchatbridge
[D] marknadal: I can write my own RAM swapper too (probably inevitable with NodeJS heap limits) but I'd super rather not, and that'd take super long as well. (The behavior is trivial, but rewriting most functions to use memory-serializable scoped functions would be ugly - plus also, don't want the serializing swap to take up much CPU time either! So at some point, I guess a peer has to admit defeat and should just error back "I'm busy right now" to reduce/drop load until capacity available)
[D] marknadal: anyways, the ack system
[D] marknadal: A <-> B <-> C
[D] marknadal: imagine A is old version, B is new version. A sends a 10K record table as a single .put but B will split this up into separate smalle rmessage chunks.
[D] marknadal: this creates a bunch of smaller acks.
[D] marknadal: that need to be aggregated for a sending peer to receive and know the whole data was saved properly.
[D] marknadal: new acks back to old version actually will fire old version too early, but I'm willing to accept that error margin cause most sending peers are browsers (humans) and they'll get updated to new version the fastest.
[D] marknadal: The thing that is annoying me is
gunchatbridge
@gunchatbridge
[D] marknadal: aggregating the acks without using a radix... and I might anyways, since technically addin ga radix there won't break anything
[D] marknadal: that way I can do something like, original message ID is foo and then the new message IDs for it, but chunked, are foo-a foo-b etc. or so
[D] marknadal: for new peers I can just listen on foo-* to aggregate ack listens