Closed RichardLitt closed 8 years ago
mmuller: Does a pubsub mechanism currently exist? noffle: No; @whyrusleeping is working on a one:many prototype in go-ipfs atm. And there is orbit-db, which uses redis as a pubsub substitute for now
vijayee: does the crdt code exist already? noffle: Partially. @haadcode implemented ipfs-log but the libraries that fit between ipfs-log and CRDTs aren't fully fleshed out yet
Lead: @whyrusleeping
With the release of 0.4, I'll be upgrading orbit-related modules to use 0.4. I will continue to work on orbit-db and ipfs-log, fixing some issues, optimizing the algorithms and working towards to make them usable in the browser and better facilitate to build the CRDT library on top of ipfs-log. I also want to fix some issues in Orbit, and work towards making it usable in browser-only (stand-alone webapp).
@whyrusleeping TODO
Summary: This sprint has been intense (and it will continue), with the goal of getting everything in line for a beta version of js-ipfs
by next week. Lot's of progress has been made across the panoply of JavaScript modules, from more test coverage, integration of the aegir assets pipeline, better documentation, project management, new features for jsipfs swarm
, namely: connect, peers and addrs local. My attention and time was across the board, CR+Merging all the things, help unblock things, get zlib integrated and (finally) spdy enabled over WebSockets (with flying colours).
I concentrated on upgrading all my projects to use 0.4, getting orbit-db and ipfs-log to work in the browser and improving Orbit's UX. Had a very productive sprint. I managed to upgrade everything to 0.4 and it's awesome: much faster and more stable than 0.3! We now have working distributables for orbit-db and ipfs-log in the browser. They still require a local daemon to run to work but this will change when js-ipfs ships. I added some new features to Orbit: preview files directly in the chat with code higlighting, players for audio and video and improved the files browsing functionality in general. You can now also copy the hash of a file to clipboard. It looks like this:
I also created a simple javascript logging module called logplease, works in Node.js and browsers.
One and a half weeks ago we released go-ipfs 0.4.0, yay! I took the smaller part in this intense day, doing dist.ipfs.io and go-ipfs deploys. I did some more work on go-ipfs and go-libp2p during the rest of the sprint -- a couple of bug fixes, and dependency updates. I'm now much more comfortable with gx.
Mid-sprint I flew to Seattle, which is disturbingly warm and green at the moment. I caught a bad cold right away, and didn't get much more done. I also had the chance to meet and hang out with @thefinn93 and @danry25 of Seattle Meshnet. We've been working on cjdns and OpenWrt for two years already, but have never met before :)
This morning I landed in Toronto, where I'll spend most of the week working on the cjdns android app with @benhylau -- IPFS work will happen too, but not too much.
Task list:
This past week I spent more time working with data-exporting, mostly testing moving files back and forth from go-ipfs to js-ipfs and hunting down some bugs. This led to studying more about node.js streams and having conversations with dignfiedquire and daviddias. Big thanks to them for helping me understand so much about streaming data. Also started learning reactive js to try out a module called highland by dignifiedquire's suggestions. This module looks powerful in its way of simplifying async code and I plan to incorporate it once I understand a bit more about reactive js programming.
I spent a minimal amount of time working with aegir, the testing suit and standards for js modules. Reworked the multihash module to update from dig.js to aegir.
Over the weekend I met up with alu in hollywood where we discussed visions of the future and how the web might look and be navigated. His work with janus VR and the equipment he has is really cool. Hollywood shows a lot of interest in visual things so it's natural to be asking these questions there. Seeing his work flow we started to come up with ideas of how IPFS might optimize data traffic for VR which could potentially create an interactive web that is content addressed in a way where you can actually walk through a dag of linked rooms!
Started off last week by fixing the libp2p listener bug that snuck into 0.4.0. After that, I set to work trying to get enough pull requests merged that we would have under 40 open. Unfortunately we kept opening new ones at a rate higher than I could get through them, so its still nearly 50. I also started modularizing the go side of the codebase, breaking a few packages out of go-libp2p, @lgierth has a PR that brings this into go-ipfs now too. In the same mood, I went and removed a tonne and a half of unused godeps, the go-ipfs codebase is a tad lighter now.
This week i'm hoping to refactor the swarm dialer in go-libp2p to allow better address intake control, and hopefully fix the dht findpeer bug at the same time.
I focused on documentation this sprint.
This meant a more discoverable and consistent go-ipfs CLI, ipfs dht output that's more human & script friendly, and some 0.4.0 blog post notes. I also dug hard into bringing the pantheon of js-ipfs modules up to snuff: detailed READMEs with examples and full API notes as well as 100% test coverage for js-peer-id, js-multiaddr, js-peer-info, and js-ipfs-blocks.
This sprint I had two things on my mind. The first one was IPLD, which entailed getting as familiar as possible with the spec and implementing the whole set of tooling in JavaScript (js-ipld, js-ipfs-ipld, js-ipld-cli). Also I started work on ipld.io, including design drafts and a first rough implementation.
The second focus was aegir (formally known as dignified.js). It is now deployed over nearly all active JavaScript projects on ipfs and while doing this work I also started getting familiar with the different parts of js-ipfs to be ready to help @diasdavid with finishing the first milestone.
In light of the 0.4 release and the aegir updates we finally shipped the very much overhauled and updated js-ipfs-api
which is now in the best shape since it's creation :)
This week, I spent a few days doing cool stuff: I cleared out most of my open issues, and merged a few of the http-api pulls. I worked really hard on the js guidelines for IPFS. I also looked into readme-standard again, learned how to make remark-lint plugins (and created remark-lint-appropriate-heading, the first of these needed). I also worked on the weekly (which still hasn't been published, I think in a month now). I need to figure out how to make this work, because right now it is still a very broken pipeline. Also, I got horrible food poisoning.
pin
https://github.com/ipfs/http-api-spec/pull/48dht
https://github.com/ipfs/http-api-spec/pull/44Summary I was focused on: shipping 0.4.0 and all the things around it, helping find/address bootstrap hangs (fixed in 0.4.1), lots of discussions with @diasdavid and @whyrusleeping for go/js interop, IPLD discussions (in person and https://github.com/ipfs/specs/issues/91), testing Orbit (so cool!), meetings/discussions about ipfs with other orgs (ob, gitlab, lantern), and upkeep on lots of ongoing conversations with other orgs.
Some things done
Summary This week I went to the WWW conference in Montreal, great conversations. I met the IPFS team in NYC, really nice welcome. I focused this sprint on IPLD writing down about the importance of separating high and low-level IPLD representations https://github.com/ipfs/specs/issues/91. Also I wrote some tests for js-ipfs-ipld https://github.com/ipfs/js-ipfs-ipld/pull/2 https://github.com/ipfs/js-ipfs-ipld/pull/3 https://github.com/ipfs/js-ipfs-ipld/pull/5 that will probably need new revision. Finally, I organized @jbenet his coming to MIT/Berkman while in Boston.
Sprint April 6, 2016
Sprint Goals
Sprint Discussions
Schedule
Please take notes in a separate pad, if you can, and link it here.
Please add the Agenda to the Pad before the endeavour sprint starts.
Sprint Deliverables