<feross>
the latest specs have finally made arrays (including typed arrays) subclassable, so perhaps we can finally fix this
<whyrusleeping>
like es6?
<feross>
yeah
tperson has joined #ipfs
<feross>
iojs v3 / node v4 are changing their Buffer implementation to be a subclass of Uint8Array, so it's possible only VERY recently
<whyrusleeping>
hrm... how long would that take to make it to the browser?
<feross>
actually, it's required in node.js because V8 removed the API that let them make a random JS object be backed by a contiguous block of memory
<whyrusleeping>
thats a neat hack
<feross>
whyrusleeping: it's a separate implementation, we don't pull code from them - there's stuff in C++
<feross>
if someone sends a PR that implements it without breaking support in older browsers, I'll merge it
<feross>
so ES6 'extends' is out, but i think it's just sugar, so hopefully perf will be fine if the prototypes are hooked up manually
<whyrusleeping>
i would if i had more than a few days experience actually writing javascript
<feross>
i don't have free time for this at the moment. best solution in the short term is to use Buffer.isBuffer
<whyrusleeping>
okay, i'll PR against vinyl then.
<whyrusleeping>
thanks for stopping by :)
<feross>
in node, it just does `instanceof Buffer` - there's no downside
<feross>
instanceof is really broken with modules anyway - you're not guaranteed to get the same object when you `require` a module in different files
<whyrusleeping>
how does that work in javascript? if two different files require Buffer or something
<whyrusleeping>
and one passes an object to another
<feross>
in node, with core modules like Buffer, it works as expected
<feross>
the issue happens if you depend on A@1.0.0 but you get an object from a module that depended on A@2.0.0
<whyrusleeping>
ah, makes sense
<feross>
each module gets the version of A that's in the node_modules folder (i.e. what's specified in package.json)
<feross>
yeah, it's unfortunate, but the benefits of having things "just work" when dependencies use different versions is worth it
<feross>
this is why the node community has such a culture of small modules - you can depend on a bunch of 10 line packages without putting your users in dependency hell :)
<whyrusleeping>
yeah, thats pretty sweet
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<feross>
whyrusleeping: btw, if you want to check if something is a buffer without needing to include the whole buffer module, use https://npmjs.com/package/is-buffer
<feross>
on the client-side sometimes including the extra 6kb is not desired
<whyrusleeping>
feross: i would, but this is someone elses code. And i think that Buffer is already included?
<feross>
okay
Tv` has quit [Quit: Connection closed for inactivity]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
therealplato has quit [Read error: Connection reset by peer]
therealplato has joined #ipfs
gunn has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has quit [Remote host closed the connection]
voxelot has quit [Ping timeout: 256 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
zabirauf has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
rtlong has quit [Remote host closed the connection]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
therealplato1 has joined #ipfs
jbenet_ has joined #ipfs
therealplato has quit [Ping timeout: 264 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
jbenet_ has quit [Ping timeout: 246 seconds]
jatb has quit [Ping timeout: 244 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
therealplato1 has quit [Read error: Connection reset by peer]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
therealplato has joined #ipfs
mildred has joined #ipfs
therealplato1 has joined #ipfs
therealplato has quit [Ping timeout: 250 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has quit [Quit: Leaving.]
Eudaimonstro has quit [*.net *.split]
alive has quit [*.net *.split]
Vendan has quit [*.net *.split]
spikebike has quit [*.net *.split]
nicknikolov has quit [*.net *.split]
rawtaz has quit [*.net *.split]
zignig has quit [*.net *.split]
substack has quit [*.net *.split]
mildred has joined #ipfs
Eudaimonstro has joined #ipfs
alive has joined #ipfs
Vendan has joined #ipfs
spikebike has joined #ipfs
substack has joined #ipfs
rawtaz has joined #ipfs
zignig has joined #ipfs
nicknikolov has joined #ipfs
pacmax has joined #ipfs
<pacmax>
hey guys, i met somebody at fusionfestival who told me that there is a meetup on tuesdays in a certain bar in berlin, where some of you guys are also around
<pacmax>
is this happening tonight?
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
dignifiedquire has joined #ipfs
therealplato has joined #ipfs
therealplato1 has quit [Ping timeout: 255 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<cryptix>
pacmax: hrm.. i think most of the ipfs crowd is already in slovakia for battlemesh
humanbsd has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
domanic_ has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pacmax has quit [Ping timeout: 246 seconds]
therealplato has quit [Read error: Connection reset by peer]
therealplato has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
zabirauf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
domanic_ has quit [Ping timeout: 260 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
domanic_ has joined #ipfs
mildred has quit [Quit: Leaving.]
Eudaimonstro has quit [Ping timeout: 265 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has joined #ipfs
tperson has quit [Quit: Connection closed for inactivity]
sharky has quit [Ping timeout: 246 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
hellertime has joined #ipfs
mildred 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]
sharky has joined #ipfs
<jbenet>
cryptix: i think he means other people -- pacmax which people, do you know?
<jbenet>
also not that many of us here, only 3
<jbenet>
daviddias: ipfs get -o `which ipfs` QmdBMPSaFP43AEzTybT5VcPePgUrGDZor1czos7cVkpSys
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<rschulman>
jbenet: is that the new curl | sudo bash? :)
<jbenet>
rschulman its a tiny bit less unsafe cause hash. but it's still a bad idea :)
<pjz>
ah! I was going to suggest using Appveyor to complement using travis
<pjz>
appveyor does CI on windows
<rschulman>
whyrusleeping: Out of curiosity, is the work you’re doing on mfs likely to help the ipns problems I was having last week?
<whyrusleeping>
rschulman: potentially, i'm also going to debug ipns on osx soon
<rschulman>
ok, cool
<whyrusleeping>
pjz: that might be useful to have! i'll take a look at it
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<pjz>
whyrusleeping: I help maintain a python webframework (aspen.io) ; we're starting to use it, though we're currently failing a bunch of our unit tests on it due to pathsep issues :P
border has joined #ipfs
<whyrusleeping>
pjz: haha, we have path.Join in go, but i fear we might not be using it in all the right places
<whyrusleeping>
and may be using it in places we shouldnt...
infinity0 has quit [Ping timeout: 252 seconds]
infinity0_ has joined #ipfs
infinity0_ has joined #ipfs
infinity0_ is now known as infinity0
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<pjz>
whyrusleeping: yeah, I had to separate out the places I was manipulating URL paths from where I was manipulating file paths
<pjz>
whyrusleeping: luckily python has modules with identical APIs for that: posixpath and os.path
alu has joined #ipfs
<ipfsbot>
[go-ipfs] jbenet created fix-tar-reader (+4 new commits): http://git.io/vO2gk
<ipfsbot>
go-ipfs/fix-tar-reader 33a37d2 Juan Batiz-Benet: unixfs/tar: cleaned up reader code...
<ipfsbot>
go-ipfs/fix-tar-reader 8e54731 Juan Batiz-Benet: thirdparty/tar: clearer var names for recursion...
<ipfsbot>
go-ipfs/fix-tar-reader c4aa506 Juan Batiz-Benet: sharness/t009-get: fix space/tabs...
<jbenet>
whyrusleeping: o/ -- i havent seen halts with this
therealplato1 has quit [Ping timeout: 255 seconds]
humanbsd has quit [Quit: Leaving]
<ipfsbot>
[go-ipfs] jbenet created gpe-33a37d2f2160d85d41ab25c54be530a48b64d4e7 at 33a37d2 (+0 new commits): http://git.io/vO22b
<ipfsbot>
[go-ipfs] jbenet created gpe-8e547316c780a2f3a7a53af3d2cea62518d60910 at 8e54731 (+0 new commits): http://git.io/vO22p
<ipfsbot>
[go-ipfs] jbenet created gpe-c4aa50643594dc2cfd8333e9b03463353f9d46ba at c4aa506 (+0 new commits): http://git.io/vO2av
<ipfsbot>
[go-ipfs] jbenet created gpe-789fb77344eb9a1893ac03bea4c58bd996f302cf from fix-tar-reader (+0 new commits): http://git.io/vO2aU
<whyrusleeping>
jbenet: did you try removing the 'test_expect_failure's in the get sharness tests?
<jbenet>
whyrusleeping ah i didnt.
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
whyrusleeping: nope still fail locally
<whyrusleeping>
:(
<whyrusleeping>
jbenet: once that vinyl thing gets fixed, what is the process for getting that updated in our code?
<daviddias>
whyrusleeping pretty cool, that could even be a patch to browserify
<jbenet>
whyrusleeping once they merge + publish, just updating the installed module-- depends on the version bump. if it's just a patch update, should be good.
<daviddias>
since it would be looking for another type of Buffer
<whyrusleeping>
daviddias: yeah, feross came in and chatted last night and he thinks it should be patched into buffer
<daviddias>
nice
<ipfsbot>
[go-ipfs] jbenet opened pull request #1552: get: fix halt bug + improvements (master...fix-tar-reader) http://git.io/vO2iU
Tv` has joined #ipfs
<lgierth>
quick q, what's vinyl?
<whyrusleeping>
lgierth: its some weird file thing we're using for the javascript api
<whyrusleeping>
i'm honestly not sure what it actually does, but i know it was broken
<rschulman>
lol
<lgierth>
kek :)
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
voxelot has joined #ipfs
<pguth2>
In PDF.js the figure 1 graph on page 5 does not show the graphs line. (tested with the PDF.js version that comes bundles with the hypothes.is Chrome plugin). @jbenet
<rschulman>
do we have a community respository of the cool apps available on IPFS yet?
<rschulman>
if there are any cool apps. :)
<whyrusleeping>
rschulman: we had a thread on the google groups list about that
<whyrusleeping>
and we have a few cool apps
<whyrusleeping>
but there isnt a good up to date thing with all of that
<rschulman>
huh, did we?
<rschulman>
I thought I was on the google group
dPow has quit [Quit: No Ping reply in 180 seconds.]
<lgierth>
oh, we have a goole group
dPow has joined #ipfs
<rschulman>
Yeah, ok, I’m on ipfs-users. I’ll dig through the archives. :)
<rschulman>
oh, yes, I see it from March. Dylan did a short roundup. Cool!
notduncansmith has joined #ipfs
<pjz>
maybe it should be a github wiki page somewhere?
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping>
jbenet: my implementation has the same memory usage
rtlong has joined #ipfs
<whyrusleeping>
the reason i use a buffer is that i dont know how many bytes will be returned until ive read at least that many
<whyrusleeping>
so i read them into the buffer, and once i've found the boundary, allocate my return array, copy the bytes into it, and return that
<jbenet>
whyrusleeping i think we should be using io.Readers here. zero copy
<whyrusleeping>
the buffer gets reused
<whyrusleeping>
its not zero copy!
<jbenet>
LimitedReader is.
<whyrusleeping>
but you cant know your limit until youve read
<whyrusleeping>
thats how rabin works
<whyrusleeping>
and where are those bytes going to go after theyve been read, and before i return them?
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
understand rabin's case, i think this can use a buffered reader that can be rewound, etc. regardless, in rabin's case, allocation is not a big deal.
<whyrusleeping>
also, LimitReader is not zero copy, all 'Read' methods require that bytes be copied into the provided buffer, zero copy would be something like memmap'ing files and using the memory mapped byte array directly
<jbenet>
i care much more about the chunker interface
<jbenet>
the chunker/splitter should not force a copy in all cases.
<jbenet>
"LimitReader is not zero copy" yes it is, it can be passed all over the place without additional copys, all the way to wherever it goes out to disk/network/etc
<jbenet>
why the channels?
<whyrusleeping>
it made other logic simpler at the time, i'm not super sold on using them though
<whyrusleeping>
the main advantage it has is that it allows the chunker to buffer up the next chunk while the previous one is being processed
<jbenet>
i think we should use standard io style splitting. either []byte or an io.Reader. maybe the interface can have both.
<lgierth>
thank cthuhlu i'm back on wifi. that was network-manager getting in a bad state....
<jbenet>
+1
<whyrusleeping>
jbenet: +1 to lgierths wifi? or +1 to the channels buffering?
notduncansmith has quit [Read error: Connection reset by peer]
rtlong has joined #ipfs
bedeho has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
simonv3 has joined #ipfs
jatb has joined #ipfs
mildred has joined #ipfs
<jbenet>
whyrusleeping: maybe we should not reprovide things we just provided? (it's hard to say. certainly should reprovide if adding one thing, but if i ipfs add -r a dir with lots of dupes i should not reprovide them a bunch of times
<jbenet>
providing takes forever.
<whyrusleeping>
jbenet: yeah... it does
<whyrusleeping>
it will be faster after the dht refactor though
<whyrusleeping>
so until we get dev040 and ipns-stuff done, lets not worry about it
<whyrusleeping>
there is a bug somewhere in the provides process currently, theres no possible way it should take as long as it does now. I'm guess we're hanging on something and hitting a timeout
<whyrusleeping>
but after providing a few entries in our current implementation, you become connected to every node in the network (yay)
<whyrusleeping>
and providing when you know and are connected to every single peer should be lightening fast
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
atrapado has joined #ipfs
<ipfsbot>
[go-ipfs] jbenet created fix-providing-speed (+1 new commit): http://git.io/vOVIb
<ipfsbot>
go-ipfs/fix-providing-speed 6e705e1 Juan Batiz-Benet: bitswap/provide: improved rate limiting...
<voxelot>
full of crap? says "haven't released special DHT feature" don't want to ruin the surprise...
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<rschulman>
your project or someone else’s, voxelot?
<voxelot>
not mine
<voxelot>
friend just emailed that to e
<voxelot>
looks like nonsense to me
<border>
seem like a one men project
<jbenet>
voxelot it _is_ nonsense, and it is offensive nonsense
<rschulman>
ah good, because yeah, it looks kinda crazytown.
<voxelot>
i agree jbenet
<voxelot>
makes the work you guys do look bad
<voxelot>
just thought you should knwo
<voxelot>
if you didnt
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
kbala has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping>
wtf is that
<rschulman>
lol
<whyrusleeping>
its a joke, right?
<whyrusleeping>
nobody is seriously that dumb
* whyrusleeping
finishes reading the description page
<whyrusleeping>
thats enough internet for today
<spikebike>
wow, morph.is does sound impressively crazy
<whyrusleeping>
the templeOS guy is sane in comparison
<spikebike>
but I won p2p buzzword bingo 3 times on that page!
<simonv3>
but they're a really good programmer, they say so in the description
thelinuxkid has joined #ipfs
<whyrusleeping>
simonv3: yeah, and they invented an amazing new dht feature
<whyrusleeping>
never before seen
<rschulman>
psh
<rschulman>
I’ve seen it
<spikebike>
I do wish that snowden would be a bit more vocal about improving security to help mitigate the dragnet type monitoring going on
notduncansmith has joined #ipfs
thelinuxkid has quit [Client Quit]
notduncansmith has quit [Read error: Connection reset by peer]
thelinuxkid has joined #ipfs
thelinuxkid has quit [Client Quit]
<whyrusleeping>
spikebike: yeah, whats he up to? vacationing in russia still?
Eudaimonstro has joined #ipfs
<spikebike>
not been tracking, but I think if he said "the best tool for X is Y and the community needs to fund an audit", or "this piece is missing it should be written" that the community would step up and help
<whyrusleeping>
yeah, agreed
<spikebike>
even just shining a light on useful little tools like a chrome plugin to detect strange SSL certs.
therealplato has quit [Read error: Connection reset by peer]
<spikebike>
sad that random local governments can play mitm with ssl
therealplato has joined #ipfs
<whyrusleeping>
spikebike: yeah, screw certs...
<whyrusleeping>
daviddias: ping
<daviddias>
Hey, what's up ?
notduncansmith has joined #ipfs
<whyrusleeping>
so, i got a PR to vinyl merged that should help fix our broken add problem
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping>
now i'm trying to figure out the process for getting that updated code into node-ipfs-api
<daviddias>
Have you installed it in Node-ipfs-api and see if tests pass ?
<daviddias>
By install I mean, doing something like removing that dept from the package.json and installing it again with --save
thelinuxkid has joined #ipfs
<whyrusleeping>
uhm... no. but i manually made those changes to the version of the dep that was vendored in node_modules
<whyrusleeping>
and things worked
<daviddias>
Got it
<daviddias>
So just delete it from package.json
<daviddias>
And install again so npm does the semver right