{
    "componentChunkName": "component---src-templates-index-jsx",
    "path": "/page/3",
    "result": {"data":{"site":{"siteMetadata":{"title":"WEB EGG"}},"allMarkdownRemark":{"edges":[{"node":{"timeToRead":23,"excerpt":"“外部ライブラリもインストール・型解釈できる TypeScript playground を作った”という題で俺得フロントエンド (1) LT 会という勉強会で登壇してきました。スライドはこちらです。 — 外部ライブラリもインストール・型解釈できる TypeScript…","fields":{"slug":"/introduce-the-new-typescript-playground-for-advanced-use/"},"frontmatter":{"date":"June 13, 2019","title":"「外部パッケージの型定義もインストールし推論できるTypeScript playgroundを作った」という題で登壇してきました＋スライドの補足","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='200'%20viewBox='0%200%20400%20200'%20preserveAspectRatio='none'%3e%3cpath%20d='M372%206l-1%205v4h21V5h-10l-10%201M69%20112v77h331v-77a1838%201838%200%2000-3-75h-1l-163-1H69v76M3%2072l1%205h62V67H3v5'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2,"src":"/static/1bb6f00560555da248c7687d79a6c688/8eab8/featured-image.png","srcSet":"/static/1bb6f00560555da248c7687d79a6c688/1ec58/featured-image.png 334w,\n/static/1bb6f00560555da248c7687d79a6c688/ccb4a/featured-image.png 668w,\n/static/1bb6f00560555da248c7687d79a6c688/8eab8/featured-image.png 1336w,\n/static/1bb6f00560555da248c7687d79a6c688/85e22/featured-image.png 2004w,\n/static/1bb6f00560555da248c7687d79a6c688/22f13/featured-image.png 2048w","srcWebp":"/static/1bb6f00560555da248c7687d79a6c688/f7e47/featured-image.webp","srcSetWebp":"/static/1bb6f00560555da248c7687d79a6c688/cd98f/featured-image.webp 334w,\n/static/1bb6f00560555da248c7687d79a6c688/7535d/featured-image.webp 668w,\n/static/1bb6f00560555da248c7687d79a6c688/f7e47/featured-image.webp 1336w,\n/static/1bb6f00560555da248c7687d79a6c688/f6b67/featured-image.webp 2004w,\n/static/1bb6f00560555da248c7687d79a6c688/96ec1/featured-image.webp 2048w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":57,"excerpt":"2019/6/1~6/2 の二日間ドイツのベルリンにて開催されたJSConf EU 2019に行ってきたのでレポートを書きます。 トーク以外にもイベント運営としてのクオリティの高さや JSConf…","fields":{"slug":"/jsconfeu2019/"},"frontmatter":{"date":"June 05, 2019","title":"JSConf EU 2019に行ってきました","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='191'%20viewBox='0%200%20400%20191'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2096v95h401V0H0v96m297-28v18l3-2%203-3V54l-3-2-3-3v19m-66-5c-2%201-2%201-2%2022v21l2%201h5c3-1%203-43%200-44h-5M60%2066c-3%201-6%206-6%2010l-2%202c-2%200-3%201-4%203%200%202%201%205%204%205%202%200%202%201%202%209%200%2011%200%2012%204%2012%205%200%206-1%206-12%200-9%200-9%202-9%204%200%205-1%205-5%200-2-1-3-4-3-2%200-3-1-3-2%200-3%202-4%206-3%203%200%203%200%204-2%203-6-6-9-14-5m73%203l-1%204c0%203-1%204-3%205s-3%201-3%204c0%202%201%202%203%203%203%201%203%202%203%209s0%207%203%2010c5%205%2017%204%2016-2-1-2-2-3-5-3h-3l-1-7v-6h3c3%200%205-2%205-5%200-2-3-4-6-4-1%200-2-1-2-4-1-5-6-7-9-4m76%208c-8%201-12%204-8%208%201%202%202%202%204%201%203-1%209-1%2010%201l-4%202c-11%201-15%206-12%2013%201%204%2010%206%2014%204h3c2%202%207%201%208-1%202-3%201-21-1-24s-8-5-14-4M77%2079c-7%204-8%2018-3%2024%207%207%2024%206%2024-2%200-3-3-4-7-2-5%201-9%201-10-2-1-2-1-2%207-2%2010%200%2012-1%2011-7-2-10-13-14-22-9m29-1c-9%205-6%2014%204%2017%205%202%207%203%205%204h-6c-4-3-7-2-8%200-2%203-1%204%202%206%206%203%2015%203%2019-1%205-5%203-11-3-14l-6-2c-6-2-2-4%204-2%205%201%207%200%207-4s-13-7-18-4m48%200l-1%2014c0%2014%200%2015%205%2015s5-1%205-15l-1-14h-8m12%201c0%201%207%2022%2010%2026%201%202%206%203%209%201%202%200%2012-25%2011-27%200-1-1-2-4-2-4%200-5%202-8%2012l-2%207-3-8-4-10c-2-2-8-1-9%201m146%206c-5%206-4%209%204%209%205%200%205%200%204-7-1-6-3-6-8-2m37%2038l-11%2011%207%206c13%2013%2017%2013%2027%203%207-9%207-13-4-23l-8-8-11%2011m6%2010v6l5-1h5v-10h-10v5'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.0875,"src":"/static/8fff6f456ccdc9431052193a93265f50/8eab8/featured-image.png","srcSet":"/static/8fff6f456ccdc9431052193a93265f50/1ec58/featured-image.png 334w,\n/static/8fff6f456ccdc9431052193a93265f50/ccb4a/featured-image.png 668w,\n/static/8fff6f456ccdc9431052193a93265f50/8eab8/featured-image.png 1336w,\n/static/8fff6f456ccdc9431052193a93265f50/e4fcd/featured-image.png 1958w","srcWebp":"/static/8fff6f456ccdc9431052193a93265f50/f7e47/featured-image.webp","srcSetWebp":"/static/8fff6f456ccdc9431052193a93265f50/cd98f/featured-image.webp 334w,\n/static/8fff6f456ccdc9431052193a93265f50/7535d/featured-image.webp 668w,\n/static/8fff6f456ccdc9431052193a93265f50/f7e47/featured-image.webp 1336w,\n/static/8fff6f456ccdc9431052193a93265f50/73773/featured-image.webp 1958w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":9,"excerpt":"ソースコードを画像に変換できるCarbonという web アプリをご存知でしょうか。 ↑ のような画像が生成できるサービスです。フォントやテーマなどがとても素敵な画像が生成されるため、TL…","fields":{"slug":"/convert-any-html-element-to-image/"},"frontmatter":{"date":"May 28, 2019","title":"シンタックスハイライト済みのソースコードの画像をブラウザだけで作成したい","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='180'%20viewBox='0%200%20400%20180'%20preserveAspectRatio='none'%3e%3cpath%20d='M29%2029l-1%2062%201%2060h343V91l-1-62c-2-2-340-2-342%200'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.2266666666666666,"src":"/static/7ef5022542047c39e79f4e940ff571eb/8eab8/featured-image.png","srcSet":"/static/7ef5022542047c39e79f4e940ff571eb/1ec58/featured-image.png 334w,\n/static/7ef5022542047c39e79f4e940ff571eb/ccb4a/featured-image.png 668w,\n/static/7ef5022542047c39e79f4e940ff571eb/8eab8/featured-image.png 1336w,\n/static/7ef5022542047c39e79f4e940ff571eb/85e22/featured-image.png 2004w,\n/static/7ef5022542047c39e79f4e940ff571eb/a9ec1/featured-image.png 2672w,\n/static/7ef5022542047c39e79f4e940ff571eb/d1d3a/featured-image.png 3168w","srcWebp":"/static/7ef5022542047c39e79f4e940ff571eb/f7e47/featured-image.webp","srcSetWebp":"/static/7ef5022542047c39e79f4e940ff571eb/cd98f/featured-image.webp 334w,\n/static/7ef5022542047c39e79f4e940ff571eb/7535d/featured-image.webp 668w,\n/static/7ef5022542047c39e79f4e940ff571eb/f7e47/featured-image.webp 1336w,\n/static/7ef5022542047c39e79f4e940ff571eb/f6b67/featured-image.webp 2004w,\n/static/7ef5022542047c39e79f4e940ff571eb/f71bf/featured-image.webp 2672w,\n/static/7ef5022542047c39e79f4e940ff571eb/c44a1/featured-image.webp 3168w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":4,"excerpt":"前記事のGatsby 製サイトに Algolia のサイト内検索を実装するを実現するにあたって、色々ライブラリが増えるけどページのロード時間は増やしたくなかったので React Suspense（以下 Suspense）＋ React.lazy ＋ Dynamic import…","fields":{"slug":"/dynamic-import-tips-for-gatsby/"},"frontmatter":{"date":"May 07, 2019","title":"GatsbyでReactコンポーネントをDynamic importしてCode Splitするwork around","featuredImage":null}}},{"node":{"timeToRead":9,"excerpt":"ブログをGatsbyに移行してからずっとサボっていたサイト内検索機能ですが、ゴールデンウィークで時間があったので実装してみました。 なお、当記事はAlgolia自体の知識がある前提で書いてます。 Algolia自体の説明やMiddleman…","fields":{"slug":"/on-site-search-in-gatsby-with-algolia/"},"frontmatter":{"date":"May 06, 2019","title":"Gatsby製サイトにAlgoliaのサイト内検索を実装する","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='130'%20viewBox='0%200%20400%20130'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2060v35h13l23-1c12%200%2014-1%2011-5-1-2%200-2%2050-2a1654%201654%200%200096-4c0-4-1-4-56-5l-57-1c-16-4-17-26-3-33%204-2%208-2%2063-2a603%20603%200%200023-2c-27%200-31%200-30-1l1-4c-1-2-2-2-29-2H77l1-3-1-4-39-1H0v35m258-6c-2%204%204%2010%207%208s5-6%204-8c-1-3-10-3-11%200m76%205l-2%208-2%204h9c8%200%208%200%209-3l-1-3c-1-2%200-2%209-2h11v-6l-17-1h-16v3'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":3.0925925925925926,"src":"/static/805aa3b7b4b5304126127d01dcd71951/8eab8/featured-image.png","srcSet":"/static/805aa3b7b4b5304126127d01dcd71951/1ec58/featured-image.png 334w,\n/static/805aa3b7b4b5304126127d01dcd71951/ccb4a/featured-image.png 668w,\n/static/805aa3b7b4b5304126127d01dcd71951/8eab8/featured-image.png 1336w,\n/static/805aa3b7b4b5304126127d01dcd71951/85e22/featured-image.png 2004w,\n/static/805aa3b7b4b5304126127d01dcd71951/a9ec1/featured-image.png 2672w,\n/static/805aa3b7b4b5304126127d01dcd71951/b3888/featured-image.png 2878w","srcWebp":"/static/805aa3b7b4b5304126127d01dcd71951/f7e47/featured-image.webp","srcSetWebp":"/static/805aa3b7b4b5304126127d01dcd71951/cd98f/featured-image.webp 334w,\n/static/805aa3b7b4b5304126127d01dcd71951/7535d/featured-image.webp 668w,\n/static/805aa3b7b4b5304126127d01dcd71951/f7e47/featured-image.webp 1336w,\n/static/805aa3b7b4b5304126127d01dcd71951/f6b67/featured-image.webp 2004w,\n/static/805aa3b7b4b5304126127d01dcd71951/f71bf/featured-image.webp 2672w,\n/static/805aa3b7b4b5304126127d01dcd71951/650fc/featured-image.webp 2878w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":9,"excerpt":"Number#toFixed や Math.round/floor/ceil…","fields":{"slug":"/what-benefit-of-intl-number-format/"},"frontmatter":{"date":"February 25, 2019","title":"Intl.NumberFormatでゼロ埋めや％表記などの数値表現を楽に実装する","featuredImage":null}}},{"node":{"timeToRead":47,"excerpt":"Denoのコードを読んでみました。 Rust に入門したばかりで基礎知識が足らず四苦八苦していますが、Deno のプロセスが起動してから TypeScript のコードが実行されるまでの仕組みについて愚直に読んでみたメモです。 想定読者 Deno の内部挙動に興味がある Node…","fields":{"slug":"/code-reading-of-deno-boot-process/"},"frontmatter":{"date":"January 19, 2019","title":"Dive into Deno：プロセス起動からTypeScriptが実行されるまで","featuredImage":null}}},{"node":{"timeToRead":5,"excerpt":"Lazy load はよく知られた web サイトの高速化テクニックの１つですが、自前で lazy load を実装したりライブラリを使う必要がなくなる未来が実現しつつあります。 Chrome のレンダリングエンジンBlinkが 画像や iframe の LazyLoad…","fields":{"slug":"/benchmark-of-lazy-frame-loading/"},"frontmatter":{"date":"January 12, 2019","title":"ChromeのBlink LazyLoadを有効にしたらページのロード時間が約10倍早くなった","featuredImage":null}}},{"node":{"timeToRead":7,"excerpt":"（※↑ はただの記事用のサムネイル画像です） 記事の中に URL を書くだけで oEmbed 準拠のコンテンツを埋め込めるようにしました。 oEmbed を聞いたことない方はまずデモを見てみてください。 oEmbed…","fields":{"slug":"/gatsby-remark-discoverable-oembed/"},"frontmatter":{"date":"January 10, 2019","title":"Gatsbyの記事にoEmbed準拠のコンテンツを埋め込めるようにした","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='202'%20viewBox='0%200%20400%20202'%20preserveAspectRatio='none'%3e%3cpath%20d='M357%20145v10h16l17-1c2%200%202-2%202-10v-9h-35v10M20%20162c-2%200-1%209%201%209%207%203%2011-2%208-8-1-2-6-3-9-1m33%2016v5c0%203%201%204%206%204h5v-9l-5-1-6%201m14%2015v5c0%203%201%204%206%204h5v-9l-5-1-6%201'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.9880952380952381,"src":"/static/e5fd5f0d1c0b43905519a63730f60aa0/7d603/featured-image.png","srcSet":"/static/e5fd5f0d1c0b43905519a63730f60aa0/1ec58/featured-image.png 334w,\n/static/e5fd5f0d1c0b43905519a63730f60aa0/ccb4a/featured-image.png 668w,\n/static/e5fd5f0d1c0b43905519a63730f60aa0/7d603/featured-image.png 992w","srcWebp":"/static/e5fd5f0d1c0b43905519a63730f60aa0/34d2b/featured-image.webp","srcSetWebp":"/static/e5fd5f0d1c0b43905519a63730f60aa0/cd98f/featured-image.webp 334w,\n/static/e5fd5f0d1c0b43905519a63730f60aa0/7535d/featured-image.webp 668w,\n/static/e5fd5f0d1c0b43905519a63730f60aa0/34d2b/featured-image.webp 992w","sizes":"(max-width: 992px) 100vw, 992px"}}}}}},{"node":{"timeToRead":6,"excerpt":"以下の PR により、Node.js に Brotli 圧縮がサポートされました。 — zlib: add Brotli support by addaleax · Pull Request #24938 · nodejs/node まだ master に入ったばかり（201…","fields":{"slug":"/nodejs-is-now-supported-brotli-compression/"},"frontmatter":{"date":"January 08, 2019","title":"Node.jsの11.7.0からzlibモジュールでBrotli圧縮が使えるようになりました","featuredImage":null}}}]}},"pageContext":{"limit":10,"skip":20,"current":3,"total":17,"hasNext":true,"nextPath":"/page/4","hasPrev":true,"prevPath":"/page/2"}},
    "staticQueryHashes": ["2585454260","2954598359"]}