{
    "componentChunkName": "component---src-templates-tagged-posts-jsx",
    "path": "/tag/JavaScript",
    "result": {"data":{"site":{"siteMetadata":{"title":"WEB EGG"}},"allMarkdownRemark":{"edges":[{"node":{"timeToRead":25,"excerpt":"今年も GitHub トレンドから 2022 年の JavaScript/TypeScript を振り返ります。去年の記事はこちらです。 — GitHub のトレンドで振り返る 2021 年の JavaScript | WEB EGG 集計方法 本記事の集計期間は 2022/0…","fields":{"slug":"/2022-javascript-typescript-trending-history/"},"frontmatter":{"date":"December 22, 2022","title":"GitHubのトレンドで振り返る2022年のJavaScript/TypeScript","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='270'%20viewBox='0%200%20400%20270'%20preserveAspectRatio='none'%3e%3cpath%20d='M34%202c-2%2011%2014%2014%2018%204%202-5%201-6-9-6-8%200-8%200-9%202m23%200c-4%204-4%207-3%2011%206%2010%2019%207%2019-3%200-9-9-13-16-8m16%200c0%203%204%208%208%2010%206%202%2014-2%2015-9l1-3H85C74%200%2073%200%2073%202m26%200c-3%206%201%2013%207%2015%208%203%2015-3%2015-12V1l-11-1c-9%200-11%200-11%202m24%202c1%208%2010%2013%2017%2011%205-1%2010-7%2010-12V0h-27v4m31-1c-13%2016%206%2038%2023%2027%209-6%2011-18%204-27l-2-3h-23l-2%203m51%201c-3%2011%207%2022%2018%2019%209-2%2014-11%2011-19l-1-4h-27l-1%204m56-3c-2%206%206%2014%2013%2014%206%200%2014-8%2012-13-1-3-24-3-25-1m27%201v7l3%204c8%208%2022%200%2018-10-1-3-1-3-11-3-9%200-9%200-10%202m47%201c-2%204%200%209%205%2011%207%204%2016-4%2013-11-1-3-1-3-9-3s-8%200-9%203m21-2c-2%201-1%206%201%209%206%205%2014%201%2014-6V1l-8-1-7%201m17%201c-1%206%204%209%2010%207%202-1%204-5%203-7s-2-2-6-2c-5%200-6%200-7%202M5%203c-5%205-2%2011%205%2011%206%200%208-7%204-11-3-2-7-3-9%200m13%207l-2%205c0%207%209%2010%2013%205%206-7-5-16-11-10m225%200c-13%206-15%2021-5%2030%2016%2014%2040-6%2028-24-5-7-16-10-23-6m145%201c-3%205%204%2011%209%207l3-1c1%201%201-1%201-3%200-3%200-5-1-4%200%202%200%202-2%200-2-3-7-3-10%201m-13%203c-5%204-2%2012%205%2012%206%200%209-7%205-12-3-2-7-3-10%200M34%2017c-6%206-3%2015%206%2015%205%200%209-4%209-9%200-4-5-9-9-9l-6%203m323-2c-6%203-6%2011%200%2015%208%207%2019-5%2012-13-3-3-9-4-12-2m-79%202c-9%206-9%2019-1%2024%2013%209%2029-7%2020-20-4-6-14-8-19-4M4%2018c-4%205-2%2012%205%2012%206%200%209-7%205-12-3-3-7-3-10%200m116-1c-32%207-37%2050-8%2065%207%204%2023%204%2030%200%2026-14%2026-50%200-62-7-3-15-4-22-3m188%201c-11%207-6%2024%207%2024%205%200%2010-3%2012-8%202-4%202-4%200-9-3-8-12-11-19-7m26%202c-7%206-4%2016%205%2018%207%201%2012-4%2012-11%200-9-10-13-17-7M52%2024c-5%206-4%2013%202%2017%205%203%2011%202%2014-2%2010-10-6-25-16-15m337-2c-6%203-4%2013%204%2013%202%200%206-4%206-7%200-5-6-8-10-6m-197%202c-21%207-33%2026-29%2046%206%2032%2044%2044%2067%2022%2026-24%2010-67-26-69l-12%201M3%2034c-3%201-3%201-3%206%200%208%206%2011%2012%205s0-15-9-11m33%201c-5%202-7%209-4%2015%205%2011%2022%203%2018-8-1-6-9-9-14-7m316%201c-4%204-4%209%200%2013%206%207%2017%201%2015-8-1-7-10-9-15-5m34%202c-4%203-4%208%200%2011%203%203%206%203%209%200%206-7-2-16-9-11M72%2040c-9%203-13%2013-9%2021%207%2014%2029%208%2028-8-1-9-10-15-19-13m258%203c-7%206-3%2019%207%2019%208%200%2013-7%2011-14-3-8-12-11-18-5m-70%201c-15%206-20%2028-9%2040%2014%2014%2036%208%2042-10%205-19-13-37-33-30M16%2045l-4%204c-6%209%207%2019%2015%2011%207-7-1-19-11-15m288%200c-9%205-12%2019-4%2025%2010%209%2025%203%2025-11%200-11-11-18-21-14m69%200c-7%202-8%209-4%2014%204%203%209%203%2012-1s4-5%202-9c-2-2-7-6-8-5l-2%201m-23%2012c-3%202-5%206-3%2010%203%209%2016%209%2019%200%202-6-3-13-9-13-3%200-5%201-7%203m35%200c-3%203-2%208%201%2010%207%206%2016-5%2010-11-3-3-8-3-11%201M45%2056c-11%205-8%2022%204%2024%2014%201%2019-18%207-23-5-2-7-2-11-1M0%2065l1%208h3c4%200%209-4%209-8%200-5-4-8-10-8H0v8m371%200c-4%203-5%207-3%2011%203%206%209%207%2014%202%208-8-3-20-11-13M23%2065c-6%202-8%209-5%2015%204%206%2012%206%2016%201%207-8-2-20-11-16m306%200c-10%204-9%2021%202%2024%2012%204%2021-11%2013-21-4-3-10-5-15-3M78%2072c-21%2010-12%2041%2011%2038%2019-3%2023-30%206-38-5-2-13-2-17%200m312%200c-9%205-3%2020%207%2016h3V76c0-2-5-6-6-5l-4%201M3%2076c-2%201-2%202-2%208%200%207%200%207%203%208%206%203%2012-1%2012-8S9%2073%203%2076m294%202c-11%205-14%2019-7%2029%2011%2016%2035%208%2035-11%200-14-14-24-28-18m56%200c-7%203-8%2013-3%2019%207%206%2016%205%2020-4%205-11-7-21-17-15M43%2084c-6%204-8%2013-4%2019%207%2011%2025%206%2025-7%200-11-12-18-21-12m-23%203c-10%205-7%2021%205%2021%2011%200%2014-16%203-21h-8m110%201a56%2056%200%2000-31%2084c23%2034%2075%2031%2094-4%2011-23%207-49-10-66a56%2056%200%2000-53-14m245%202c-6%206-3%2015%205%2017%2010%201%2016-10%209-17-4-4-10-4-14%200m-136%203c-37%209-50%2056-22%2083%2023%2023%2063%2016%2078-13%2018-38-15-80-56-70m96%202l-5%204c-9%208-3%2023%209%2023s19-14%2011-23c-4-4-9-5-15-4m23%2010c-2%203-3%205-3%208%200%2012%2017%2015%2021%203%204-10-10-19-18-11M5%20106c-9%204-5%2018%206%2018l5-3c9-7%200-21-11-15m384%201c-5%203-6%209-3%2013s6%204%2010%203c4-2%204-2%204-8%200-5%200-6-2-7-3-2-7-2-9-1m-358%201c-8%203-8%2017-1%2021%2013%205%2024-9%2014-18-3-3-9-5-13-3m28%200c-12%206-13%2024%200%2031%2019%209%2034-17%2017-29-4-3-12-4-17-2m316%2014c-5%202-7%2011-3%2015%207%207%2017%203%2017-6%200-7-7-12-14-9m-30%202c-6%203-8%2011-4%2017%209%2013%2028%202%2021-12-2-7-11-9-17-5M9%20128c-9%2010%202%2025%2014%2019%2011-6%207-22-5-22-5%200-6%200-9%203m295%202v2c1%203%2027%203%2027%200%200-2%201-2-17-2h-10m-265%203l-5%203c-9%209-3%2023%2010%2023s17-20%204-25c-4-2-5-2-9-1m349%206c-5%202-7%2010-2%2015s14%201%2014-7c0-6-6-10-12-8m-21%202c-2%200-7%205-8%208-3%2013%2016%2020%2022%207%203-8-4-17-14-15m-300%203c-15%204-15%2025-1%2031%2017%207%2031-16%2017-28-4-5-10-6-16-3m264%201c-11%204-14%2017-7%2025%2010%2011%2027%204%2027-10%200-7-4-13-11-15h-9M5%20149c-6%202-7%2013-2%2017s12%202%2015-5-6-15-13-12m17%2012c-9%207-4%2021%208%2021%208%200%2013-8%2011-15-3-9-13-12-19-6m360-2c-5%203-6%2011-2%2015%203%204%2012%203%2015-2%204-8-6-17-13-13m-81%206c-20%208-16%2035%205%2037%2020%201%2028-25%2010-35-4-3-11-3-15-2M0%20179v9h3c3-1%208-6%208-9%200-5-4-10-9-10-2%200-2%201-2%2010m45-5c-12%207-6%2026%208%2026%2010%200%2017-11%2012-20-4-7-13-10-20-6m350%201c-2%201-5%206-4%209%200%203%204%206%207%206%202%200%202%200%202-8s0-9-5-7m-60%204c-13%207-8%2026%207%2024%2012-2%2015-19%204-24-5-2-7-2-11%200m39%201c-4%202-5%207-4%2011%205%2013%2023%206%2019-7-2-5-10-8-15-4m-185%202c-39%2014-43%2066-7%2084%207%204%207%204%2021%204%2013%200%2013%200%2020-3a46%2046%200%2000-34-85m-177%201c-8%206-4%2018%207%2018%205%200%209-5%209-10%200-8-10-13-16-8m253%207c-8%203-15%2013-15%2023%200%2021%2027%2031%2041%2015%2016-18-3-45-26-38m93%202c-3%202-6%206-6%2010%200%205%207%2010%2012%209%2010-2%2011-15%203-19h-9m34%202c-5%204-2%2013%205%2013%204%200%204%201%201%203-6%202-6%2010%200%2012%203%201%203%202%200%205l-2%204%202%205c2%202%203%204%201%207a359%20359%200%20001-41v-10h-3l-5%202m-363%204c-5%203-6%206-6%2012%201%2010%2014%2015%2021%206%209-10-3-25-15-18m88%201c-16%208-20%2029-7%2042%2019%2021%2053%200%2043-27-4-14-22-21-36-15M4%20201c-3%202-4%2013-1%2016%203%202%209%201%2012-1%206-7-2-19-11-15m306%203c-11%203-15%2016-8%2024%2010%2012%2028%204%2027-11-1-9-11-16-19-13m-256%203c-6%203-8%2013-3%2019%208%2011%2027%200%2022-13-3-7-13-10-19-6m283%200c-9%204-7%2020%202%2023%2012%204%2022-9%2015-20-3-5-12-7-17-3m24%209c-5%205-4%2012%203%2015%208%203%2016-5%2012-13-4-6-10-7-15-2m-282%204c-14%207-8%2029%208%2029%208%200%2015-7%2015-15%200-12-12-19-23-14m302%200c-6%206%201%2017%208%2013%209-4%206-15-2-15l-6%202m-91%2013c-16%206-12%2028%204%2028%208%200%2014-6%2014-14%200-10-9-17-18-14m52%202c-3%202-3%203-3%208%200%2012%2016%2014%2020%202%203-10-9-17-17-10m-289%200c-8%206-5%2016%204%2019%2011%203%2019-11%2010-19-4-3-11-3-14%200m313%200c-8%204-5%2016%205%2016%209%200%2012-12%204-17-4-1-6-1-9%201m-48%200c-6%203-9%2011-7%2017%204%2011%2019%2012%2024%202%206-11-5-24-17-19M2%20236l-1%207v7h3c7%200%2010-7%206-12-2-2-6-3-8-2m17%201c-8%204-6%2016%203%2016s12-12%204-16h-7m365%201c-2%201-2%203-2%206%200%208%2010%2010%2014%203%203-8-5-14-12-9m-131%201c-10%205-12%2019-3%2027%204%204%204%204%2011%204%209%200%2014-3%2017-11%205-14-11-27-25-20m-216%206c-7%203-9%2011-4%2016%209%207%2021-5%2013-13-3-3-6-4-9-3m107%202c-7%202-13%2012-12%2020l1%203h34v-6c0-12-10-20-23-17m-36%205c-4%203-6%207-6%2013l1%205h27v-5c0-9-5-15-14-15l-8%202M3%20254c-5%204-3%2012%204%2012%206%200%209-7%205-12-3-3-6-3-9%200m365%201c-4%205-1%2013%205%2013%205%200%208-2%208-7%200-7-8-10-13-6m-17%200c-5%203-6%207-4%2011%201%204%201%204%207%204l8-1c6-7-3-18-11-14m-333%202c-3%203-4%207-1%2010%204%205%2010%204%2013-1%203-7-6-14-12-9m36%203l-4%206v4h22l-1-4c0-8-11-12-17-6m275%203c-6%206-4%207%207%207h9v-3a9%209%200%2000-16-4m-250-1h-3c-2%200-3%201-3%202%200%203%2026%203%2027%201v-3H79m229%200c-2%202-5%205-5%207l11%201h10c0-7-10-11-16-8m-23%201l-5%204-2%203h11c11%200%2012%200%209-3-3-4-8-5-13-4'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.4778761061946903,"src":"/static/064943fa31d971d2b824e86f7fe70144/8eab8/2022-12-18-23-01-40.png","srcSet":"/static/064943fa31d971d2b824e86f7fe70144/1ec58/2022-12-18-23-01-40.png 334w,\n/static/064943fa31d971d2b824e86f7fe70144/ccb4a/2022-12-18-23-01-40.png 668w,\n/static/064943fa31d971d2b824e86f7fe70144/8eab8/2022-12-18-23-01-40.png 1336w,\n/static/064943fa31d971d2b824e86f7fe70144/6abe5/2022-12-18-23-01-40.png 1764w","srcWebp":"/static/064943fa31d971d2b824e86f7fe70144/f7e47/2022-12-18-23-01-40.webp","srcSetWebp":"/static/064943fa31d971d2b824e86f7fe70144/cd98f/2022-12-18-23-01-40.webp 334w,\n/static/064943fa31d971d2b824e86f7fe70144/7535d/2022-12-18-23-01-40.webp 668w,\n/static/064943fa31d971d2b824e86f7fe70144/f7e47/2022-12-18-23-01-40.webp 1336w,\n/static/064943fa31d971d2b824e86f7fe70144/c2c62/2022-12-18-23-01-40.webp 1764w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":12,"excerpt":"れこです。当記事では Google カレンダーのイベントの開始数分前に、イベントに紐づいたリモートミーティングの URL を自動で開く Chrome 拡張を作ったのでその紹介をしたいと思います。 TL;DR インストールはこちら（Chrome ウェブストア） OSS…","fields":{"slug":"/crx-gcal-url-opener/"},"frontmatter":{"date":"July 05, 2022","title":"Googleカレンダーのイベントの開始数分前にリモートミーティングのURLを自動で開くChrome拡張を作った","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='284'%20viewBox='0%200%20400%20284'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2096v96l2%202c3%202%205%207%205%208l-4%202c-3%201-3%202-3%205s0%204%201%203l4%202%202%202-3%203-4%203v46h91V65h249v4c0%202%200%203%202%203s2%201%202%203%200%203-2%202v2c-2%200-2%205-2%2098v98H113l2%203%201%204c0%202%207%202%20142%202h142v-14l1-142V0H0v96m0%201'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.409282700421941,"src":"/static/332f9bba3bf334a1b4aa37558c8c47e2/05d05/2022-07-12-19-12-10.png","srcSet":"/static/332f9bba3bf334a1b4aa37558c8c47e2/1ec58/2022-07-12-19-12-10.png 334w,\n/static/332f9bba3bf334a1b4aa37558c8c47e2/ccb4a/2022-07-12-19-12-10.png 668w,\n/static/332f9bba3bf334a1b4aa37558c8c47e2/05d05/2022-07-12-19-12-10.png 1080w","srcWebp":"/static/332f9bba3bf334a1b4aa37558c8c47e2/54d25/2022-07-12-19-12-10.webp","srcSetWebp":"/static/332f9bba3bf334a1b4aa37558c8c47e2/cd98f/2022-07-12-19-12-10.webp 334w,\n/static/332f9bba3bf334a1b4aa37558c8c47e2/7535d/2022-07-12-19-12-10.webp 668w,\n/static/332f9bba3bf334a1b4aa37558c8c47e2/54d25/2022-07-12-19-12-10.webp 1080w","sizes":"(max-width: 1080px) 100vw, 1080px"}}}}}},{"node":{"timeToRead":9,"excerpt":"突然ですがこういうツイートを見たことないでしょうか。どの界隈で流行ってるのかわかりませんがWordleというゲームが密かに人気を集めています。 ルールは非常にシンプルで、フィードバックを頼りに５文字の英単語を予測するゲームです。…","fields":{"slug":"/wordle-solver/"},"frontmatter":{"date":"January 16, 2022","title":"Wordleという単語当てゲームのsolverを考える","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='324'%20viewBox='0%200%20400%20324'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%20162v162h401V0H0v162M7%2044v36h73V7H7v37m236%200v36h73V8l-37-1h-36v37m109-13c-9%204-7%2011%203%2015%206%203%208%205%206%206-3%202-5%201-7-1-4-4-8-4-8-1%200%207%2012%2010%2019%207%207-4%205-14-4-16-7-2-8-3-7-5%202-2%205-1%207%201%202%203%207%203%207-1-1-5-10-8-16-5M113%2043c-6%2017-6%2015-2%2015%203%200%204-1%205-3%201-3%202-3%206-3s4%200%205%203%202%203%205%203c4%200%204%200-2-15l-5-12-3-1h-4l-5%2013m78%201l1%2014h19v-6h-13V30h-7v14m-75%2065c-13%206-9%2028%205%2028%209%200%2014-5%2014-14%200-11-9-18-19-14m-83%2014v14h7v-10h5c7%200%2010-3%2010-9%200-7-4-9-14-9h-8v14m164%200v14h7v-28h-7v14m70%200v14h7v-8l1-7%204%207c4%207%205%208%208%208h4v-28h-7v16l-5-8c-5-7-5-8-9-8h-3v14m79-11c0%203%200%203%204%203h4v22h7v-22h4c4%200%204%200%204-3v-3h-23v3m-229%206c-4%206-1%2013%205%2013%204%200%206-3%206-9%200-7-8-10-11-4m-31%2084v36h72v-72H86v36m235-1v36h73v-71h-73v35m-290%201v14h9c11-1%2015-3%2016-12%201-11-4-16-17-16h-8v14m154%200v14h7v-15l2%206c4%209%204%209%206%209s3-1%205-6c4-10%204-10%204-2v8h6v-28h-5l-4%201-3%208-3%208-2-8-3-9h-10v14m82%200v14h4c3%200%203%200%203-4s1-7%203-7l4%206c4%205%204%205%208%205%205%200%205%200-1-9l-6-8%205-5c6-5%206-6%201-6-3%200-4%201-9%205l-5%205v-10h-7v14m-229%200v8h4c4%200%207-3%207-8s-3-8-7-8h-4v8M7%20281v36h73v-72H7v36m79%200v36h72v-72H86v36m78%200v36h72v-72h-72v36m79%200v36h72v-72h-72v36m78%200v36h73v-72h-73v36'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.2324723247232472,"src":"/static/9197852c4e80711524c0453d3cee831a/8b3ba/2022-01-10-21-48-28.png","srcSet":"/static/9197852c4e80711524c0453d3cee831a/1ec58/2022-01-10-21-48-28.png 334w,\n/static/9197852c4e80711524c0453d3cee831a/8b3ba/2022-01-10-21-48-28.png 597w","srcWebp":"/static/9197852c4e80711524c0453d3cee831a/a271b/2022-01-10-21-48-28.webp","srcSetWebp":"/static/9197852c4e80711524c0453d3cee831a/cd98f/2022-01-10-21-48-28.webp 334w,\n/static/9197852c4e80711524c0453d3cee831a/a271b/2022-01-10-21-48-28.webp 597w","sizes":"(max-width: 597px) 100vw, 597px"}}}}}},{"node":{"timeToRead":23,"excerpt":"今年も GitHub のトレンドで 2021 年の JavaScript/TypeScript を振り返ります。去年の記事はこちらです。 — GitHub のトレンドで振り返る 2020 年の JavaScript | WEB EGG 集計方法 GitHub…","fields":{"slug":"/2021-javascript-typescript-trending-history/"},"frontmatter":{"date":"December 21, 2021","title":"GitHubのトレンドで振り返る2021年のJavaScript/TypeScript","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='240'%20viewBox='0%200%20400%20240'%20preserveAspectRatio='none'%3e%3cpath%20d='M18%201c-2%201-4%206-3%209%201%208%2013%209%2017%201%203-7-5-14-14-10m76%204c-3%206-3%2016-1%2024%209%2024%2040%2032%2058%2014%2011-11%2015-28%209-40l-2-3H96l-2%205m78%200c-16%2021-9%2052%2015%2063%2040%2018%2077-30%2049-64l-3-4h-57l-4%205m65-4c0%204%2011%2012%2018%2012s18-8%2018-12l-18-1-18%201m39%201c0%2013%2021%2017%2026%205%204-7%204-7-12-7-13%200-14%200-14%202m55%200c-9%206-6%2019%205%2021%2011%201%2017-12%209-19-4-4-9-5-14-2m51%200c-1%204%205%209%2010%207%203-1%206-5%205-7-1-3-14-3-15%200M42%204c-9%205-5%2020%206%2020%207%200%2011-4%2011-11%200-8-9-14-17-9m329%201c-8%205-5%2016%203%2016%2011%200%2012-15%201-16h-4M4%2010c-3%202-4%203-4%208%200%207%208%2010%2013%204%205-7-2-16-9-12m298%201c-10%207-9%2021%201%2026%208%204%2016%201%2020-6%207-14-8-28-21-20m-39%202c-9%203-15%2013-15%2022%200%2021%2024%2031%2038%2018%2020-17%201-48-23-40m123%201c-5%205-2%2013%205%2013%206%200%209-10%205-13-3-3-8-2-10%200m-36%203c-6%206-2%2017%207%2017%204%200%209-4%2010-7%203-10-10-17-17-10M28%2018c-7%201-9%2011-4%2016%209%209%2022-4%2014-13l-4-3h-6m343%207c-5%204-5%2014%201%2017%2011%205%2020-8%2012-16-4-4-9-4-13-1m-40%201c-16%209-4%2031%2012%2023%204-2%208-9%206-14-2-8-12-12-18-9M45%2028c-7%205-7%2016%200%2021%208%205%2019%200%2019-10%200-11-11-16-19-11M5%2030c-4%204-4%2010%200%2013%2010%208%2022-4%2013-13-4-4-10-4-13%200m73%208c-6%201-12%208-13%2013-6%2021%2021%2035%2035%2019%2013-16-3-39-22-32m311%200c-8%204-6%2017%204%2017l5-1%202-1c1%201%201%200%201-3l-1-7c0-4-5-7-11-5m-33%201c-6%203-9%2010-7%2016%205%2012%2022%209%2024-3%201-9-8-16-17-13M23%2041c-7%204-6%2014%202%2018%2011%205%2020-8%2012-17-4-4-9-4-14-1m278%202c-16%208-16%2029-1%2036%2024%2012%2042-23%2019-36-4-2-14-3-18%200M42%2055c-9%205-8%2020%202%2024%2015%208%2028-15%2013-24-4-3-11-3-15%200m91-1a57%2057%200%2000-30%2097%2057%2057%200%201043-98l-13%201m244%200c-6%203-8%2012-3%2016%207%207%2017%203%2017-7%200-4-4-9-7-9h-7m21%203v8c3%202%202%204%200%204-2-1-8%201-9%204-3%206%201%2013%208%2013%203%200%203%200%203%205l1-9c0-19-1-28-3-25M10%2058c-7%204-7%2014-1%2018%205%203%209%203%2013-1%208-9-1-21-12-17m237%202c-42%206-58%2057-29%2087a51%2051%200%201029-87m91%200c-14%207-9%2027%206%2027%2017%200%2019-26%201-28l-7%201m26%2013c-12%206-7%2024%206%2024s17-19%205-24h-11M24%2077c-6%203-8%2013-3%2018%205%206%2016%205%2019-2%206-11-5-22-16-16m38%201c-11%205-12%2021-2%2028%204%203%2015%203%2019%200%2013-9%207-29-8-30-4%200-7%200-9%202M2%2079l-1%209%201%209h3c9%201%2013-10%207-16-3-3-7-4-10-2m348%2015c-7%202-10%206-10%2013%200%206%206%2012%2012%2012%209%200%2015-8%2013-16-1-4-6-9-8-9h-7M38%2099l-6%204c-13%2012%202%2033%2018%2025%2017-9%207-33-12-29m334%207c-9%205-8%2017%201%2021%204%203%209%202%2013-3%208-9-3-24-14-18m-46%2010c-6%204-8%207-8%2014%200%2020%2028%2021%2030%201%201-12-11-20-22-15m66%201c-4%205-1%2015%205%2015l3%201v-13c0-6-3-7-8-3m-327%201c-7%203-12%2012-10%2018%204%2020%2032%2018%2032-2%200-12-12-20-22-16m-61%202c-3%201-3%201-3%209s2%2010%208%2010c11%200%2014-15%204-19-4-2-5-2-9%200m351%207c-10%207-4%2023%208%2022%2010-2%2014-14%207-21-4-3-11-4-15-1m-331%204c-6%202-8%2010-5%2016%205%209%2017%209%2022-1%205-11-7-21-17-15m355%200c-3%203-4%207-2%2012%202%206%2010%207%2015%202%209-8-4-21-13-14m19%207c-1%203-1%208%201%209%202%202%201%204-1%203-5-2-10-1-13%204-4%207%205%2016%2013%2012%203-1%202%200%200%203-4%203-5%207-2%2010%204%206%205%203%205-20%200-19-1-25-3-21m-98%204c-17%209-13%2035%207%2038%2012%201%2022-8%2022-20%200-15-15-24-29-18M3%20142c-2%201-2%203-2%209v8l4%201c7%201%2013-6%2011-12-2-5-9-8-13-6m339%204c-10%202-14%2014-7%2022%209%2011%2028%201%2023-13-2-7-10-11-16-9m-298%202c-9%206-9%2020%202%2024%206%203%2010%202%2015-3%2011-11-3-29-17-21m321%203c-6%207-2%2018%208%2017%208%200%2012-11%206-17-4-3-10-3-14%200m-168%200a44%2044%200%201051%2055c8-31-20-60-51-55m-178%204c-10%205-7%2020%205%2020%2010%200%2013-16%203-20h-8M1%20169l1%209c3%200%205-1%207-4%202-5%200-11-6-12-2-1-2-1-2%207m263-5c-21%209-16%2040%206%2042%2015%201%2025-9%2024-24s-17-24-30-18m115%204c-4%202-5%207-4%2011%204%2010%2017%207%2017-3%200-7-7-11-13-8m-20%201c-7%203-10%2012-4%2017%208%209%2022-1%2016-12-2-5-8-7-12-5m-234%201c-29%208-25%2051%205%2053%2024%201%2037-26%2022-45-6-6-18-10-27-8m-92%204c-7%203-9%209-6%2015%205%2010%2018%2010%2022%200%205-10-6-21-16-15m298%201c-6%204-8%2011-5%2017%207%2016%2030%206%2024-11-3-6-13-9-19-6m-321%202c-3%201-6%207-5%2010%203%207%2011%209%2016%203%207-8-2-19-11-13m292%207c-14%207-8%2029%208%2028s20-21%206-28c-5-3-8-3-14%200m-246%201c-6%203-9%2013-5%2020%207%2011%2024%206%2024-8%200-10-9-16-19-12m323%204c-6%207%200%2017%209%2014%206-2%207-8%203-13-3-4-9-4-12-1m-361%209c-2%202-3%203-3%206%200%209%2010%2013%2016%207%209-9-3-21-13-13m61%201c-4%204-4%205-4%2010%200%2013%2011%2020%2022%2014%2014-7%208-28-8-28-5%200-6%200-10%204m259%205c-7%207-3%2019%208%2019%206%200%2011-5%2011-11%200-10-12-15-19-8m59%201c-2%203-1%205%201%208%203%203%203%203-1%207l-3%204c0%202%204%206%205%206l1%202-2%201c-2%200-5%203-5%206%200%202%207%201%207-1v-33c0-3-2-2-3%200m-360%203c-8%208%203%2021%2012%2015%204-3%205-7%204-11-2-7-11-10-16-4m347-2c-5%203-6%208-3%2012%204%206%2014%202%2014-5%200-6-7-10-11-7m-127%201c-13%203-18%2019-8%2029%204%204%204%204%2012%204%207%200%208%200%2011-3%2014-11%203-34-15-30m31%206c-8%204-10%2015-3%2022%209%209%2022%204%2024-8%201-11-10-19-21-14m31-1c-3%201-7%205-8%209-2%2011%2012%2018%2020%2010%209-9%200-24-12-19M6%20214c-7%207%202%2019%2011%2014%207-5%203-16-6-16l-5%202m54%200c-8%204-8%2016%201%2019%205%203%2012%201%2015-6%203-9-7-18-16-13m306-1l-4%205c-3%208%207%2015%2014%209%207-7-2-19-10-14m-216%206c-8%203-13%2010-13%2017v4h37v-4c0-7-6-15-14-17h-10m-127%204c-3%203-4%205-1%2010%205%208%2018%202%2015-7-3-7-9-8-14-3m329%201c-6%202-8%207-6%2012l2%204h6c6%200%207%200%208-2%205-7-2-17-10-14m32%200c-6%203-4%2013%203%2013%206%200%209-7%205-12-3-2-4-2-8-1m-268%201c-5%202-9%208-9%2013%200%202%201%202%2014%202h14v-3c0-9-11-16-19-12m-73%202c-3%201-5%205-5%209l1%204h8c8%200%208%200%209-2%201-7-6-14-13-11m-34%207c-3%204-2%205%205%206%207%200%207%200%207-2%200-7-8-9-12-4m358%200c-4%205-3%206%206%206%206%200%207%200%207-2%200-3-4-7-7-7s-4%201-6%203m-136%200c-4%201-7%204-7%205l12%201c14%200%2015-1%209-5-5-3-10-3-14-1'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.6616915422885572,"src":"/static/12a1926817238f0a90f837719e1b2e6d/0fba7/2021-12-20-20-37-48.png","srcSet":"/static/12a1926817238f0a90f837719e1b2e6d/1ec58/2021-12-20-20-37-48.png 334w,\n/static/12a1926817238f0a90f837719e1b2e6d/ccb4a/2021-12-20-20-37-48.png 668w,\n/static/12a1926817238f0a90f837719e1b2e6d/0fba7/2021-12-20-20-37-48.png 872w","srcWebp":"/static/12a1926817238f0a90f837719e1b2e6d/0390e/2021-12-20-20-37-48.webp","srcSetWebp":"/static/12a1926817238f0a90f837719e1b2e6d/cd98f/2021-12-20-20-37-48.webp 334w,\n/static/12a1926817238f0a90f837719e1b2e6d/7535d/2021-12-20-20-37-48.webp 668w,\n/static/12a1926817238f0a90f837719e1b2e6d/0390e/2021-12-20-20-37-48.webp 872w","sizes":"(max-width: 872px) 100vw, 872px"}}}}}},{"node":{"timeToRead":14,"excerpt":"Goyaという形態素解析器を Rust で作りました。本記事は利用者目線で Goya…","fields":{"slug":"/goya-yet-another-japanese-morphological-analyzer/"},"frontmatter":{"date":"November 27, 2021","title":"WebAssemblyの形態素解析器GoyaをRustで作った","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='236'%20viewBox='0%200%20400%20236'%20preserveAspectRatio='none'%3e%3cpath%20d='M14%20189l34%201%2036-1-35-1-35%201'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.6954314720812182,"src":"/static/2f5360409c74a20d0fb513eb75283c58/3a46b/2021-10-23-13-31-45.png","srcSet":"/static/2f5360409c74a20d0fb513eb75283c58/1ec58/2021-10-23-13-31-45.png 334w,\n/static/2f5360409c74a20d0fb513eb75283c58/3a46b/2021-10-23-13-31-45.png 593w","srcWebp":"/static/2f5360409c74a20d0fb513eb75283c58/74aa6/2021-10-23-13-31-45.webp","srcSetWebp":"/static/2f5360409c74a20d0fb513eb75283c58/cd98f/2021-10-23-13-31-45.webp 334w,\n/static/2f5360409c74a20d0fb513eb75283c58/74aa6/2021-10-23-13-31-45.webp 593w","sizes":"(max-width: 593px) 100vw, 593px"}}}}}},{"node":{"timeToRead":22,"excerpt":"れこです。この記事はNode.js Advent Calendar 2020の 12 日目の記事です。今回は年の瀬ということで酒の肴になりそうな記事を書きたいと思います。 本記事では 2020 年に GitHub…","fields":{"slug":"/2020-js-ts-trending-history/"},"frontmatter":{"date":"December 11, 2020","title":"GitHubのトレンドで振り返る2020年のJavaScript","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='220'%20viewBox='0%200%20400%20220'%20preserveAspectRatio='none'%3e%3cpath%20d='M14%202c-1%206%201%209%206%2012%207%203%2015-2%2015-10V0H25C15%200%2014%200%2014%202m45%201c0%2021%2033%2023%2035%202V0H59v3m37%202c-6%2025%2016%2049%2041%2044%2021-4%2034-25%2029-45l-1-4H97l-1%205m82%200c-27%2029-2%2076%2037%2069%2032-5%2046-45%2023-69l-4-5h-52l-4%205m60-4c0%202%205%206%208%208%209%204%2020%202%2026-6l2-3h-18l-18%201m45%202l7%205c6%201%2011-1%2015-5l4-3h-29l3%203m34-1c4%204%2012%205%2018%202%207-3%206-4-7-4-11%200-12%200-11%202m53%200c-2%203-2%206%200%2010%205%2011%2022%203%2018-8l-2-4h-7c-7%200-8%200-9%202m19-1c0%204%206%208%209%206%202%200%202%200%202%202%200%201-1%202-3%201l-6%202c-6%205-2%2015%205%2014%204-1%205-4%205-17V1l-6-1-6%201M1%2012c0%2011%200%2012%207%209%208-4%205-19-4-19H1v10m351-9c-10%202-13%2015-6%2022%208%207%2020%202%2021-8%202-8-7-16-15-14M44%206c-16%205-11%2028%205%2027%2015-2%2017-21%204-26-4-2-5-2-9-1m228%202c-30%209-26%2051%205%2054%2016%201%2029-11%2029-28S288%204%20272%208m45%201c-6%203-11%2012-10%2019%204%2020%2034%2018%2034-3%200-12-12-20-24-16M15%2017c-9%205-10%2018-1%2024%208%205%2020-1%2020-11S24%2014%2015%2017m355%204c-11%207-3%2024%209%2020%2010-3%2011-16%202-21-4-2-7-1-11%201M73%2023c-11%201-19%2013-19%2024%200%2024%2030%2033%2044%2013%204-5%205-15%203-22-3-10-16-17-28-15M0%2038c0%2011%200%2012%204%207%204-4%204-10%200-14-4-5-4-4-4%207m395-9c-3%201-6%204-7%207-2%206%203%2013%209%2013h3V39c0-12%200-12-5-10m-51%203c-9%207-9%2020%201%2026%2012%207%2027-7%2020-20-2-5-7-8-13-8l-8%202M30%2042c-5%202-10%209-10%2014-1%2014%2016%2022%2026%2013%209-8%208-20-1-26-4-2-12-3-15-1m346%203c-8%202-11%208-9%2015%203%2011%2018%2014%2024%204%206-11-4-23-15-19m-65%201c-18%207-18%2033%200%2040%2016%207%2034-8%2030-25-3-13-18-21-30-15M2%2050c-2%200-2%200-2%2013v12l3%201c3%200%205%200%208-2%2014-7%207-27-9-24m122%203c-18%203-36%2017-44%2034a65%2065%200%201044-34m272%207c-4%204-4%2010%200%2015s4%204%204-8V57l-4%203m-149%203c-29%208-47%2036-41%2064a54%2054%200%201067-63c-8-2-20-2-26-1m106%200c-11%203-15%2016-8%2025%209%2012%2029%205%2028-11-1-10-11-17-20-14M53%2069c-11%202-18%2013-15%2024%206%2021%2038%2017%2038-5%200-13-11-21-23-19m-39%206c-15%209-3%2033%2013%2025%205-2%208-7%208-13%200-11-12-18-21-12m368-1c-9%203-11%2018-2%2023%204%202%2011%201%2015-2%209-9%200-25-13-21m-57%2016c-12%207-12%2025%200%2032%2014%207%2029-4%2027-19-3-12-17-19-27-13M0%20105l1%2012c2%200%207-5%209-8%202-5%201-10-3-14-6-6-7-5-7%2010m361-9c-7%204-8%2014-3%2020%209%2010%2024%205%2024-9%200-10-12-17-21-11m31%203c-8%206-5%2018%205%2019l3%201v20l-4%202c-7%203-8%2011-3%2017l5%204%202%202V97h-3l-5%202m-365%203c-17%207-15%2033%204%2036%208%201%2018-5%2020-14%204-14-10-27-24-22m353%2017c-7%205-9%2014-3%2020%2010%209%2026-2%2021-14-3-7-12-10-18-6M1%20132v12h3l5-2c10-7%206-23-5-23H1v13m346-9c-9%204-13%2014-9%2023%206%2015%2027%2015%2033%200%207-15-10-31-24-23m-294%208c-10%204-15%2014-13%2023%205%2019%2031%2020%2037%201%205-14-10-29-24-24m-38%209c-12%209-7%2027%208%2027%2011%200%2018-11%2013-21-4-8-14-10-21-6m298%204c-19%208-17%2035%202%2041%2023%206%2037-25%2018-38-5-4-15-5-20-3m58%209c-12%207-8%2024%206%2026%206%200%2011-3%2013-9%205-12-8-23-19-17m-174%207c-15%203-29%2018-33%2033-1%205-2%2017%200%2023l1%204h87l1-4c6-24-8-48-31-55-7-2-19-3-25-1m-121%205c-20%206-22%2034-4%2043%2024%2011%2045-19%2026-37-5-6-15-8-22-6m-72%203l-4%202v9c0%2012%202%2014%2010%2014%2016%200%2019-22%204-26-5-1-5-1-10%201m29%201c-14%209-8%2030%209%2030%2010%200%2017-8%2016-18-1-11-15-18-25-12m241%201c-17%206-24%2028-12%2043%204%206%207%207%2021%207h12l5-5c20-20%201-53-26-45m75%201c-16%205-12%2028%205%2028%2012%200%2019-16%2010-25l-5-3c-5-2-7-2-10%200m46%200c-8%204-6%2018%203%2018%202%200%202%200%202-10%200-11%200-11-5-8m-20%2011c-3%202-6%206-6%2011%200%2011%2016%2015%2021%205%206-10-4-20-15-16m-256%204c-11%205-17%2014-17%2026v8h59v-8c-1-22-23-35-42-26m199%204c-5%203-10%2015-7%2016v2c0%203%204%208%208%2010%2018%209%2033-16%2016-28-4-3-12-3-17%200M0%20203c0%2010%200%2011%202%2010%207-4%208-16%200-20-2-1-2-1-2%2010m15-6c-6%204-8%2013-3%2020%202%203%202%203%2011%203s9%200%2011-3c9-12-6-28-19-20m379-1c-5%204-4%2012%201%2015%204%202%205%202%205-7%200-10-1-11-6-8m-346%204c-6%202-10%209-10%2016l1%204h29v-3c2-6-4-15-11-17h-9m301%203c-4%203-6%209-6%2013l1%204h24l1-3c3-11-10-20-20-14m25%206l-3%207v4h23v-3c0-10-12-15-20-8m-296%204l-6%204-2%203h29l-2-3c-5-5-13-6-19-4'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.815217391304348,"src":"/static/92107317d984051ee375454738e070f0/74d73/2020-12-09-01-19-48.png","srcSet":"/static/92107317d984051ee375454738e070f0/1ec58/2020-12-09-01-19-48.png 334w,\n/static/92107317d984051ee375454738e070f0/ccb4a/2020-12-09-01-19-48.png 668w,\n/static/92107317d984051ee375454738e070f0/74d73/2020-12-09-01-19-48.png 737w","srcWebp":"/static/92107317d984051ee375454738e070f0/f4042/2020-12-09-01-19-48.webp","srcSetWebp":"/static/92107317d984051ee375454738e070f0/cd98f/2020-12-09-01-19-48.webp 334w,\n/static/92107317d984051ee375454738e070f0/7535d/2020-12-09-01-19-48.webp 668w,\n/static/92107317d984051ee375454738e070f0/f4042/2020-12-09-01-19-48.webp 737w","sizes":"(max-width: 737px) 100vw, 737px"}}}}}},{"node":{"timeToRead":19,"excerpt":"2020/10/20にNode.js v15がリリースされました 🎉 色々新機能や破壊的変更が加わっているので、詳しくは公式のリリースノート等をご参照ください。 — Node.js v15.0.0 is here!. This blog was written by…","fields":{"slug":"/http-over-quic-on-nodejs15/"},"frontmatter":{"date":"October 25, 2020","title":"Node.jsのHTTP over QUIC(HTTP/3)を試す","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='136'%20viewBox='0%200%20400%20136'%20preserveAspectRatio='none'%3e%3cpath%20d='M63%2026L45%2037l6%204c6%204%206%204%205%206-2%201-3%200-8-3l-9-3c-2%200-5%202-3%203l6%203c6%204%206%204%204%205s-3%201-7-2c-7-4-12-4-15%200-3%203-3%203-3%2018l1%2017c2%203%2058%2036%2062%2036l39-22a492%20492%200%2000-56-33c0-4%206-1%2031%2013%2026%2016%2032%2018%2034%2015l-28-17C79%2063%2076%2061%2078%2059l2-1a11942%2011942%200%200157%2032c3%200%208-3%209-6%202-5%201-31-1-34-4-4-58-34-61-34s-8%203-21%2010m183%2018h-6v18l1%2018%204%204c5%203%206%203%2017%203s11%200%2017-3l5-3V44h-12v32h-19l-1-16V44h-6m66%200h-6v43h12V43l-6%201m52%200c-14%200-15%201-19%203l-5%203v15l1%2015%204%204%205%203h28V76h-26V55h26V43l-14%201m-190%203l-4%204-1%2014c0%2016%200%2016%207%2020%204%202%206%202%2015%202%2010%200%2011%200%2016%203%206%204%209%204%2015%200%206-3%206-3%201-6l-5-2V51l-5-4-5-3h-29l-5%203m8%2019v10h23V55h-23v11'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.9557522123893807,"src":"/static/0e40d75dae683074c1af61e73faf0fd2/8eab8/2020-10-26-21-50-02.png","srcSet":"/static/0e40d75dae683074c1af61e73faf0fd2/1ec58/2020-10-26-21-50-02.png 334w,\n/static/0e40d75dae683074c1af61e73faf0fd2/ccb4a/2020-10-26-21-50-02.png 668w,\n/static/0e40d75dae683074c1af61e73faf0fd2/8eab8/2020-10-26-21-50-02.png 1336w,\n/static/0e40d75dae683074c1af61e73faf0fd2/ed396/2020-10-26-21-50-02.png 2000w","srcWebp":"/static/0e40d75dae683074c1af61e73faf0fd2/f7e47/2020-10-26-21-50-02.webp","srcSetWebp":"/static/0e40d75dae683074c1af61e73faf0fd2/cd98f/2020-10-26-21-50-02.webp 334w,\n/static/0e40d75dae683074c1af61e73faf0fd2/7535d/2020-10-26-21-50-02.webp 668w,\n/static/0e40d75dae683074c1af61e73faf0fd2/f7e47/2020-10-26-21-50-02.webp 1336w,\n/static/0e40d75dae683074c1af61e73faf0fd2/37117/2020-10-26-21-50-02.webp 2000w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":7,"excerpt":"注意：この記事にはSPY×FAMILY SPECIAL MISSION上級編の直接的なネタバレが含まれます 注意：この記事で述べる方法は一切謎解きではありません。完全に邪道です。そういうのが大丈夫な方だけ先へお進みください SPYxFAMILY…","fields":{"slug":"/hack-spy-family-advanced-missions/"},"frontmatter":{"date":"September 12, 2020","title":"SPY×FAMILY SPECIAL MISSION上級編を一切謎を解かずに突破する","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='144'%20viewBox='0%200%20400%20144'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2072v72h401V0H0v72m19-2v38h381V32H19v38'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.783333333333333,"src":"/static/549f72b64bf1e4367de27c382ca3c479/8eab8/2020-09-13-02-27-41.png","srcSet":"/static/549f72b64bf1e4367de27c382ca3c479/1ec58/2020-09-13-02-27-41.png 334w,\n/static/549f72b64bf1e4367de27c382ca3c479/ccb4a/2020-09-13-02-27-41.png 668w,\n/static/549f72b64bf1e4367de27c382ca3c479/8eab8/2020-09-13-02-27-41.png 1336w,\n/static/549f72b64bf1e4367de27c382ca3c479/1fe8a/2020-09-13-02-27-41.png 1498w","srcWebp":"/static/549f72b64bf1e4367de27c382ca3c479/f7e47/2020-09-13-02-27-41.webp","srcSetWebp":"/static/549f72b64bf1e4367de27c382ca3c479/cd98f/2020-09-13-02-27-41.webp 334w,\n/static/549f72b64bf1e4367de27c382ca3c479/7535d/2020-09-13-02-27-41.webp 668w,\n/static/549f72b64bf1e4367de27c382ca3c479/f7e47/2020-09-13-02-27-41.webp 1336w,\n/static/549f72b64bf1e4367de27c382ca3c479/7c5cc/2020-09-13-02-27-41.webp 1498w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":13,"excerpt":"JSConf JP 201…","fields":{"slug":"/jsconf-jp-2019/"},"frontmatter":{"date":"December 03, 2019","title":"JSConf JP 2019スタッフ参戦後記","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='153'%20viewBox='0%200%20400%20153'%20preserveAspectRatio='none'%3e%3cpath%20d='M88%2035c-14%202-26%2012-33%2025-3%207-3%208-3%2019s0%2012%203%2018c9%2021%2032%2031%2053%2025l6-2-3-2c-4-2-8-8-6-10%201-2%206-1%207%202%201%202%203%203%206%204l4%201-3%202c-4%202-4%203%202%203%209-2%2014-7%2012-14v-2l-3%203c-3%204-4%204-5%202%200-2-2-3-7-5-11-3-15-8-11-15%205-9%2025-6%2025%204%200%203-6%203-8%200-2-5-11-5-11%200%200%202%202%203%209%205l8%203c2%203%203%202%205-3%2015-32-12-69-47-63m148%2011c-2%201-1%2014%201%2014l1-2c0-2%201-3%202-3%203%200%206-3%206-5%200-3-8-7-10-4m-76%2024c0%202%200%203%201%202%200-2%200-2%202%200h3l1-1%201-1v3l2-2h1l1%202%201-1h1l3%201v-2l2%201h1l1-2v4l1-2%201-1c0%202%206%203%206%201h1l2%201v-2l2%201%201-1c1-2%200-2-1-2h-6c-2-2-3-2-3-1%200%202-6%202-8%201h-1c-2%201-11%201-11-1l-1%201h-1c-2-3-3-2-3%201M92%2098v15h-3c-4%200-5-1-5-5%200-2-1-2-3-2-4%200-4%200-4%203%200%207%207%2012%2015%2010%207-2%207-3%208-20V84h-8v14'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.609375,"src":"/static/a5382a0a7242777dc85e50e023ced1c0/8eab8/2019-12-02-22-13-17.png","srcSet":"/static/a5382a0a7242777dc85e50e023ced1c0/1ec58/2019-12-02-22-13-17.png 334w,\n/static/a5382a0a7242777dc85e50e023ced1c0/ccb4a/2019-12-02-22-13-17.png 668w,\n/static/a5382a0a7242777dc85e50e023ced1c0/8eab8/2019-12-02-22-13-17.png 1336w,\n/static/a5382a0a7242777dc85e50e023ced1c0/57e46/2019-12-02-22-13-17.png 1574w","srcWebp":"/static/a5382a0a7242777dc85e50e023ced1c0/f7e47/2019-12-02-22-13-17.webp","srcSetWebp":"/static/a5382a0a7242777dc85e50e023ced1c0/cd98f/2019-12-02-22-13-17.webp 334w,\n/static/a5382a0a7242777dc85e50e023ced1c0/7535d/2019-12-02-22-13-17.webp 668w,\n/static/a5382a0a7242777dc85e50e023ced1c0/f7e47/2019-12-02-22-13-17.webp 1336w,\n/static/a5382a0a7242777dc85e50e023ced1c0/af658/2019-12-02-22-13-17.webp 1574w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":11,"excerpt":"この記事は闇の魔術に対する防衛術 Advent Calendar 2019…","fields":{"slug":"/ocr-web-gl-with-tesseract-js/"},"frontmatter":{"date":"November 27, 2019","title":"寿司打の限界を目指して ~WebGLのOCR~","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='336'%20viewBox='0%200%20400%20336'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%20168v168h401V0H0v168M30%2021v7l-1%206h340V20H200L30%2021m126%2023c-2%202-3%207-1%2010%201%203%206%203%208%200%205-7-2-16-7-10m40-1l1%201%202%203c-1%202-3%203-3%201l-1-3c-1-1-2%200-2%205l1%207%201-3c0-4%200-4%203-4%204%200%205-1%204-3v-1l-1-1c-1-2-1-2%201-2s2%201%202%203l1%206c0%201%200%202-3%202l-2%201%202%201c4%203%205%202%205-7l-1-6-5-1-5%201M5%20171v128l1-127V45h12l11-1H5v127M30%2066v195h325l7-7%207-6V66l-170-1-169%201m28%2013c-17%204-20%206-20%209%200%204%209%2036%2011%2037%202%202%204%201%2021-3%2014-4%2017-5%2018-7l2-3-4-18c-5-17-7-20-10-20l-18%205m1%202l-17%206c-1%201%206%2032%208%2035%201%202%2033-6%2036-8%201-2-3-18-7-32-2-6-2-6-20-1m179%201l-2%201c-1%201-2%202-1%203l-1%202-1%201c1%201%200%202-1%202l-1%202h1l1%201v1l3-1%201-2%201%201c-1%201%202%204%203%203l1-3c0-2%201-3%202-3l1-1-2-1-2-1v-3l-1-2h-2m-132%201v11c3%203%2010%200%208-4v-4c0-3-1-4-4-4l-4%201m49%201c-4%203-1%2011%203%2011s6-7%204-11c-1-3-5-3-7%200m21-1l1%201%201%203c-1%201-2%201-3-1l-2-2v5l1%206%201-2c0-2%201-3%202-3%204-1%205-1%205%201l-1%201c-3%200-2%202%200%203%203%202%204%200%204-7l-1-5-4-1-4%201m73%200c-1%200-1%201%201%202v1c-2%200-3%202-1%202v1c-2%201-1%204%201%204l4%201c4%203%205%201%205-6v-5l-4-1-6%201M71%2091v4l-1%202-2-2c0-4-1-4-3%201-1%203-1%204%201%205v2l1%202c2%201%204-2%203-4l1-2c1-1%201%200%201%202%200%204%201%204%203%202h2l2%201%201-1-1-1-1-2-1-3v-3l-1-1-1-2-3-1-1%201m-19%206c1%201%200%203-1%204l-1%206%201%202%202-1c1%201%203%200%204-1h3c2%202%205%201%204-1s-1-2-2-1-1%201-3-4h-1c-1%201-1%201-1-1l-1-2-2-2c-2-1-2-1-2%201m65%2012c-2%202-2%207%201%209%204%205%2010-2%207-8-2-3-6-4-8-1m16%200c-3%204-1%2011%203%2011%202%200%205-3%205-5l2%201c2%205%209%204%209-1l2%201c3%206%209%204%209-2%200-7-5-10-9-4l-2%203-1-3c-1-4-5-4-8%200l-1%202-2-2c-1-4-5-4-7-1m-87%2025c-2%203-3%203-3%2014l1%2015c3%206-9%206%20155%206h149l3-3%203-3v-14c0-12-1-13-3-15s-6-2-152-2H49l-3%202m2%203c-3%204-3%2024%200%2027s299%203%20301%200c3-3%203-25%200-27-2-2-13-2-151-2H49l-1%202m73%2011c-1%205%200%207%203%204%202-1%205-1%205%201%200%203-3%204-5%204-4-1-4%201-1%202%204%202%208-1%209-4%200-4-2-6-5-6-5%200-3-2%201-3%206%200%204-2-2-3h-5v5m15-3c-2%201-2%202-1%203h3c2-2%205-3%205-1l-5%206c-5%206-5%207%203%206%207%200%208-2%202-3h-3l3-4c3-4%204-5%201-7-2-3-5-2-8%200m14%200c-3%204-3%209%201%2013l4%202%202-1%203-3c4-8-4-17-10-11m27%200l1%201%202%203c-1%202-3%202-4%200-1-5-2-3-2%204l1%206%201-3c0-2%200-3%202-3%206%200%206-1%205-5-2-3-1-4%202-3l1%206c0%206%200%206-3%206h-2l2%202c4%202%205%200%205-8v-6l-6-1-5%201m-40%2038l-1%201c0%205%200%205-1%202-2-3-6-4-8-1-3%202-2%204%200%202l2-1-2%202-1%202c1%201%205-3%205-5h1c1%202%201%203-1%204-1%202-1%203%202%201%201-1%202-1%203%201h8c2%201%203%200%201-1v-4l1-1-1-1c-1%201-2%200-2-1l-1-1h-2c-1-1-2%200-3%201m-71%2018c-2%201-2%202-1%203s2%201%203-1c2-1%205-1%205%201l-4%202c-4%202-3%204%201%203%203%200%203%200%203%202%200%201-1%202-4%202-5%200-5%202-1%203%205%201%2011-4%207-7v-3c3-5-3-8-9-5m14%201c-4%204-1%2010%204%209%203-1%203-1%202%201l-4%202-2%201c0%202%206%201%208-1%206-7-1-19-8-12m16-1c-6%205-3%2016%204%2015%207-2%206-11-1-10-2%201-3%200-3-1l4-2%204-1c0-2-6-2-8-1m109%201c-4%203-1%2010%204%208%202%200%202%200%201%201l-3%203-2%201c5%203%2011-4%209-10-1-5-6-7-9-3m117%200c-4%204-1%2014%204%2014%203%200%206-4%206-8s-3-8-6-8l-4%202M47%20231c-2%202-3%2019-1%2022s150%203%20152%200%201-20-1-22c-3-3-148-3-150%200m167%200l-1%2012c0%209%200%2010%202%2011%203%202%20131%201%20132-1%202-1%202-3%202-10%200-15%208-13-68-13l-67%201M31%20272l-1%208v8h50l52-1%201-9v-7H82l-51%201m119%200l-1%208v8h50c58%200%2053%201%2053-10v-6l-51-1-51%201m119%200l-1%208v8h50c58%200%2053%201%2053-10v-6l-51-1-51%201m-163%201c1%201%200%202-1%202-2%201-3%202-2%203l-1%205c-3%203-2%204%201%200l3-3v3l-1%202%204%201%204-1-1-1c-2%200-2-5%200-6%201-1%201-3-2-5h-4m106%202l-1%201h-2l2%202c2%201%203%205%201%205l-1-3-1-1c-1%200-2%201-2%203%200%203%201%203%205%203h9l-1-1-2-1v-5l1-2c-1-4-4-4-4-1l-1%203v-3c0-2-3-3-3%200M6%20300l-1%2013%201%2013v-12l1-12%2026-1%2025-1H6m59%205c-3%203-3%204-2%206%201%201%201%201%201-1%202-3%203%200%202%204-1%205-2%206-3%204-3-2-2%200%200%204%204%206%2016%207%2021%201%202-3%203-10%202-14-4-7-15-10-21-4m62-2c-3%202-6%206-4%208h2l1-2v9c0%202%200%202-2%200l-2-4c0-2%200-2-1-1-2%202%201%209%205%2012%206%204%2016%202%2019-5%205-11-6-22-18-17m59%201c-3%201-5%205-4%206l3-2c4-4%2010-4%2015%200%207%205%204%2013-4%2016-6%202-14-3-15-10-1-2-1-2-1%201%200%2010%2011%2015%2020%2010%2014-9%200-29-14-21m61%200c-3%201-5%205-4%206h17c3-2%206%203%204%207-1%202-2%202-3%202h-11c-3%200-3%200-3-2l2-4c1-1%201-1-1-1l-2%202c0%204-2%206-3%204s-2-1-1%202c2%206%2012%209%2018%206%204-2%205-4%206-9%202-11-9-19-19-13m61-1c-3%201-6%206-5%208h2c0-2%2010-2%2013-1h3c3-3%206%205%202%208-1%202-2%202-3%201h-9l-4-1h-5l3%206c9%208%2024%200%2022-12-2-8-11-12-19-9'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.1928571428571428,"src":"/static/09c4d9f124c02db5eb6c6abac00c3a66/9a696/2019-11-27-12-23-40.png","srcSet":"/static/09c4d9f124c02db5eb6c6abac00c3a66/1ec58/2019-11-27-12-23-40.png 334w,\n/static/09c4d9f124c02db5eb6c6abac00c3a66/9a696/2019-11-27-12-23-40.png 665w","srcWebp":"/static/09c4d9f124c02db5eb6c6abac00c3a66/56aa2/2019-11-27-12-23-40.webp","srcSetWebp":"/static/09c4d9f124c02db5eb6c6abac00c3a66/cd98f/2019-11-27-12-23-40.webp 334w,\n/static/09c4d9f124c02db5eb6c6abac00c3a66/56aa2/2019-11-27-12-23-40.webp 665w","sizes":"(max-width: 665px) 100vw, 665px"}}}}}},{"node":{"timeToRead":11,"excerpt":"TL;DR 運営の方およびイベントに携わった皆さんお疲れ様でした はじめて技術書典に参加し denobook 02 という本を執筆・頒布した 書いた本の概要はこちらを参照 私は第 5 章の Deep dive into Deno compiler を担当した BOOTH…","fields":{"slug":"/deno-ja-on-techbookfest-7/"},"frontmatter":{"date":"September 22, 2019","title":"技術書典に初参加しdenobook 02を執筆・頒布しました＆電子版のご案内","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='M203%2013A992%20992%200%200183%2028a930%20930%200%2001-61%206l-10%201v4l2%2011c0%208%200%208%202%207%207-7%2028-12%2031-9l3%202c2%200%202%200%202-6-1-6-1-6%202-7%204-2%2010-1%2013%201%202%203%202%203%204%201%203-3%207-4%209-2%202%201%203%200%205-1l3-1h3c4-2%208%201%208%205%200%203%200%203%201%200%202-10%2013-10%2015%200%201%207-6%2011-12%206-2-1-2-1-3%201l-4%202h-5c-4%201-6%200-6-4-1-2-1-2-1%201s0%204-3%205c-5%201-9%200-10-2-2-2-2-2-3-1%200%202-5%205-8%205-5%200-1%203%205%204l9%204%2010%207%201%204a686%20686%200%2000-10%207c-13%206-44%208-57%204-2%200-2%200-1%204v9l2-2c2-2%202-2%203-1%201%203%203%202%204-2l2-3%202%203c3%205%203%205%206%201%203-5%203-5%206-1%202%203%203%203%204%202l2-2c0-4%202-4%205-2%204%204%206%204%207%200l1-4%203%203c3%204%204%204%206-1l2-4%202%202c3%202%204%201%205-3%201-1%202-2%203-1v1c-1%201-1%201%201%201h1c-1%200-2%202%200%202h2c2%201%207%200%208-2%200-2%200-2-2-2h-3v-4h8c3%200%203%200%202%201v1h3l3%201c2%200%202%200%201%201v5c0%203%202%202%201-1%200-2%200-2%201-1h1c0-2%200-2%203-1l4%202%201%203v3l-1%201c-1%201%200%202%204%203h14c9-5%2012-6%2011-1%200%202%200%202-1%201h-1c1%203-5%208-7%207-3-1-6-1-6%201l-3%201-3-1c1-1-3-2-4%200h-3l-3-1c-2-1-2-1%200-1l2-1h2v-1c-1-1-2-2-3-1l-2-1c-1-1-6-1-8%201-3%202-6%201-7-1-1-3-9-2-12%201l-7%204-3%201h3l2%201-3%201c-3%200-3%200-2%202%201%201%201%201-1%201h-1l-7%205-2%201%206%201c2%200%202%200%201%201l-1%202-2%204c-5%204-4%2011%200%2013%203%201%203%201%202%203h-3c-2-3-7-4-8-1-1%202-1%202-2-1l-3-4c-3-1-3-3%200-3%202%201%204-4%202-6l-1-5c0-6-7-10-16-9l-12%203%201%201v2l-1%207c0%204%200%205-1%204-1-2-4-2-5%200-1%201-1%201-1-1v-4l-1%206a483%20483%200%20013%2012l2-1v2c3%200%202-3%200-5l-3-4c0-3%203-5%204-3h2l1%201c0%203%203%204%2012%204%206-1%207%200%205%201l-1%203-2%204c-2%202-2%203-5%202l-6%201c-2%202-3%202-5%200s-5-3-5-1l2%201c3%201%203%202%200%203-2%200-2%201-1%201h3v1l-2%201-1%204%201%204v4l2%2017%201-1%202-2%204-1-1%202a6884%206884%200%2001-7%205l2%2010v8h19c18%200%2019%200%2017-2l5%201c2%200%202%200%201-2s-2-2-6-1h-7c-1-1-3-2-4-1l-2-2c-1-2-3-5-6-5-3-2-2-4%202-4l1-3c0-3%200-3%208%202l10%206%204%205c2%200%203%202%203%203l1%201%201%201c-1%201%200%201%202%201h4l-2-2c0-2-2-3-2-3l-3-3-5-3-2-3c-2-3-15-12-17-12l-1-1-1-1-2-1-2-1-3-1H27v-2c2%200%205-2%203-3v-2c2-1%205-1%207%202h3c1-1%203-2%207-2l3%201-1%201%205%201%203%201%204%201c2%200%203%200%202%201-2%202%201%205%204%204%203%200%203%200%203%203s0%204%203%206c3%203%204%204%203%206%200%203%200%203%203%204%202%201%203%202%203%204%200%203%203%205%209%205l6-1c0-1-11-5-12-4-2%202-1-4%200-8%203-6%204-6%209-5%203%201%205%202%206%205%202%203%204%2010%202%209-1-1-5%203-4%204l2-1h3l11%201c6%200%208%200%207-1l-1-2-6-1c-6%201-9%200-10-3v-4c-1-3%202-6%204-5l5%201h2c0%204%209%204%2012%201%201-2%201-2%203%202l1%208v4h11c10%200%2011%200%2011-2l3-3%202-2h3l2%203c-2%203%200%204%206%204s6%200%204-2c-2-1-6-11-6-13%200-3%202%200%203%204%202%204%203%205%205%206%204%202%205%201%206-5%200-5%200-6%203-4%204%203%206%203%207-1%202-4%203-4%204%203%200%206%201%207%206%204%203-2%203-3%203-7%200-8%202-9%202-2%201%208%200%2010-5%2014l-2%203h18c16%200%2018%200%2019-2h1c0%202%201%202%2013%202%208%200%2012%200%2011-1-2-1-1-4%201-4l3%203c1%202%204%203%207%201h4l77%201%2011-32a1192%201192%200%200025-90l-31-13a893%20893%200%2000-119-45l-21-7-4%203c-4%204-5%204-5%200-1-4-3-5-6-3m-9%207c-3%202-4%206-1%208v8l7-1c5%200%206-1%206-3l1-2%201-1-2-1c-1%200-2-1-1-3%200-5-5-8-11-5m-14%202l-4%204c0%201-1%202-3%200-2-1-5-1-5%201l-1-1c0-2-1-2-4-2-2%200-3%200-3%203%200%204%200%204-2%203-4-3-12-1-12%203%200%201-1%201-3-1-4-3-8-3-11%201-3%203-3%203-4%201l-3-2c-2%200-3-1-3-2-1-2-3-3-6-1-2%200%200%2014%202%2016%202%203%2012%200%2012-4h1c1%204%2013%204%2014%200%200-2%201-2%203%200%203%203%209%202%2011-1%202-2%202-2%203-1%201%202%202%202%205%201h5l4-2c1-1%202-2%203-1%203%202%207%201%2010-2%206-5-2-16-9-13m96%2020c-2%202-5%2013-4%2014l5%202c5%201%205%201%208-1l3-2v3c0%204%204%207%209%207l4%201%204%202c2%200%203%201%203%202h6c1-1%201%200%202%202%202%203%206%204%2010%203%201-1%202%200%202%201l4%204h7c2-2%203-2%203-1%200%206%208%209%2012%205%202-1%202-1%202%201%200%205%207%209%2011%205%202-1%202-1%202%201-1%202%203%206%205%205l2%201c3%202%206%201%205-3l2-3%201-3c0-2-3-4-5-3l-1-2c1-2-1-5-4-5l-2%204-2%203-1-3c-2-4-6-6-10-4-3%202-3%202-3-1-1-4-7-7-10-5s-3%202-3%200l-2-3-2-4c0-1-3-4-5-4l-2%204-1%204-2-3c-2-6-10-8-13-2v-2c0-4-1-6-6-6l-2-1c0-1-3-2-4-1l-4-2c-2-2-6-3-9-1-2%201-2%201-2-1%200-5-10-11-13-8M55%2058v4l-2%203c-4%200-4%200%200%206%202%205%202%205%205%205h4c1%202%208%200%208-2-1-1%200-1%202-2%205-1%205-6%200-6l-4-3c-1-2-3-2-5-2-3%200-4%200-5-2-2-2-3-3-3-1m1%203l1%205c0%207%207%2011%2011%206l5-1%201-2c-1-2-3-2-6-1-1%201-2%200-2-1-1-2-2-4-4-4l-4-2h-2m66%2020c-1%201-3%205-3%208%200%205%2010%207%2017%203l2-3-2-1c-1-1-2-2-3-1l-3-1c-2-2-2-2%201-1%203%200%204-1%201-3-2-2-8-3-10-1m-31%2023l-1%206c-3%209-3%2010%204%206l5-1c2%201%201-2-1-3l-2-3c0-1%202%200%203%202%203%203%204%203%205%202%200-2%200-2%201-1h1l-4-4c-7-4-7-4-6-1h-1l-2-3-1-1-1%201m-12%2011c-12%2010-12%2011-4%2013h6v-3h-1c-1-1%200-1%201-1%202%200%203-2%201-2l-2-2c0-2%202-3%204-2%200%201%202-1%203-6l3-7-11%2010m101%201c-1%205-2%206-6%207-2%200-3%200-4-2l-1-3-4-2c-2-2-2-2-4%201-2%202-2%203%200%2010l1%205h6c7-1%2015-5%2016-8%201-5%200-11-2-12-1%200-2%201-2%204m52%200l2%202c1%202%201%203-3%2014-3%2011-3%2011-2%2012l5%204%202%201c1-1%202-1%203%201l2%202%201-5c2-6%201-8-4-13l-4-6a3018%203018%200%20012-11c-2-2-4-3-4-1m-106%209l-2%201c-4%200-4%202%200%202%206%202%205%205-2%205l-4%201%205%201%206%201c1%202%201%202%202-1l3-3%201-1%202%201c3%201%203%201%206-1l1-3c-1-2-2-1-2%201-1%203-6%202-8-1l-2-1-4-2h-2m-58%205c0%202%200%202%201%201%202-1%204-1%204%202l3%203c5%201%205%201%205-1l1-3%203%203c0%202%201%202%205%202%207%200%209-1%208-4l-1-2v5l-2-3c-1-1-3-2-11-2l-13-2c-3-2-3-2-3%201m34%208c3%200%202%203%200%204-1%201-2%202-1%204h-1c-1-1-1%200-1%203v7h2c1-1%202-2%201-3%200-2%200-2%201-1l2-1c0-2%205-6%208-6s5-1%205-4c-1-2-6-2-11-1-2%201-2%201-2-1l-2-2c-2%200-2%200-1%201m215%2012l-2%201c-2%200-5%207-5%2012%200%204%2015%208%2021%205%203-1%207-10%205-11s-4%200-5%203c-3%205-10%203-9-2%201-1%200-2-1-2l-2-4c0-2-1-3-2-2m-231%204c-1%201%200%202%201%204l3%202-3%202-2%202h6l1%201c-1%202%201%203%203%202%203%200%202-3-1-3v-1c1-1%205%200%205%202l3%203%204%202%201-1c0-3%204-4%207-4h1l2-1c3%202%205%202%205%200l-3-3h-2l-2%201v1l-1%201-1-1v-2c-1-2-7-3-10-2s-4%201-5-1c-2-2-4-2-7-2l-2-1-3-1m49%207l-7%202c-4-1-5%200-5%201%200%203%205%208%207%207v1c-2%202-2%202%200%204%206%205%2010%204%205-1l-2-2%204%202%203%203-3%202-2%202%202%201c3%202%206%203%204%201-1-2-1-3%201-4%202-2%205-2%208%200%201%201%201%202-2%204-2%202-2%202%200%202%205-2%208-2%2010-1h4c3-2%203-3%200-4-4-1-5-4-5-10v-6l-1%203c0%204-1%205-8%205h-5v-4l-3-5c-1-4-1-4-5-3'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2,"src":"/static/7664d7a262a116c9a1fe91227340ed5f/8eab8/2019-09-22-22-09-07.png","srcSet":"/static/7664d7a262a116c9a1fe91227340ed5f/1ec58/2019-09-22-22-09-07.png 334w,\n/static/7664d7a262a116c9a1fe91227340ed5f/ccb4a/2019-09-22-22-09-07.png 668w,\n/static/7664d7a262a116c9a1fe91227340ed5f/8eab8/2019-09-22-22-09-07.png 1336w,\n/static/7664d7a262a116c9a1fe91227340ed5f/5707d/2019-09-22-22-09-07.png 1600w","srcWebp":"/static/7664d7a262a116c9a1fe91227340ed5f/f7e47/2019-09-22-22-09-07.webp","srcSetWebp":"/static/7664d7a262a116c9a1fe91227340ed5f/cd98f/2019-09-22-22-09-07.webp 334w,\n/static/7664d7a262a116c9a1fe91227340ed5f/7535d/2019-09-22-22-09-07.webp 668w,\n/static/7664d7a262a116c9a1fe91227340ed5f/f7e47/2019-09-22-22-09-07.webp 1336w,\n/static/7664d7a262a116c9a1fe91227340ed5f/7c22d/2019-09-22-22-09-07.webp 1600w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"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":12,"excerpt":"2017年にこのブログはWordpressからMiddleman製に作り変えたのですが、この度MiddlemanからGatsbyへ移行しました。前回の移行の記事はこちらです。 — Wordpressで運用していたブログをMiddleman+Netlifyに変更した | WEB…","fields":{"slug":"/impression-comparison-of-middleman-and-gatsby/"},"frontmatter":{"date":"January 05, 2019","title":"ブログをMiddlemanからGatsbyに乗り換えた雑感","featuredImage":null}}},{"node":{"timeToRead":4,"excerpt":"dotenvというRuby発のOSSがあります。 .envって名前のファイルに環境変数を列挙してライブラリを読み込むと、それらの値をプロセス内の環境変数として値を展開してくれるというツールです。\nもちろんNode.js版の実装も存在します。 Heroku…","fields":{"slug":"/you-might-not-need-dotenv-in-source/"},"frontmatter":{"date":"January 05, 2019","title":"プログラム内でdotenvを読み込むのをやめた話","featuredImage":null}}},{"node":{"timeToRead":6,"excerpt":"hothouseというpackage.jsonとlockfileを更新してPR出すツールを公開するときに、 「リリースノート頑張りたくないな」と思い、なるべく楽にそれなりのリリースノートを残せる方法を探った結果、 lerna-changelogというLerna…","fields":{"slug":"/lets-start-lerna-changelog-to-easy-publish/"},"frontmatter":{"date":"July 17, 2018","title":"lerna-changelogで始める頑張りすぎないリリースノート自動生成","featuredImage":null}}},{"node":{"timeToRead":8,"excerpt":"hothouseというツールを作成しました。 package.json とロックファイルを更新して GitHub に pull request を作成する CLI ツールです。 npm か Yarn…","fields":{"slug":"/what-about-hothouse/"},"frontmatter":{"date":"July 06, 2018","title":"package.jsonを更新してPRを作成できるCLIツールhothouseを作った","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='187'%20viewBox='0%200%20400%20187'%20preserveAspectRatio='none'/%3e","aspectRatio":2.141025641025641,"src":"/static/f248db553b8f2007e63b6f953a2be233/8eab8/featured-image.png","srcSet":"/static/f248db553b8f2007e63b6f953a2be233/1ec58/featured-image.png 334w,\n/static/f248db553b8f2007e63b6f953a2be233/ccb4a/featured-image.png 668w,\n/static/f248db553b8f2007e63b6f953a2be233/8eab8/featured-image.png 1336w,\n/static/f248db553b8f2007e63b6f953a2be233/b73ad/featured-image.png 1422w","srcWebp":"/static/f248db553b8f2007e63b6f953a2be233/f7e47/featured-image.webp","srcSetWebp":"/static/f248db553b8f2007e63b6f953a2be233/cd98f/featured-image.webp 334w,\n/static/f248db553b8f2007e63b6f953a2be233/7535d/featured-image.webp 668w,\n/static/f248db553b8f2007e63b6f953a2be233/f7e47/featured-image.webp 1336w,\n/static/f248db553b8f2007e63b6f953a2be233/d060b/featured-image.webp 1422w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":2,"excerpt":"hothouseという、package.jsonを更新してPRを作成するGreenkeeperのようなOSSを作る際に、 プラグイン開発用の内部I/Fを@hothouse/typesというpublicなパッケージとしてpublish…","fields":{"slug":"/how-to-publish-npm-public-scoped-package-with-lerna/"},"frontmatter":{"date":"July 03, 2018","title":"lernaでnpmにpublicなscoped packageをpublishする方法","featuredImage":null}}},{"node":{"timeToRead":7,"excerpt":"Reduxの新しいContext APIが発表され、2ヶ月くらいが経過した。 — React’s ⚛️ new Context API – DailyJS – Medium 私は少しバージョンの古いReactを主に使っているため、しばらく情報を追わずにいたが、 — React…","fields":{"slug":"/why-i-need-redux-with-react-new-context/"},"frontmatter":{"date":"April 10, 2018","title":"ReactのNew Context APIは便利だけどreduxを使うのはやめないと思った","featuredImage":null}}},{"node":{"timeToRead":13,"excerpt":"2019/05/06追記 この記事は古いです 当サイトはMiddlemanからGatsbyに移行したため、この記事の内容は古くなっております。 動作デモはありませんが、Middleman…","fields":{"slug":"/implement-site-search-with-algolia/"},"frontmatter":{"date":"August 17, 2017","title":"Algoliaを利用してMiddleman製サイトに検索機能を実装する","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":4,"excerpt":"こんにちは。 当ブログはMiddlemanにて運用しているのですが、検索機能や遅延ロードなどで実装したJavaScriptのビルドにはAsset pipelineなどは使わずにwebpackでビルドしています。 Rails5.1が今beta…","fields":{"slug":"/how-to-use-webpack-with-middleman/"},"frontmatter":{"date":"August 15, 2017","title":"MiddlemanのビルドにWebpackを組み込む方法","featuredImage":null}}},{"node":{"timeToRead":10,"excerpt":"こんにちは。 Githubのトレンドにvadimdemedes/inkというツールが上がっており、CLIといえばchjj/blessedやReact版のYomguithereal/react-blessedとかあったなぁ、と懐かしみつつ そういえばPowerline…","fields":{"slug":"/special-chars-for-cli/"},"frontmatter":{"date":"August 01, 2017","title":"CLIアプリに使えそうな特殊文字たちで遊んでみた","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='117'%20viewBox='0%200%20400%20117'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2059v58h401V0H0v59m202-6L81%2054l2%202%203%202-3%204-3%203h83a1979%201979%200%200080-2c2%200%202-1%202-3l1-3%201%204v4h122l4-3%203-3-3-4-3-3h-23l-145%201'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":3.443298969072165,"src":"/static/60c96b65ea7a4eb6a626160002672438/e22c1/featured-image.png","srcSet":"/static/60c96b65ea7a4eb6a626160002672438/1ec58/featured-image.png 334w,\n/static/60c96b65ea7a4eb6a626160002672438/ccb4a/featured-image.png 668w,\n/static/60c96b65ea7a4eb6a626160002672438/e22c1/featured-image.png 1084w","srcWebp":"/static/60c96b65ea7a4eb6a626160002672438/507a1/featured-image.webp","srcSetWebp":"/static/60c96b65ea7a4eb6a626160002672438/cd98f/featured-image.webp 334w,\n/static/60c96b65ea7a4eb6a626160002672438/7535d/featured-image.webp 668w,\n/static/60c96b65ea7a4eb6a626160002672438/507a1/featured-image.webp 1084w","sizes":"(max-width: 1084px) 100vw, 1084px"}}}}}},{"node":{"timeToRead":7,"excerpt":"こんにちは。 React Nativeで音声の録音機能を実装した時のメモです。 使用するライブラリはAndroidにも対応しているので、iOS/Android両方対応してみます。 つくったもの — Leko/ReactNative-KitchenSink: Kitchen…","fields":{"slug":"/rn-audio-record/"},"frontmatter":{"date":"July 25, 2017","title":"React nativeで音声を録音する","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='165'%20viewBox='0%200%20400%20165'%20preserveAspectRatio='none'%3e%3cpath%20d='M206%206v6h194V0H206v6M95%2020c0%201-1%202-2%201-3%200-3%200-3%202s3%204%204%202h17c2%201%206%201%206-1%200-3%202-2%202%200%201%204%205%203%205-1s-1-5-2-3l-8%201-8%201h-1l-3-1c-1%201-2%200-2-1h-5M48%20145c0%202%200%202-1%201%200-2-1-2-1-1l-1-1c-1-1-1-1-1%201s-1%203-4%201c-1-2-3-2-3-1l-2-1c-3-1-3-1-4%201h-7l-1-2-1%201h-7l2%201%201%203c0%202%200%202%201%201l5-1h5l2-1%201-1c0%202%202%202%209%202h5c3%200%203-1%203-3%200-4-1-4-1%200'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.420289855072464,"src":"/static/1d908d149b3ad712f8636d800bf063bf/8eab8/featured-image.png","srcSet":"/static/1d908d149b3ad712f8636d800bf063bf/1ec58/featured-image.png 334w,\n/static/1d908d149b3ad712f8636d800bf063bf/ccb4a/featured-image.png 668w,\n/static/1d908d149b3ad712f8636d800bf063bf/8eab8/featured-image.png 1336w,\n/static/1d908d149b3ad712f8636d800bf063bf/85e22/featured-image.png 2004w,\n/static/1d908d149b3ad712f8636d800bf063bf/ebefb/featured-image.png 2058w","srcWebp":"/static/1d908d149b3ad712f8636d800bf063bf/f7e47/featured-image.webp","srcSetWebp":"/static/1d908d149b3ad712f8636d800bf063bf/cd98f/featured-image.webp 334w,\n/static/1d908d149b3ad712f8636d800bf063bf/7535d/featured-image.webp 668w,\n/static/1d908d149b3ad712f8636d800bf063bf/f7e47/featured-image.webp 1336w,\n/static/1d908d149b3ad712f8636d800bf063bf/f6b67/featured-image.webp 2004w,\n/static/1d908d149b3ad712f8636d800bf063bf/8aa9d/featured-image.webp 2058w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":6,"excerpt":"こんにちは。 ES6のPromiseはBluebirdの４倍遅いらしいPromiseのライブラリBluebirdが提供するAPIのうち、個人的に便利だと思ったものについてまとめます。 なお、標準のPromiseにも搭載されている機能については割愛します。 Promise…","fields":{"slug":"/benefits-of-node-bluebird/"},"frontmatter":{"date":"July 18, 2017","title":"ネイティブのPromiseより早いbluebirdのPromiseの便利機能をまとめてみた","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='124'%20viewBox='0%200%20400%20124'%20preserveAspectRatio='none'%3e%3cpath%20d='M116%205c-8%203-13%208-20%2020S77%2041%2057%2038l-9-2-1%207c-1%2014-3%2016-19%2019-15%204-17%207-17%2027%200%2011%202%2030%203%2029l3-11c6-25%209-30%2022-32s20-6%2021-12c0-3%200-3%205-1l5%201%201%201%201%202h2l-1-2v-1l-2-6c-2-6-2-6%202-5h11c14-1%2018-4%2021-17%202-14%208-24%2016-29%203-2%201-2-5-1'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":3.2427184466019416,"src":"/static/c19ef5f92b68c0eba3640d2777edc732/8eab8/featured-image.png","srcSet":"/static/c19ef5f92b68c0eba3640d2777edc732/1ec58/featured-image.png 334w,\n/static/c19ef5f92b68c0eba3640d2777edc732/ccb4a/featured-image.png 668w,\n/static/c19ef5f92b68c0eba3640d2777edc732/8eab8/featured-image.png 1336w,\n/static/c19ef5f92b68c0eba3640d2777edc732/a5deb/featured-image.png 1408w","srcWebp":"/static/c19ef5f92b68c0eba3640d2777edc732/f7e47/featured-image.webp","srcSetWebp":"/static/c19ef5f92b68c0eba3640d2777edc732/cd98f/featured-image.webp 334w,\n/static/c19ef5f92b68c0eba3640d2777edc732/7535d/featured-image.webp 668w,\n/static/c19ef5f92b68c0eba3640d2777edc732/f7e47/featured-image.webp 1336w,\n/static/c19ef5f92b68c0eba3640d2777edc732/770c1/featured-image.webp 1408w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},{"node":{"timeToRead":5,"excerpt":"シンプルすぎて難解？昨今のNode.jsのオブジェクト周りの構文をまとめてみたに続いて、今度はアロー関数編です。\nおそらく今まではこんな感じで関数を書いてたと思います それがアロー関数の構文を使用すると、const hoge = options =>…","fields":{"slug":"/es2017-arrow-func-syntax/"},"frontmatter":{"date":"June 27, 2017","title":"条件付きな構文が多い昨今のNode.jsのアロー関数の構文をまとめてみた","featuredImage":null}}},{"node":{"timeToRead":4,"excerpt":"こんにちは。 たまには基礎に返ってみるのも良いじゃないか、ということで 今回は、{ a, b, c }とか昨今のNode.js…","fields":{"slug":"/es2017-object-syntax/"},"frontmatter":{"date":"June 20, 2017","title":"シンプルすぎて難解？昨今のNode.jsのオブジェクト周りの構文をまとめてみた","featuredImage":null}}},{"node":{"timeToRead":8,"excerpt":"過去にphpのマジックメソッドを使ってRailsのfind_all_by_*メソッドを実装してみる | WEB EGGという記事を書いたのですが、Node.jsでもProxyの登場により、似たようなことができるのでは？ と思ったので試してみました。 今回の題材は、同じくRails…","fields":{"slug":"/how-to-implement-dirty-check-and-method-missing-with-nodejs/"},"frontmatter":{"date":"June 07, 2017","title":"Node.jsのProxyでdirty checkとmethod missingを実現してみる","featuredImage":null}}},{"node":{"timeToRead":5,"excerpt":"なんとも日本語が不自由な感じのタイトルですが、始めます。 普段仕事でChatWorkを使っているのですが、どうにもUIが好きになれない。 別に使いにくくはないんですが、趣味でSlack…","fields":{"slug":"/use-chatwork-like-slack/"},"frontmatter":{"date":"December 14, 2016","title":"ChatWorkだってSlackしたい！！","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='151'%20viewBox='0%200%20400%20151'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2076v75h87V0H0v76M28%208c0%202%201%202%206%202l5-1c0-2%200-2%201%200l1%202V9c0-2%200-2%201%200%201%201%201%202%202%201h2l1-1h1c1%202%205%202%205-1h1l2%202%201-2c0-2-1-2-2-2H35l-4-1c-3%200-3%200-3%203m269%2020v9l1%208h18V27h-9l-10%201M11%2062l-1%206-2%202%202%201%201%2035v34h68V56H11v6m87-2v11h13v-5c0-7-1-8-8-8-4%200-5%200-5%202'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.6507936507936507,"src":"/static/160f41172e96214dcd103bb1c116d9ec/64c42/featured-image.png","srcSet":"/static/160f41172e96214dcd103bb1c116d9ec/1ec58/featured-image.png 334w,\n/static/160f41172e96214dcd103bb1c116d9ec/ccb4a/featured-image.png 668w,\n/static/160f41172e96214dcd103bb1c116d9ec/64c42/featured-image.png 1018w","srcWebp":"/static/160f41172e96214dcd103bb1c116d9ec/d7d05/featured-image.webp","srcSetWebp":"/static/160f41172e96214dcd103bb1c116d9ec/cd98f/featured-image.webp 334w,\n/static/160f41172e96214dcd103bb1c116d9ec/7535d/featured-image.webp 668w,\n/static/160f41172e96214dcd103bb1c116d9ec/d7d05/featured-image.webp 1018w","sizes":"(max-width: 1018px) 100vw, 1018px"}}}}}},{"node":{"timeToRead":4,"excerpt":"2016/12/03 末尾に追記しました この記事は12/3 Three.js Advent Calendarと12/4 Hamee Advent Calendar…","fields":{"slug":"/how-to-use-mmdjs/"},"frontmatter":{"date":"December 02, 2016","title":"MMDのモデルにブラウザで踊って頂いた","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='218'%20viewBox='0%200%20400%20218'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%20109v109h399v-11l1%205%201-103V0H0v109m99-65c-8%203-14%2010-18%2019l-2%207%202%204c3%203%208%206%207%203l1-2%201-8%202-5%201-1c-2-2%201-9%204-11l7-3c8-1%209-2%204-4l-2-1-7%202m202%201l-14%201-14%202-11%203%202%202%203%202-2%202c-3%204-4%204-6%200-1-4-3-3-2%201%201%205-1%203-4-3-4-8-5-9-5-2v5c-3%200-2%207%201%2011%202%203%202%204%201%206v7c0%203-1%204-2%203-3-1-7%200-10%201s-3%201-2%203h6c2-1%205%201%206%205l3%206%204%205v-1c0-3%203-4%206-2%202%202%2012%206%2015%206l6-3%204-3c5%201%2012%202%2017%201h5l-4-2c-7-3-8-4-7-5s3-2%206-1l4-1c-1-2%200-2%201-2%204%200%207-1%207-2l-2-1c-2%200-9-6-9-8l3-2c2%200%204-1%204-3l5-6c5-4%205-8%202-14-3-8-14-15-17-11m-154%208c-2%206-6%209-5%205s-1-4-3%200l-2%204-1%202c0%201-1%201-2-1-2-5-7-7-12-7-4%201-5%201-4%203%200%201%201%201%203-1h5c5%202%207%208%204%209h-3l1-1v-5c-2-2-3-1-6%202-5%204-5%205-1%205%202%201%201%201-2%201-5%200-6%200-8%202l-4%203-4%201h-1c-1-2-3%200-3%203%201%201%200%202-1%202-2-1-1%200%201%203s2%203%200%203c-1-1-3%200-5%202-4%204-4%205%202%205l6%202%202%202-3%2010a850%20850%200%2000-5%2014l-6-1-5-1%205%202c4%200%207%201%207%202h13c2%200%202-1%202-7l1-11v-3l3%203%206%203c4%200%2015-4%2016-6s5-1%205%201c0%203%205-3%208-9%203-5%203-5%206-4h5l3-2-3-1h-11c-4%203-3-13%200-19%204-6%204-9%201-10s-3-1-1-5c2-7%200-7-4%200m-45%208l-7%202%201%2014%201%203v-3c0-5%200-6%202-7%202%200%202%200%201-2-2-2%203-7%206-6%202%201%201%205-1%206-1%201-1%201%202%201%203%201%208-1%208-3l1-2c0-1-1-2-3-1-2%200-3%200-4-2%200-2-1-2-7%200m167%201c-3%202-3%204-1%205%201%202%202%201%201-1-3-3%204-4%2010-1%204%202%204%203%200%203-2%200-1%201%202%201%205%200%206%201%207%204l2%202c0-1%201-2%202-1%204%200%206%203%206%206v2l1-3c2-7-3-12-8-10-3%201-6-1-7-4l-2-4c-3-2-10-1-13%201M135%2075l-4%207c-2%203-2%203%200%205l5%202%205%201c1%201%201%201%201-3%200-5-1-8-3-8s-2-2-1-4c2-3%202-4%201-4l-4%204m179%2043l-7%202-9%203c-3%201-5%202-12%201h-8l1%205%202%206c0%201%2016-3%2022-6l11-2%206-2%203-1%204-5-10-3-3%202M97%20131l-3%2016c0%208-2%2019-4%2025-3%2014-3%2018%202%2026l5%209c0%204%201%204%204%200%208-10%2010-17%2010-49l-1-25-4-2c-8-2-9-2-9%200m29%2024a443%20443%200%20011%2018c1%201%201%200%201-4l2-9c3-11%201-21-3-21l-1%2016m136%204l3%2010c1%204%201%204-1%203-2%200-2%200-1%202l3%201c3-1%203%200%203%202%200%203%202%207%204%207l1-3-1-6-1-3-2-9c-1-9-2-10-6-10-2%200-2%200-2%206m-126%209l-1%205-3%202c-3%200-4%202-4%208l-1%204c-2%201%202%206%204%206l1-4v-3l1%202c2%204%202%204%204-1%202-4%202-17%200-20-1-2-1-2-1%201'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.835164835164835,"src":"/static/85a8ca2dc6f20ceae4bc18b031238593/035d9/featured-image.png","srcSet":"/static/85a8ca2dc6f20ceae4bc18b031238593/1ec58/featured-image.png 334w,\n/static/85a8ca2dc6f20ceae4bc18b031238593/ccb4a/featured-image.png 668w,\n/static/85a8ca2dc6f20ceae4bc18b031238593/035d9/featured-image.png 990w","srcWebp":"/static/85a8ca2dc6f20ceae4bc18b031238593/8b5b8/featured-image.webp","srcSetWebp":"/static/85a8ca2dc6f20ceae4bc18b031238593/cd98f/featured-image.webp 334w,\n/static/85a8ca2dc6f20ceae4bc18b031238593/7535d/featured-image.webp 668w,\n/static/85a8ca2dc6f20ceae4bc18b031238593/8b5b8/featured-image.webp 990w","sizes":"(max-width: 990px) 100vw, 990px"}}}}}},{"node":{"timeToRead":3,"excerpt":"こんにちは。開発者ツールネタです。 ChromeでもFirefoxでもSafariでも使える便利な関数が色々あります。 その中の１つcopy関数について紹介したいと思います。 copy…","fields":{"slug":"/copy-function-of-developer-tools/"},"frontmatter":{"date":"November 15, 2016","title":"開発者ツールで使える便利なcopy関数","featuredImage":null}}},{"node":{"timeToRead":5,"excerpt":"こんにちは。 画像をくっつけるツールというjsで簡単な画像処理を行うSPAを作った時に、 URLを指定して画像を読み込んで結合する、という要件があり、 この要件とcanvas周りでハマったので対象方法を残します。 何が起きたか、なぜ起きるか URLをimgタグのsrc…","fields":{"slug":"/how-to-disable-limitation-of-cors-in-html5-canvas/"},"frontmatter":{"date":"December 15, 2015","title":"canvasのCORS制限を突破する","featuredImage":null}}},{"node":{"timeToRead":9,"excerpt":"こんにちは。 Hamee Advent Calendar 2015 8日目の記事です。 Chromeの開発者ツールでHTMLの要素を眺めていたらvalidityという属性を見つけました validityプロパティの中にはpatternMismatch, tooLong…","fields":{"slug":"/how-to-validate-form-value-with-constraint-validation/"},"frontmatter":{"date":"December 07, 2015","title":"HTML5のConstraint validationでライブラリ要らずならくらくバリデーション","featuredImage":null}}},{"node":{"timeToRead":7,"excerpt":"れこです。 Hamee Advent Calendar 2015 2 日目の記事です。 「明日使えるフロントエンドと作業効率化の備忘録」とか銘打っておきながら、 フロントエンドの記事を書くのはものすごく久々な気がします。 フォームや input…","fields":{"slug":"/how-to-implement-frequency-ui-in-form/"},"frontmatter":{"date":"December 01, 2015","title":"フォーム周りで地味に使うUIと実現方法","featuredImage":null}}},{"node":{"timeToRead":12,"excerpt":"久々の更新です。 社会人になってからいつの間にか１年が経過していました。時が立つのは早いものです。。。 最近はインプットを増やしてばかりで全然アウトプットできていなかったので、少しずつアウトプットできればと思います。 ここんところ業務の都合でPHP…","fields":{"slug":"/how-to-test-ie-with-karma/"},"frontmatter":{"date":"May 03, 2015","title":"Karmaを使ってIEのテストをMacから行う","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='135'%20viewBox='0%200%20400%20135'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2068v67h401V0H0v68m353-45l-10%202-16%204c-14%202-25%2010-31%2022-4%209-4%209%203%203%2011-11%2018-15%209-5-3%203-8%208-10%2012l-5%206-11-5-12-5-27%2012v15l1%2015%206%204c5%204%206%204%205%207%200%202%201%204%204%207%204%204%2010%206%2012%204l10-3%204-8c1-2%201-2-3%201-4%205-9%207-10%207s4-5%2011-10c12-9%2013-10%2013-14l1-4%202%203%207%208%205%205-4%202-9%201c-7%201-10%202-6%204%204%201%2011-1%2017-3l5-3%206%202a42%2042%200%200052-25l-10-1h-11l-4%204c-9%209-23%207-30-3l-2-6v-3h59v-6c0-6-2-15-4-18v-5c4-10%203-17-2-21-4-2-11-3-15-2m5%205l-9%203%205%203%209%208%205%205c1%200%203-11%202-13-2-5-7-8-12-6M46%2048c-1%205%206%2037%209%2041%203%202%205%200%205-3%200-6%202-6%206-1%203%204%204%204%2010%204h7l-7-10-7-12%206-11c7-10%207-11-2-11-4%200-5%200-7%203-3%204-6%204-6%200%200-2-1-3-7-3s-6%200-7%203m278%201c-5%203-9%208-9%2012v3h37l-1-3c-1-11-17-18-27-12M94%2065a2977%202977%200%2001-3%2017l3-3c1-3%201-4%207-4h6l1%203c1%204%204%205%204%203l-4-15-3-13h-8l-3%2012m28%203c0%2012%200%2014%202%2014l1-4c0-6%201-7%205-7%203%200%203%200%206%206%201%203%203%205%204%205%202%200%202%200%200-6l-3-5%203-3c3-3%203-9%200-13-3-2-4-2-10-2h-8v15m31%200c0%2012%200%2014%202%2014l1-8%201-11c0-3%201-3%202%202%206%2015%206%2016%208%2016s2-1%208-16c1-5%202-5%202-2l1%2011c0%206%200%208%202%208l1-14V53h-3c-3%200-3-1-8%2014l-3%208-4-11c-4-11-4-11-7-11h-3v15m42-1c-5%2016-4%2015-3%2015l3-4%201-3h6c6%200%206%201%207%204l3%203c2%200%202%200-2-14l-3-11c-1-4-1-4-5-4h-4l-3%2014m-70-10v6c0%204%201%205%205%205%206%200%208-1%208-6l-1-5c-2-2-11-1-12%200m134%207l-9%205%2010%206%2010%206%2010-6%2010-6-9-4c-11-5-11-5-22-1M27%2065l6%2018%203-2c2-3%203-3%208%202s5%205%201-9l-2-9-2%202c-4%203-5%203-10-2l-4-4v4m235%200l-8%204%2016%209%2016-9-3-2-8-3-5-3-8%204m-15%2020l1%2010%209%207%209%207V88l-9-5-10-6v8m39-5c-6%204-10%205-5%202%203-3%200-2-5%201l-3%203%201%2014v9l10-7c7-6%209-8%209-10l1-9c0-8%200-8-8-3'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.9557522123893807,"src":"/static/d341737d6a8a580c3095970a19b66de6/32d53/featured-image.png","srcSet":"/static/d341737d6a8a580c3095970a19b66de6/1ec58/featured-image.png 334w,\n/static/d341737d6a8a580c3095970a19b66de6/32d53/featured-image.png 614w","srcWebp":"/static/d341737d6a8a580c3095970a19b66de6/9b99b/featured-image.webp","srcSetWebp":"/static/d341737d6a8a580c3095970a19b66de6/cd98f/featured-image.webp 334w,\n/static/d341737d6a8a580c3095970a19b66de6/9b99b/featured-image.webp 614w","sizes":"(max-width: 614px) 100vw, 614px"}}}}}},{"node":{"timeToRead":7,"excerpt":"久々にフロントの話題です。 4 月にTaskloud というアプリをリリースしました。 その際に、色々と使ってみたかったライブラリを使って感触を得たので、 ご紹介がてら使用感をメモしておきます。 FastClick ftlabs/fastclick https://github…","fields":{"slug":"/useful-libraries-in-develop-taskloud/"},"frontmatter":{"date":"August 26, 2014","title":"Taskloudを制作する際に使用したライブラリまとめ","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='135'%20viewBox='0%200%20400%20135'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2027v26h21v3c1%201%201-3%201-9V35h-4c-4%200-4%200-4-3v-2l10-1c12%200%2013%200%2012%204%200%202-1%202-4%202h-4v16c0%2015%200%2016-2%2016l-2%202%203%201h3V60c0-6%200-10%201-9%200%202%201%202%205%202l6%201c1%201%201%200%202-1%202-8%208-12%2014-10l4%201%203-1%203%201v23h-3l-3-1h-2c-3%202-6%202-9%201-4-2-3%200%200%202s4%202%207%202l8-1h4v-6c0-10%201-11%205-11s4%200%204-3c0-6%206-9%2011-6%203%201%204%203%201%205h-3c-1-2-5%200-3%201%201%202%203%202%2011%203l7%201c1%201%202-13%202-22v-6h6v24l4-3c3-3%204-4%207-4h5l-6%205c-3%202-5%205-5%206%200%202%202%202%204%200l8-1h6v4l1-13V26h3l3%201v21c0%2018%200%2019-2%2019l-2%202%204%201h3V59c0-8%200-10%201-7l1%202c0-2%204-1%204%202%201%202%201%202%201-1%200-9%2010-15%2019-11%202%202%203%202%206%200s3-2%203-10c0-14%206-25%2018-31l6-3H0v27M286%204l5%208%202%204h9c17%201%2030%2013%2032%2029%200%206%201%207%204%2011%2017%2019%202%2049-24%2048h-7l-3%204c-13%2018-43%2023-64%2010l-5-3-6%203c-13%206-29%202-38-10-2-4-4-5-9-6-11-4-21-18-21-29%200-4%200-4%204-3%208%201%2013-5%2013-13v-4l-1%203c-2%2012-15%2016-23%207l-3-3-1%206c-1%2011%203%2023%209%2031l5%208c4%209%2015%2018%2022%2018l3%202%205%206%203%204h102l2-3%205-6c1-3%201-3%206-2%207%202%2018-1%2019-5l1-2v2l4-2c3-3%204-5%203-6%200-2%200-2%201-1l3-3%204-7c9-12%2011-27%206-40l-1-6%2024-1h24V0H283l3%204m-1%2023l-24%2021-21%2020-1-20-1-19v19c0%2018%200%2019-2%2019l-2%202h-1l-1-1c1-1-2-2-5-1-7%202-13-4-13-12%200-5-1-7-6-7h-2l-1%207c-1%2010-3%2013-10%2013-3%200-4%200-3%201l6%201h5l13%2014c15%2014%2017%2016%2022%2014%204-2%2059-53%2060-56%203-9-6-19-13-15M159%2050c-2%202-3%208%200%2010%202%203%203%202%205-2l4-6v-3c-3-2-7-1-9%201'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.9557522123893807,"src":"/static/f6fcb72df4c191fd5f4532dfa234801c/32d53/featured-image.png","srcSet":"/static/f6fcb72df4c191fd5f4532dfa234801c/1ec58/featured-image.png 334w,\n/static/f6fcb72df4c191fd5f4532dfa234801c/32d53/featured-image.png 614w","srcWebp":"/static/f6fcb72df4c191fd5f4532dfa234801c/9b99b/featured-image.webp","srcSetWebp":"/static/f6fcb72df4c191fd5f4532dfa234801c/cd98f/featured-image.webp 334w,\n/static/f6fcb72df4c191fd5f4532dfa234801c/9b99b/featured-image.webp 614w","sizes":"(max-width: 614px) 100vw, 614px"}}}}}},{"node":{"timeToRead":14,"excerpt":"こんにちは。 とても今更ながら、Chrome 拡張機能が HTML と CSS と js で作れるらしいので、作ってみました。 よくあるサンプルの、「ただ alert 出すだけ」だと芸がないので、 web 版の ChatWork…","fields":{"slug":"/how-to-extend-chatwork-in-google-chrome/"},"frontmatter":{"date":"August 05, 2014","title":"Chrome拡張を作ってweb版ChatWorkを改造してみた","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='135'%20viewBox='0%200%20400%20135'%20preserveAspectRatio='none'%3e%3cpath%20d='M275%2062l-1%208v7h4c7%200%2010-3%207-7v-3c1-2%201-3-1-4-2-2-8-3-9-1m18%200l-6%2015%204-1%204-2c2%200%203%201%203%202l3%201c2%200%202%200-1-8-3-7-6-10-7-7m-106%204l-4%203%204%204c3%203%204%204%205%203v-3c-2-2-2-2%204-2%209-1%209-3%201-3-7%200-8-1-6-3%202-1%202-3%200-3l-4%204m30-3l1%202c2%202%201%203-6%203-8%200-8%202%201%203%206%200%206%200%205%202-2%201-2%202-1%203s3%200%206-3l3-4-3-3c-3-4-5-5-6-3m15%203l-3%203%203%204c3%203%205%204%206%203s1-2-1-3c-1-2-1-2%205-2l6-1c0-2-1-2-7-2h-6l2-2c2-3%202-4%200-4l-5%204m30-3l2%203c1%202%201%202-5%202s-7%200-7%202l7%201c6%200%206%200%205%202-4%204-1%204%204%200l4-3-4-4c-3-4-6-5-6-3'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.9557522123893807,"src":"/static/e43911acb6b80e992575cfb4a43f6c7e/32d53/featured-image.png","srcSet":"/static/e43911acb6b80e992575cfb4a43f6c7e/1ec58/featured-image.png 334w,\n/static/e43911acb6b80e992575cfb4a43f6c7e/32d53/featured-image.png 614w","srcWebp":"/static/e43911acb6b80e992575cfb4a43f6c7e/9b99b/featured-image.webp","srcSetWebp":"/static/e43911acb6b80e992575cfb4a43f6c7e/cd98f/featured-image.webp 334w,\n/static/e43911acb6b80e992575cfb4a43f6c7e/9b99b/featured-image.webp 614w","sizes":"(max-width: 614px) 100vw, 614px"}}}}}},{"node":{"timeToRead":7,"excerpt":"こんにちは。 今回は、力学モデル (グラフ描画アルゴリズム) – Wikipediaというグラフを描画するための面白いアルゴリズムを見つけたので、 こいつをJavaScript(CoffeeScript)とcanvas…","fields":{"slug":"/force-directed-algorithm-with-html5-canvas/"},"frontmatter":{"date":"December 20, 2013","title":"jsとcanvasでグラフの描画(力学モデル)を実装した","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='135'%20viewBox='0%200%20400%20135'%20preserveAspectRatio='none'%3e%3cpath%20d='M66%2013c-7%203-9%2013-3%2019l2%203h-4c-10%200-16%2013-8%2021%2012%2011%2029-6%2017-17l-2-3h3c14%200%2018-17%206-24-4-1-7-1-11%201m-36%206c-9%204-8%2020%201%2022%204%201%204%207%200%207-14%204-12%2024%202%2024%205%200%206%200%209-3l4-4v-1l-1-4c0-5-3-9-7-11-4-1-5-7%200-7%203%200%209-6%2010-10%200-3%201-4%202-4%202-1%202-1%200-1s-3-1-3-2c-2-5-10-9-17-6m302%2017c-5%203-7%209-5%2016%202%203%202%203-1%206-6%205-6%2012%200%2018l2%203-2%201-3%207c0%206%203%2011%208%2013%2013%205%2023-13%2013-21-2-2-2-2%200-5%203-4%203-10%201-14-2-2-2-2%200-3%205-3%207-11%204-17-2-6-11-8-17-4m-228%203c-2%201-7%207-7%209v7l6%207c6%203%2015%200%2018-6%200-2%202-4%203-4v-1l-2-1c0-8-10-14-18-11m94%207c-11%206-7%2024%206%2024%206%200%2012-5%2012-9l2-2h3l-3-1-2-3c0-7-11-12-18-9m91%208l-4%205-2%204v1l1%203c0%203%206%209%2010%2010%203%201%2010-2%2012-5%208-11-5-25-17-18m68%203c-6%202-10%209-7%2016%204%2013%2024%2010%2024-4%200-8-8-14-17-12M35%20109v2c2%201%202%202%200%203s-1%204%202%204c2%200%202%200%201-1-1-2-1-4%201-4l1%202c0%202%200%203%205%203h6l-1-4c0-3%200-4%202-4l1%204c-1%204%200%204%202%204s3%200%202-3c-1-7-1-7-7-7-4%200-5%200-4%202%202%201%201%206-1%207-2%200-2-1-2-4%200-4-1-5-3-5l-5%201m120%200v12c-1%201%200%201%203%201%202%200%203%200%202-1-2-1-1-3%201-3%205%200%207-6%204-9h-10'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.9557522123893807,"src":"/static/7eb1cf8d830fdff37571497eaba549bf/7f4a1/featured-image.png","srcSet":"/static/7eb1cf8d830fdff37571497eaba549bf/1ec58/featured-image.png 334w,\n/static/7eb1cf8d830fdff37571497eaba549bf/7f4a1/featured-image.png 604w","srcWebp":"/static/7eb1cf8d830fdff37571497eaba549bf/e33b9/featured-image.webp","srcSetWebp":"/static/7eb1cf8d830fdff37571497eaba549bf/cd98f/featured-image.webp 334w,\n/static/7eb1cf8d830fdff37571497eaba549bf/e33b9/featured-image.webp 604w","sizes":"(max-width: 604px) 100vw, 604px"}}}}}},{"node":{"timeToRead":4,"excerpt":"Ruby on RailsはシンプルなAPIだけ構えておいて、 Backbone.jsをAPIクライアントとして連携させる際に Railsでコントローラをscaffold…","fields":{"slug":"/how-to-work-backbone-with-rails/"},"frontmatter":{"date":"December 10, 2013","title":"Backbone.jsとRuby on Railsを連携させる際のメモ","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='135'%20viewBox='0%200%20400%20135'%20preserveAspectRatio='none'%3e%3cpath%20d='M20%2047c0%2031%200%2033%202%2032a1464%201464%200%200025-14l14%208%2014%207a736%20736%200%2000-1-66l-5%203a849%20849%200%2001-19%2011c-2%201-3%200-8-3l-14-8-8-4v34m156-26v10c5%204%2012-3%209-8-2-3-7-4-9-2M40%2043l-6%204%207%203%206%204%207-3%206-4-13-8-7%204m283%202c-5%202-5%205-5%2043l1%2034h56l3-2%202-3V44h-27l-30%201m35%204c1%203-5%204-8%202-1-2-2-2-4-1s-2%201%200%202c2%202%202%202-2%207-8%208-14%2025-14%2036v5h13c11%200%2012%200%2011-2-5-11-4-28%202-35l3-4%204%202c4%201%205%202%208%2010l3%2010%201-4c1-5-1-13-2-10v-1c0-2%200-3-2-4l-2-2h2l2-1h2l2-1c-1-2-10-7-13-7l-2-1-2-2c-2-1-2-1-2%201'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.9557522123893807,"src":"/static/690d77531b9decbfc9e430513bf42c66/741c1/featured-image.jpg","srcSet":"/static/690d77531b9decbfc9e430513bf42c66/466a3/featured-image.jpg 334w,\n/static/690d77531b9decbfc9e430513bf42c66/741c1/featured-image.jpg 604w","srcWebp":"/static/690d77531b9decbfc9e430513bf42c66/e33b9/featured-image.webp","srcSetWebp":"/static/690d77531b9decbfc9e430513bf42c66/cd98f/featured-image.webp 334w,\n/static/690d77531b9decbfc9e430513bf42c66/e33b9/featured-image.webp 604w","sizes":"(max-width: 604px) 100vw, 604px"}}}}}},{"node":{"timeToRead":3,"excerpt":"こんにちは。 CodeIQというプログラミングの問題を解くサービスで面白そうな問題を見つけました。 挑戦者求む！クロノス・クラウン合同会社 柳井 政和@FizzBuzzダンジョンさん｜CodeIQ よくあるFizzBuzz…","fields":{"slug":"/codeiq-fizzbuzz-dungeon/"},"frontmatter":{"date":"December 09, 2013","title":"CodeIQのFizzBuzzダンジョンLV1~4を解いた","featuredImage":null}}},{"node":{"timeToRead":5,"excerpt":"こんにちは。 私にはセキュリティの知識は全くと言っていいほど無いのですが、 今日突然SECCONに参加する予定の友達に、 「この問題、JavaScriptなんだけど、解ける？」 と聞かれたので、見てみました。 問題は、ksnctfというサービスの、Crawling Chaos…","fields":{"slug":"/ksnctf-crawling-chaos/"},"frontmatter":{"date":"September 27, 2013","title":"【(」・ω・)」うー!(/・ω・)/にゃー!】 ksnctfのCrawling Chaosを解いてみた","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='154'%20viewBox='0%200%20400%20154'%20preserveAspectRatio='none'/%3e","aspectRatio":2.5891472868217056,"src":"/static/f50751b2f21c91184d76d64faaecde92/1746d/featured-image.jpg","srcSet":"/static/f50751b2f21c91184d76d64faaecde92/466a3/featured-image.jpg 334w,\n/static/f50751b2f21c91184d76d64faaecde92/1746d/featured-image.jpg 529w","srcWebp":"/static/f50751b2f21c91184d76d64faaecde92/116fa/featured-image.webp","srcSetWebp":"/static/f50751b2f21c91184d76d64faaecde92/cd98f/featured-image.webp 334w,\n/static/f50751b2f21c91184d76d64faaecde92/116fa/featured-image.webp 529w","sizes":"(max-width: 529px) 100vw, 529px"}}}}}},{"node":{"timeToRead":11,"excerpt":"久しぶりの更新です。 最近、Twitterの一部界隈でCookie Clickerというゲームが流行っているようです。 ゲームのパロディ、ヒロイン※の官能小説なども出るほど、日本で人気なようです。 そんなに面白いのかと思ってページを開いてみたら、 ただCookie…","fields":{"slug":"/automate-cookie-clicker-with-js/"},"frontmatter":{"date":"September 21, 2013","title":"CookieClikerをjsから操作してみる","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='154'%20viewBox='0%200%20400%20154'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2033c0%2031%200%2032%202%2031s5%202%203%203l-3%201c-2%200-2%201-2%205v5l4-1c6-1%207-2%202-4H3l3-2%203-1%201-1%202-3%201-2%201-1v-1c-2-2-1-4%204-6%204-2%204-2%202-2-3-2-3-5%201-6%203%200%203-1%203-4%200-2%203-4%204-2h8c2%201%203%202%204%201h6c4%201%205%201%206-1%201-1%201-1-1-1-3%201-5%200-5-2s1-2%203-2c4%200%205%200%204-1%200-2%201-3%203-2%203%200%202%202%200%202-1%201%201%201%204%201%206%200%206%200%207-3l2-5c1-3-1-4-4-3h-2c-1-2-3-1-5%202l-3%203-1-3c0-2-1-2-3-2-1%201-3%200-4-1-1-2-2-2-3-1h-5c-3%202-5%200-5-4v-4h6l6%201%203%201c2%200%202%201%202%202l2%202%202%201v-5h5l6-1c0-3%202-2%207%201l4%203c2-1%201-4%200-4l-2-2c-1-3%202-4%204-1v2l2%202h6l-1-2-4-2c-2%200-2-1-1-3h3c0%201%201%202%202%201l2-1V5c0-2%202-1%202%203v6c-2%203-2%204%202%204l4%202c0%203%202%202%203-1%202-4%207-5%2010-2%202%202%202%202%204%201%201-2%205%200%205%202l2%202%202-1c0-3%202-4%208-3l5-1%203-1c2%200%204%206%202%208-2%201-5%200-5-2l-1-2v2c0%203-2%205-5%203h-2c0%202-2%201-4-1-2-1-2-1-3%202%200%203-4%205-4%202s-2-4-4-3h-5c-1-2-2-2-2-1h-5l-3%203c0%202%204%202%205%200%202-1%205%201%205%204l2%207h2c0-2%200-2%204-1%203%201%205%200%202-1v-2c2-2%205-1%203%201v4h3c0-2%204-3%205-1l-1%202-1%202%2013-1c2-1%202-1%203%201s1%202%204%200%204-2%204%202c0%203%200%203-1%202h-2c0%202-3%201-2-1h-1c-3%203-2%204%201%203l3%201c1%201-1%205-2%204v3h3l1-1v-1l1-2c-1-3%202-5%204-3%202%201%200%205-1%205-1-1-2%200-2%203l1%203%201%201%201-1c1-3%204-4%205-2v4l-2%201-1-1-1%202v4l-1%203-1%201-2%201c-1%202-1%203-3%202-2%200-2%200-1%201l1%202c2%200%206-3%206-4l2-3%202-3%202-3%202-4c0-1%201-2%203-2l2%202c0%203-2%204-3%203-2%200-3%201-1%203%202%201-2%205-4%204-1%200-2%200-1%201v5c-4%204-4%205-2%204%204%200%206%202%203%204v3l1%201%201-2c0-1%201-2%203-2l2-1v-1l1-1c0-3%203-3%205-1%201%202-2%205-4%204-1-1-2%200-1%202%200%202-3%204-5%203v2c2%202%205%204%204%202v-1l2-1c1-2%203-2%205%200s-1%204-5%203c-2%200-2%200-1%201l-1%203v2h2c0-2%203-1%204%201%202%202-1%204-4%203l-4-1c-2%200-2%200%200%201s3%202%202%203l2%203c4%201%204%205%201%205h-3c0-1-2-1-2%201-1%202%200%204%202%204s1%205-2%205c-2%201-2%201-1%203h-7c0%202%201%203%203%202%202-2%205%201%204%203s-4%202-6%200c-2-3-3-2-2%201%200%203-3%203-6%200-1-1-1-1-1%201-1%202-6%203-6%201s-2-3-2-1v3c1%202%201%202%203%201h3c3%200%205%202%203%204l-2%201c-2%200-1%201%202%204%203%202%202%204-1%204-2%200-3-1-3-2-1-2-1-2-2-1-2%203-6%203-6%200-1-2-1-2-2-1-2%203-7%202-6-1h-2c-1%201-5%200-5-2%201-2-1-2-2%200l-1%201-3%201h3l1%202%201%201h4l2%201%201%201h1l31%201h31v-5l1-5v5c0%206%202%207%202%201l-1-5-1-2h1l1-8v-7l-1%206c0%207-2%2010-2%205-1-9-1-10%201-11l1-2c0-2-2-3-2-1-1%201-1-6-1-15%201-20%201-20%202-14l2%206-1%202v3l1%203v13l1%2016v15h102l95-1h-8v-3c0-3%200-3%201-1%200%203%200%203%208%203l7%201v-43a499%20499%200%2000-1-46l1-32V0H298a753%20753%200%2000-105%202c0-2-2-2-14-2-15%200-15%200-15%202v3l-2-3c-2-2-2-2-22-2l-20%201v3c0%202%200%203-1%202%200-2-2-3-4-1l-4-2-3-3H0v33m211-21c-2%202-3%202-3%200l-2-1c-2%200-3%201-3%204s0%203%202%202h2l20-1h1l26%201c7%200%208%200%208-2%200-3%200-3-10-3-19%201-30%200-30-1%200-2-2-1-3%201h-2c-2-2-2-2-6%200m138%2034l-1%201c2%200%202%200%200%201l-2%201h-1v1l1%202c0%203%205%205%205%202h1c0%202%202%203%202%201l1-2%201-2c0-2%200-2%201-1%201%202%201%202%201%200l1-2%201%202%201%203v-3c0-2%200-3-2-3l-4-1c-2-2-3-2-6%200M76%2049c-8%202-15%206-14%207h48c2-2%203-3%200-3l-4-2c-4-3-23-5-30-2M44%2081c-2%206-2%2013%200%2023%203%2016%2016%2029%2033%2033%209%202%2010%202%2022%200%207-1%2022-11%2025-16l3-5c5-8%207-18%206-27l-1-9c-1-2-4-3-4-1l-2%201c-5%200-9%200-7%201v2c-1%201-1%201-1-1l-1-2c1-1-5-2-6-1l-4%201c-4%200-4%200-3%205%200%204%201%204%202%203h14l2%201-3%201-1%201%202%201h1l-1%201-1%203c-1%202-2%202-3%201l-4%202-4%203-4%203-3%203v3l-1%201-1-2-1-1h-6c-2%201-4%201-3%202v2h-1l-1-1h-1c-2%200-4-2-2-4l1-2-2%201c-1%201-1%201-2-1-1-1-1-1-1%201s-7%206-10%206c-2%200-6-4-6-5l-1-1-2-1h-1l-1%201-2-1h-1l-1%201v-4h5l-2-2-2-4v-4l1-2%201-1%201-1h-4c0-1%201-2%202-1l1-1v-9h-3l-1-1-4-1c-5%200-5%200-6%205m28-1l-1%205c-2%205-2%206%203%209s7%203%2012-1l6-3c2%200%202%200%201-1-1%200-2-1-1-2l-2-5c-3-3-3-4-10-4s-8%201-8%202M1%2081v73h20l21-1c1-1%200-2-1-2l-2-3-1-2-2%202h2l-2%203c-2%202-2%202-3%201-2-2-2-3%200-5%202-1%202-2%201-2-2-1-2-5-1-7v-4l1-2c0-2%200-2-2%200l-1%203v2l-1%205c2%200%201%202-2%203h-3c-1-1%200-5%201-4%201%200%202-2%201-3-2-2%200-6%202-6h1l-1-1-1-3v-2l-1%202-1%202-1%201v1c-1%201-2%202-1%203%200%202-3%204-5%202s0-6%202-5c2%200%203-1%201-3-2-1%200-4%202-4%201%200%202%200%201-2h-1l-3%201-2%201v2c-1%202-5%203-5%201%200-3%201-5%203-5s2%200%201-3v-2l1-1%201-2%201%201%202%201c1%200%200-2-3-3-2-1-5%203-4%204%200%201-4%202-5%201-2-2%201-6%203-5%201%201%201%201%201-2v-3l1-1v-1h2c0%201%201%202%202%201v-1c-1-2%202-5%204-4%201%200%202%200%201-2%200-2-1-3-3%200h-2l-1%201c-1%203-6%203-6%200l2-3h2l1%201%201-3v-2c1-1%200-1-1-1-3%201-6%203-6%205H6l1-3c1-1%201-2-1-3l-1-2c1%200%202-1%201-2l1-3%203-2v-3l-1%201H8c-1-1-6-2-7-1m279%209l-1%203c0%202%200%203-1%202-3%200-2%200%200%205%204%206%2011%205%2011-1%200-3-4-7-5-5-1%201-1%201-1-1s-2-4-3-3m21%202c0%202%200%203-1%202-2%200-2%201%200%203l3%205c2%205%207%205%209%200%201-3%201-4-4-8-6-6-7-6-7-2m90%2046c2%203%202%207%200%209-1%202-1%202%204%202h5v-13h-5c-5%200-5%200-4%202'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.5891472868217056,"src":"/static/863fe7ce7c480cc7491b4d1ca0f1df69/1746d/featured-image.jpg","srcSet":"/static/863fe7ce7c480cc7491b4d1ca0f1df69/466a3/featured-image.jpg 334w,\n/static/863fe7ce7c480cc7491b4d1ca0f1df69/1746d/featured-image.jpg 529w","srcWebp":"/static/863fe7ce7c480cc7491b4d1ca0f1df69/116fa/featured-image.webp","srcSetWebp":"/static/863fe7ce7c480cc7491b4d1ca0f1df69/cd98f/featured-image.webp 334w,\n/static/863fe7ce7c480cc7491b4d1ca0f1df69/116fa/featured-image.webp 529w","sizes":"(max-width: 529px) 100vw, 529px"}}}}}},{"node":{"timeToRead":9,"excerpt":"こんにちは。 湿度で髪が跳ねまくっています。れこです。 今日は、何を思ったのか、 Sublime Text2でインストール可能なパッケージを全部見てみよう と思ってa~z…","fields":{"slug":"/11-apps-improve-your-development-in-sublimetext2/"},"frontmatter":{"date":"July 06, 2013","title":"Sublime Text2の作業効率を加速させるパッケージ11個","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='143'%20viewBox='0%200%20400%20143'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2072v71h401V0H0v72m40-51l-2%203-2%203c-4%203-3%201-8%2045-4%2043-4%2045-1%2048%202%202%203%202%2057%202h54l3-2c2-3%202-1%200-25l-4-41c-2-22-3-27-6-27l-1-1-2-4c-3-2-3-2-45-2l-43%201m-5%2033a1738%201738%200%2001-3%2043c3%202%2011%202%2055%202a599%20599%200%2001-52%205c1%202%201%202-1%202l-2-1v-1c-2-2-1%204%202%206%204%203%2097%203%20100-1%202-1%202-2%201-7l-1-3h-4l2-1%201-1%201-1a81004%2081004%200%2001-3-44c0%206%200%206-1%204l-2-1c0%202-1%202-11%202s-14%201-11%202c2%201%203%207%203%2012-1%206-8%2013-12%2014l-2%201-5%202c-7%201-17%200-24-3-6-2-11-10-9-11l2-4%201-3%202-2%201-1c1%200%202-1%202-3%200-1%200-2-1-1l-1%201-1-1c1-3-2-3-14-3-11%200-11%200-12-7-1-5-1-5-1%204'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.783333333333333,"src":"/static/57c7f1ddd3214923f8805b085886ae9d/f32f2/featured-image.jpg","srcSet":"/static/57c7f1ddd3214923f8805b085886ae9d/466a3/featured-image.jpg 334w,\n/static/57c7f1ddd3214923f8805b085886ae9d/f32f2/featured-image.jpg 569w","srcWebp":"/static/57c7f1ddd3214923f8805b085886ae9d/3d427/featured-image.webp","srcSetWebp":"/static/57c7f1ddd3214923f8805b085886ae9d/cd98f/featured-image.webp 334w,\n/static/57c7f1ddd3214923f8805b085886ae9d/3d427/featured-image.webp 569w","sizes":"(max-width: 569px) 100vw, 569px"}}}}}},{"node":{"timeToRead":9,"excerpt":"こんにちは。 セミが鳴き出しましたね。夏、嫌な季節です。 さて、Macで良いリネームアプリを探しているのですが、 なかなか決定版が見つからずに嘆いています。 そんな時ふと思いました。 (使ったことないけど)HTML5のFileAPI…","fields":{"slug":"/wrote-jquery-plugin-of-drag-and-drop/"},"frontmatter":{"date":"July 04, 2013","title":"webページにローカルファイルをドロップ可能にするjQueryプラグインを作ってみた","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='143'%20viewBox='0%200%20400%20143'%20preserveAspectRatio='none'%3e%3cpath%20d='M32%2014h-9l-1%204v8l-1%206c-1%201-1%201%201%201%202-1%202-1%201%201v8c1%202%201%203-1%205-2%203-2%203-1%204v22c-2%201-1%202%201%202%201-1%202%202%200%203l-1%202v4c2%201%201%208-1%2010v3l1%204v7c-2%204-2%206-1%206v4l1%202%201%203c-1%204%202%207%205%205h3l2%201h2c1%201%202%201%204-1l3-1%202%201h2l2%201h11c2-2%203-2%203-1h9l3-1%202%201h2l7%201h7l2-1h8l1%201h2c0%201%202%201%204-1l4-1h6l4%201h6l1%201h4l3-1%203-1h4l2%201h4l4%201h3l4-1h2l2%201h3c2-1%207-1%207%201l4-2c5-2%205-2%206%200%200%202%201%202%205%200s4-2%205%200l2%202%204-2%204-2%201%202c2%202%202%202%204%201h6l3-1%209%201h8l1-4c1-5%201-6-3-4-2%202-4%202-5%201h-10l-2-1h-3l-4%201-4%201h-2l-1-1-2-1h-8l-3%201h-2l-2-1c1-2-1-1-4%201s-3%202-5%200l-4-1h-5c-2%202-3%202-3%201h-5c0-1-7-1-10%201h-2l-9-1-4%201h-2l-3-1-4-1h-5l-1-1-3%202-2-1h-1l-4%201h-5c-2%202-3%202-3%201l-3-1c-3%201-5%200-7-1h-5c0-2-1-1-5%201-2%202-3%202-4%201s-2-1-4%201h-2c1-2%200-2-4-2h-3l-2-1h-3l-4%201-4%201h-2l-2-1c0-1-1-1-3%201h-3l-1-1-2-1-4%201-4%201-1-2c-2-2-3-12-1-15v-3l1-1c1-2%200-4-2-2l-1-2%201-2%201-1v-7c2-4%202-7%200-7v-3c2-1%201-3%200-3-2%200-2-1-1-2v-3l1-2c2-2%202-6%200-6-1%201-2-3%200-6v-2c-2%200-3-3-1-4v-7l1-5c2-3%202-4%201-5v-3l1-3c-3%200-3-2-2-4l8-1h9l6-1h6l1%201h5c3-2%209-2%2010-1h18c2-2%206%200%204%201-1%202%201%201%205-1l4-1h5l2%201h5c2-2%203-2%203-1l2%201h10l1%201%204-1c3-2%205-2%205-1h3l2-1c0%202%202%203%203%201h4c2-1%202-1%204%201s2%202%204%200h4l4-1h2l2%201%201%201%204-1c3-2%203-2%203%200h7l3-1c0%202%200%202%203%200h6l1%201h14l5%201h5l2%201c3-1%203%201%202%204-2%203-2%204-1%204v2c-3%202-4%201-3-4%200-5%200-5-11%200a1257%201257%200%2001-42%2020c15-2%2031%201%2045%209l6%203v-4c0-4%200-5%204-4%203%200%204%202%202%203-3%201-2%203%200%203%201%201%202%201%201%202l1%202v3l1%202-1%202-1%203v7c1%202%200%203-1%205v5c2%202%202%202%200%204v3c2%202%202%2016-1%2016v2l3%202v1l1%201%203-1%201-3%201-5c2-1%201-4-1-4s-2-2%200-6l1-3c-3%200-3-2-2-4v-6c-1-2-1-3%201-5%202-3%202-4%201-5V67l1-5c-1-3%200-5%201-6l2-11c1-12%201-12-2-12-2%200-2%200-1-1s0-2-2-4l-1-3%201-3%201-2%201-1-2-1-2-2c0-2-2-3-2-1-1%202-3%201-2%200%200-2-1-2-3-1h-1c-1-1-2%200-4%201h-4c-1-1-4-2-6-1h-2c-1-1-2-1-4%201l-4%201-2-1h-7c0-2-5-2-9%200h-4l-2-1c1-1-1-1-4-1h-5l-4%201-4%201h-2l-2-1h-3c-2%202-4%202-4%201h-14l-2-1h-6c-2%202-2%202-3%201h-3c-2%202-2%202-4%200s-3-2-5%200h-2c0-2%200-2-4%200H91l-3%201h-5l-1-1h-7l-10-1h-4l-8%201h-5c-1%202-3%201-2%200%200-2-1-2-3%200-3%201-4%201-4-1h-1l-3-1-3%201m215%2028c-2%2016-2%2014%207%2017l7%202%205-26c0-2-1-2-9-2h-9l-1%209m22%204l-3%2015%204%203c5%202%205%202%205%200a11021%2011021%200%20016-29l-5-1h-5l-2%2012m20-10l-8%2032%203%201c3%201%203%201%207-16l5-17h-7m15%2022v5c1%202%202%202%202-1s2-6%202-3l1%201h13l1-1c2%200%203%203%203%204l1%201c2%201%202%200%202-3%200-5%202-4%202%201v5l1-4%201-3h5c3%200%204%201%203%204%200%202%202%201%203-1v-5c-3-3-37-3-40%200M90%2063c0%204%200%204-3%203-4%200-6%202-6%208s5%2011%208%207h2c1%201%201%200%201-10l-1-12-1%204m65%207c0%2010%200%2011%202%2011h3c3%203%208-4%207-10-1-4-3-5-7-5-3%201-3%201-3-3l-1-4-1%2011m-86-9l-1%202-1%202v2c1%201%200%207-1%206l-1%201v2c1%200%202%201%202%203-1%202%201%202%202%200%200-4%202-4%202-1l1%204%201-2%202-3v-3c-1-2%200-6%201-7v-2l-1-3v-2c-1%200-2%201-2%203l-1%202-1-2c0-3-1-4-2-2m43%207c-4%204%200%2014%205%2014%204%200%207-11%203-14-2-2-6-2-8%200m14%209l1%2011%201-4c0-4%200-4%202-3%204%202%208-3%207-10-1-4-2-5-7-5h-4v11m15-10c0%201%201%202%204%202%205-1%205%201%200%203-3%201-4%202-4%204-1%203%202%206%205%205h4c1%201%201%200%201-7v-7l-5-1-5%201m45%200c-3%204-2%2012%202%2014%202%201%207%200%207-1l-2-1c-2%201-3%200-4-1-3-2-2-3%202-3%205-1%206-3%204-7-2-2-7-3-9-1m121%202c-3%201-3%201-3%205%201%204%202%205%202%201l1-4h1c0%202%201%202%204%202l4-1%202-1%201%201c-1%201%201%201%204%201%204-1%205%200%205%201l1%201v2c-3%202-2%202%201%202%202%200%202%200%201-1-2%200-2-1-1-1l2-4c0-2%200-3%201-2h1l1%201%204%201c5-1%207%200%206%202v6h-18l-20%201c-3%201-4%204-2%207%201%201%201%201%201-2s2-5%202-2h1l1-1c0%201%201%202%203%201%203%200%203%200%202%202h2c1-2%201-2%201%201l1%204v-3c0-4%201-5%204-3h1c0-2%208-1%208%201%201%203%203%202%203-1%200-2%200-3%203-3l3%201%203%201%202%202h1c1-2%204-3%204-1h3c5-2%206-1%206%203v3l1-3c0-4%200-4%203-4%202%200%202%200%202%204-1%202-1%203%201%203v-2h1c1%201%201%201%201-1%200-6%200-7%202-4l1%201c0-2%202-1%203%202%200%203%200%203%202%202v-7c-1-2-19-3-21-1l-5%202c-3%200-3%200%200-1%206-1%208-5%204-9l-6-2h-2l2-1c2%200%202%200%201-1-1-2-38-2-43-1m-2%2027c-2%203-2%204%200%204l1-1c-1-1%200-1%201-1l4-1%203%201c1%202%202%201%203%200%202-2%202-2%203-1%200%202%201%202%202%201s2%200%202%203v1l1-1h1l1%201v-1c0-2%200-2%205-3h3c-1%202%200%202%202%200%201-1%202-1%202%201s3%204%203%203c2-1%201-6-1-7l-18-1c-16%200-17%200-18%202'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.783333333333333,"src":"/static/3cdbf2534d7661f34cf6e52f9c185ee4/f32f2/featured-image.jpg","srcSet":"/static/3cdbf2534d7661f34cf6e52f9c185ee4/466a3/featured-image.jpg 334w,\n/static/3cdbf2534d7661f34cf6e52f9c185ee4/f32f2/featured-image.jpg 569w","srcWebp":"/static/3cdbf2534d7661f34cf6e52f9c185ee4/3d427/featured-image.webp","srcSetWebp":"/static/3cdbf2534d7661f34cf6e52f9c185ee4/cd98f/featured-image.webp 334w,\n/static/3cdbf2534d7661f34cf6e52f9c185ee4/3d427/featured-image.webp 569w","sizes":"(max-width: 569px) 100vw, 569px"}}}}}},{"node":{"timeToRead":1,"excerpt":"AOJの1135、Ohgas’ Fortuneをjsで解きました。 こちらも入力の処理に手間取り、クリアタイムは24分です。 問題文はこちら これは、特に悩むことも無く。 率直に解きました。 コード","fields":{"slug":"/aoj-1135-ohgas-fortune/"},"frontmatter":{"date":"May 13, 2013","title":"[AOJ] 1135 Ohgas' Fortune","featuredImage":null}}},{"node":{"timeToRead":2,"excerpt":"AOJの1137、Numeral SystemをJavaScriptで解きました。 入力の処理に時間を取られ、35分強かかってしまいました。 問題文はこちら 文字列操作の問題ですね。 replace＋eval…","fields":{"slug":"/aoj-1137-numeral-system/"},"frontmatter":{"date":"May 13, 2013","title":"[AOJ] 1137 Numeral System","featuredImage":null}}},{"node":{"timeToRead":11,"excerpt":"こんにちは。 最近、オライリー・ジャパンの 「JavaScript パターン――優れたアプリケーションのための作法」という本を読んでいます。 この本は、JavaScript でのコーディングパターンや、 Javascript…","fields":{"slug":"/learn-inherit-pattern-from-coffeescript-and-typescript/"},"frontmatter":{"date":"May 09, 2013","title":"CoffeescriptとTypescriptから学ぶjsでのクラス・継承パターン","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='143'%20viewBox='0%200%20400%20143'%20preserveAspectRatio='none'%3e%3cpath%20d='M43%2048v16h57l-3%202-7%204a3526%203526%200%2001-22%2011%20105%20105%200%2000-21%2022c-2%201%200%204%202%204l7-2c7-4%2017-3%2015%201l1%201c2-1%203%205%202%208%200%201%200%202%201%201l3%202h4l6%201c3%202%208%202%205%200-1-1%200-1%202-1l4-1-4-1h-2c1-2%201-2-2-1-4%200-7-1-9-4l-1-3%204-4%204-2c1%202%2010-2%2014-6%207-6%209-12%207-23l-1-4-1-1-2-3c-1-4%200-5%203-5%201-1%202%200%203%202%200%202%201%202%206%202h5V31H43v17'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.783333333333333,"src":"/static/83eb668731704ae594b04d3d29ed7c2c/69e52/featured-image.png","srcSet":"/static/83eb668731704ae594b04d3d29ed7c2c/1ec58/featured-image.png 334w,\n/static/83eb668731704ae594b04d3d29ed7c2c/69e52/featured-image.png 569w","srcWebp":"/static/83eb668731704ae594b04d3d29ed7c2c/3d427/featured-image.webp","srcSetWebp":"/static/83eb668731704ae594b04d3d29ed7c2c/cd98f/featured-image.webp 334w,\n/static/83eb668731704ae594b04d3d29ed7c2c/3d427/featured-image.webp 569w","sizes":"(max-width: 569px) 100vw, 569px"}}}}}},{"node":{"timeToRead":12,"excerpt":"こんにちは。れこです。 最近は、友人といちれこプロジェクトという活動をしていまして、 まだ詳細は非公開ですが、iOS と Android 両方に対応したアプリを作っています。 双方のプラットフォーム用の言語や、独自仕様を覚えるのは面倒なので、 Java や Objective-C…","fields":{"slug":"/automated-build-ios-anndroid-with-titanium/"},"frontmatter":{"date":"April 05, 2013","title":"titanium-cliとGruntを使って、コマンドラインからiOS・Androidアプリのビルドを自動化する方法(前編)","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='162'%20viewBox='0%200%20400%20162'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2081v81h401V0H0v81m277-37c-5%203-8%206-9%2012%200%205%201%205%207%202%204-3%208-9%208-13s0-4-6-1M8%2082l1%2036h57l7-7%207-7V46H8v36m341-36l1%203c1%203%201%203-1%205-3%202-7%209-7%2012%200%202%202%202%2020%202%2023%200%2022%200%2018-8l-7-7v-3c2-3%202-4%201-4l-2%202c-1%204-20%204-20%200-1-2-3-3-3-2m-74%2015c-6%202-7%202-11%200-20-6-32%2015-21%2038%206%2013%2011%2017%2022%2014h10c10%203%2017-2%2021-14%202-4%202-4-1-6-7-5-8-18-2-23%203-3%203-3%201-5-4-5-11-7-19-4m58%2010c-2%201-2%203-2%2011%200%2012%201%2014%206%2014h3V83c0-13%200-14-4-14l-3%202m9%2014c0%2017%200%2017%205%2018%202%200%203%201%203%206%200%206%201%208%205%208%203%200%204-1%204-8%200-5%201-6%204-5%202%200%202%201%202%204%200%207%200%208%203%209%204%202%206-1%206-8%200-5%200-5%203-6%204%200%205-2%205-18V70h-40v15m42-14l-1%2012c0%2011%201%2013%206%2013h3V84l-1-14c-2-2-6-1-7%201'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.474074074074074,"src":"/static/3013cdef627d36a25044c2a2f1977e61/741c1/featured-image.jpg","srcSet":"/static/3013cdef627d36a25044c2a2f1977e61/466a3/featured-image.jpg 334w,\n/static/3013cdef627d36a25044c2a2f1977e61/741c1/featured-image.jpg 604w","srcWebp":"/static/3013cdef627d36a25044c2a2f1977e61/e33b9/featured-image.webp","srcSetWebp":"/static/3013cdef627d36a25044c2a2f1977e61/cd98f/featured-image.webp 334w,\n/static/3013cdef627d36a25044c2a2f1977e61/e33b9/featured-image.webp 604w","sizes":"(max-width: 604px) 100vw, 604px"}}}}}},{"node":{"timeToRead":4,"excerpt":"こんにちは。 最近、Backbone.jsというライブラリを使って、制作をしています。 Backboneいいですね〜。 各UIパーツの結合度が下がるので、 全体の見通しが良くなり、メンテもしやすくなります。 今作っているものはそこまで規模が大きいものではないのですが、 大規模js…","fields":{"slug":"/test-backbone-with-sinon/"},"frontmatter":{"date":"March 22, 2013","title":"Backbone.js×sinon.jsのテストでspyが上手く動かない時のメモ","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='144'%20viewBox='0%200%20400%20144'%20preserveAspectRatio='none'%3e%3cpath%20d='M333%2027c9%205%209%207%201%2012s-8%207%200%2011l5%205c1%202-1%2010-3%2010-1%201-1%201%201%201%203%200%2012-9%2012-12s-2-5-6-6c-8-2-6-5%205-9%2018-6%2012-13-10-14h-10l5%202m-31%2013l-6%204c-3%201-3%201-2%206%202%203%203%204%204%201%200-2%206-6%208-6%203%200%206%205%209%2018%203%2014%208%2027%2011%2030%202%203%200%202-6-1-5-2-5-2-4-5%206-21-23-31-35-11-8%2012%200%2027%2013%2027%204%200%2014-4%2015-6l16%2010%2015%2011h2c2%202%206%201%208-2%202-4%201-8-6-11l-5-3%203-1c6-2%209-7%209-16s-5-19-9-19v1l2%202h-2c-3-2-6-2-9-1-2%202-4%202-2%200%201-1%201-1-1-1-1%201-2%200-5-6-9-24-12-26-23-21M36%2072v19l7-3c8-6%208-6%2016-1l8%204V53l-7%204c-8%205-8%205-16%200l-8-4v19m44%200v11h5c8%200%2012-5%207-10v-3c5-4%200-9-7-9h-5v11m20%200l-4%2011%203-4c1-4%201-4%206-4%204%200%204%200%205%203%202%205%202%206%203%204l-8-21-5%2011m51-10v11l1%2010h3c6%200%2010-2%2010-5%201-2%200-6-2-6v-2c3-2%202-6%200-7-3-2-11-3-12-1m22%200c-3%202-4%206-4%2010%200%2010%209%2015%2016%208%204-4%204-13%200-17-3-2-9-3-12-1m19%2010c0%2013%202%2015%202%202l1-9%205%209%207%209%201-11c0-13-1-14-2-2v9l-6-8-7-10-1%2011m-19-8c-6%206-2%2019%206%2018%205-1%207-4%207-10%200-9-7-13-13-8m121%208c-7%204-12%2013-11%2019%203%207%2010%208%2018%203%2016-11%209-31-7-22m1%201c-5%202-6%204-2%203%202%200%202%200%201%202-3%204-2%204%201%202s4-2%201%202c-2%202%200%203%203%200%202-3%203-2%201%202-2%203-1%204%202%201%202-3%203-2%202%201-2%204-1%203%202-1%204-5%204-4-1-10-4-5-4-5-10-2m36%206a8882%208882%200%20010%203v1c1%203%200%208-2%208-2%201-2%201%201%203%204%203%208%204%2010%201%202-1%202-1%200-1-3%200-4-2-1-2%203-1%202-3-1-3l-2-1%202-2%203-1-3-1-2-2%203-1%203-1-3-2c-5-1-8-1-8%201m-16%2015c-2%201-1%202%201%201l2%202c1%202%201%202%202%201%201-2%202-1%203%202%200%203%200%203%202%202%201-3%201-3%203%202%201%202%201%202%202%201%201-2%201-2%202%201%202%203%202%203%203%202%200-2%201-2%202%201l2%204%201-3%202-4-13-6c-12-7-13-7-14-6'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.783333333333333,"src":"/static/0d5dd3302cf63e575062d76b12d9ea32/2db26/featured-image.jpg","srcSet":"/static/0d5dd3302cf63e575062d76b12d9ea32/466a3/featured-image.jpg 334w,\n/static/0d5dd3302cf63e575062d76b12d9ea32/2db26/featured-image.jpg 549w","srcWebp":"/static/0d5dd3302cf63e575062d76b12d9ea32/f142c/featured-image.webp","srcSetWebp":"/static/0d5dd3302cf63e575062d76b12d9ea32/cd98f/featured-image.webp 334w,\n/static/0d5dd3302cf63e575062d76b12d9ea32/f142c/featured-image.webp 549w","sizes":"(max-width: 549px) 100vw, 549px"}}}}}},{"node":{"timeToRead":5,"excerpt":"こんにちは。 昼夜逆転が一周してやっと普通の生活に戻って来ました。れこです 最近、CoffeeScriptというJavaScriptのライブラリにハマっています。 半年前くらいに流行った、賛否両論なjsライブラリです。 非常にシンプルにjsを書くことができて、Ruby on…","fields":{"slug":"/write-jquery-plugin-with-coffeescript/"},"frontmatter":{"date":"February 17, 2013","title":"CoffeeScriptでjQueryプラグインを書いてみて思ったこと","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='162'%20viewBox='0%200%20400%20162'%20preserveAspectRatio='none'%3e%3cpath%20d='M340%2049l3%203c2%201%203%203%202%203l1%201%201%204c0%204%200%204-2%204a243%20243%200%2000-86-1l-2%201-1%202c0%202-2%204-4%204l-4%202-5%201c-3%200-3%200-2%201h4c2%200%203%200%203%202h1c0-2%201-3%202-3h2l2%202c1%203%201%203-1%203a271%20271%200%2000-28%205v-1l-2-1%202-1v-1h-6l-3%202-4%201-5%201-2%201-2%201-3%201-6%204c-3%203-4%204-5%203h-3c-2%203-1%204%205%2010%2033%2031%20136%2034%20179%205%2024-16%2019-39-12-54-9-4-19-7-19-5'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.474074074074074,"src":"/static/90283e46f6357d3a1064c610601642ce/741c1/featured-image.jpg","srcSet":"/static/90283e46f6357d3a1064c610601642ce/466a3/featured-image.jpg 334w,\n/static/90283e46f6357d3a1064c610601642ce/741c1/featured-image.jpg 604w","srcWebp":"/static/90283e46f6357d3a1064c610601642ce/e33b9/featured-image.webp","srcSetWebp":"/static/90283e46f6357d3a1064c610601642ce/cd98f/featured-image.webp 334w,\n/static/90283e46f6357d3a1064c610601642ce/e33b9/featured-image.webp 604w","sizes":"(max-width: 604px) 100vw, 604px"}}}}}}]}},"pageContext":{"tag":"JavaScript"}},
    "staticQueryHashes": ["2585454260","2954598359"]}