|
| 1 | +--- |
| 2 | +title: "2019-02-19のJS: Mocha 6.0.0、Fly(Edge Applications)、サードパーティJavaScriptの実行コスト" |
| 3 | +author: "azu" |
| 4 | +layout: post |
| 5 | +date : 2019-02-19T00:34:08.205Z |
| 6 | +category: JSer |
| 7 | +tags: |
| 8 | +- mocha |
| 9 | +- cdn |
| 10 | +- JavaScript |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +JSer.info #423 - Mocha 6.0.0がリリースされました。 |
| 15 | + |
| 16 | +- [Release v6.0.0 · mochajs/mocha](https://github.com/mochajs/mocha/releases/tag/v6.0.0) |
| 17 | + |
| 18 | +Node.js 4のサポート終了、`--compiler`などの非推奨となっていたコマンドラインオプションを削除が行われています。 |
| 19 | +また、`require`のキャッシュを削除する`Mocha.unloadFile`の追加、`.mocharc.js`や`package.json`に設定を書けるRCファイルをサポートしています。 |
| 20 | + |
| 21 | +---- |
| 22 | + |
| 23 | +[Fly · Edge Applications](https://fly.io/)というサービスでは、CDNのEdge LocationでJavaScript Applicationを動かせます。 |
| 24 | +FlyではV8をベースにした実行環境で、[Fly runtime](https://github.com/superfly/fly)を使いLB、Cache、TLS、Networkに関する処理をEdgeで行えます。 |
| 25 | +[Cloudflare Workers](https://www.cloudflare.com/ja-jp/products/cloudflare-workers/)のようにService Worker互換のAPIをサポートしていたり、ローカルでのテスト実行などもサポートしているようです。 |
| 26 | + |
| 27 | +---- |
| 28 | + |
| 29 | +[patrickhulce/third-party-web](https://github.com/patrickhulce/third-party-web)というリポジトリでは[HTTP Archive](https://httparchive.org/)のクロール結果から調査したサードパーティスクリプトの実行コストがまとめられています。 |
| 30 | +広告、アクセス解析、SNS、動画などのカテゴリ別に、利用数や実行にかかった平均の時間などがまとめられています。 |
| 31 | + |
| 32 | +サードパーティスクリプトがウェブページを占める割合については、次の記事も合わせてみると面白いかもしれません。 |
| 33 | + |
| 34 | +- [SpeedCurve | JavaScript growth and third parties](https://speedcurve.com/blog/javascript-growth/) |
| 35 | + |
| 36 | + |
| 37 | +---- |
| 38 | + |
| 39 | +<h1 class="site-genre">ヘッドライン</h1> |
| 40 | + |
| 41 | +---- |
| 42 | + |
| 43 | +## Bootstrap 4.3.0 | Bootstrap Blog |
| 44 | +[blog.getbootstrap.com/2019/02/11/bootstrap-4-3-0/](https://blog.getbootstrap.com/2019/02/11/bootstrap-4-3-0/ "Bootstrap 4.3.0 | Bootstrap Blog") |
| 45 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">CSS</span> <span class="jser-tag">ReleaseNote</span></p> |
| 46 | + |
| 47 | +Bootstrap 4.3.0リリース。 |
| 48 | +`.stretched-link`、`.text-break`、`.rounded-sm`、`.modal-dialog-scrollable`、`.list-group-horizontal`のクラスの追加など |
| 49 | + |
| 50 | + |
| 51 | +---- |
| 52 | + |
| 53 | +## Release: [email protected] - 📣 announcements - npm forum |
| 54 | +[npm.community/t/release-npm-6-8-0/5352 ](https://npm.community/t/release-npm-6-8-0/5352 "Release: [email protected] - 📣 announcements - npm forum") |
| 55 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 56 | + |
| 57 | +npm 6.8.0リリース。 |
| 58 | +monorepo対応として`repository`フィールドの`directory`プロパティでのパッケージディレクトリの指定についてのドキュメントを追加など |
| 59 | + |
| 60 | + |
| 61 | +---- |
| 62 | + |
| 63 | +## Node v11.10.0 (Current) | Node.js |
| 64 | +[nodejs.org/en/blog/release/v11.10.0/](https://nodejs.org/en/blog/release/v11.10.0/ "Node v11.10.0 (Current) | Node.js") |
| 65 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">node.js</span> <span class="jser-tag">ReleaseNote</span></p> |
| 66 | + |
| 67 | +Node v11.10.0リリース。 |
| 68 | +npm 6.7.0を同梱するように、`perf_hooks`にhistogramベースのAPIを追加、`tls`モジュールのクライアントに`session`イベントを追加など |
| 69 | + |
| 70 | + |
| 71 | +---- |
| 72 | + |
| 73 | +## Release v1.2.0 · rollup/rollup |
| 74 | +[github.com/rollup/rollup/releases/tag/v1.2.0](https://github.com/rollup/rollup/releases/tag/v1.2.0 "Release v1.2.0 · rollup/rollup") |
| 75 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">bundler</span> <span class="jser-tag">ReleaseNote</span></p> |
| 76 | + |
| 77 | +Rollup 1.2.0リリース。 |
| 78 | +Hoisting時に変数名を衝突しないようにするためのリネームロジックを再実装、configファイルをCJSとしてexportしてもエラーとならないように修正など |
| 79 | + |
| 80 | + |
| 81 | +---- |
| 82 | + |
| 83 | +## Release v6.0.0 · mochajs/mocha |
| 84 | +[github.com/mochajs/mocha/releases/tag/v6.0.0](https://github.com/mochajs/mocha/releases/tag/v6.0.0 "Release v6.0.0 · mochajs/mocha") |
| 85 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">node.js</span> <span class="jser-tag">testing</span> <span class="jser-tag">ReleaseNote</span></p> |
| 86 | + |
| 87 | +Mocha 6.0.0リリース。 |
| 88 | +Node.js 4のサポート終了、非推奨のコマンドラインオプションを削除、`Mocha.unloadFile`の追加、RCファイルでの設定をサポートなど |
| 89 | + |
| 90 | + |
| 91 | +---- |
| 92 | +<h1 class="site-genre">アーティクル</h1> |
| 93 | + |
| 94 | +---- |
| 95 | + |
| 96 | +## Replacing a hot path in your app's JavaScript with WebAssembly | Web | Google Developers |
| 97 | +[developers.google.com/web/updates/2019/02/hotpath-with-wasm](https://developers.google.com/web/updates/2019/02/hotpath-with-wasm "Replacing a hot path in your app's JavaScript with WebAssembly | Web | Google Developers") |
| 98 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">article</span> <span class="jser-tag">JavaScript</span></p> |
| 99 | + |
| 100 | +処理速度が重要な部分だけをwasmで書くという話。 |
| 101 | +JavaScript、C、AssemblyScript、Rustの比較 |
| 102 | + |
| 103 | + |
| 104 | +---- |
| 105 | + |
| 106 | +## Trusted Types help prevent Cross-Site Scripting | Web | Google Developers |
| 107 | +[developers.google.com/web/updates/2019/02/trusted-types](https://developers.google.com/web/updates/2019/02/trusted-types "Trusted Types help prevent Cross-Site Scripting | Web | Google Developers") |
| 108 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Chrome</span> <span class="jser-tag">XSS</span> <span class="jser-tag">HTML</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">article</span></p> |
| 109 | + |
| 110 | +Chrome 73でTrusted Typesがフラグ付きで実装され、76までOrigin Trialとして試せる。 |
| 111 | +TrustTypesはXSSのsinkとなる部分をポリシーでチェックする。 |
| 112 | +ポリシーに一致しない場合はエラーに落とすことで回避するAPIと仕組み |
| 113 | + |
| 114 | + |
| 115 | +---- |
| 116 | + |
| 117 | +## Constructable Stylesheets: seamless reusable styles | Web | Google Developers |
| 118 | +[developers.google.com/web/updates/2019/02/constructable-stylesheets](https://developers.google.com/web/updates/2019/02/constructable-stylesheets "Constructable Stylesheets: seamless reusable styles | Web | Google Developers") |
| 119 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">CSS</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">article</span></p> |
| 120 | + |
| 121 | +Chrome 73で実装されたConstructable Stylesheetsについて。 |
| 122 | +共有できるCSSオブジェクトを作成して複数のShadow RootsやDocumentに対して当てられるAPI。 |
| 123 | + |
| 124 | + |
| 125 | +---- |
| 126 | + |
| 127 | +## Rendering on the Web | Web | Google Developers |
| 128 | +[developers.google.com/web/updates/2019/02/rendering-on-the-web](https://developers.google.com/web/updates/2019/02/rendering-on-the-web "Rendering on the Web | Web | Google Developers") |
| 129 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">browser</span> <span class="jser-tag">performance</span> <span class="jser-tag">article</span> <span class="jser-tag">ServiceWorker</span></p> |
| 130 | + |
| 131 | +CSR(クライアントサイドレンダリング)からSSR(サーバサイドレンダリング)などのウェブサイトのレンダリング手法やそれぞれの利点や欠点などをまとめた記事。 |
| 132 | +またService Workerを前提としたTrisomorphic Renderingについてなど |
| 133 | + |
| 134 | + |
| 135 | +---- |
| 136 | +<h1 class="site-genre">スライド、動画関係</h1> |
| 137 | + |
| 138 | +---- |
| 139 | + |
| 140 | +## cerebral/overmind: Overmind - Frictionless state management |
| 141 | +[github.com/cerebral/overmind](https://github.com/cerebral/overmind "cerebral/overmind: Overmind - Frictionless state management") |
| 142 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">React</span> <span class="jser-tag">Vue</span> <span class="jser-tag">Angular</span> <span class="jser-tag">TypeScript</span></p> |
| 143 | + |
| 144 | +ステート管理ライブラリ。 |
| 145 | +副作用をeffectsとして実装し、actionを発行して、Proxyを使ったStateの変更検知してViewの更新を行う。 |
| 146 | +React、Vue、Angularに対応したバインディングと開発者ツールが用意されている。 |
| 147 | + |
| 148 | +- [Overmind - Frictionless state management](https://overmindjs.org "Overmind - Frictionless state management") |
| 149 | +- [Overmind introduction - YouTube](https://www.youtube.com/watch?v=82Aq_ujnBQw "Overmind introduction - YouTube") |
| 150 | + |
| 151 | +---- |
| 152 | +<h1 class="site-genre">サイト、サービス、ドキュメント</h1> |
| 153 | + |
| 154 | +---- |
| 155 | + |
| 156 | +## patrickhulce/third-party-web: Summary of which third party scripts are most responsible for excessive JavaScript execution on the web. |
| 157 | +[github.com/patrickhulce/third-party-web](https://github.com/patrickhulce/third-party-web "patrickhulce/third-party-web: Summary of which third party scripts are most responsible for excessive JavaScript execution on the web.") |
| 158 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">performance</span> <span class="jser-tag">browser</span> <span class="jser-tag">JavaScript</span></p> |
| 159 | + |
| 160 | +HTTP Archiveのデータを元にしたウェブサイトにおけるサードパーティスクリプトの実行コストについての調査結果。 |
| 161 | +広告、アクセス解析、SNS、動画などの項目別に利用数や実行にかかった平均の時間などのまとめ。 |
| 162 | + |
| 163 | + |
| 164 | +---- |
| 165 | + |
| 166 | +## Fly · Edge Applications |
| 167 | +[fly.io/](https://fly.io/ "Fly · Edge Applications") |
| 168 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">cdn</span> <span class="jser-tag">webservice</span> <span class="jser-tag">V8</span></p> |
| 169 | + |
| 170 | +Edge ApplicationをJavaScriptで書けるCDNサービス。 |
| 171 | +OSSで公開されているfly runtimeを使いLB、Cache、TLS、Networkに関する処理をEdgeで行える。 |
| 172 | +Service Worker互換のAPIも用意されていて、ローカルでもserverを立ててテストできるようになっている。 |
| 173 | + |
| 174 | +- [superfly/fly: Fly is an edge application runtime that makes it easy to build CDNs](https://github.com/superfly/fly "superfly/fly: Fly is an edge application runtime that makes it easy to build CDNs") |
| 175 | + |
| 176 | +---- |
| 177 | +<h1 class="site-genre">ソフトウェア、ツール、ライブラリ関係</h1> |
| 178 | + |
| 179 | +---- |
| 180 | + |
| 181 | +## postlight/mercury-parser: 📜 Extracting content from the chaos of the web. |
| 182 | +[github.com/postlight/mercury-parser](https://github.com/postlight/mercury-parser "postlight/mercury-parser: 📜 Extracting content from the chaos of the web.") |
| 183 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span></p> |
| 184 | + |
| 185 | +ウェブサイトからメタデータやメインコンテンツを抽出するライブラリ |
| 186 | + |
| 187 | + |
| 188 | +---- |
| 189 | + |
| 190 | +## transloadit/uppy: The next open source file uploader for web browsers |
| 191 | +[github.com/transloadit/uppy](https://github.com/transloadit/uppy "transloadit/uppy: The next open source file uploader for web browsers") |
| 192 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span></p> |
| 193 | + |
| 194 | +プラグインで拡張できるファイルアップロードライブラリ。 |
| 195 | +UI、ローカルやリモートからのリソースの取得やアップロード先などをプラグインで指定できる。 |
| 196 | + |
| 197 | + |
| 198 | +---- |
| 199 | + |
| 200 | +## modernserf/zebu: A compiler for little languages in tagged template strings |
| 201 | +[github.com/modernserf/zebu](https://github.com/modernserf/zebu "modernserf/zebu: A compiler for little languages in tagged template strings") |
| 202 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">document</span></p> |
| 203 | + |
| 204 | +tagged template literalを使いミニ言語を作成するライブラリ。 構文を定義して、それを扱うtagged funcitonを作成する。 |
| 205 | + |
| 206 | + |
| 207 | +---- |
0 commit comments