jbenet changed the topic of #ipfs to: IPFS - InterPlanetary File System - https://github.com/jbenet/ipfs -- channel logged at https://botbot.me/freenode/ipfs/ -- code of conduct at https://github.com/ipfs/community/blob/master/code-of-conduct.md -- sprint at https://github.com/ipfs/pm/issues/7
patcon has joined #ipfs
Wallacoloo has joined #ipfs
patcon has quit [Ping timeout: 250 seconds]
williamcotton has quit [Ping timeout: 272 seconds]
Wallacoloo has quit [Read error: Connection reset by peer]
Wallacoloo1 has joined #ipfs
<whyrusleeping> not dead!
<jbenet> whyrusleeping: \o/ yay. i was starting to wonder.
Wallacoloo1 has quit [Quit: Leaving.]
timgws has joined #ipfs
<ipfsbot> [go-ipfs] jbenet deleted gpi-1914a2690fb656b94d8d52cb378cc66d07a1e7aa at 1914a26: http://git.io/vU5wx
<ipfsbot> [go-ipfs] jbenet deleted gpi-ff0d236980e7d7cbb8cb3b4f2779ba439be17ff5 at ff0d236: http://git.io/vU5rk
bengo has quit [Quit: Computer has gone to sleep.]
<ipfsbot> [go-ipfs] jbenet created gatesvp-squashed (+1 new commit): http://git.io/vU5rN
<ipfsbot> go-ipfs/gatesvp-squashed 759d3c1 gatesvp: Implement support for .ipfsignore files...
bengo has joined #ipfs
bengo has quit [Client Quit]
bengo has joined #ipfs
wking has quit [Read error: Connection reset by peer]
wking has joined #ipfs
bengo has quit [Client Quit]
* jbenet hey gatesvp -- this is looking very good. :)
<whyrusleeping> anyone at Google Seattle right now?
anshukla has joined #ipfs
lgierth has quit [Quit: Ex-Chat]
tarx has joined #ipfs
Wallacoloo has joined #ipfs
tarx has quit [Ping timeout: 246 seconds]
<whyrusleeping> free thai food and beer
<whyrusleeping> you can get me to show up anywhere for that
bengo has joined #ipfs
anshukla has quit [Remote host closed the connection]
bengo has quit [Client Quit]
* zignig opens the frige as sees cold beer.
<zignig> .au is a long walk. ;)
RzR has quit [Excess Flood]
<whyrusleeping> zignig: but if you travel by ostrich it should be pretty quick, no?
RzR has joined #ipfs
<jbenet> whyrusleeping: PTAL: https://github.com/jbenet/git-push-each
<ipfsbot> [go-ipfs] jbenet pushed 2 new commits to master: http://git.io/vU5Qf
<ipfsbot> go-ipfs/master 26ba3e1 Tim Groeneveld: Issue #873. Thought I might do a small change first to get my feet wet.
<ipfsbot> go-ipfs/master 88be96b Juan Batiz-Benet: Merge pull request #1229 from timgws/tiny-doc-update...
ehmry has joined #ipfs
<whyrusleeping> jbenet: it makes my github feed look ugly :(
<jbenet> whyrusleeping ?
<timgws> You rang!
<whyrusleeping> jbenet: i see like, 20 messages on my github feed saying "jbenet push branch blahblahblhablah"
<jbenet> timgws: bot did o/
<timgws> jbenet, I am looking at some issues with fuse on OS X when doing a ls -R on a directory that has not been entered before
<jbenet> o/
<whyrusleeping> yeah, i like the result :)
<jbenet> timgws: oh it's probably just slow-- we need to merge #1218 ?
<jbenet> timgws: do you see something going wrong? (or is it just hanging?)
<timgws> seems like something in fuse hangs whatever application (in my case either Terminal or iTerm) is performing the action
<jbenet> oh... that's not so hot.
ehmry has quit [Ping timeout: 265 seconds]
<timgws> jbenet, it seems like the current fuse code is not threaded...
inconshreveable has quit [Read error: Connection reset by peer]
<whyrusleeping> timgws: are you on OSX?
<jbenet> timgws bug whyrusleeping about it -- he's the maintainer of that part
<timgws> whyrusleeping, yeah
inconshreveable has joined #ipfs
<whyrusleeping> yeah.... i very much dislike OSX fuse
<whyrusleeping> im pretty sure we disabled the async tests for fuse in OSX
<timgws> so it's a darwin bug, then?
<whyrusleeping> i think its oxsfuse
<whyrusleeping> its a different program than the linux one
<timgws> yeah, I understand that
<jbenet> well-- osx fuse works for some systems. not that we like it, but we're probably using it "not like it wants to be"
<jbenet> meaning, it is possible to get osx fuse to work and not be awful.
<jbenet> all the time, at least.
<whyrusleeping> Tv`: thoughts?
<timgws> most of the apis should be the same on OS X fuse & Linux fuse, though. So if it works on Linux it "should" work fine on OS X fuse with a few modifications
<timgws> I use the word "should" very lightly, though.
<whyrusleeping> timgws: do you have a repro for what youre seeing?
<timgws> not yet. I was going to spend the weekend looking at it.
<whyrusleeping> okay, cool
<timgws> getting into Go & OS X kernel internals... what could possibly go wrong XD
<whyrusleeping> timgws: you could die
<whyrusleeping> but thats unlikely
<jbenet> timgws: OpenNIC is a good idea :)
<timgws> agreed.
<timgws> I wrote some registrar software for tlds... whois, epp code etc.:)
<whyrusleeping> at a javascript meetup, theyre talking about how the future of webapps is with entirely clientside javascript
ehmry has joined #ipfs
<jbenet> timgws: why do all registrars suck?
<jbenet> i've yet to see one whose UI isn't a nightmare.
<headbite> 77mb of dog photos. (aka ripped wordpress site) http://gateway.headbite.com/ipfs/QmRU4VMrWTydkyjG9MSzxzuzoHNZ9iGsDjGm2CADbzWRMS
<jbenet> headbite that's interesting
<jbenet> headbite we want to make a wordpress -> ipfs thing.
<jbenet> like a webapp that publishes to ipfs trivially.
<headbite> so that rip breaks pretty links... so everything is like ?=p=489
<headbite> but at least the menus are working
<doublec> headbite: do you mirror using wget for that?
<headbite> wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --no-cache http://www.awesomebrowny.com/?ModPagespeed=off
<headbite> that's what I used
<doublec> headbite: I used similar for mirroring to freenet: wget --mirror --convert-links --adjust-extension --page-requisites -np -nH -N
<headbite> well I feel a little better.... pretty close options. :)
<doublec> it's a great tool!
<headbite> yeah... I started with just screenshooting a few sites..... thinking.... how can I get some easy content onto ipfs....
<headbite> then my girlfriend was like... that's not even clickable
<doublec> I have a simple image heavy site I should try putting on ipfs and see what it goes like
<whyrusleeping> jbenet: any more discussion on 1218?
<headbite> doublec: yeah, after the wget I just "ipfs add -r ." and it seems to be mostly working... the youtube links won't work in offline mode but the other videos that are actually on the site made it.
<whyrusleeping> i would love to have the electron shell app going
<whyrusleeping> would make it a lot easier to point people at ipfs for installing
ehmry has quit [Quit: Leaving]
<whyrusleeping> why does bootstrapping take so long...
<whyrusleeping> im bootstrapping local peers to other local peers
<whyrusleeping> and it takes like, five seconds
EricJ2190 has quit [Ping timeout: 240 seconds]
<doublec> headbite: I uploaded my image one QmWom8ULsNCbtMgNMk82aJT7G6gU55mSGxVaC2i1fuyX3s
<whyrusleeping> doublec: is your daemon online?
<doublec> whyrusleeping: yes
<doublec> whyrusleeping: I'm loading it from another node to test
<headbite> doublec: it's loading pretty quick
<whyrusleeping> ah, got it
<whyrusleeping> my daemon may have been the offline one >.>
<doublec> For freenet I have a modified version of this site that has a hidden div to load the full size images in the background with no-display so thumbnail viewers help keep the full images in freenet
<doublec> ipfs works very well for this site. I'm impressed.
<whyrusleeping> :D
<Tv`> whyrusleeping: sorry haven't kept an eye on the channel today, have been fighting UEFI etc
<Tv`> whyrusleeping: osxfuse should survive a typical ls -lR, for sure
<Tv`> i needed to hammer it with writes to make it get stuck
<Tv`> oh actually i got that busy loop with a loop on open+read+close
<Tv`> it's survived my casual use just fine; that was a benchmark
<whyrusleeping> interesting... okay
tilgovi has quit [Ping timeout: 256 seconds]
<timgws> jbenet, dynadot is OK
<Tv`> you'll get a Terminal etc hanging by e.g. as part of serving a Read request you wait for network..
<whyrusleeping> yeah, thats to be expected
<timgws> maybe that was the cause of my hanging, then?
<timgws> as I described earlier, it happened while doing an `ls -R` on a new hash that I hadn't cached yet.
pfraze has joined #ipfs
<jbenet> but-- timgws did the _whole_ terminal hang?
<jbenet> or just that one process?
<timgws> Yeah, the whole terminal
<timgws> it was extremely strange, I had never seen it happen before.
<timgws> I spend a lot of time in my terminal :P
<jbenet> doublec: now that's a benchmark site ;)
<jbenet> doublec: no thumbnails? hah
<doublec> jbenet: the full image version is a good test for browsers too
<timgws> Tv`, jbenet, Firefox is hanging with /ipfs/QmWom8ULsNCbtMgNMk82aJT7G6gU55mSGxVaC2i1fuyX3s/index.html, too
moopheous has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<Tv`> -> not a fuse problem
<jbenet> timgws those thumbnails or full?
<doublec> I get Path Resolve error: context deadline exceeded gateway_handler.go:436 occasionally. Is that just a timeout?
<jbenet> doublec: yeah-- need to play with those.
<doublec> jbenet: that was on a node behind a NAT that won't allow incoming connections so probably related
<jbenet> yeah maybe
<headbite> I managed to get both versions of it to load
<headbite> not on my little chromebook... and to switch to the full desktop
therealplato1 has quit [Read error: Connection reset by peer]
therealplato has joined #ipfs
<timgws> jbenet, not sure, went into terminal, cd'ed into the directory and typed 'open index.html
<timgws> thumbnails, firefox is alive again !
inconshr_ has joined #ipfs
inconshreveable has quit [Ping timeout: 265 seconds]
<timgws> tim@roflcopter ~ $ cd /ipfs/QmWom8ULsNCbtMgNMk82aJT7G6gU55mSGxVaC2i1fuyX3s
<timgws> bash: cd: /ipfs/QmWom8ULsNCbtMgNMk82aJT7G6gU55mSGxVaC2i1fuyX3s: Device not configured
<timgws> ouch :<
<timgws> is there a way I can make mount not daemonise?
<jbenet> timgws: no, have to be running a program to mount-- that's how fuse works
<krl> jbenet: i think we need to think about covering the spectrum blog - tumblr - twitter
<krl> macro-micro "blogging"
<jbenet> krl yeah
<timgws> jbenet, http://libguestfs.org/guestmount.1.html guest mount has a "no-fork" command line option.
<timgws> also, why does find . not work when inside a ipfs-path
<timgws> Tv`, https://gist.github.com/timgws/9263c789b0bcd104539a if you are interested
<Tv`> osxfuse? it'll kick out a fs that's too slow
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<timgws> right! maybe it would be a viable option to pass a setting along to osxfuse that gives it a hint that it's a slow fs?
<timgws> but seeing the issues I am having with programs like Firefox & Finder, it might be done by design... slow directory traversal is killing these apps.
<doublec> timgws: are you loading it in firefox using a file:// URL to the fuse mounted directory?
<timgws> yeah
<timgws> I know that there is the gateway/http server
<doublec> timgws: I get timeouts even with the http server - maybe the same is happening with fuse.
<timgws> it just saddens me that fuse doesn't "just work"
<doublec> "context deadline exceeded" for example.
<doublec> timgws: do you see errors shown in the 'ipfs daemon' output?
<timgws> nothing
<jbenet> timgws: yeah-- it saddens me too-- we're working on it and improving, but fuse is complicated. also-- do note this is waaay non-optimized code atm
<jbenet> so there's a lot of room to go there-- as ipfs gets faster, fuse will behave better
<timgws>
<jbenet>
<timgws> I think an intermediate solution might be just to count how long since the last request was made, and then return back an incomplete list if the call has been open for too long maybe?
<timgws> reading that sentence back in my head, I realise it makes not mich sense.
<jbenet> timgws: no-- that violates correctness.
<jbenet> what if `ls` randomly returned subsets of the real thing?
<jbenet> would not be fun.
<doublec> yeah, that would cause issues for apps that want to know when everything is there. Imagine running 'tar' or 'zip' to archive a directory but it has missing stuff due to the timeout.
<timgws> OK, what about returning EBUSY or ENETRESET ?
<jbenet> not sure -- whyrusleeping Tv` o/
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Tv`> timgws: ain't no such thing as slow filesystem on osx. 1 minute max.
<Tv`> ETIMEDOUT or such
pfraze has quit [Remote host closed the connection]
inconshr_ has quit [Ping timeout: 265 seconds]
bengo has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Tv`> what weirds me out is that dust has an interrupt mechanism but osxfuse doesn't use it
<Tv`> *fuse
flugsio has quit [Quit: new kernels]
flugsio has joined #ipfs
sharky has quit [Ping timeout: 255 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
sharky has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> concurrency is hard
<jbenet> Yeahhhh
<whyrusleeping> i think i just found another bitswap bug that was a result of incorrect channel buffering
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
ei-slackbot-ipfs has quit [Remote host closed the connection]
ei-slackbot-ipfs has joined #ipfs
anshukla has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
Zombywuf has quit [Remote host closed the connection]
<jbenet> mmmmm
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
bengo has quit [Quit: Textual IRC Client: www.textualapp.com]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> dammit, that buffer thing wasnt the fix, it just took me longer than usual to repro the issue
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
Tv` has quit [Quit: Connection closed for inactivity]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
anshukla_ has joined #ipfs
anshukla has quit [Ping timeout: 244 seconds]
mildred has quit [Quit: Leaving.]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
anshukla_ has quit [Read error: Connection reset by peer]
anshukla has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
Wallacoloo has quit [Ping timeout: 256 seconds]
atomotic has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
atomotic has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
dfdf has quit [Read error: Connection reset by peer]
chrisr_ has joined #ipfs
uydxhc has joined #ipfs
flugsio has quit [Quit: WeeChat 1.1.1]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshreveable has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshreveable has quit [Remote host closed the connection]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
chrisr_ has quit [Ping timeout: 240 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
uydxhc has quit [Quit: Leaving]
iyrsx has joined #ipfs
lgierth has joined #ipfs
besenwesen has quit [Quit: ☠]
besenwesen has joined #ipfs
besenwesen has quit [Changing host]
besenwesen has joined #ipfs
besenwesen has quit [Client Quit]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
chrisr_ has joined #ipfs
besenwesen has joined #ipfs
besenwesen has joined #ipfs
besenwesen has quit [Client Quit]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
hellertime has joined #ipfs
besenwesen has joined #ipfs
besenwesen has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
bmcorser has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
ehmry has joined #ipfs
chrisr_ has quit [Ping timeout: 264 seconds]
Wallacoloo has joined #ipfs
lgierth has quit [Quit: Ex-Chat]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
besenwesen has quit [Quit: ☠]
ehmry has quit [Quit: Leaving]
besenwesen has joined #ipfs
besenwesen has quit [Changing host]
besenwesen has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
williamcotton has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
iyrsx has quit [Quit: Leaving]
Wallacoloo has quit [Quit: Leaving.]
iyrsx has joined #ipfs
mildred has quit [Quit: Leaving.]
chrisr_ has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has joined #ipfs
pfraze has quit [Remote host closed the connection]
neoteo has quit [Quit: Lingo: www.lingoirc.com]
williamcotton has quit [Ping timeout: 264 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
therealplato has quit [Ping timeout: 240 seconds]
therealplato has joined #ipfs
marklock has joined #ipfs
chrisr_ has quit [Ping timeout: 276 seconds]
besenwesen has quit [Ping timeout: 252 seconds]
therealplato1 has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
therealplato has quit [Ping timeout: 245 seconds]
besenwesen has joined #ipfs
besenwesen has joined #ipfs
lgierth has joined #ipfs
chrisr_ has joined #ipfs
RzR has quit [Excess Flood]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
RzR has joined #ipfs
williamcotton has joined #ipfs
ehmry has joined #ipfs
pfraze has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshreveable has joined #ipfs
marklock has quit [Ping timeout: 246 seconds]
inconshreveable has quit [Remote host closed the connection]
englishm has quit [Quit: ZNC - http://znc.in]
Tv` has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshreveable has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
vijayee has joined #ipfs
vijayee has quit [Client Quit]
cjdmax has joined #ipfs
pfraze has quit [Remote host closed the connection]
bedeho2 has joined #ipfs
bedeho has quit [Ping timeout: 246 seconds]
pfraze has joined #ipfs
ajmorris has joined #ipfs
cjdmax has quit [Read error: Connection reset by peer]
notduncansmith has joined #ipfs
<ajmorris> ! special
<ajmorris> *.foreground: #e8dfd6
<ajmorris> *.background: #021b21
<ajmorris> *.cursorColor: #e8dfd6
<ajmorris> ! black
<ajmorris> *.color0: #032c36
<ajmorris> *.color8: #065f73
notduncansmith has quit [Read error: Connection reset by peer]
<ajmorris> ! red
<ajmorris> *.color1: #c2454e
<ajmorris> *.color9: #ef5847
<ajmorris> ! green
<ajmorris> *.color2: #7cbf9e
<ajmorris> *.color10: #a2d9b1
<ajmorris> ! yellow
cjdmax has joined #ipfs
<ajmorris> *.color3: #8a7a63
<ajmorris> *.color11: #beb090
<ajmorris> ! blue
<ajmorris> *.color4: #2e3340
<ajmorris> *.color12: #61778d
<ajmorris> ! magenta
<ajmorris> *.color5: #ff5879
<ajmorris> *.color13: #ff99a1
<ajmorris> ! cyan
<ajmorris> *.color6: #44b5b1
<ajmorris> *.color14: #9ed9d8
<ajmorris> ! white
<ajmorris> *.color7: #f2f1b9
<ajmorris> *.color15: #f6f6c9
<ajmorris> oops sorry
ajmorris has quit [Client Quit]
chrisr_ has left #ipfs [#ipfs]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
therealplato1 has quit [Read error: Connection reset by peer]
therealplato has joined #ipfs
neoteo has joined #ipfs
flugsio has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
iyrsx has quit [Quit: Leaving]
iyrsx has joined #ipfs
anshukla has quit [Ping timeout: 244 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has quit [Remote host closed the connection]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has joined #ipfs
tilgovi has joined #ipfs
<whyrusleeping> huh, looks like a urxvt conf
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<krl> whyrusleeping: jbenet: my proposal for append-only log structures: https://github.com/krl/notes/wiki
<krl> oh, it's actually not right, i'll have to fix the last picture
<whyrusleeping> krl: i dont quite follow where the root is in each picture
<whyrusleeping> and which nodes are children of which
<krl> corrected
<krl> always top-to-bottom
yewxcr76y has joined #ipfs
<krl> this is a general 2-3 finger tree for comparison: http://staff.city.ac.uk/~ross/papers/FingerTree/example-tree.svg
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
iyrsx has quit [Ping timeout: 256 seconds]
<krl> so the root is the 'spine' going down the middle
therealplato has quit [Read error: Connection reset by peer]
<whyrusleeping> gotcha
<whyrusleeping> looks pretty sweet, what are you planning on using it for?
hellertime1 has joined #ipfs
hellertime has quit [Read error: Connection reset by peer]
yewxcr76y has quit [Read error: Connection reset by peer]
lgierth has quit [Quit: Ex-Chat]
<krl> whyrusleeping: for ssb-like feeds
<krl> but with constant time access to the beginning, even if you have not synced the feed before
<krl> has some nice properties, you can for example prove/check that two messages are in the same feed, if you only got the root hash
<whyrusleeping> ooooooh, okay
<whyrusleeping> thats pretty sweet
<krl> and yes, this is also kind of a direction i want to push ipns in
<krl> either directly, or as something tightly integrated with it
<whyrusleeping> as far as a chain of entries?
<krl> yeah, so instead of having the hash of the last message in your update, you have the hash of _all prior messages_
<wking> krl: I don't think that's specific to the ipns entries in the DHT. Folks can chose to point those at a commit object if they want (once we get commit objects)
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<krl> wking: yes, i just hope it will not just be totally ephemeral
<krl> like, i don't like the idea of ipns history getting lost
<wking> if you want to save a particular signed entry, just pin it (once we get signature objects... ;) https://github.com/ipfs/go-ipfs/issues/1045#issuecomment-94200028
<krl> say, you have a long history of publishing a ipns entry pointing at a commit log, then you change history to hide an exploit or whatever, and just point your ipns at the newly redacted commit object
<krl> at this point i'd want ipns to cry bloody murder
<wking> I don't think the DHT should operate on that level
<krl> no, the dht can contain pointers just fine
<krl> but when you update your local name, a name you knew before, ipns should verify that it all checks out
<wking> ?
<krl> sorry if i'm unclear
therealplato has joined #ipfs
<wking> maybe we're talking about different things when we say "IPNS" ;). I just mean the DHT references stored with the ipns/<pubkey-hash> entries.
<krl> the local ipns resolver could keep track of the pointers to the commit objects, and warn you if it has been redacted
hsvcr has joined #ipfs
<wking> but maybe the reference doesn't point at a commit object
<krl> then you should get a notification of this as well, imo
<wking> or maybe it points at a commit object based on your finger tree instead of a commit object that's more like Git's linked-graph
<krl> and reduce your trust accordingly
<wking> I think trust is more about trusting the signer who's pushing links to the DHT, and less about properties of the links they're pushing
<krl> yes, but you also want to reduce the amount of damage someone you trusted mistakenly can do
compleatang has joined #ipfs
<wking> what sort of damage are you worried about?
mildred has joined #ipfs
<wking> if you don't trust the publisher, just stick too immutable IPFS references and audit all of those before linking it into your tree.
<whyrusleeping> anyone here familiar-ish with the npm codebase?
<wking> but I doubt I'll ever have time to do that^ ;)
<wking> krl: I don't see how "this is a valid commit based on a previously known commit" help protect against a malicious publisher
hsvcr has quit [Read error: Connection reset by peer]
<krl> wking: it helps against showing you a fake history
<krl> this could of course be manually checked, but when you can automate it i think you should
<wking> why not just put your exploit into a valid history?
<wking> when you pull the new reference and see that the history has been advanced, you'll look through the diff to check for exploits (or however you convince yourself that the update is safe)
<wking> but you can do that with any object you have a reference to. It doesn't have to be a commit
<krl> wking: i'll have to think more about how to express exactly what i'm worried about.
<wking> anyhow, I think the not-a-fast-forward check is useful in the context of an IPFS-based version control framework, just like Git checks for this sort of thing when you do a non-ff pull. But I don't see how it's a good fit at the generic DHT-reference level or a way to protect against malicious publishers.
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<krl> maybe a special type / software setup for append-only logs would suffice
xeb_ has joined #ipfs
hellertime1 has quit [Read error: Connection reset by peer]
xeb_ has quit [Read error: Connection reset by peer]
hellertime has joined #ipfs
<krl> anyway, keeping a local log of prior names you've seen should be desirable
hsvcr has joined #ipfs
pfraze has quit [Remote host closed the connection]
pfraze has joined #ipfs
<jbenet> krl: re "append-only log structures" -- that's really good. (also like the diagrams, what tool did you use?)
<krl> jbenet: node-cairo
<krl> and lots of manual twiddling.
<jbenet> krl, whyrusleeping: this is my fault for not pushing this out yet, but i made DHT records be ipfs objects (though handled specially), so that (like the pins that Tv just wrote) they have nice tree properties, etc. it addresses the concern you had about making sure IPNS record dags stick around safely. sorry i need to finish this and push it out
* whyrusleeping taps his foot impatiently
neoteo has quit [Quit: Be back later ...]
<whyrusleeping> youre taking so long to write that that i decided to give up go and learn javascript
notduncansmith has joined #ipfs
<krl> jbenet: looking forward to seeing it
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet> krl -- correct me if i'm wrong -- but what you're worried about is that ipns records need to be handled in a particular way, at the ipns level. that is, updating a name carries important (security and UX) implications that need to be addressed, that most generic constructions of dht records + ipfs object pinning don't capture very well explicitly. (though it
<jbenet> can, as wking mentions, all be done with just object creation + distribution + pinning operations)
<krl> jbenet: kind of yes. like this, you will want to keep an (append-only) log of names you're interested in, to see how they change. The question is if everyone should keep their own logs, or if the log should be part of the update
<krl> if everyone keeps their own log, and miss different updates, they will have inconsistent state
<krl> as if the log is first-class, you will be sure that you did not miss updates
<jbenet> and, speaking concretely, "don't just point to a commit that ipns hopes is accessible, have ipns make sure it's there". as wking mentions this can be solved by making the records themselves into ipfs objects, and have ipns "keep them around" (which can be done with standard pinning, or a "Special Pin" that the user can't get rid of by just doing `ipfs pin
<jbenet> ls --type=all | ipfs pin rm` or whatever.
<jbenet> yeah, i think we're all in agreement, and gravitating towards the same thing.
<jbenet> btw, krl, one important concern people keep bringing up is generating ipns records in multiple nodes at once. which i addressed too.
<krl> ah, yes that is an interesting problem
<krl> jbenet: something like forkdb?
<jbenet> so it's a bit more than just a single log, because it may have multiple heads at one moment. (the gist of how i addressed this is: multiple heads are ok, applications who do this (by explicitly giving the same key to multiple nodes) take on the responsibility of deciding between multiple records. they have to agree on a "validity" anyway (time validity or
<jbenet> other validity) so it's good)
<jbenet> forkdb? haven't seen it
<krl> jbenet: i think this is kind of related to 'uncle blocks' in cryptocurrency
<jbenet> oh that's cool-- i think i remember now
tilgovi has quit [Ping timeout: 264 seconds]
<jbenet> krl: yeah-- though IIRC uncles aren't used (for more than adding "weight"). apps in ipfs may be able to use multiple ipns heads as they want to, with the understanding that the rest of the network is not required to store them (i.e. records are stored: { Key: Value }, not { Key: []Value } (--- though perhaps this is something that maybe should be relaxed to
<jbenet> []Value ---)
<krl> jbenet: hmm. that might be true (about not being used)
<jbenet> i mean, the existence of the uncle blocks allows you to look at transactions and infer things, like "so and so tried to double spend" -- which the more clever approaches will use to punish bad actors.
anshukla has joined #ipfs
<jbenet> (am sure ethereum does, for example)
<jbenet> whyrusleeping, krl, wking: need anything CR-ed?
<jbenet> how are we doing on sprint?
<krl> jbenet: i have a thing in /objects/ but i think i'll just push my current work over it
<krl> some things have been refactored pretty throughly
<krl> i'll probably be able to finish it up my next sitting, which should be tomorrow
<wking> jbenet: I need more time to get my rerolled #1208 pushed, so nothing that needs review at the moment
<jbenet> sgtm
<whyrusleeping> jbenet: i drew you a picture
<jbenet> whyrusleeping yeah-- the construction is currently confusing and that picture didn't help.
compleatang has quit [Quit: Leaving.]
<jbenet> we can merge it, but bitswap's implementation is pushed further into the realm of mystery to me-- which is not something that's good. there should be multiple people capable of debugging it and fixing things quickly (code coverage)
<jbenet> i'll try reading it again.
mildred has quit [Quit: Leaving.]
<jbenet> whyrusleeping: work on something else then, i won't get to it until later today or tomorrow.
tilgovi has joined #ipfs
mildred has joined #ipfs
<whyrusleeping> I'll try drawing a better picture
<whyrusleeping> and I'm still working on other bitswap refractors, trying to simplify a lot of what is currently there
hsvcr has quit [Ping timeout: 272 seconds]
hsvcr has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Blame> jbenet, whyrusleeping, + anybody else who is interested: I'm starting UrDHT delopment and push (we just had out first meeting)
<Blame> And I'd love to have a chat to talk about what we are doing, how we can help each other, and maybe some advice
<jbenet> Blame: sgtm. happy to chat. next week ideally.
<Blame> Monday would be best for me
<Blame> after that my week gets interesting
<Blame> the 30 second rundown for lurkers: UrDHT is a FREE OSS project I am doing in conjunction with some other grad stuents (and anybody who wants to help)
<Blame> We are making high preformance reference implementations of many different DHT protocols, and system to devlop new protcol and build on top of them easily
<Blame> Immediate targets are Go and python3. Im hoping to be able to replace IPFS's DHT implimentation if you want to.
<jbenet> sound great-- though to make that work we'll have to agree on the interfaces.
<jbenet> i strongly suggest that you also make it possible for all of these to use a swappable network layer -- and be transport agnostic.
<Blame> Yep. WhyRuSleeping showed me the interface you are already using and it looks pretty compatible.
<Blame> the network layer abstraction is already there
<jbenet> this lgtm!
<jbenet> this is great
<jbenet> keep it uo
ehmry has quit [Quit: Leaving]
<jbenet> up*
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> jbenet: going to the store in a bit, gonna buy some paper so i can make a better drawing. computer drawing is not as easy as they would like you to think
<whyrusleeping> in other news: i dont own any paper
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
hellertime has quit [Quit: Leaving.]
anshukla has quit [Remote host closed the connection]
anshukla has joined #ipfs
anshukla has quit [Remote host closed the connection]
<whyrusleeping> jbenet: heres an interesting thing i just discovered in bitswap
<whyrusleeping> we do a 'send wantlist to providers(key)'
<whyrusleeping> which sends a full wantlist to each of the providers for that key
<whyrusleeping> but, as soon as we get connected to a given peer, we send them our wantlist
<whyrusleeping> so all we really need to do is ensure we are connected to providers for that key
<whyrusleeping> and rely on the network notifications to trigger wantlist sending
ehmry has joined #ipfs
atrapado has joined #ipfs
hsvcr has quit [Read error: Connection reset by peer]
tilgovi has quit [Ping timeout: 256 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
RzR has quit [Excess Flood]
RzR has joined #ipfs
ehmry has quit [Ping timeout: 256 seconds]
<jbenet> whyrusleeping: ah. maybe the per-peer bitswap connection can figure out that it just sent a full wantlist and suppress the second.
<whyrusleeping> well, im looking at changing the code for sendWantlistToProviders to simply call 'ConnectTo(provider)'
<jbenet> whyrusleeping: "A just happened, B doesn't need to" is way more robust than "assuming A works out, B shouldn't need to..."
<jbenet> yeah i think that will break quick.
neoteo has joined #ipfs
<jbenet> now there's a latent assumption on the "new connection / notification" part.
<whyrusleeping> so youre saying we cant rely on the notifications?
<whyrusleeping> the problem i have with "A just happened, B doesn't need to" is how do you know that B doesnt need to? are you sure nothing happened in the time between A and B?
<jbenet> no-- i'm saying we shouldn't add latent assumptions to subparts of the program. code changes and someone is going to come by in a few weeks and say "ohhh we probably don't _need_ to send a full wantlist on every new connection..." if you want to change the model so that "on finding out a new peer we _MUST_ send a full wantlist always or things will not work"
<jbenet> that's a much stronger change.
<whyrusleeping> ah, okay
<whyrusleeping> thats the change i'm making
<whyrusleeping> we have in our Connected handler to send a full wantlist to new peers
<jbenet> i dont think you're understanding, that's a protocol change, it has to bubble up all the way to making strong claims about connections and what happens when they start. it couples things in a concerning way.
<jbenet> try to model it abstractly, without code, as just mathematical statements
<jbenet> or a state machine.
neoteo has quit [Ping timeout: 272 seconds]
<jbenet> the simpler the statemachine the easier to understand, model, implement, evolve the protocol.
<whyrusleeping> yeap
<jbenet> on the "are you sure nothing happened in the time between A and B?" that's a great point--
<whyrusleeping> i'm realizing i need to rewrite a LOT of bitswap now
<whyrusleeping> we were relying really heavily on the rebroadcast timer
<whyrusleeping> and that "things happening between A and B" was biting us a lot, but the rebroadcast came around and made things okay
<whyrusleeping> which was why things were slow
<jbenet> i think that question depends on what the "Bitswap Peer Connection" means, if it _owns_ the connection (sees all messages passing in both directions) then you can be sure.
<jbenet> and supression is safe.
<jbenet> yeah i don't understand the current implementation. i think about things visually-- i can draw diagrams for every part of the codebase except bitswap right now.
<jbenet> (that's probably worth doing, too)
<jbenet> whyrusleeping: all this stuff would be easier if all these things were separate modules
<jbenet> with their own spec, and robust test suite
<whyrusleeping> mind if i trash bitswap and respec/rewrite it from scratch?
<whyrusleeping> i think it will be much easier for us to start fresh
<whyrusleeping> than try to fix whats here
hsvcr has joined #ipfs
<whyrusleeping> and will make it easier to simplify things by starting with a blank slate
<jbenet> Hmmm, i dont know that's a good use of time. that will take at least a week.
<whyrusleeping> it will solve all our bitswap related perf issues
notduncansmith has joined #ipfs
<whyrusleeping> simplify the codebase
<whyrusleeping> make it more modular and easy to test independantly
<jbenet> hahah i think i've heard this once or twice before ;P
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> lol
<jbenet> i think having bitswap as an independent library is a good idea. maybe we can start there-- move it out and move the tests there.
<whyrusleeping> mmkay
<jbenet> we can look at it in isolation and try to glean what the problem is
<jbenet> it will also look a lot smaller.
<jbenet> "ipfs/go-bitswap" ?
<jbenet> actually-- before we do this
<jbenet> wouldn't it be a good idea to have that script to vendor with ipfs?
<whyrusleeping> the package manager?
<whyrusleeping> we were waiting on s3 pinning
<jbenet> not the full, full thing.
<whyrusleeping> maybe i missed this conversation
<jbenet> just something that vendors using git-ipfs-rehost.
<jbenet> yeah i guess i hoped pinbot was up to the challenge
<jbenet> does it work, work yet?
<whyrusleeping> pinbot can do it
<whyrusleeping> yeah
<whyrusleeping> !pin QmT45zTjqzwEPF26tvj76g7fia2QvTAgGdKd3D1JVda8aE
<pinbot> now pinning QmT45zTjqzwEPF26tvj76g7fia2QvTAgGdKd3D1JVda8aE
<pinbot> pin QmT45zTjqzwEPF26tvj76g7fia2QvTAgGdKd3D1JVda8aE successful!
<jbenet> is that "proud parent whyrusleeping" or "astronaut depending on a rocket whyrusleeping" ?
<jbenet> !pin QmRU4VMrWTydkyjG9MSzxzuzoHNZ9iGsDjGm2CADbzWRMS
<pinbot> now pinning QmRU4VMrWTydkyjG9MSzxzuzoHNZ9iGsDjGm2CADbzWRMS
<whyrusleeping> pinbot can do it, but its just making ipfs api calls
therealplato has quit [Ping timeout: 272 seconds]
<whyrusleeping> so, one thing we can do is turn up the context deadlines for larger requests
<pinbot> failed to pin QmRU4VMrWTydkyjG9MSzxzuzoHNZ9iGsDjGm2CADbzWRMS: pin: context deadline exceeded
mildred has quit [Quit: Leaving.]
<whyrusleeping> yeah, that
<jbenet> are you saying there's some sort of avian ancestry paradox at work?
<whyrusleeping> yeeaaahhh.... potentially a bit of that
<jbenet> ok godeps for now :)
therealplato has joined #ipfs
tilgovi has joined #ipfs
<jbenet> whyrusleeping: we need to write a migration for the pinning stuff Tv wrote
<whyrusleeping> mmkay, i can work on that
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
neoteo has joined #ipfs
ei-slackbot-ipfs has quit [Remote host closed the connection]
ei-slackbot-ipfs has joined #ipfs
hsvcr has quit [Quit: Leaving]
inconshreveable has quit [Remote host closed the connection]
<jbenet> hey krl -- are you around?
<krl> yep
<jbenet> wanted to sync up on two things (a) webui and (b) datastructures.
<jbenet> have 5 min now? or later?
<krl> now is fine
<krl> also, to ditch the old pinning view logic is probably a good idea, especially when Tvs stuff gets merged
<jbenet> ok, on datastructures, -- since ipfs is a datastructure transport, we need to make it super easy to make arbitrary data structures. since you've made some i want to discuss ways of making it easier, particularly tuned to web use cases. -- AND i want to make a whole suite of tools that make it super easy to visualize instances of them, or automatically
<jbenet> generate examples (like what you did, but have a script that generates a set
<krl> ah yes, i was thinking about this also
<jbenet> so it's easy to both make and play with various datastructures -- which i think will be useful to get people to think about their object models in webapps as just data structures (instead of "things in a database")
<krl> i think having monoids over the trees could maybe be made more general
<krl> monoids as in commuting values, like 'element count'
<krl> and yes, cumulativesize is a monoid for example
<jbenet> yep
<krl> but it's not enforced
<jbenet> what might make it more general?
<krl> have a set of monoids for each object
<krl> like: links, data, monoids
<jbenet> when i was first making the choice, i wanted element count and other things,i pared it down to the essentials for transfer, but could certainly play with more.
<krl> and then automate/enforce them when building the tree
Guest96_ has joined #ipfs
<jbenet> interesting
<jbenet> that's a very interesting proposition.
<wking> will the IPFS core understand each of the monoid types? Otherwise who's enforcing?
notduncansmith has joined #ipfs
<jbenet> i think this goes hand in hand with the idea for the "language" for data
EricJ2190 has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet> (the idea was to come up with a simple language that outputs the data segement. i.e. "data" is really "code". ( kolmogorov complexity, etc)
<krl> hmm, i don't see directly how they are related
<jbenet> so a unixfs file would either have "print <binary>" or or "for object in links: output object.data"
<krl> oh, you mean include the code that computes the operation?
<jbenet> related because the monoid is just a computation
<jbenet> yes
<jbenet> or rather, the rules of the monoid can be enforced with computation
pfraze has quit [Remote host closed the connection]
<jbenet> i think this is one of those things that could be hyper revolutionary if done right, but it has to _strictly_ improve the performance of the simplest case: moving files around
<jbenet> (i.e. we shouldnt do anything that makes the "move files around" use case worse)
<jbenet> krl: the worry with monoids is storing even more data per object
<jbenet> the overhead hurts, quick.
<jbenet> if this was tunable / selectable, that could be ok.
<krl> you could just have a few required ones, and apply others to other trees
<jbenet> thoughts wking ?
<wking> I think this is all at a higher level than I'm interested in at the moment ;)
<krl> it'll just be a tradeoff you can do differently for different trees
<jbenet> haha fair.
<jbenet> krl: right.
<wking> I certainly wouldn't want to spec out the language
<jbenet> wking: i suspect we don't need to.
<jbenet> i'm sure someone has already.
<krl> :3
<krl> urbit?
<jbenet> haha
<Blame> You could appraoch it like an assembly and make the "outptu the following raw binary" as a 1 byte command
<Blame> literally minimizes overhead
<jbenet> krl: i'm sure there have been many publications on this topic.
<krl> well, i guess ethereum is kinda doing it?
<jbenet> CS research is roughly 5-20years ahead of implementations.
<jbenet> Blame: yeah i like that
<jbenet> so essentially, a bytecode
<Blame> actually, making an assembly language without a fixed "line" size is an interesting problem
<jbenet> krl: yeah i guess you're right that ethereum had to solve a lot of similar problmes.
<krl> they have a bytecode
<jbenet> krl: the focus is vert different though, afaiu ethereum is much more focused on defining languages for contracts
<krl> a vm basically
<jbenet> right
<Blame> it means you could treat is like a stream byte-0 -> length of command
<Blame> and the command and arguments to it could indicate the length
<jbenet> also, does anyone here know erlang well?
<Blame> My advisor keeps wanting me to learn it and I keep avoiding it
<Blame> so, i should
<jbenet> Blame: do it.
<jbenet> the amount of "oh yeah, like this in erlang?" i come across is pretty high
<krl> oh, erlang seems like a good fit for ipfs impl
<krl> in the future when all is well
<jbenet> yeah
<jbenet> first things first.
<jbenet> okaayy bringing it back--
<jbenet> so, (b) tools to make datastructures easier.
<jbenet> (maybe put discussion on monoids over at ipfs/notes)
<jbenet> ------ for (a) webui,
<jbenet> we should publish a new version soon.
<jbenet> what's the status over there with the various bugs, etc?
<jbenet> cc tperson too if around
<jbenet> (tperson: are you alive?)
<krl> #32 remove local storage is blocked on pinning remake
<krl> the thousands of files hang is still the worst unadressed bug
<krl> #20
<jbenet> right
<krl> no peers shown is fixed (just closed)
<jbenet> maybe let's fix that and publish a new version? thoughts?
pfraze has joined #ipfs
<krl> yeah, that sounds reasonable. the object view routing stuff i can wrap up
<jbenet> sounds good
<krl> still has these things i screenshotted also
<krl> in #50
<jbenet> krl: what's the geoip hash again? to add it to: https://github.com/ipfs/infrastructure/issues/5
<krl> added
<krl> QQ3BUp
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
ues4f5jgvc has joined #ipfs
<krl> but for having logic in blocks, goal should be simplest possible turing complete?
<Blame> should it be turing complete?
<krl> otherwise it can't do compression
<jbenet> Blame: yes.
<Blame> its just a question that shoudl allways be asked
<jbenet> agred.
<jbenet> agreed.
<jbenet> maybe it can output the size of the data at the beginning, and "infinity" is a possible value.
<jbenet> for, say, things like PI.
<krl> hah, now we're getting into weird territories
<jbenet> well, turing completeness implies the halting problem :]
<krl> content-adressable pi :P
<jbenet> exactly.
<jbenet> kolmogorov complexity ftw.
* krl wikipedias
<krl> ah.
RzR has quit [Excess Flood]
inconshreveable has joined #ipfs
<krl> haha, of course 'simplest turing machine' lands me on wolfram.com
<Blame> um. simplest turing machine is a turing machine?
<krl> i guess, the simplest implementation
RzR has joined #ipfs
<krl> if it's performant is probably a completely different thing
Wallacoloo has joined #ipfs
<Blame> honestly something like a register machine would do the job
williamcotton has quit [Ping timeout: 255 seconds]
<Blame> how much memory are you willing to give it?
<jbenet> krl: want to make a milestone on webui with the things to fix before next release (or maybe modify 0.2.0
<jbenet> when should we plan to ship it by?
<krl> the 'infinite scrolling' i have not yet addressed, if it works to do it js-side, we could be good middle next week latest
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<krl> i've gotten around the bumps in react state handling, will document the changes i did for object in the PR
ovef has joined #ipfs
<jbenet> sounds good. on infinite scrolling, not sure partial list is supported by the api.
Guest96_ has quit [Quit: Textual IRC Client: www.textualapp.com]
<krl> i did not find anything like that no, but it could very well be that js can slurp large json gobs
<krl> pretty sure bottleneck is rendering
<jbenet> i see.
<jbenet> STRML may know as well.
<Blame> Looks like I can do a unfixed-point stack based language
<krl> unfixed-point?
<Blame> essentially every real computer out there is "fixed point" ie it operated on numbers being a fixed number of bits long
<Blame> unfixed point would essentially treat everything as byte-strings
<Blame> and convert them to numbers big-int style only if need be
<Blame> I made the name up so it is quite possible there is an existing much better way to describe that
<Blame> essentially it turns into a bytecode version of forth that var a variable word-width
<Blame> s/var/hash
<Blame> my only real concern would be dealing with memory usage (which could be as simple as implimenting arbitray limits)
<krl> you could also have the object encode an upper limit they think they need
<Blame> and if you want to appraoch it with a "compression first" approach, you could have a "function call" refence a ipfs block.
<Blame> recursive code would be hard.
<Blame> but that might not be a bad thing.
<Blame> heck a "block" scope in the language could be ipfs block references
anshukla has joined #ipfs
<jbenet> Mmm code is small. Wouldn't want to have to may the overhead of an object to have nice modularity
<Blame> so something like: if test blockid_true blockid_false
<jbenet> Err not modularity but control flow
anshukla has quit [Remote host closed the connection]
anshukla has joined #ipfs
<Blame> im trying to contrive a way to do ti without goto
<jbenet> krl: what could be shipped (webui) by Monday?
<jbenet> I'm thinking of making it so we release new webui and go-ipfs every Monday.
<jbenet> If things don't make it they get pushed, but that way can have a release cycle tied to the sprints
<krl> jbenet, i'll get back to you tomorrow with an edited milestone and an estimate
<Blame> you need to be able to encode scope/block information somehow. using IPFS blocks would be the "encode data in the file system" sort of hack
<jbenet> Sounds good!
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
Wallacoloo has quit [Ping timeout: 256 seconds]
lgierth has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
williamcotton has joined #ipfs
inconshreveable has quit [Remote host closed the connection]
<Blame> I design wierd stack based languages as a hobby.
<Blame> I might need better hobbies.
williamc_ has joined #ipfs
williamcotton has quit [Read error: Connection reset by peer]
<Blame> I missed the while loop. It needs that to be turing complete.
lgierth_ has joined #ipfs
<jbenet> Blame: could you add it to https://github.com/ipfs/notes/issues/new ?
<krl> Blame: ah, now i understand more what you mean
<krl> interesting
<jbenet> Blame: +1
<Blame> yeah
lgierth has quit [Ping timeout: 246 seconds]
<Blame> looping can be handled by giving "cmp" a negative value to skip, but a part of the purpose of a language like this is to be able to totally throw away the code you jstu executed.
<Blame> that way you can essentially treat all fucntion calls like tail-recursion
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Blame> jbenet: added
<jbenet> thanks
domanic has joined #ipfs
flugsio has quit [Quit: WeeChat 1.1.1]
<Blame> and I added a comment showing some example code in that madhouse of a language.
<jbenet> Blame: thanks thats great! we should keep the discussion going there.
atrapado has quit [Quit: Leaving]
xelra has quit [Quit: ZNC - http://znc.in]
domanic has quit [Read error: Connection reset by peer]
lgierth_ has quit [Quit: Ex-Chat]
<Blame> huh, pi is at worst O(log(n)) bits of kolmogorov complexity (where n is bits of accurary)
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<krl> Blame: ethereum went without float, it seems to add quite a bit of complexity
<krl> thoughts?
<Blame> simple solution: impliment float manually in language.
<Blame> adds horrible overhead, you should never use it, but it is there if you really need it.