From 3a3be87f473ca25375ce795b8eec9fb7e52c6eec Mon Sep 17 00:00:00 2001 From: AJvanLoon Date: Wed, 15 Mar 2017 21:06:44 +0100 Subject: [PATCH] Some polish --- website/src/_posts/2017-03-0.15.md | 42 ++++++++++++++++-------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/website/src/_posts/2017-03-0.15.md b/website/src/_posts/2017-03-0.15.md index d42d78f5a..a7c0c55e7 100644 --- a/website/src/_posts/2017-03-0.15.md +++ b/website/src/_posts/2017-03-0.15.md @@ -5,31 +5,31 @@ author: arturi published: false --- -Exciting stories about `babel-plugin-yo-yoify`, progress event throttling and new friends await you in this post about Uppy 0.15. +Spring is in the air and Uppy is feeling particularly full of life. In this post about Uppy 0.15, we have some exciting stories about `babel-plugin-yo-yoify` and progress event throttling. And we'd also like you to meet our new friend, Renée! -## Yo-yoify For NPM-installed Uppy +## Yo-yoify for NPM-installed Uppy -In [`0.14`](http://localhost:4000/blog/2017/02/0.14/) we’ve added `yo-yoify` transform to speed Uppy up and eliminate `Function.caller` issues. Turns out, we [forgot](https://github.com/transloadit/uppy/issues/158) about our Babel-transpiled `lib` version of Uppy that gets published to NPM 🙀. We’ve spent some time creating a standalone version of `yo-yoify` that could parse `yo-yo` template strings before Babel-transpilation, only to discover that there is a [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify) that does precisely that, and frees us from jumping through hoops. It [had](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/9) [some](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/pull/8) [issues](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/11) that we collaborated on with a friendly [Renée](https://github.com/goto-bus-stop), who also agreed to join Uppy for a while to help us with other pressing issues. So, silver linings — bugs sometimes lead to new friends and wonderful beginnings. We are very excited. +In [`0.14`](http://localhost:4000/blog/2017/02/0.14/), we added `yo-yoify` transform to give Uppy some extra speed and eliminate `Function.caller` issues. As it turned out, we [forgot](https://github.com/transloadit/uppy/issues/158) about our Babel-transpiled `lib` version of Uppy that gets published to NPM 🙀. We then spent some time creating a standalone version of `yo-yoify` that would be able to parse `yo-yo` template strings before Babel-transpilation, only to discover that there already is a [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify) that not only does precisely that, but also frees us from jumping through a lot of unnecessary hoops. It did [have](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/9) [a few](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/pull/8) [issues](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/11) at first, but luckily our friend [Renée](https://github.com/goto-bus-stop) was available to colaborate with us on this. Renée has also agreed to join Uppy for a while to help us with other pressing issues. So, silver linings — bugs can sometimes lead to new friends and wonderful beginnings. We are very excited about what this all means for Uppy in the months to come. -So, Uppy from NPM is now good to go, the issue has been resolved. Please update: https://www.npmjs.com/package/uppy. And yeah, if you use `yo-yo`, try [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify). +Uppy from NPM is now good to go and the issue has been completely resolved. You can update at: https://www.npmjs.com/package/uppy. And yeah, if you use `yo-yo`, give [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify) a try. ## Pause & Resume Remote Uploads -Uploads via `uppy-server` and `tus`, which happen when you select files from Google Drive or Dropbox, for example, can now be paused and resumed, just like “local” uploads 🎉 +Just like with “local” uploads, Uppy now also has the possibility to pause and resume any uploads as long as they are handled by either `uppy-server` or `tus`, which happens when you select files from, for example, Google Drive or Dropbox. 🎉 ## Progress Throttling -While working on pausing remote uploads with `uppy-server` Ife discovered a strange bug: uppy-client would hang during the upload, and the progress would jump straight to 100% afterwards. Turns out, uploads were happening too fast, which led to progress events being sent very very often (like 300 / second), which trashed the interface rendering loop. This was solved by [adding throttling in tus-js-client](https://github.com/tus/tus-js-client/commit/9940f27b2361fd7e10ba58b09b60d82422183bbb) (thanks Marius!) and [uppy-server](https://github.com/transloadit/uppy-server/commit/936ad48e92631c45d123664900b9aabcf7a190fa) (thanks Ife!). And I will take this opportunity to thank myself for [fixing](https://github.com/transloadit/uppy/commit/1d5f4404546420442deabc94df84bd3ec0677eec) [it](https://github.com/transloadit/uppy/commit/db32c6f4fd85420532f27f04920dbaf6d126ea9b) in uppy-client too. +While working on pausing remote uploads with `uppy-server`, Ife discovered a strange bug: uppy-client would hang during the upload, after which the progress would immediately jump to 100%. After some solid Sherlock Holmesing, we found what was causing it: uploads were happening too fast. This was leading to progress events being sent very, very often (like 300 / second), which trashed the interface rendering loop. We have solved this by [adding throttling in tus-js-client](https://github.com/tus/tus-js-client/commit/9940f27b2361fd7e10ba58b09b60d82422183bbb) (thanks Marius!) and [uppy-server](https://github.com/transloadit/uppy-server/commit/936ad48e92631c45d123664900b9aabcf7a190fa) (thanks Ife!). I would also very much like to take this opportunity to thank myself for [fixing](https://github.com/transloadit/uppy/commit/1d5f4404546420442deabc94df84bd3ec0677eec) [it](https://github.com/transloadit/uppy/commit/db32c6f4fd85420532f27f04920dbaf6d126ea9b) in uppy-client too! :innocent: -To prevent “jumping” progress numbers and text in StatusBar are only updated once a second. Plus, we’ve switched to [`prettier-bytes`](https://www.npmjs.com/package/prettier-bytes) that adds some nice number rounding. Smooth! +To prevent “jumping” progress, numbers and text in StatusBar are now only updated once a second. Plus, we have also switched to [`prettier-bytes`](https://www.npmjs.com/package/prettier-bytes), which adds some nice number rounding. Smooth as butter, baby! -TL;DR Uppy is very fast at uploading! +TL;DR Uppy was simply too fast at uploading, so we had to shorten the leash a bit! -## Informer’s got colors +## Informer coming at you in full-color mode -Informer now changes its looks depending on the `type` argument: +Informer will now be able to change the way it looks depending on the `type` argument: ```js // (`'informer'`, `text`, `type`, `duration`) @@ -38,29 +38,29 @@ uppy.emit('informer', 'Connected!', 'success', 3000) -Supports the following `type`s: `info`, `warning`, `error`, `success`, all with their own colors! +This supports the following `type`s: `info`, `warning`, `error`, `success`, all with their own colors! ## Some other things - Multipart now treats all 2xx responses as successful and returns xhr object in `core:upload-success` event callback. -- That progress circle that use see on each file in Dashboard has been improved on the inside: precise `circleLength` and `stroke-dasharray/stroke-dashoffset` calculation. +- That progress circle that you can see on each file in Dashboard has been improved on the inside: precise `circleLength` and `stroke-dasharray/stroke-dashoffset` calculation. - Uppy-server returns uploaded file urls and sizes for remote uploads (from Google Drive & Dropbox). -- Provider plugins now have a loading screen and error screen, logout link. Breadcrumbs are working again. +- Provider plugins now have a loading screen, error screen and logout link. Breadcrumbs are also working again. ## Release Notes -Here is the full list of changes for version 0.14: +Here is the full list of changes for version 0.15: - build: update dependencies and eslint-plugin-standard, nodemon --> onchange, because simpler and better options (@arturi) - build: fix `Function.caller` issue in `lib` which gets published to NPM package, add babel-plugin-yo-yoify (@arturi #158 #163) -- provider: show error view for things like not being able to connect to uppy server should this be happening when uppy-server is unavailable http://i.imgur.com/cYJakc9.png (@arturi, @ifedapoolarewaju) -- provider: loading indicator while the GoogleDrive / Dropbox files are loading (@arturi, @ifedapoolarewaju) -- provider: logout link/button? (@arturi, @ifedapoolarewaju) +- provider: show error view for things like not being able to connect to uppy server, should this be happening when uppy-server is unavailable http://i.imgur.com/cYJakc9.png (@arturi, @ifedapoolarewaju) +- provider: loading indicator while files from GoogleDrive / Dropbox are loading (@arturi, @ifedapoolarewaju) +- provider: logout link/button (@arturi, @ifedapoolarewaju) - provider: fix breadcrumbs (@ifedapoolarewaju) - server: refactor local/remote uploads in tus, allow for pause/resume with remote upload (@arturi, @ifedapoolarewaju) -- server: throttle progress updates sent through websockets, sometimes it can get overwhelming when uploads are fast (@ifedapoolarewaju) -- server: pass file size from Google Drive / Dropbox ? (@ifedapoolarewaju) -- server: return uploaded file urls (from Google Drive / Dropbox) ? (@ifedapoolarewaju) +- server: throttle progress updates sent through websockets, sometimes it can be overwhelming when uploads are getting this fast (@ifedapoolarewaju) +- server: pass file size from Google Drive / Dropbox (@ifedapoolarewaju) +- server: return uploaded file urls (from Google Drive / Dropbox) (@ifedapoolarewaju) - server: research having less permissions, smaller auth expiration time for security (@ifedapoolarewaju) - dashboard: basic React component (@arturi) - core: experiment with `nanoraf` and `requestAnimationFrame` (@arturi) @@ -75,4 +75,6 @@ Here is the full list of changes for version 0.14: - dashboard: don’t show per-file detailed progress by default — too much noise (@arturi) - website: blog post and images cleanup (@arturi) +Enjoy! + The Uppy Team