diff --git a/200.html b/200.html index e2a3c27c27..19a97bee85 100644 --- a/200.html +++ b/200.html @@ -1,4 +1,4 @@ blog.sugarshin.net
\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2016/06/05/published-oneteam-rte/index.html b/2016/06/05/published-oneteam-rte/index.html index bd9f7203ea..e0d33f0468 100644 --- a/2016/06/05/published-oneteam-rte/index.html +++ b/2016/06/05/published-oneteam-rte/index.html @@ -1,4 +1,4 @@ -リッチテキストエディタ oneteam-rte を公開しました | blog.sugarshin.net
blog.sugarshin.net

リッチテキストエディタ oneteam-rte を公開しました

Main

リッチテキストエディタ用の React コンポーネントを公開しました。

GitHub: https://github.com/oneteam-dev/oneteam-rte

npm: https://www.npmjs.com/package/oneteam-rte

2016年6月現在のバージョンは 0.2.12 です。

oneteam-rte.gif

2016年2月に OSS として公開された Facebook 製のフレームワーク、 Draft.js のラッパーです。

目次

使用例

import React from 'react'
+リッチテキストエディタ oneteam-rte を公開しました | blog.sugarshin.net
blog.sugarshin.net

リッチテキストエディタ oneteam-rte を公開しました

Main

リッチテキストエディタ用の React コンポーネントを公開しました。

GitHub: https://github.com/oneteam-dev/oneteam-rte

npm: https://www.npmjs.com/package/oneteam-rte

2016年6月現在のバージョンは 0.2.12 です。

oneteam-rte.gif

2016年2月に OSS として公開された Facebook 製のフレームワーク、 Draft.js のラッパーです。

目次

使用例

import React from 'react'
 import { render } from 'react-dom'
 import RichTextEditor, { Toolbar, Body } from 'oneteam-rte'
 import 'oneteam-rte/lib/base.css'
@@ -13,4 +13,4 @@
 

ツールバー

下記の Function が利用可能です。

  • 画像挿入
  • ファイル添付
  • iframe 埋め込み
  • リンク
  • 見出しレベル
  • Bold
  • Italic
  • 打ち消し線
  • Blockquote
  • チェックボックスリスト
  • 順不同リスト
  • 順序付きリスト

Draft.js

Draft.js は Immutable.js に依存していて、 下記のようエディタの状態を管理する State object (EditorState) をこの Immutable.js のデータ構造を利用して管理しています。

  • エディタのテキストの内容
  • カーソルの位置、状態
  • テキストの装飾の状態
  • Undo/redo
  • etc...

業務で利用しているため、仕様の都合上、素のままでは実現できないものもあり、結局 Draft.js に直接手を入れて利用しています。

https://github.com/oneteam-dev/draft-js/tree/oneteam

draft-js-export-html

EditorState からシリアライズした HTML の出力にも OSS を利用しました。

https://github.com/sstur/draft-js-export-html

これも仕様の都合上、 fork して手を入れています。

https://github.com/oneteam-dev/draft-js-export-html/tree/oneteam


PR 大歓迎です。

また、 @ngs 氏もコントリビュートしてくださっています。

@ngs 氏が Swift 版も公開していますのでそちらも要チェックです。

https://github.com/oneteam-dev/SwiftyDraft

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2016/07/14/blog-like-software-development/index.html b/2016/07/14/blog-like-software-development/index.html index 700fcd6a27..73943a83cf 100644 --- a/2016/07/14/blog-like-software-development/index.html +++ b/2016/07/14/blog-like-software-development/index.html @@ -1,4 +1,4 @@ -React と Redux なブログ運用をソフトウェア開発する話し | blog.sugarshin.net
blog.sugarshin.net

React と Redux なブログ運用をソフトウェア開発する話し

Main

継続的なソフトウェア開発プロセスを取り入れ、最低限の SEO は考慮しつつ無理矢理 React でブログを作ってみたという話しです。


個人ブログ開設にあたり何を使おうか迷いまして、いろいろ考えた結果結局 React と Redux で自作しました。

過去の経験上、普通にブログを続けていくだけではモチベーションを保てないなぁと思い、ソフトウェア開発的なプロセスや自動化を取り入れつつという感じです。

https://github.com/sugarshin/blog.sugarshin.net

Redux 周りを最近触っていなかったので久しぶりに触りたかったというのも理由付けの1つです。

目次

利用ツール

主な利用ツールは以下です。

  • React
  • react-router
  • Redux
  • redux-thunk
  • webpack
  • Babel with ES2015
  • CSS Modules
  • PostCSS
  • Stylus
  • Pug
  • remark
  • textlint
  • ESLint
  • Stylint
  • Mocha
  • power-assert
  • Enzyme
  • Travis CI
  • Greenkeeper

大まかに順番に解説します。

React

本体は特に変哲もない普通の React + react-router です。 Redux のディレクトリ構成に沿ってはいます。

特に複雑な非同期処理もないので redux-thunk でよっこいしょしています。

src
+React と Redux なブログ運用をソフトウェア開発する話し | blog.sugarshin.net
blog.sugarshin.net

React と Redux なブログ運用をソフトウェア開発する話し

Main

継続的なソフトウェア開発プロセスを取り入れ、最低限の SEO は考慮しつつ無理矢理 React でブログを作ってみたという話しです。


個人ブログ開設にあたり何を使おうか迷いまして、いろいろ考えた結果結局 React と Redux で自作しました。

過去の経験上、普通にブログを続けていくだけではモチベーションを保てないなぁと思い、ソフトウェア開発的なプロセスや自動化を取り入れつつという感じです。

https://github.com/sugarshin/blog.sugarshin.net

Redux 周りを最近触っていなかったので久しぶりに触りたかったというのも理由付けの1つです。

目次

利用ツール

主な利用ツールは以下です。

  • React
  • react-router
  • Redux
  • redux-thunk
  • webpack
  • Babel with ES2015
  • CSS Modules
  • PostCSS
  • Stylus
  • Pug
  • remark
  • textlint
  • ESLint
  • Stylint
  • Mocha
  • power-assert
  • Enzyme
  • Travis CI
  • Greenkeeper

大まかに順番に解説します。

React

本体は特に変哲もない普通の React + react-router です。 Redux のディレクトリ構成に沿ってはいます。

特に複雑な非同期処理もないので redux-thunk でよっこいしょしています。

src
 ├── actions
 ├── apis
 ├── components
@@ -119,4 +119,4 @@
 

記事内のコードブロックに対しても ESLint でリントします。

ビルド、デプロイ

ホスティングは GitHub Pages です。

なので、 SEO のためにも各記事ごとに静的ファイルを用意しないといけないのですが、

当初は ReactDOMServer.renderToString でビルド時に、サーバーサイドレンダリングライクな感じで吐いて、クライアントでレンダリング済みの DOM と React がスムーズに連携できる予定でしたがうまくいかず。。

結局、 Pug で各ページ分、内容を雑にレンダリングして内容部分は style="display: none;" しつつ生成するようにしています。笑

これで各ページ分クロールもされ、アクセス後は SPA として動作します。

Google Search Console でも今のところ特に問題視されていません。

その他、 sitemap.xml や RSS, Atom フィード用の xml 、 Favicon, OG 画像等もビルド時に script でつくっています。

master ブランチにマージされると、テスト、ビルド、デプロイと Travis CI で CI がまわります。

Greenkeeper

Greeankeeper でライブラリの最新化もほぼ自動化しています。

利用ライブラリにアップデートがあると Bot からプルリクがとんでくるのであとは CI が通ればマージするだけです。

npm-check-updates よりも楽かなと思います。

OSS のリポジトリだと無料で利用できるので、他の自分の OSS でも利用しています。

TODOs

  • テストをかく
  • ReactDOMServer.renderToString でスマートにしたい
  • SEO をもう少しがんばる
  • もろもろ整理、パッケージにして OSS 化(React static blog generator ?)したい

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/04/30/monthly-report-1704/index.html b/2017/04/30/monthly-report-1704/index.html index 601a891c26..a2b9cc3041 100644 --- a/2017/04/30/monthly-report-1704/index.html +++ b/2017/04/30/monthly-report-1704/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2017-04 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2017-04 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Pull requests

Releases

Starred repositories

Issues events

  • opened Emoji plugin raise exeption when number emoji
    • Hi, Could you check this. The following emoticons will raise exception. ` ^:(one|two|three|four|five|six|seven|eight|nine|zero):$ ...

    • created_at: 2017-04-17T05:02:11Z
  • opened Publish npm
    • Hi, Please publish latest version to npm. thanks.

    • created_at: 2017-04-13T13:49:34Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2017-04 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Pull requests

Releases

Starred repositories

Issues events

  • opened Emoji plugin raise exeption when number emoji
    • Hi, Could you check this. The following emoticons will raise exception. ` ^:(one|two|three|four|five|six|seven|eight|nine|zero):$ ...

    • created_at: 2017-04-17T05:02:11Z
  • opened Publish npm
    • Hi, Please publish latest version to npm. thanks.

    • created_at: 2017-04-13T13:49:34Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/05/07/automation-monthly-report/index.html b/2017/05/07/automation-monthly-report/index.html index 1cbf09efdb..ed460691d3 100644 --- a/2017/05/07/automation-monthly-report/index.html +++ b/2017/05/07/automation-monthly-report/index.html @@ -1,4 +1,4 @@ -OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する | blog.sugarshin.net
blog.sugarshin.net

OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する

Main

月ごとに、 OSS コントリビューションや GitHub 上での活動をまとめたレポートの当ブログへの投稿を自動化しました。


なかなかブログも書けないので、これから GitHub の月報を投稿していくことにしました。

[Monthly report] 2017-04 my activity this month on GitHub

目次

流れ

やっていることは単純ですが大まかな流れとしては、

  1. GitHub API から User event を取得して該当月のイベントから記事を作成する
  2. GitHub へ push
  3. API で Pull request を作成し、 CI がパス次第 API で Merge
  4. CircleCI などで上述の script を実行
  5. cron などで月末に定期ビルドさせる

前提として、 GitHub 上で投稿までのサイクルが回るようになっています。

React と Redux なブログ運用をソフトウェア開発する話し

List events performed by a user

User event は GET /users/:username/events エンドポイントから取得します。パブリックなイベントのみでいいはずなのでアクセストークンは必要ないです。

ただ API の仕様で、過去 90 日以内でかつ上限 300 件しか取得できないので、活動が多かった月は漏れがあるかもです。週ごと程度定期で取得してストックしておくなどの対応が必要かもですね。

ref: https://developer.github.com/v3/activity/events/#list-events-performed-by-a-user

$ curl "https://api.github.com/users/sugarshin/events"
+OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する | blog.sugarshin.net
blog.sugarshin.net

OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する

Main

月ごとに、 OSS コントリビューションや GitHub 上での活動をまとめたレポートの当ブログへの投稿を自動化しました。


なかなかブログも書けないので、これから GitHub の月報を投稿していくことにしました。

[Monthly report] 2017-04 my activity this month on GitHub

目次

流れ

やっていることは単純ですが大まかな流れとしては、

  1. GitHub API から User event を取得して該当月のイベントから記事を作成する
  2. GitHub へ push
  3. API で Pull request を作成し、 CI がパス次第 API で Merge
  4. CircleCI などで上述の script を実行
  5. cron などで月末に定期ビルドさせる

前提として、 GitHub 上で投稿までのサイクルが回るようになっています。

React と Redux なブログ運用をソフトウェア開発する話し

List events performed by a user

User event は GET /users/:username/events エンドポイントから取得します。パブリックなイベントのみでいいはずなのでアクセストークンは必要ないです。

ただ API の仕様で、過去 90 日以内でかつ上限 300 件しか取得できないので、活動が多かった月は漏れがあるかもです。週ごと程度定期で取得してストックしておくなどの対応が必要かもですね。

ref: https://developer.github.com/v3/activity/events/#list-events-performed-by-a-user

$ curl "https://api.github.com/users/sugarshin/events"
 
 [
   {
@@ -62,4 +62,4 @@
 

月の末日をとるのが難しかったので、月初の 0 時 1 分とし、そこからビルド時間を考慮した分をマイナスして計算するようにしてあります。

ref: blog.sugarshin.net/index.js at 53700e705c6f154510d853fa5cbdd5f393a376ce · sugarshin/blog.sugarshin.net


GitHub の API でとれるデータを元に、エンジニアのパフォーマンス計測や作業量などの算出に利用して、エンジニアの働き方やワークライフバランス改善の 1 つの指針に利用できたりしないかなと考えてみたりしています。

リンク

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/05/31/monthly-report-1705/index.html b/2017/05/31/monthly-report-1705/index.html index cedafc8464..9316c445f0 100644 --- a/2017/05/31/monthly-report-1705/index.html +++ b/2017/05/31/monthly-report-1705/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2017-05 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2017-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Make private repository public

Pull requests

Releases

Starred repositories

Issues events

  • opened Publish to latest code
    • Hi, Could you please publish latest branch to npm registry. Thanks....

    • created_at: 2017-05-28T05:56:55Z
  • opened Publish latest version
    • HI, Available this warning when npm installation. ` warning "chai-enzyme@0.7.0" has unmet peer dependency "react-addons-test-utils......

    • created_at: 2017-05-24T00:49:54Z
  • opened Raise error when checkbox clicked
    • Uncaught DOMException: Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges. This is maybe Chromiu......

    • created_at: 2017-05-23T03:44:15Z
  • opened Publish to npm
    • Hi, Could you please publish to npm registry. Thanks....

    • created_at: 2017-05-21T06:55:32Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2017-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Make private repository public

Pull requests

Releases

Starred repositories

Issues events

  • opened Publish to latest code
    • Hi, Could you please publish latest branch to npm registry. Thanks....

    • created_at: 2017-05-28T05:56:55Z
  • opened Publish latest version
    • HI, Available this warning when npm installation. ` warning "chai-enzyme@0.7.0" has unmet peer dependency "react-addons-test-utils......

    • created_at: 2017-05-24T00:49:54Z
  • opened Raise error when checkbox clicked
    • Uncaught DOMException: Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges. This is maybe Chromiu......

    • created_at: 2017-05-23T03:44:15Z
  • opened Publish to npm
    • Hi, Could you please publish to npm registry. Thanks....

    • created_at: 2017-05-21T06:55:32Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/06/30/monthly-report-1706/index.html b/2017/06/30/monthly-report-1706/index.html index 786d286a87..994fcf4ff9 100644 --- a/2017/06/30/monthly-report-1706/index.html +++ b/2017/06/30/monthly-report-1706/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2017-06 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2017-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2017-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/07/31/monthly-report-1707/index.html b/2017/07/31/monthly-report-1707/index.html index 61fa805c46..b5acab2bed 100644 --- a/2017/07/31/monthly-report-1707/index.html +++ b/2017/07/31/monthly-report-1707/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2017-07 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2017-07 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2017-07 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/08/31/monthly-report-1708/index.html b/2017/08/31/monthly-report-1708/index.html index cab1f0ade4..6ca55afa91 100644 --- a/2017/08/31/monthly-report-1708/index.html +++ b/2017/08/31/monthly-report-1708/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2017-08 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2017-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • closed max width
    • cannot set width, always overrided. ...

    • created_at: 2017-08-30T00:14:46Z
  • closed styling
    • Hey, thanks for the nice component. Plugging it in was pretty pretty simple and it worked flawlessly. Just one small thing, the styling I......

    • created_at: 2017-08-30T00:14:30Z
  • closed How to use onLoading to display progress.
    • I have been trying to use onLoading function to display a progress indicator. I tried to return a JSX element from the onloading function......

    • created_at: 2017-08-30T00:08:04Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2017-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • closed max width
    • cannot set width, always overrided. ...

    • created_at: 2017-08-30T00:14:46Z
  • closed styling
    • Hey, thanks for the nice component. Plugging it in was pretty pretty simple and it worked flawlessly. Just one small thing, the styling I......

    • created_at: 2017-08-30T00:14:30Z
  • closed How to use onLoading to display progress.
    • I have been trying to use onLoading function to display a progress indicator. I tried to return a JSX element from the onloading function......

    • created_at: 2017-08-30T00:08:04Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/09/13/mo/index.html b/2017/09/13/mo/index.html index ad2289241d..4179328412 100644 --- a/2017/09/13/mo/index.html +++ b/2017/09/13/mo/index.html @@ -1,4 +1,4 @@ -mo - CircleCI のモバイル Web クライアントを公開しました | blog.sugarshin.net
blog.sugarshin.net

mo - CircleCI のモバイル Web クライアントを公開しました

Main

モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。


mo.gif

mo - CircleCI client for mobile web

https://github.com/sugarshin/mo/

目次

モチベーション

  • CircleCI のオフィシャル Web クライアントがモバイルディスプレイに対応してい ない なかった
    • (モチベーション半減したけどなんとか公開までもっていった
  • モバイル Web でもシンプルに、ビルドの確認、キャンセル、リビルドをしたい

機能

List

List

Single build

Single build

Rebuild, Cancel, Rebuild without cache

Rebuild, Cancel, Rebuild without cache

Personal API Token を用意して Authorize してください。

Auth

Technology stack

  • Next.js
  • Now

Next.js

SPA + SSR / Universal JavaScript なフレームワーク Next.js を利用しています。

個人的には苦ではない Frontend のブートストラッピングはほぼやらなくて済むので楽です。 CSS Modules がうまく組み込めなくてあきらめました。

SPA + SSR / Universal JavaScript の知見として肌感覚程度には得られました。

Now

PaaS として Now を利用しました。デプロイが高速で Web のインターフェイスがありそこから確認できたりいろいろ便利です。

TODO

  • リアルタイムアップデート

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

mo - CircleCI のモバイル Web クライアントを公開しました

Main

モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。


mo.gif

mo - CircleCI client for mobile web

https://github.com/sugarshin/mo/

目次

モチベーション

  • CircleCI のオフィシャル Web クライアントがモバイルディスプレイに対応してい ない なかった
    • (モチベーション半減したけどなんとか公開までもっていった
  • モバイル Web でもシンプルに、ビルドの確認、キャンセル、リビルドをしたい

機能

List

List

Single build

Single build

Rebuild, Cancel, Rebuild without cache

Rebuild, Cancel, Rebuild without cache

Personal API Token を用意して Authorize してください。

Auth

Technology stack

  • Next.js
  • Now

Next.js

SPA + SSR / Universal JavaScript なフレームワーク Next.js を利用しています。

個人的には苦ではない Frontend のブートストラッピングはほぼやらなくて済むので楽です。 CSS Modules がうまく組み込めなくてあきらめました。

SPA + SSR / Universal JavaScript の知見として肌感覚程度には得られました。

Now

PaaS として Now を利用しました。デプロイが高速で Web のインターフェイスがありそこから確認できたりいろいろ便利です。

TODO

  • リアルタイムアップデート

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/09/30/monthly-report-1709/index.html b/2017/09/30/monthly-report-1709/index.html index e6354e4a41..9431df94c6 100644 --- a/2017/09/30/monthly-report-1709/index.html +++ b/2017/09/30/monthly-report-1709/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2017-09 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2017-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Make private repository public

  • sugarshin/mo
    • description: undefined
    • created_at: 2017-09-12T16:50:40Z

Pull requests

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2017-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Make private repository public

  • sugarshin/mo
    • description: undefined
    • created_at: 2017-09-12T16:50:40Z

Pull requests

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/10/31/monthly-report-1710/index.html b/2017/10/31/monthly-report-1710/index.html index 3b4a528e40..edabd602e1 100644 --- a/2017/10/31/monthly-report-1710/index.html +++ b/2017/10/31/monthly-report-1710/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2017-10 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2017-10 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2017-10 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2017/12/31/monthly-report-1712/index.html b/2017/12/31/monthly-report-1712/index.html index 4f924ddce9..3b70065363 100644 --- a/2017/12/31/monthly-report-1712/index.html +++ b/2017/12/31/monthly-report-1712/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2017-12 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2017-12 my activity this month on GitHub

sugarshin

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • opened Update react-select
    • Hi, Please update version of react-select , because there are functions that can not be used now. Latest version is 1.1.0 . Thank you!...

    • created_at: 2017-12-15T10:31:45Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2017-12 my activity this month on GitHub

sugarshin

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • opened Update react-select
    • Hi, Please update version of react-select , because there are functions that can not be used now. Latest version is 1.1.0 . Thank you!...

    • created_at: 2017-12-15T10:31:45Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/01/31/monthly-report-1801/index.html b/2018/01/31/monthly-report-1801/index.html index 91a0dd7b93..4d701490ca 100644 --- a/2018/01/31/monthly-report-1801/index.html +++ b/2018/01/31/monthly-report-1801/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-01 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/02/28/monthly-report-1802/index.html b/2018/02/28/monthly-report-1802/index.html index 3b3ff4909d..b2ee978888 100644 --- a/2018/02/28/monthly-report-1802/index.html +++ b/2018/02/28/monthly-report-1802/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-02 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-02 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-02 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/03/31/monthly-report-1803/index.html b/2018/03/31/monthly-report-1803/index.html index 6957890eaa..6ba19e0717 100644 --- a/2018/03/31/monthly-report-1803/index.html +++ b/2018/03/31/monthly-report-1803/index.html @@ -1,4 +1,4 @@ [Monthly report] 2018-03 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-03 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • closed webpack v4
    • ...

    • created_at: 2018-03-30T11:50:36Z
  • closed Incorrect paths
    • Hi, Thank you for make this plugin! I try to this with html-webpack-plugin . following results. Icon path is incorrect. html webpack.c......

    • created_at: 2018-03-22T22:22:57Z
  • opened Incorrect paths
    • Hi, Thank you for make this plugin! I try to this with html-webpack-plugin . following results. Icon path is incorrect. html webpack.c......

    • created_at: 2018-03-22T14:22:30Z
  • opened webpack v4
    • ...

    • created_at: 2018-03-18T06:27:35Z
  • closed Support for React 16
    • I've updated React to 16 and npm gives me a peer dep warning. Is it possible to add support for it ? Thanks :)...

    • created_at: 2018-03-03T23:44:35Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/04/28/printing-style-notify-slack/index.html b/2018/04/28/printing-style-notify-slack/index.html index 688c3cb931..676814f351 100644 --- a/2018/04/28/printing-style-notify-slack/index.html +++ b/2018/04/28/printing-style-notify-slack/index.html @@ -1,4 +1,4 @@ -Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する | blog.sugarshin.net
blog.sugarshin.net

Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する

Main

Web ページの印刷は、気をつけていないとスタイルくずれを起こしやすいかなと思います。それが、日々、機能追加や改善を行う Web アプリケーションとなるとさらにこの問題がでてきます。

業務で開発している Web アプリケーションで印刷時のスタイリングをサポートするにあたり、継続的な見た目のチェックを自動化し、結果を Slack に通知するようにしました。


目次

CircleCI

Web アプリケーションのデプロイをトリガーに、 CircleCI 上で実行します。

  1. ヘッドレスブラウザで印刷をエミュレートし、 PDF やスクリーンショットをとる
  2. 結果を Slack に通知する
  3. 上記を CircleCI で実行

.circleci/config.yml

version: 2
+Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する | blog.sugarshin.net
blog.sugarshin.net

Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する

Main

Web ページの印刷は、気をつけていないとスタイルくずれを起こしやすいかなと思います。それが、日々、機能追加や改善を行う Web アプリケーションとなるとさらにこの問題がでてきます。

業務で開発している Web アプリケーションで印刷時のスタイリングをサポートするにあたり、継続的な見た目のチェックを自動化し、結果を Slack に通知するようにしました。


目次

CircleCI

Web アプリケーションのデプロイをトリガーに、 CircleCI 上で実行します。

  1. ヘッドレスブラウザで印刷をエミュレートし、 PDF やスクリーンショットをとる
  2. 結果を Slack に通知する
  3. 上記を CircleCI で実行

.circleci/config.yml

version: 2
 jobs:
   build:
     branches:
@@ -82,4 +82,4 @@
 

Diff

スタイルくずれを把握しやすいように、 PDF とかスクリーンショットの Diff をとって通知内容に含められればもっといいですね。

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/04/30/monthly-report-1804/index.html b/2018/04/30/monthly-report-1804/index.html index bbf5d153c2..97ada57aca 100644 --- a/2018/04/30/monthly-report-1804/index.html +++ b/2018/04/30/monthly-report-1804/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-04 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-04 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-04 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/05/01/qiita-image-upload-cli-with-oclif/index.html b/2018/05/01/qiita-image-upload-cli-with-oclif/index.html index 556a1b9aed..b6b3877231 100644 --- a/2018/05/01/qiita-image-upload-cli-with-oclif/index.html +++ b/2018/05/01/qiita-image-upload-cli-with-oclif/index.html @@ -1,4 +1,4 @@ -Qiita に画像をアップロードする CLI ツールを oclif でつくる | blog.sugarshin.net
blog.sugarshin.net

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main

Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク oclif を使ってつくってみました。

$ yarn global add qiiu
+Qiita に画像をアップロードする CLI ツールを oclif でつくる | blog.sugarshin.net
blog.sugarshin.net

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main

Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク oclif を使ってつくってみました。

$ yarn global add qiiu
 
 # or
 
@@ -64,4 +64,4 @@
 

ref: https://github.com/sugarshin/qiiu/blob/master/src/upload.ts

2 段階認証を有効にしている場合の対応や、記事の下書きの上限数を考慮する対応などもしてあります。


これでいろいろ自動化できそう。

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/05/31/monthly-report-1805/index.html b/2018/05/31/monthly-report-1805/index.html index e3c2f0ca18..60ea57815b 100644 --- a/2018/05/31/monthly-report-1805/index.html +++ b/2018/05/31/monthly-report-1805/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-05 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • opened Fix test
    • ...

    • created_at: 2018-05-03T04:48:58Z
  • closed Tests
    • ...

    • created_at: 2018-05-03T04:48:50Z
  • closed Publish to npm
    • ...

    • created_at: 2018-05-03T04:48:43Z
  • closed The automated release is failing 🚨
    • :rotatinglight: The automated release from the master branch failed. :rotatinglight: I recommend you give this issue a high priority, so......

    • created_at: 2018-05-03T02:50:32Z
  • opened Publish to npm
    • ...

    • created_at: 2018-05-01T13:11:57Z
  • opened Tests
    • ...

    • created_at: 2018-05-01T13:11:45Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • opened Fix test
    • ...

    • created_at: 2018-05-03T04:48:58Z
  • closed Tests
    • ...

    • created_at: 2018-05-03T04:48:50Z
  • closed Publish to npm
    • ...

    • created_at: 2018-05-03T04:48:43Z
  • closed The automated release is failing 🚨
    • :rotatinglight: The automated release from the master branch failed. :rotatinglight: I recommend you give this issue a high priority, so......

    • created_at: 2018-05-03T02:50:32Z
  • opened Publish to npm
    • ...

    • created_at: 2018-05-01T13:11:57Z
  • opened Tests
    • ...

    • created_at: 2018-05-01T13:11:45Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/06/17/hubot-fass-reservation/index.html b/2018/06/17/hubot-fass-reservation/index.html index a653f4b7fb..c87be8d34e 100644 --- a/2018/06/17/hubot-fass-reservation/index.html +++ b/2018/06/17/hubot-fass-reservation/index.html @@ -1,4 +1,4 @@ -FaSS の予約状況を確認する Hubot スクリプトをつくりました | blog.sugarshin.net
blog.sugarshin.net

FaSS の予約状況を確認する Hubot スクリプトをつくりました

Main

FaSS の予約の順番待ちを確認したり、順番が近づくと通知してくれる Hubot スクリプトをつくりました。

https://github.com/sugarshin/hubot-fass-reservation

hubot-fass-reservation - npm

yarn add hubot-fass-reservation
+FaSS の予約状況を確認する Hubot スクリプトをつくりました | blog.sugarshin.net
blog.sugarshin.net

FaSS の予約状況を確認する Hubot スクリプトをつくりました

Main

FaSS の予約の順番待ちを確認したり、順番が近づくと通知してくれる Hubot スクリプトをつくりました。

https://github.com/sugarshin/hubot-fass-reservation

hubot-fass-reservation - npm

yarn add hubot-fass-reservation
 
 # or
 
@@ -68,4 +68,4 @@
 

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/06/30/monthly-report-1806/index.html b/2018/06/30/monthly-report-1806/index.html index c36afcc3d5..091b37fbcc 100644 --- a/2018/06/30/monthly-report-1806/index.html +++ b/2018/06/30/monthly-report-1806/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-06 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/07/31/monthly-report-1807/index.html b/2018/07/31/monthly-report-1807/index.html index 1d7fabc7fc..df87a5e74d 100644 --- a/2018/07/31/monthly-report-1807/index.html +++ b/2018/07/31/monthly-report-1807/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-07 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-07 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-07 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/08/31/monthly-report-1808/index.html b/2018/08/31/monthly-report-1808/index.html index 013585b428..6cb2bf0efa 100644 --- a/2018/08/31/monthly-report-1808/index.html +++ b/2018/08/31/monthly-report-1808/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-08 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/09/30/monthly-report-1809/index.html b/2018/09/30/monthly-report-1809/index.html index d9ae00d18a..a5da5ffcc2 100644 --- a/2018/09/30/monthly-report-1809/index.html +++ b/2018/09/30/monthly-report-1809/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-09 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/11/30/monthly-report-1811/index.html b/2018/11/30/monthly-report-1811/index.html index fb703b1298..135d813f6b 100644 --- a/2018/11/30/monthly-report-1811/index.html +++ b/2018/11/30/monthly-report-1811/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-11 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-11 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-11 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/12/30/matome-2018/index.html b/2018/12/30/matome-2018/index.html index 2b2271fd21..6af40a7712 100644 --- a/2018/12/30/matome-2018/index.html +++ b/2018/12/30/matome-2018/index.html @@ -1,4 +1,4 @@ -2018 年まとめ | blog.sugarshin.net
blog.sugarshin.net

2018 年まとめ

Shingo Sato

2018 年のまとめを書きます。

目次

仕事

夏頃までは、 2016 年から所属している Oneteam Inc. にてアプリケーション開発に従事していました。主に、同社メイン製品の BtoB SaaS ツールの Web 版と Electron による デスクトップアプリケーションの開発をしたり、社内ツールの開発、メンテナンス等もおこなっていました。 また、 1 月からは開発チームリードとして、開発チームとしての意思決定や開発フローの見直し等をおこなっていました。はじめての経験でうまくいかないことも多々ありましたが、良い経験をさせていただきました。

9 月に転職をし、 Mercari, Inc. に Software Engineer として入社しています。それまで所属していた Oneteam Inc. は、アドバイザーとして微力ながらお手伝いさせていただいてます。 ちなみにアドバイザー契約自体は今年いっぱいで終了しますが、引き続き開発業務は請けおっていく予定です。

そのほか、いくつかご縁があったところとお仕事をご一緒させていただいていたり、まだ対外的に発表できないことがあったりしますが、そのうちここで告知もかねてお知らせする予定です。

技術

主に触っていたのは昨年から引き続き Web のクライアントサイドの開発で、 React, Redux, 新しいところでは、 GCP, Kubernetes, AWS Amplify, Micro, Apollo, GraphQL, TypeScript あたりです。

OSS

例年通り、いくつか OSS でアプリケーションやツール、ライブラリを開発、公開しました。

refs:

前職 (Oneteam Inc.) で作ったツールを OSS にしてあったりします。 https://github.com/oneteam-dev/oneteam-ja-proofreader

そのほか、個人で ReMap というレストラン検索サービスを、 Microservices アーキテクチャで開発しはじめましたが、年内リリースには至りませんでした。 https://github.com/remap-app

また、 GitHub 上でのアクティビティは、このようになっています。

プライベート

2014 年頃から滞っていたランニングを少しずつ再開しはじめました。 また、昨年末あたりから公私ともに飲酒量が増えだし、健康に少なからず影響を与えています。

2019 年

来年も引き続き仕事と OSS 両方に注力していく予定です。

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

2018 年まとめ

Shingo Sato

2018 年のまとめを書きます。

目次

仕事

夏頃までは、 2016 年から所属している Oneteam Inc. にてアプリケーション開発に従事していました。主に、同社メイン製品の BtoB SaaS ツールの Web 版と Electron による デスクトップアプリケーションの開発をしたり、社内ツールの開発、メンテナンス等もおこなっていました。 また、 1 月からは開発チームリードとして、開発チームとしての意思決定や開発フローの見直し等をおこなっていました。はじめての経験でうまくいかないことも多々ありましたが、良い経験をさせていただきました。

9 月に転職をし、 Mercari, Inc. に Software Engineer として入社しています。それまで所属していた Oneteam Inc. は、アドバイザーとして微力ながらお手伝いさせていただいてます。 ちなみにアドバイザー契約自体は今年いっぱいで終了しますが、引き続き開発業務は請けおっていく予定です。

そのほか、いくつかご縁があったところとお仕事をご一緒させていただいていたり、まだ対外的に発表できないことがあったりしますが、そのうちここで告知もかねてお知らせする予定です。

技術

主に触っていたのは昨年から引き続き Web のクライアントサイドの開発で、 React, Redux, 新しいところでは、 GCP, Kubernetes, AWS Amplify, Micro, Apollo, GraphQL, TypeScript あたりです。

OSS

例年通り、いくつか OSS でアプリケーションやツール、ライブラリを開発、公開しました。

refs:

前職 (Oneteam Inc.) で作ったツールを OSS にしてあったりします。 https://github.com/oneteam-dev/oneteam-ja-proofreader

そのほか、個人で ReMap というレストラン検索サービスを、 Microservices アーキテクチャで開発しはじめましたが、年内リリースには至りませんでした。 https://github.com/remap-app

また、 GitHub 上でのアクティビティは、このようになっています。

プライベート

2014 年頃から滞っていたランニングを少しずつ再開しはじめました。 また、昨年末あたりから公私ともに飲酒量が増えだし、健康に少なからず影響を与えています。

2019 年

来年も引き続き仕事と OSS 両方に注力していく予定です。

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2018/12/31/monthly-report-1812/index.html b/2018/12/31/monthly-report-1812/index.html index 3d42340286..c25bde99d7 100644 --- a/2018/12/31/monthly-report-1812/index.html +++ b/2018/12/31/monthly-report-1812/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2018-12 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2018-12 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2018-12 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/01/31/monthly-report-1901/index.html b/2019/01/31/monthly-report-1901/index.html index d42fec4ac7..ca96ce5759 100644 --- a/2019/01/31/monthly-report-1901/index.html +++ b/2019/01/31/monthly-report-1901/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2019-01 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2019-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2019-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/02/01/instance0/index.html b/2019/02/01/instance0/index.html index 1da259ae84..8a5cb4cbc3 100644 --- a/2019/02/01/instance0/index.html +++ b/2019/02/01/instance0/index.html @@ -1,4 +1,4 @@ -インスタンスゼロ株式会社を共同創業しました | blog.sugarshin.net
blog.sugarshin.net

インスタンスゼロ株式会社を共同創業しました

Shingo Sato

これまでにソフトウェア開発を通じて知り合えた仲間たちと 5 名で会社を立ち上げました。

https://ins0.jp

詳しくは代表のブログにて

顧客・自社に関わらず、0番目のインスタンスを生産し続けていきます。

法人という小さな枠で技術や知識を閉じ込めるのではなく、複数の環境を行ったり来たりすることで、関わるサービスの成長に、自分たちの専門性で寄与できれば幸いです。

どうぞよろしくお願いします。

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

インスタンスゼロ株式会社を共同創業しました

Shingo Sato

これまでにソフトウェア開発を通じて知り合えた仲間たちと 5 名で会社を立ち上げました。

https://ins0.jp

詳しくは代表のブログにて

顧客・自社に関わらず、0番目のインスタンスを生産し続けていきます。

法人という小さな枠で技術や知識を閉じ込めるのではなく、複数の環境を行ったり来たりすることで、関わるサービスの成長に、自分たちの専門性で寄与できれば幸いです。

どうぞよろしくお願いします。

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/02/28/monthly-report-1902/index.html b/2019/02/28/monthly-report-1902/index.html index 1d28a86959..142f0ad446 100644 --- a/2019/02/28/monthly-report-1902/index.html +++ b/2019/02/28/monthly-report-1902/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2019-02 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2019-02 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2019-02 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/03/31/monthly-report-1903/index.html b/2019/03/31/monthly-report-1903/index.html index 5f84e0ef67..aa3d5b6bf7 100644 --- a/2019/03/31/monthly-report-1903/index.html +++ b/2019/03/31/monthly-report-1903/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2019-03 my activity this month on GitHub | blog.sugarshin.net \ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/04/30/monthly-report-1904/index.html b/2019/04/30/monthly-report-1904/index.html index db51dfefc2..696da4f306 100644 --- a/2019/04/30/monthly-report-1904/index.html +++ b/2019/04/30/monthly-report-1904/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2019-04 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2019-04 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Make private repository public

Releases

Starred repositories

Issues events

  • closed Can't seem to replace PDF
    • If I render a and then later with a different url prop, it seems that the previously rendered PDF is not replaced with the new one. I t......

    • created_at: 2019-04-24T17:33:06Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2019-04 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Make private repository public

Releases

Starred repositories

Issues events

  • closed Can't seem to replace PDF
    • If I render a and then later with a different url prop, it seems that the previously rendered PDF is not replaced with the new one. I t......

    • created_at: 2019-04-24T17:33:06Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/05/31/monthly-report-1905/index.html b/2019/05/31/monthly-report-1905/index.html index 5ccc20b97b..7c7771d03a 100644 --- a/2019/05/31/monthly-report-1905/index.html +++ b/2019/05/31/monthly-report-1905/index.html @@ -1,4 +1,4 @@ [Monthly report] 2019-05 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2019-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/06/01/renovate-with-e2e-test/index.html b/2019/06/01/renovate-with-e2e-test/index.html index 337f57717b..c4ec48b5de 100644 --- a/2019/06/01/renovate-with-e2e-test/index.html +++ b/2019/06/01/renovate-with-e2e-test/index.html @@ -1,4 +1,4 @@ -Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する | blog.sugarshin.net
blog.sugarshin.net

Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する

Main

当ブログプロジェクトの依存モジュールのアップデートを、 Renovate と E2E テストを用いて安全に自動化する環境を整えました。

React と Redux なブログ運用をソフトウェア開発する話し

目次

モチベーション

Renovate は依存モジュールにアップデートがあるとプルリクエストを作成してくれますが、設定次第ではその挙動をいろいろカスタマイズでき、さらにマージも自動でやってくれます。

CI のステータスチェック次第で安全にマージできるので、ユニットテストやビルドだけではなく、 E2E テストも実行することでその安全性をより担保しました。

そもそもの前提として、自分はソフトウェア開発プロセスの自動化についてはかなり積極的で、可能な限りそれを実施することで品質、スピード、スケーラビリティなどに寄与するほか、人的なオペレーションミスなども防げます。

Cypress

E2E テストについては、 Cypress を利用しています。オールインワンなフレームワークで、E2E テストに特化したフレームワークです。また、 Selenium を利用していなく独自のアーキテクチャで実行されている模様で、インストールも npm からインストールするだけなので楽です。

const url = require('url')
+Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する | blog.sugarshin.net
blog.sugarshin.net

Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する

Main

当ブログプロジェクトの依存モジュールのアップデートを、 Renovate と E2E テストを用いて安全に自動化する環境を整えました。

React と Redux なブログ運用をソフトウェア開発する話し

目次

モチベーション

Renovate は依存モジュールにアップデートがあるとプルリクエストを作成してくれますが、設定次第ではその挙動をいろいろカスタマイズでき、さらにマージも自動でやってくれます。

CI のステータスチェック次第で安全にマージできるので、ユニットテストやビルドだけではなく、 E2E テストも実行することでその安全性をより担保しました。

そもそもの前提として、自分はソフトウェア開発プロセスの自動化についてはかなり積極的で、可能な限りそれを実施することで品質、スピード、スケーラビリティなどに寄与するほか、人的なオペレーションミスなども防げます。

Cypress

E2E テストについては、 Cypress を利用しています。オールインワンなフレームワークで、E2E テストに特化したフレームワークです。また、 Selenium を利用していなく独自のアーキテクチャで実行されている模様で、インストールも npm からインストールするだけなので楽です。

const url = require('url')
 const { siteName } = require('../../config/settings')
 
 context('Actions', () => {
@@ -56,4 +56,4 @@
 

ref: https://github.com/sugarshin/blog.sugarshin.net/blob/598cfb1abe3d11c7ccc8951687bc3f95d6982a87/.circleci/config.yml

Renovate が出した各プルリクエストに対してテストする必要があるので、プルリクエストごとの依存関係のモジュールらでビルドしたアセットを、サーバを立てて配信しそれに対して Cypress でテストしています。

cypress/run ジョブがとれるオプションで、テスト前にビルドしたりサーバを立てたりできます。

wait-on: 'http-get://localhost:3000'

サーバが起動するまで待機させることができるのですが、 wait-on はデフォルトでは OPTIONS メソッドでリクエストをポーリングしてくるので、それ用のルーティングを用意する必要があります。もしくは指定オリジンのプロトコルを http-get: とすることで GET メソッドでリクエストしてくれます。

ref: https://github.com/jeffbski/wait-on#readme


プライベートなプロジェクトでモジュールの更新は滞りがちだったのでこれでかなり改善できそう。 https://circleci.com/gh/sugarshin/blog.sugarshin.net

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/06/26/npm-modules-development-with-circleci-orbs/index.html b/2019/06/26/npm-modules-development-with-circleci-orbs/index.html index e0cd78ac9c..6e061a62c5 100644 --- a/2019/06/26/npm-modules-development-with-circleci-orbs/index.html +++ b/2019/06/26/npm-modules-development-with-circleci-orbs/index.html @@ -1,4 +1,4 @@ -CircleCI Orbs をつかって npm モジュール開発を効率化する | blog.sugarshin.net
blog.sugarshin.net

CircleCI Orbs をつかって npm モジュール開発を効率化する

npm コマンドを用途に合わせて便利にまとめたユーティリティを CircleCI Orbs として公開しました。

CircleCI Orb Registry - sugarshin/npm

sources: https://github.com/sugarshin/circleci-orbs

目次

モチベーション

普段 npm モジュールを作る際に CircleCI を利用していますが、 CI でテスト、ビルド、パブリッシュまでやってもらっています。毎回構成やジョブはだいたい同じなので共通化するべく CircleCI Orbs としてまとめました。

release ジョブ

npm レジストリへのパブリッシュと Git のタグつけまで自動でやってくれるジョブです。

ref: https://circleci.com/orbs/registry/orb/sugarshin/npm#jobs-release

プロジェクトの package.jsonvesion をパブリッシュ済みの最新バージョンと比較してインクリメントされていたらこのジョブが上記を実行します。

# Example
+CircleCI Orbs をつかって npm モジュール開発を効率化する | blog.sugarshin.net
blog.sugarshin.net

CircleCI Orbs をつかって npm モジュール開発を効率化する

npm コマンドを用途に合わせて便利にまとめたユーティリティを CircleCI Orbs として公開しました。

CircleCI Orb Registry - sugarshin/npm

sources: https://github.com/sugarshin/circleci-orbs

目次

モチベーション

普段 npm モジュールを作る際に CircleCI を利用していますが、 CI でテスト、ビルド、パブリッシュまでやってもらっています。毎回構成やジョブはだいたい同じなので共通化するべく CircleCI Orbs としてまとめました。

release ジョブ

npm レジストリへのパブリッシュと Git のタグつけまで自動でやってくれるジョブです。

ref: https://circleci.com/orbs/registry/orb/sugarshin/npm#jobs-release

プロジェクトの package.jsonvesion をパブリッシュ済みの最新バージョンと比較してインクリメントされていたらこのジョブが上記を実行します。

# Example
 version: 2.1
 
 orbs:
@@ -81,4 +81,4 @@
 

ref: https://github.com/sugarshin/circleci-orbs/blob/master/.circleci/config.yml

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/06/30/monthly-report-1906/index.html b/2019/06/30/monthly-report-1906/index.html index fa4292aff3..114870fbdb 100644 --- a/2019/06/30/monthly-report-1906/index.html +++ b/2019/06/30/monthly-report-1906/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2019-06 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2019-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2019-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/07/31/monthly-report-1907/index.html b/2019/07/31/monthly-report-1907/index.html index 4a4b4cb943..c9bb4988a8 100644 --- a/2019/07/31/monthly-report-1907/index.html +++ b/2019/07/31/monthly-report-1907/index.html @@ -1,4 +1,4 @@ [Monthly report] 2019-07 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2019-07 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

Issues events

  • opened Remove rsync
    • Remove rsync when next node.js updating...

    • created_at: 2019-07-02T07:06:52Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/09/30/monthly-report-1909/index.html b/2019/09/30/monthly-report-1909/index.html index e63a3fd2eb..3ec9ee7f80 100644 --- a/2019/09/30/monthly-report-1909/index.html +++ b/2019/09/30/monthly-report-1909/index.html @@ -1,4 +1,4 @@ [Monthly report] 2019-09 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2019-09 my activity this month on GitHub

CircleCI

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/12/29/matome-2019/index.html b/2019/12/29/matome-2019/index.html index e20589b43f..d47d6fa398 100644 --- a/2019/12/29/matome-2019/index.html +++ b/2019/12/29/matome-2019/index.html @@ -1,4 +1,4 @@ -2019 年まとめ | blog.sugarshin.net
blog.sugarshin.net

2019 年まとめ

Shingo Sato

2019 年のまとめを書きます。

目次

仕事

インスタンスゼロ

ここでもお伝えしたとおり、 2018 年末に仲間 5 名と会社を立ち上げ、年始から本格稼働しています。

事業内容としては下記で、

  • ソフトウェア開発
  • 品質保証 (QA)
  • インフラ構築
  • GUI デザイン
  • R&D

自分は主に顧客から請けたソフトウェア開発を担当していて、 Web アプリケーションの実装をしています。

おかげさまで仕事にも恵まれ、 11 月にはオフィスも開設しています。 ref: インスタンスゼロの拠点を開設しました

メルカリ

メルペイ

年明け早々は、前年末から続けていた、メルカリの CS メンバーがつかう管理ツールのリアーキテクチャを進めていました。

その後すぐに、半年間の期限つきでメルペイへ異動となりました。メルペイグランドローンチ前の追い込み、みたいな感じです。

メルペイのフロントエンドチームに配属となり、前半はメルペイの各キャンペーンで利用するランディングページ用の HTML を配信する Microservice の基盤構築、後半はクーポンチームで機能実装や、 Kubernetes, CI/CD まわりなど非機能要件の改善などをしていました。

Mercari x Merpay Frontend Tech Talk vol.2 というイベントで、このあたりの話をしています。

ref: Merpay での半年間 - @sugarshin's slide | slides.sugarshin.net

Web Platform チーム

7 月にはメルカリに戻り、メルカリの Web 版アプリケーションのリアーキテクチャを進めているチームに入りました。

配属としては、 Backend Web Platform というチームで、 Web 領域における Microservices においての最適な基盤の提供や、 Developer Experience の継続的改善を行ったりしているチームです。

つくったもの

個人的につくったものをざっと羅列します。

また、今年は少なかったですが、 OSS へのコントリビューションも軽微なものを含め例年通りいくつかしています。

GitHub 上でのアクティビティまとめはこちらです。

プライベート

引越し

9 月末に、マンションを購入し、世田谷区内で引っ越しました。

新築の低層マンションで、多摩川を一望できる立地で景観は良いです。冒頭の画像は屋上から撮った写真です。二子玉川公園がすぐ近くで、子育てにも良い環境だと思います。

それまで、家族 4 人ではものすごく狭いところに住んでいたので、それだけでもとても快適です。

断酒

夏前くらいにお酒を辞めました。

理由としては健康に著しく影響があったのと、時間の捻出です。とくにつらくもなくすっぱり辞められて、体重は 2 ~ 3kg くらい落ちたと思います。年明けに健康診断があるのでそこでどれだけ効果があったか確かめようと思います。

2020 年

今年は本当にいろいろ忙しかった記憶しかなくところどころ覚えてないです。

2020 年も引き続き仕事に注力しつつ、新居で家族との時間も大切にしていこうと思っています。

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

2019 年まとめ

Shingo Sato

2019 年のまとめを書きます。

目次

仕事

インスタンスゼロ

ここでもお伝えしたとおり、 2018 年末に仲間 5 名と会社を立ち上げ、年始から本格稼働しています。

事業内容としては下記で、

  • ソフトウェア開発
  • 品質保証 (QA)
  • インフラ構築
  • GUI デザイン
  • R&D

自分は主に顧客から請けたソフトウェア開発を担当していて、 Web アプリケーションの実装をしています。

おかげさまで仕事にも恵まれ、 11 月にはオフィスも開設しています。 ref: インスタンスゼロの拠点を開設しました

メルカリ

メルペイ

年明け早々は、前年末から続けていた、メルカリの CS メンバーがつかう管理ツールのリアーキテクチャを進めていました。

その後すぐに、半年間の期限つきでメルペイへ異動となりました。メルペイグランドローンチ前の追い込み、みたいな感じです。

メルペイのフロントエンドチームに配属となり、前半はメルペイの各キャンペーンで利用するランディングページ用の HTML を配信する Microservice の基盤構築、後半はクーポンチームで機能実装や、 Kubernetes, CI/CD まわりなど非機能要件の改善などをしていました。

Mercari x Merpay Frontend Tech Talk vol.2 というイベントで、このあたりの話をしています。

ref: Merpay での半年間 - @sugarshin's slide | slides.sugarshin.net

Web Platform チーム

7 月にはメルカリに戻り、メルカリの Web 版アプリケーションのリアーキテクチャを進めているチームに入りました。

配属としては、 Backend Web Platform というチームで、 Web 領域における Microservices においての最適な基盤の提供や、 Developer Experience の継続的改善を行ったりしているチームです。

つくったもの

個人的につくったものをざっと羅列します。

また、今年は少なかったですが、 OSS へのコントリビューションも軽微なものを含め例年通りいくつかしています。

GitHub 上でのアクティビティまとめはこちらです。

プライベート

引越し

9 月末に、マンションを購入し、世田谷区内で引っ越しました。

新築の低層マンションで、多摩川を一望できる立地で景観は良いです。冒頭の画像は屋上から撮った写真です。二子玉川公園がすぐ近くで、子育てにも良い環境だと思います。

それまで、家族 4 人ではものすごく狭いところに住んでいたので、それだけでもとても快適です。

断酒

夏前くらいにお酒を辞めました。

理由としては健康に著しく影響があったのと、時間の捻出です。とくにつらくもなくすっぱり辞められて、体重は 2 ~ 3kg くらい落ちたと思います。年明けに健康診断があるのでそこでどれだけ効果があったか確かめようと思います。

2020 年

今年は本当にいろいろ忙しかった記憶しかなくところどころ覚えてないです。

2020 年も引き続き仕事に注力しつつ、新居で家族との時間も大切にしていこうと思っています。

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2019/12/31/monthly-report-1912/index.html b/2019/12/31/monthly-report-1912/index.html index d01633b5e6..5e71120dc1 100644 --- a/2019/12/31/monthly-report-1912/index.html +++ b/2019/12/31/monthly-report-1912/index.html @@ -1,4 +1,4 @@ [Monthly report] 2019-12 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2019-12 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/01/31/monthly-report-2001/index.html b/2020/01/31/monthly-report-2001/index.html index 475de9eeca..89ef10b02c 100644 --- a/2020/01/31/monthly-report-2001/index.html +++ b/2020/01/31/monthly-report-2001/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2020-01 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2020-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Make private repository public

Pull requests

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2020-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Make private repository public

Pull requests

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/02/29/monthly-report-2002/index.html b/2020/02/29/monthly-report-2002/index.html index f2e9a78674..76329ac4c7 100644 --- a/2020/02/29/monthly-report-2002/index.html +++ b/2020/02/29/monthly-report-2002/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2020-02 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2020-02 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2020-02 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/03/31/monthly-report-2003/index.html b/2020/03/31/monthly-report-2003/index.html index 87c1dc92ca..174e856044 100644 --- a/2020/03/31/monthly-report-2003/index.html +++ b/2020/03/31/monthly-report-2003/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2020-03 my activity this month on GitHub | blog.sugarshin.net \ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/04/30/monthly-report-2004/index.html b/2020/04/30/monthly-report-2004/index.html index 1890a64392..fc1e7a213e 100644 --- a/2020/04/30/monthly-report-2004/index.html +++ b/2020/04/30/monthly-report-2004/index.html @@ -1,4 +1,4 @@ [Monthly report] 2020-04 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2020-04 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/05/31/monthly-report-2005/index.html b/2020/05/31/monthly-report-2005/index.html index cc8c8dee2e..5abfed3e0b 100644 --- a/2020/05/31/monthly-report-2005/index.html +++ b/2020/05/31/monthly-report-2005/index.html @@ -1,4 +1,4 @@ [Monthly report] 2020-05 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2020-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/06/30/monthly-report-2006/index.html b/2020/06/30/monthly-report-2006/index.html index 264b99a7b3..29ea0aebf4 100644 --- a/2020/06/30/monthly-report-2006/index.html +++ b/2020/06/30/monthly-report-2006/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2020-06 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2020-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2020-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/08/26/sp-product-arrival-notifier/index.html b/2020/08/26/sp-product-arrival-notifier/index.html index 8ebf5ff151..041cbb613e 100644 --- a/2020/08/26/sp-product-arrival-notifier/index.html +++ b/2020/08/26/sp-product-arrival-notifier/index.html @@ -1,4 +1,4 @@ オンラインストアの入荷情報を Slack に通知する | blog.sugarshin.net
blog.sugarshin.net

オンラインストアの入荷情報を Slack に通知する

Snow Peak 公式オンラインストアの製品入荷情報を Slack に通知する仕組みを雑につくりました。

目次

モチベーション

Snow Peak は最近お気に入りのアウトドア製品メーカーで、流行りもあるのか入荷待ちの商品ばかりで欲しいときに買えないのが悔しいのでつくりました。とりあえずキャンプカテゴリの製品のみ対象としています。 ref: キャンプの通販 | アウトドア・キャンプ用品はスノーピーク(Snow Peak)

近所に直営店はありますが、直営店もすべての商品があるわけではないし、正直入荷待ちのものも多いです。

ちなみにオンラインストアの在庫管理は実店舗のそれとは別らしいです。

アーキテクチャ

  • 突貫工事
  • 料金コストは極力かけたくない

という前提で、 GitHub Actions の VM 上でスクリプトを schedule トリガーを利用して定期実行するという実装にしました。

スクレイピングで製品一覧の情報をとって結果を保持しておき、次回の実行時にその状態と比較して入荷していたら Slack に通知する、というシンプルなスクリプトです。

スクリプト本体は Python で雑に書いてあります。

ref: https://github.com/sugarshin/sp-product-arrival-notifier

Artifact

GitHub Actions の Artifacts としてスクレイピングした結果を保持するのですが、謹製の download-artifact アクションだと別々の Workflow 間では Artifacts を参照できないです。なのでちょうどそれをうまくやってくれるアクションが公開されていたので利用しました。

ref: https://github.com/dawidd6/action-download-artifact

通知

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/08/31/monthly-report-2008/index.html b/2020/08/31/monthly-report-2008/index.html index 4898098045..e26cbe2a0f 100644 --- a/2020/08/31/monthly-report-2008/index.html +++ b/2020/08/31/monthly-report-2008/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2020-08 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2020-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2020-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/09/30/monthly-report-2009/index.html b/2020/09/30/monthly-report-2009/index.html index a45f3f59a4..532f5d23d7 100644 --- a/2020/09/30/monthly-report-2009/index.html +++ b/2020/09/30/monthly-report-2009/index.html @@ -1,4 +1,4 @@ [Monthly report] 2020-09 my activity this month on GitHub | blog.sugarshin.net \ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/11/30/monthly-report-2011/index.html b/2020/11/30/monthly-report-2011/index.html index c50e215826..aa9ca9a28a 100644 --- a/2020/11/30/monthly-report-2011/index.html +++ b/2020/11/30/monthly-report-2011/index.html @@ -1,4 +1,4 @@ [Monthly report] 2020-11 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2020-11 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/12/30/matome-2020/index.html b/2020/12/30/matome-2020/index.html index 2116d39ee0..2a4b769cb2 100644 --- a/2020/12/30/matome-2020/index.html +++ b/2020/12/30/matome-2020/index.html @@ -1,4 +1,4 @@ 2020 年まとめ | blog.sugarshin.net
blog.sugarshin.net

2020 年まとめ

Shingo Sato

2020 年のまとめを書きます。

目次

仕事

2020年の劇的な世の中の変化に伴い、2月の中旬頃から継続的に自宅で仕事をしています。

インスタンスゼロ

昨年と同様粛々と Web アプリケーションの実装を担当しています。

メルカリ

2019年から引き続き Backend Web Platformチームに所属し、メルカリWeb版のリアーキテクチャの推進まわりを担当していました。クローラーによる高負荷対策のための一部実装、デプロイパイプライン/フローの改善やデプロイ用の Slackbot の企画/設計/実装などをしていました。

LINE

6月に LINE株式会社に転職しています。

LINE アプリ内で動作するWebアプリケーションを開発するためのプラットフォームを開発するチームに所属し、 SDK の開発を担当しています。機能実装や、非機能要件の設計/実装、また次期バージョンの機能の一部の設計などを担当しています。

これまでと比べ、会社規模、サービス数、ユーザ数なども一番大きく、またいわゆるデベロッパープロダクトの開発は初めてなので、これまでの経験則でのソリューションでは通用しない、または適用できない課題もあり単純に勉強になり楽しめています。

つくったもの

主につくったものを羅列します。

6月、父が亡くなりました。65歳でした。2015年末にステージ IV の癌と診断され、そこから約4年半生き延びられたことになります。

自分が最も尊敬する人物である父の死は、想像以上に精神的ダメージが大きく、また、仕事に対する考え方や人生観に対し、今後生きていく上で本当に大切にしなければいけないことは何なのか。それを改めて考えさせられるきっかけになっています。

キャンプ

父との思い出の中で、小さい頃に連れて行ってもらったファミリーキャンプを思い出し、そこからおそらく世の中のブームも手伝ってキャンプ道具を集め始めました。流行りにのったつもりはまったくないのですが、今後も趣味として楽しんでいく予定です。

最近車を購入し年明けに納車予定で、ファミリーキャンプには最適な車種を選んだので今からとても楽しみです。

Snow Peak Way 2020

キャンプデビューは友人と Snow Peak Way 2020 に参加し、Snow Peak Headquarters キャンプフィールドに行ってきました。

冒頭の写真がそれですが、フィールドにはほぼ Snow Peak 製のテントしか見当たらなく、初心者の自分には異様な光景でした。

糖質制限

春頃から緩い糖質制限を始めていました。体重はピーク時と比べると10キロくらい落ちていて、学生時代のそれと同等程度です。最近は少し炭水化物や甘い物も摂るようになりましたが、それでも以前のような量を食べることはなくなっています。

ちなみに昨年から引き続き断酒も続けていますが、祝い事など特別なときには少しだけ飲むようになっています。

2021年

今年は、長期在宅、転職、そして父の死と大きな出来事が3つあり、2019年のそれと同等もしくはそれ以上に忙しない年でした。

2021年も引き続き長期在宅が予想されるので、仕事のパフォーマンスと家族との時間の両立をもっと高いレベルで実現していきたいです。

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2020/12/31/monthly-report-2012/index.html b/2020/12/31/monthly-report-2012/index.html index 10976aaddd..4143fe0d29 100644 --- a/2020/12/31/monthly-report-2012/index.html +++ b/2020/12/31/monthly-report-2012/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2020-12 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2020-12 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2020-12 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/01/31/monthly-report-2101/index.html b/2021/01/31/monthly-report-2101/index.html index 499d021625..cbb666583a 100644 --- a/2021/01/31/monthly-report-2101/index.html +++ b/2021/01/31/monthly-report-2101/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-01 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/02/28/monthly-report-2102/index.html b/2021/02/28/monthly-report-2102/index.html index f830d6925c..d9991857ee 100644 --- a/2021/02/28/monthly-report-2102/index.html +++ b/2021/02/28/monthly-report-2102/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-02 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-02 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-02 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

Issues events

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/03/31/monthly-report-2103/index.html b/2021/03/31/monthly-report-2103/index.html index 5cf51e3953..233aca9e15 100644 --- a/2021/03/31/monthly-report-2103/index.html +++ b/2021/03/31/monthly-report-2103/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-03 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-03 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-03 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/04/30/monthly-report-2104/index.html b/2021/04/30/monthly-report-2104/index.html index 361ea89c95..6c0e86f67f 100644 --- a/2021/04/30/monthly-report-2104/index.html +++ b/2021/04/30/monthly-report-2104/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-04 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-04 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-04 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/05/31/monthly-report-2105/index.html b/2021/05/31/monthly-report-2105/index.html index 903655ea68..fdb4456aef 100644 --- a/2021/05/31/monthly-report-2105/index.html +++ b/2021/05/31/monthly-report-2105/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-05 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

  • sugarshin/cs
    • description: null
    • created_at: 2021-05-21T08:01:16Z

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

  • sugarshin/cs
    • description: null
    • created_at: 2021-05-21T08:01:16Z

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/06/30/monthly-report-2106/index.html b/2021/06/30/monthly-report-2106/index.html index 28499a7137..789abca84e 100644 --- a/2021/06/30/monthly-report-2106/index.html +++ b/2021/06/30/monthly-report-2106/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-06 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/07/31/monthly-report-2107/index.html b/2021/07/31/monthly-report-2107/index.html index e8a9c17f69..f99c8e0888 100644 --- a/2021/07/31/monthly-report-2107/index.html +++ b/2021/07/31/monthly-report-2107/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-07 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-07 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

  • closed can't install this package
    • `npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: instagram-clone@0.1.0......

    • created_at: 2021-07-20T20:18:30Z
  • closed warning with peer dependencies
    • Hello. I'm facing a issue that even I remove the package and install later this warning keeps showing on my npm install: npm WARN react-......

    • created_at: 2021-07-20T20:18:14Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-07 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Releases

Starred repositories

Issues events

  • closed can't install this package
    • `npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: instagram-clone@0.1.0......

    • created_at: 2021-07-20T20:18:30Z
  • closed warning with peer dependencies
    • Hello. I'm facing a issue that even I remove the package and install later this warning keeps showing on my npm install: npm WARN react-......

    • created_at: 2021-07-20T20:18:14Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/08/31/monthly-report-2108/index.html b/2021/08/31/monthly-report-2108/index.html index 579ada59af..153a4b502d 100644 --- a/2021/08/31/monthly-report-2108/index.html +++ b/2021/08/31/monthly-report-2108/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-08 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/09/30/monthly-report-2109/index.html b/2021/09/30/monthly-report-2109/index.html index 89debfec6f..9b6fdbedfa 100644 --- a/2021/09/30/monthly-report-2109/index.html +++ b/2021/09/30/monthly-report-2109/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-09 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/10/31/monthly-report-2110/index.html b/2021/10/31/monthly-report-2110/index.html index 8f84a52f49..fa9973a80b 100644 --- a/2021/10/31/monthly-report-2110/index.html +++ b/2021/10/31/monthly-report-2110/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-10 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-10 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • closed supportsPDFs support issue
    • Hello, how i'm able to use supportsPDFs property? I found, that it was implemented in #122, but im not able use PDFObject.supportsPDFs/P......

    • created_at: 2021-10-02T23:43:18Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-10 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • closed supportsPDFs support issue
    • Hello, how i'm able to use supportsPDFs property? I found, that it was implemented in #122, but im not able use PDFObject.supportsPDFs/P......

    • created_at: 2021-10-02T23:43:18Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/11/30/monthly-report-2111/index.html b/2021/11/30/monthly-report-2111/index.html index c74014f250..142e117663 100644 --- a/2021/11/30/monthly-report-2111/index.html +++ b/2021/11/30/monthly-report-2111/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-11 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2021-11 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2021-11 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/12/31/matome-2021/index.html b/2021/12/31/matome-2021/index.html index 7522aaa022..044338a9da 100644 --- a/2021/12/31/matome-2021/index.html +++ b/2021/12/31/matome-2021/index.html @@ -1,4 +1,4 @@ -2021 年まとめ | blog.sugarshin.net
blog.sugarshin.net

2021 年まとめ

Shingo Sato

2021 年のまとめを書きます。

目次

仕事

  • Web サイト向けサードパーティスクリプトの実装
  • Web アプリケーション開発プラットフォームのJavaScript SDK
    • リリースパイプラインの設計/実装
    • プラグイン機構の設計/実装
    • Monorepo 化に伴う設計/実装
  • チーム用の Renovate Bot の構築/運用
  • 2つのチケット管理システムを連携するツールの設計
  • 採用業務の一部

昨年から引き続き所属に変更はありません。

メディア掲載

キャンプ

昨年から道具を集め始めてようやく今夏からキャンプに行き始めています。

富士河口湖温泉 湖南荘 - 7月

キャンプではないですが、河口湖の湖畔にある旅館、湖南荘へ行ってきました。

松本市美鈴湖もりの国オートキャンプ場 - 8月

初キャンプは長野の美鈴湖もりの国オートキャンプ場まで行ってきました。わりと最近できたキャンプ場で設備もきれいでした。

ウェルキャンプ西丹沢 - 8月

つぎは神奈川のウェルキャンプ西丹沢キャンプ場に行ってきました。サイトのすぐ近くに川があり、比較的涼しく過ごせました。

富津金谷オートキャンプヒルズ - 11月

秋キャンプに次女と2人で富津金谷オートキャンプヒルズに行ってきました。

12月中旬にオープンしたばかりのキャンプ場で、このときはまだプレオープン期間でした。利用したドッグランサイトは白い柵に囲われていて、子連れにも適しているサイトだと思います。トイレが靴を脱いで利用するようになっていてとてもきれいでした。

富津金谷オートキャンプヒルズ - 12月

12月後半に家族全員で再び富津金谷オートキャンプヒルズに行ってきました。

とても気に入ったので今後はほかのキャンプ場へは行かないかもしれません。

2022年

  • 新しいことに挑戦する
  • キャンプを継続する

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

2021 年まとめ

Shingo Sato

2021 年のまとめを書きます。

目次

仕事

  • Web サイト向けサードパーティスクリプトの実装
  • Web アプリケーション開発プラットフォームのJavaScript SDK
    • リリースパイプラインの設計/実装
    • プラグイン機構の設計/実装
    • Monorepo 化に伴う設計/実装
  • チーム用の Renovate Bot の構築/運用
  • 2つのチケット管理システムを連携するツールの設計
  • 採用業務の一部

昨年から引き続き所属に変更はありません。

メディア掲載

キャンプ

昨年から道具を集め始めてようやく今夏からキャンプに行き始めています。

富士河口湖温泉 湖南荘 - 7月

キャンプではないですが、河口湖の湖畔にある旅館、湖南荘へ行ってきました。

松本市美鈴湖もりの国オートキャンプ場 - 8月

初キャンプは長野の美鈴湖もりの国オートキャンプ場まで行ってきました。わりと最近できたキャンプ場で設備もきれいでした。

ウェルキャンプ西丹沢 - 8月

つぎは神奈川のウェルキャンプ西丹沢キャンプ場に行ってきました。サイトのすぐ近くに川があり、比較的涼しく過ごせました。

富津金谷オートキャンプヒルズ - 11月

秋キャンプに次女と2人で富津金谷オートキャンプヒルズに行ってきました。

12月中旬にオープンしたばかりのキャンプ場で、このときはまだプレオープン期間でした。利用したドッグランサイトは白い柵に囲われていて、子連れにも適しているサイトだと思います。トイレが靴を脱いで利用するようになっていてとてもきれいでした。

富津金谷オートキャンプヒルズ - 12月

12月後半に家族全員で再び富津金谷オートキャンプヒルズに行ってきました。

とても気に入ったので今後はほかのキャンプ場へは行かないかもしれません。

2022年

  • 新しいことに挑戦する
  • キャンプを継続する

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2021/12/31/monthly-report-2112/index.html b/2021/12/31/monthly-report-2112/index.html index fcb719c142..23fc497603 100644 --- a/2021/12/31/monthly-report-2112/index.html +++ b/2021/12/31/monthly-report-2112/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2021-12 my activity this month on GitHub | blog.sugarshin.net \ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/01/31/monthly-report-2201/index.html b/2022/01/31/monthly-report-2201/index.html index 1456e0e547..b4a9458459 100644 --- a/2022/01/31/monthly-report-2201/index.html +++ b/2022/01/31/monthly-report-2201/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2022-01 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2022-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • opened Artifact update problem - Helm v3
    • How are you running Renovate? Self-hosted If you're self-hosting Renovate, tell us what version of Renovate you run. 31.51.0 Please s......

    • created_at: 2022-01-27T06:07:41Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2022-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Create new repositories

Pull requests

Releases

Starred repositories

Issues events

  • opened Artifact update problem - Helm v3
    • How are you running Renovate? Self-hosted If you're self-hosting Renovate, tell us what version of Renovate you run. 31.51.0 Please s......

    • created_at: 2022-01-27T06:07:41Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/02/28/monthly-report-2202/index.html b/2022/02/28/monthly-report-2202/index.html index 475f0d7f44..2f06865135 100644 --- a/2022/02/28/monthly-report-2202/index.html +++ b/2022/02/28/monthly-report-2202/index.html @@ -1,4 +1,4 @@ [Monthly report] 2022-02 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/03/31/monthly-report-2203/index.html b/2022/03/31/monthly-report-2203/index.html index fcac70db20..e3b8d8f8ba 100644 --- a/2022/03/31/monthly-report-2203/index.html +++ b/2022/03/31/monthly-report-2203/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2022-03 my activity this month on GitHub | blog.sugarshin.net \ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/05/31/monthly-report-2205/index.html b/2022/05/31/monthly-report-2205/index.html index 490fa4ee3d..38aef54294 100644 --- a/2022/05/31/monthly-report-2205/index.html +++ b/2022/05/31/monthly-report-2205/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2022-05 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2022-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2022-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/06/30/monthly-report-2206/index.html b/2022/06/30/monthly-report-2206/index.html index 2a7cdce587..79a0806923 100644 --- a/2022/06/30/monthly-report-2206/index.html +++ b/2022/06/30/monthly-report-2206/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2022-06 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2022-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

Issues events

  • opened 2.10.0 is missing in DockerHub
    • This is a bug report This is a feature request I searched existing issues before opening this one Hi, it seems to the latest release v......

    • created_at: 2022-06-24T01:56:53Z

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2022-06 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

Issues events

  • opened 2.10.0 is missing in DockerHub
    • This is a bug report This is a feature request I searched existing issues before opening this one Hi, it seems to the latest release v......

    • created_at: 2022-06-24T01:56:53Z

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/07/31/monthly-report-2207/index.html b/2022/07/31/monthly-report-2207/index.html index 9d4e1c20bf..531cd6d9b9 100644 --- a/2022/07/31/monthly-report-2207/index.html +++ b/2022/07/31/monthly-report-2207/index.html @@ -1,4 +1,4 @@ [Monthly report] 2022-07 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/08/31/monthly-report-2208/index.html b/2022/08/31/monthly-report-2208/index.html index a1ec193fdb..16ff9b1087 100644 --- a/2022/08/31/monthly-report-2208/index.html +++ b/2022/08/31/monthly-report-2208/index.html @@ -1,4 +1,4 @@ [Monthly report] 2022-08 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2022-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/09/30/monthly-report-2209/index.html b/2022/09/30/monthly-report-2209/index.html index 67ac458d55..038ba612d1 100644 --- a/2022/09/30/monthly-report-2209/index.html +++ b/2022/09/30/monthly-report-2209/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2022-09 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2022-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2022-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/10/31/monthly-report-2210/index.html b/2022/10/31/monthly-report-2210/index.html index 4ea5c6c965..f4f2137691 100644 --- a/2022/10/31/monthly-report-2210/index.html +++ b/2022/10/31/monthly-report-2210/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2022-10 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2022-10 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Pull requests

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2022-10 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Pull requests

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/11/30/monthly-report-2211/index.html b/2022/11/30/monthly-report-2211/index.html index 96b914fb67..637f4215ca 100644 --- a/2022/11/30/monthly-report-2211/index.html +++ b/2022/11/30/monthly-report-2211/index.html @@ -1,4 +1,4 @@ [Monthly report] 2022-11 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2022-11 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2022/12/31/monthly-report-2212/index.html b/2022/12/31/monthly-report-2212/index.html index 3a13801978..04a155a4f8 100644 --- a/2022/12/31/monthly-report-2212/index.html +++ b/2022/12/31/monthly-report-2212/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2022-12 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2022-12 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2022-12 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Releases

Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/01/31/monthly-report-2301/index.html b/2023/01/31/monthly-report-2301/index.html index 48e9cb5877..0251755fa4 100644 --- a/2023/01/31/monthly-report-2301/index.html +++ b/2023/01/31/monthly-report-2301/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-01 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2023-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2023-01 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/02/28/monthly-report-2302/index.html b/2023/02/28/monthly-report-2302/index.html index 9a053443ae..d594748022 100644 --- a/2023/02/28/monthly-report-2302/index.html +++ b/2023/02/28/monthly-report-2302/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-02 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2023-02 my activity this month on GitHub

CircleCI

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2023-02 my activity this month on GitHub

CircleCI

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/03/31/monthly-report-2303/index.html b/2023/03/31/monthly-report-2303/index.html index 7375b65655..aea6b2366b 100644 --- a/2023/03/31/monthly-report-2303/index.html +++ b/2023/03/31/monthly-report-2303/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-03 my activity this month on GitHub | blog.sugarshin.net \ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/04/30/monthly-report-2304/index.html b/2023/04/30/monthly-report-2304/index.html index b9d0bb5760..f8e01b0e45 100644 --- a/2023/04/30/monthly-report-2304/index.html +++ b/2023/04/30/monthly-report-2304/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-04 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/05/22/matome-2022/index.html b/2023/05/22/matome-2022/index.html index cbb4d01400..7266e6460b 100644 --- a/2023/05/22/matome-2022/index.html +++ b/2023/05/22/matome-2022/index.html @@ -1,4 +1,4 @@ 2022 年まとめ | blog.sugarshin.net
blog.sugarshin.net

2022 年まとめ

Shingo Sato

2023 年を迎えて半年ほど経ってしまいましたが、 2022 年のまとめを書きます。

目次

仕事

昨年同様、 Web アプリケーション開発プラットフォームの SDK 開発を中心に、開発支援ツールやいわゆるフロントエンド DevOps, またチーム運用に必要な施策も含めいろいろと担当していました。 4 月からエンジニアリングマネージャとしてチームの成果に責務を持ち、以降はマネジメントに比重を置き活動しています。

  • Web アプリケーションおよび WebView アプリケーション開発プラットフォームの JavaScript SDK の設計/開発
  • 認証認可基盤のアカウント連携機能に関わる Web フロントエンドの実装
  • 新規開発 LINE ミニアプリ の SPA の実装
  • 2つのチケット管理サービスのチケットを連携するためのチーム用システムの企画/設計/開発
  • 各フロントエンドコンポーネントの CI/CD の設計および実装
  • 各担当領域の IaC によるインフラの設計と管理およびプロビジョニング
  • チーム用 Renovate Bot の運用
  • 開発タスクマネジメント設計
  • ピープルマネジメント
  • 目標設定設計
  • 採用業務
  • チームビルディング

メディア掲載

読んだ本

読んだ、読んでいる本をリストしてみます。マネジメントや組織設計に関わる本が多かったようです。

旅行

キャンプの回数は減ってしまっていますが、例年同様に家族で旅行を楽しみました。

  • 鴨川シーワールド - 4月
  • スパリゾートハワイアンズ - 8月
  • 伊豆シャボテンヴィレッジ - 8月
  • 伊豆シャボテン動物公園 - 8月
  • 伊豆ぐらんぱる公園 - 8月
  • RECAMP館山 - 11月

RECAMP館山

2023年

いろいろと変化のある年になりそうです。思考整理とプライベートでも目標を設定して、これまで以上に充実した仕事、私生活を送りたいです。

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/05/31/monthly-report-2305/index.html b/2023/05/31/monthly-report-2305/index.html index 40436c79b1..c32d03f7fa 100644 --- a/2023/05/31/monthly-report-2305/index.html +++ b/2023/05/31/monthly-report-2305/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-05 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/06/30/monthly-report-2306/index.html b/2023/06/30/monthly-report-2306/index.html index 5cb79e9d7c..8c20d94aa1 100644 --- a/2023/06/30/monthly-report-2306/index.html +++ b/2023/06/30/monthly-report-2306/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-06 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/07/31/monthly-report-2307/index.html b/2023/07/31/monthly-report-2307/index.html index 93cf853c8d..7e225bc038 100644 --- a/2023/07/31/monthly-report-2307/index.html +++ b/2023/07/31/monthly-report-2307/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-07 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2023-07 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2023-07 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/08/31/monthly-report-2308/index.html b/2023/08/31/monthly-report-2308/index.html index d89cf3bff4..3b48be7599 100644 --- a/2023/08/31/monthly-report-2308/index.html +++ b/2023/08/31/monthly-report-2308/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-08 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2023-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2023-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/09/30/monthly-report-2309/index.html b/2023/09/30/monthly-report-2309/index.html index fde369e41a..4a332ae7fc 100644 --- a/2023/09/30/monthly-report-2309/index.html +++ b/2023/09/30/monthly-report-2309/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-09 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2023-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2023-09 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/10/31/monthly-report-2310/index.html b/2023/10/31/monthly-report-2310/index.html index 2ce69e7c98..cec52d8b05 100644 --- a/2023/10/31/monthly-report-2310/index.html +++ b/2023/10/31/monthly-report-2310/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-10 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2023-10 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2023-10 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2023/11/30/monthly-report-2311/index.html b/2023/11/30/monthly-report-2311/index.html index 167de8728a..09fd62cf59 100644 --- a/2023/11/30/monthly-report-2311/index.html +++ b/2023/11/30/monthly-report-2311/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2023-11 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2023-11 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2023-11 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2024/03/31/monthly-report-2403/index.html b/2024/03/31/monthly-report-2403/index.html index 05a4a533f6..42d4a675c4 100644 --- a/2024/03/31/monthly-report-2403/index.html +++ b/2024/03/31/monthly-report-2403/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2024-03 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2024-03 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2024-03 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2024/05/31/monthly-report-2405/index.html b/2024/05/31/monthly-report-2405/index.html index 5216d288c4..c6def20045 100644 --- a/2024/05/31/monthly-report-2405/index.html +++ b/2024/05/31/monthly-report-2405/index.html @@ -1,4 +1,4 @@ [Monthly report] 2024-05 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2024-05 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/2024/06/30/monthly-report-2406/index.html b/2024/06/30/monthly-report-2406/index.html index 1607d1134a..c6d3fe747b 100644 --- a/2024/06/30/monthly-report-2406/index.html +++ b/2024/06/30/monthly-report-2406/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2024-06 my activity this month on GitHub | blog.sugarshin.net \ No newline at end of file +}}(); \ No newline at end of file diff --git a/2024/07/31/monthly-report-2407/index.html b/2024/07/31/monthly-report-2407/index.html index 84c240b054..b74eea764f 100644 --- a/2024/07/31/monthly-report-2407/index.html +++ b/2024/07/31/monthly-report-2407/index.html @@ -1,4 +1,4 @@ [Monthly report] 2024-07 my activity this month on GitHub | blog.sugarshin.net \ No newline at end of file +}}(); \ No newline at end of file diff --git a/2024/08/31/monthly-report-2408/index.html b/2024/08/31/monthly-report-2408/index.html index 22e07e3102..c3f9e2e91e 100644 --- a/2024/08/31/monthly-report-2408/index.html +++ b/2024/08/31/monthly-report-2408/index.html @@ -1,4 +1,4 @@ -[Monthly report] 2024-08 my activity this month on GitHub | blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2024-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

[Monthly report] 2024-08 my activity this month on GitHub

CircleCI

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ


Starred repositories

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/404.html b/404.html index cf52e1054f..380f34152c 100644 --- a/404.html +++ b/404.html @@ -1,4 +1,4 @@ -/404.html 404 Not Found | blog.sugarshin.net
blog.sugarshin.net

404 Not Found

The requested URL /404.html was not found on this server.

Back to Top Page

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

404 Not Found

The requested URL /404.html was not found on this server.

Back to Top Page

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/assets/app~f075b844-7f6a79a4937cfe34b11b.js b/assets/app~f075b844-91515cf6285706717184.js similarity index 99% rename from assets/app~f075b844-7f6a79a4937cfe34b11b.js rename to assets/app~f075b844-91515cf6285706717184.js index 755e4704eb..572168c5ec 100644 --- a/assets/app~f075b844-7f6a79a4937cfe34b11b.js +++ b/assets/app~f075b844-91515cf6285706717184.js @@ -1 +1 @@ -!function(i){function e(e){for(var t,r,a=e[0],n=e[1],l=e[2],u=0,o=[];u(0,l.push)({pathname:e,search:t.search,state:t.state});t.documentHeadStateChanged=(0,n.createAction)(u.default.DOCUMENT_HEAD_STATE_CHANGED),t.locationChanged=(0,n.createAction)(u.default.LOCATION_CHANGED,null,(e,t)=>({title:t.title}))},174:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=u(r(0)),t=u(r(5)),n=u(r(605)),l=u(r(611));function u(e){return e&&e.__esModule?e:{default:e}}function o({articles:e,id:t}){return a.default.createElement("div",{className:l.default.wrapper,id:t},0a.default.createElement(n.default,{key:`${e.date.split(" ")[0]}_${e.url}`,article:e})):a.default.createElement("p",null,"No results..."))}o.displayName="Articles",o.propTypes={articles:t.default.arrayOf(t.default.shape({date:t.default.string,url:t.default.string})),id:t.default.string}},193:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HTTPError=void 0;class a extends Error{constructor(e){super(e.statusText||String(0===e.status||e.status?e.status:"Unknown response error")),this.name="HTTPError",this.response=e}}t.HTTPError=a},197:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(165))&&a.__esModule?a:{default:a},l=r(193);function u(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function o(a){for(var e=1;easync(e,t,{api:r})=>{var a,n,l;a=t(),n=u,(0,o.default)(a.article.cache,n)?e(s(u)):(e(c()),(a=await r.Articles.get(u).catch(e=>e))instanceof Error?(n=a,e(d(n))):(r=0<(t=t()).articles.items.length?t.articles.items:await r.Articles.getList().catch(e=>e))instanceof Error?(l=r,e(d(l))):([l,r]=(0,i.createNextAndPrev)(r,u),e(d({markdown:a,url:u,next:l,prev:r},u))))};const s=t.useCachedArticle=(0,a.createAction)(n.default.USE_CACHED_ARTICLE,e=>({url:e})),c=t.requestArticle=(0,a.createAction)(n.default.REQUEST_ARTICLE),d=t.receiveArticle=(0,a.createAction)(n.default.RECEIVE_ARTICLE,({markdown:e,url:t,next:r,prev:a})=>({markdown:e,url:t,next:r,prev:a}),(e,t)=>({url:t}))},363:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.requestArticleList=t.receiveArticleList=t.fetchArticleList=void 0;var a,n=r(45),l=(a=r(68))&&a.__esModule?a:{default:a};t.fetchArticleList=()=>async(t,e,{api:r})=>{t(u());try{var a=await r.Articles.getList();t(o(a))}catch(e){t(o(e))}};const u=t.requestArticleList=(0,n.createAction)(l.default.REQUEST_ARTICLE_LIST),o=t.receiveArticleList=(0,n.createAction)(l.default.RECEIVE_ARTICLE_LIST,e=>({items:e}))},364:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toggleSidebarDocked=t.toggleSidebar=t.openSidebar=t.closeSidebar=void 0;var a,n=r(45),l=(a=r(68))&&a.__esModule?a:{default:a};t.toggleSidebar=(0,n.createAction)(l.default.TOGGLE_SIDEBAR),t.openSidebar=(0,n.createAction)(l.default.OPEN_SIDEBAR),t.closeSidebar=(0,n.createAction)(l.default.CLOSE_SIDEBAR),t.toggleSidebarDocked=(0,n.createAction)(l.default.TOGGLE_SIDEBAR_DOCKED,e=>({docked:e}))},365:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.searchArticle=t.requestSearchArticle=t.receiveSearchArticle=void 0;var a,n=r(45),l=(a=r(68))&&a.__esModule?a:{default:a};t.searchArticle=a=>async(e,t,{api:r})=>{e(u());r=await r.Search.execute(a).catch(e=>e);e(o(r))};const u=t.requestSearchArticle=(0,n.createAction)(l.default.REQUEST_SEARCH_ARTICLE),o=t.receiveSearchArticle=(0,n.createAction)(l.default.RECEIVE_SEARCH_ARTICLE,e=>({items:e.items,incomplete:e.incomplete_results,totalCount:e.total_count}))},366:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=u(r(0)),t=u(r(5)),n=u(r(606)),l=u(r(608));function u(e){return e&&e.__esModule?e:{default:e}}function o({values:e}){return a.default.createElement("ul",{className:l.default.root},e.map(e=>a.default.createElement("li",{key:e,className:l.default.item},a.default.createElement(n.default,{value:e}))))}o.displayName="Tags",o.propTypes={values:t.default.arrayOf(t.default.string)}},367:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=o(r(0)),n=o(r(5)),l=r(52),u=o(r(609));function o(e){return e&&e.__esModule?e:{default:e}}r=({article:e})=>a.default.createElement("div",{className:u.default.meta},a.default.createElement("span",{className:u.default.metaContent},a.default.createElement(l.PencilIcon,{className:u.default.metaIcon}),a.default.createElement("a",{href:e.author.url,target:"_blank",rel:"noopener noreferrer"},e.author.name)),a.default.createElement("span",{className:u.default.metaContent},a.default.createElement(l.ClockIcon,{className:u.default.metaIcon}),a.default.createElement("time",null,e.date)));r.displayName="ArticleMeta",r.propTypes={article:n.default.shape({author:n.default.shape({name:n.default.string.isRequired,url:n.default.string.isRequired}).isRequired,date:n.default.string.isRequired}).isRequired};t.default=r},408:function(e,t,r){"use strict";var a=r(409),n=r(422),l=r(789),u=r(792),o=r(797),r=r(798);e.exports.basePlugins=[a,o,r,n,l,[u,{heading:"目次"}]]},433:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var a=i(r(0)),n=r(57),l=r(430),u=r(52),t=i(r(5)),o=i(r(857));function i(e){return e&&e.__esModule?e:{default:e}}function s({pathname:e}){return a.default.createElement("div",{className:o.default.root},a.default.createElement("div",{className:o.default.iconContainer},a.default.createElement(u.AlertIcon,{size:"medium"})),a.default.createElement("h4",null,"404 Not Found"),a.default.createElement("p",null,"The requested URL ",a.default.createElement("code",null,e)," was not found on this server."),a.default.createElement("p",null,a.default.createElement(l.LinkContainer,{to:"/",title:"Back to Top Page"},a.default.createElement(n.Button,{variant:"outline-secondary"},"Back to Top Page"))))}s.displayName="NotFound",s.propTypes={pathname:t.default.string.isRequired}},471:function(e,t,r){r(472),e.exports=r(473)},473:function(e,t,r){"use strict";r(474),r(475),r(476),r(477);var n=a(r(0)),l=r(8),u=r(22),o=a(r(482)),i=a(r(488)),s=a(r(869)),c=a(r(197));function a(e){return e&&e.__esModule?e:{default:e}}(()=>{o.default.config("https://aba165213a7047379a8918ad2d227769@sentry.io/165757",{release:"22845",debug:!1}).install(),c.default.baseURI="https://api.github.com",c.default.ref="master";var e=window.__PRELOADED_STATE__;delete window.__PRELOADED_STATE__;var t=(0,u.createBrowserHistory)();const r=(0,s.default)({history:t,initialState:e}),a=document.querySelector("#app-root");window.snapSaveState=()=>({__PRELOADED_STATE__:r.getState()}),(a.hasChildNodes()?(0,l.hydrate):(0,l.render))(n.default.createElement(i.default,{store:r,history:t,ua:navigator.userAgent}),a)})()},477:function(e,t,r){"use strict";r.r(t),t.default={h1:"WCRoq7I4fihqzwOaoF9gXw==",h2:"rfbKH95bZ4X+11gHxGKH2w==",h3:"_9FKEzlIEU-LKeYOMjnl7kw==",h4:"gGt7YWRb9-LmlhLOnfg7pw==",h5:"qBtUpuo07iIeo3GVHDOvKQ==",h6:"iBis+UZ-lvm2Cj2iVlwWng==","markdown-body":"bYzNNQo7oXVz8ln0ZzgRIg=="}},488:function(e,t,r){"use strict";e.exports=r(489)},489:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var a=i(r(0)),n=r(86),l=r(107),u=i(r(499)),o=r(868);function i(e){return e&&e.__esModule?e:{default:e}}function s({store:e,history:t,ua:r}){return a.default.createElement(o.Provider,{value:r},a.default.createElement(n.Provider,{store:e},a.default.createElement(l.ConnectedRouter,{history:t},a.default.createElement(u.default,null))))}s.displayName="Root"},499:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=p;var a=f(r(0)),n=r(38),l=f(r(503)),u=f(r(604)),o=f(r(612)),i=f(r(858)),s=f(r(859)),c=f(r(860)),d=f(r(867));function f(e){return e&&e.__esModule?e:{default:e}}function p(){return a.default.createElement(n.Switch,null,a.default.createElement(n.Route,{path:"/"},a.default.createElement(l.default,null,a.default.createElement(n.Switch,null,a.default.createElement(n.Route,{exact:!0,path:"/",component:u.default}),a.default.createElement(n.Route,{path:"/:year/:month/:day/:title",component:o.default}),a.default.createElement(n.Route,{path:"/archives/:date",component:i.default}),a.default.createElement(n.Route,{path:"/tags/:tag",component:s.default}),a.default.createElement(n.Route,{path:"/search",component:c.default}),a.default.createElement(n.Route,{component:d.default})))))}p.displayName="Routes"},503:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=f(r(0)),n=r(76),l=f(r(506)),u=f(r(5)),o=r(86),i=r(140),s=f(r(509)),c=r(173),d=r(25);function f(e){return e&&e.__esModule?e:{default:e}}r=({children:e,onChangeClientState:t})=>a.default.createElement(s.default,null,a.default.createElement(n.Helmet,{titleTemplate:`%s | ${d.siteName}`,defaultTitle:d.siteName,onChangeClientState:t},a.default.createElement("meta",{name:"title",content:d.siteName}),a.default.createElement("meta",{name:"description",content:d.description}),a.default.createElement("meta",{property:"og:title",content:d.siteName}),a.default.createElement("meta",{property:"og:description",content:d.description}),a.default.createElement("meta",{property:"og:type",content:"website"}),a.default.createElement("meta",{property:"og:image",content:`${d.protocol}//${d.domain}/assets/images/common/open-graph.jpg`}),a.default.createElement("meta",{property:"og:url",content:`${d.protocol}//${d.domain}/`})),a.default.createElement(l.default,null),e);r.displayName="App",r.propTypes={children:u.default.oneOfType([u.default.arrayOf(u.default.element),u.default.element]),onChangeClientState:u.default.func.isRequired};t.default=(0,o.connect)(null,e=>(0,i.bindActionCreators)({onChangeClientState:c.documentHeadStateChanged},e))(r)},509:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=y(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),u=r(57),a=h(r(960)),n=h(r(525)),o=r(38),i=h(r(164)),s=r(52),c=h(r(555)),d=h(r(166)),f=h(r(77)),p=h(r(25)),m=h(r(603));function h(e){return e&&e.__esModule?e:{default:e}}function y(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(y=function(e){return e?r:t})(e)}function g(e,t,r){return(t=function(e){e=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);t=r.call(e,t||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}(e,"string");return"symbol"==typeof e?e:e+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const b=(0,n.default)({paper:{minWidth:240,maxWidth:320,width:"36%",backgroundColor:"#fcfcfc",borderLeft:"1px solid #f3f3f3",padding:16,"-webkit-overflow-scrolling":"touch"}})(a.default);t.default=(f=(0,f.default)(),(0,o.withRouter)(f=f(f=class extends l.Component{constructor(e){super(e),g(this,"handleChangeMediaQuery",e=>this.props.actions.toggleSidebarDocked(e.matches)),this._matchMedia=window.matchMedia?window.matchMedia("screen and (min-width: 769px)"):null}componentDidMount(){0===this.props.articles.items.length&&this.props.actions.fetchArticleList(),this._matchMedia&&(this._matchMedia.addListener(this.handleChangeMediaQuery),this.props.actions.toggleSidebarDocked(this._matchMedia.matches))}componentWillUnmount(){this._matchMedia&&this._matchMedia.removeListener(this.handleChangeMediaQuery)}render(){var{articles:e}=this.props;return 0this.setState({searchQuery:e.target.value})),this.state={searchQuery:this.parseSearchQuery(this.props.location.search)}}componentDidUpdate({location:{search:e}}){var t=this.parseSearchQuery(this.props.location.search);this.parseSearchQuery(e)!==t&&this.setState({searchQuery:t})}render(){return n.default.createElement("div",null,n.default.createElement(c.default,y({},this.props,{id:"recent-posts",title:"Recent posts",titleIcon:n.default.createElement(a.MegaphoneIcon,null)}),this.renderRecentPosts()),n.default.createElement(c.default,y({},this.props,{id:"archives",title:"Archives",titleIcon:n.default.createElement(a.CalendarIcon,null)}),this.renderArchives()),n.default.createElement(c.default,y({},this.props,{id:"tags",title:"Tags",titleIcon:n.default.createElement(a.TagIcon,null)}),this.renderTags()),n.default.createElement(c.default,y({},this.props,{id:"links",title:"Links",titleIcon:n.default.createElement(a.LinkIcon,null)}),this.renderLinks()),n.default.createElement(c.default,y({},this.props,{id:"search-article",title:"Search",titleIcon:n.default.createElement(a.SearchIcon,null)}),n.default.createElement(l.FormControl,{onKeyDown:this.submitSearchQuery,onChange:this.handleChangeSearchQuery,type:"text",placeholder:"Search article",value:this.state.searchQuery})),n.default.createElement("div",{className:f.default.feed},n.default.createElement("a",{href:`/${d.feedURL}`},n.default.createElement(a.RssIcon,{className:f.default["feed-octicon"]}),n.default.createElement("span",null,"Subscribe Feed"))),n.default.createElement("div",null,n.default.createElement("a",{href:"https://circleci.com/gh/sugarshin/blog.sugarshin.net/tree/master"},n.default.createElement("img",{src:"https://circleci.com/gh/sugarshin/blog.sugarshin.net/tree/master.svg?style=svg&circle-token=812f62f2aeba2a3bb9bfe6adf2abd24d7754a7be"}))))}renderRecentPosts(){return this.props.articles.items.filter((e,t)=>t<5).map(e=>{var[t,r,a]=e.date.split(" ")[0].split("-"),a=`/${t}/${r}/${a}/${e.url}/`;return n.default.createElement(l.ListGroup.Item,{key:a,to:a,as:u.NavLink,className:f.default.link,action:!0},e.title)})}renderArchives(){return Object.keys(this.props.articles.archives).map(e=>{var[t,r]=e.split("-"),r=`/archives/${t}-${r}/`;return n.default.createElement(l.ListGroup.Item,{key:r,to:r,as:u.NavLink,className:f.default.link,action:!0},(0,i.default)(e).format("MMMM YYYY"))})}renderTags(){return this.props.articles.tags.map(e=>{var t=`/tags/${e.replace(/\s/g,"_")}/`;return n.default.createElement(l.ListGroup.Item,{key:t,to:t,as:u.NavLink,className:f.default.link,action:!0},e)})}renderLinks(){return[n.default.createElement(l.ListGroup.Item,{key:"sugarshin.net",href:"//sugarshin.net/",action:!0},"About"),n.default.createElement(l.ListGroup.Item,{key:"github",href:"//github.com/sugarshin/",action:!0},"GitHub"),n.default.createElement(l.ListGroup.Item,{key:"keybase",href:"//keybase.io/sugarshin/",action:!0},"Keybase"),n.default.createElement(l.ListGroup.Item,{key:"twitter",href:"//twitter.com/sugarshin/",action:!0},"Twitter"),n.default.createElement(l.ListGroup.Item,{key:"instagram",href:"//www.instagram.com/sugarshin/",action:!0},"Instagram"),n.default.createElement(l.ListGroup.Item,{key:"facebook",href:"//www.facebook.com/sngsato/",action:!0},"Facebook")]}parseSearchQuery(e){return s.default.parse(e).q||""}submitSearchQuery({target:{value:e}}){e&&this.props.actions.goTo("/search/",{search:`q=${e}`})}},b=o.prototype,v="submitSearchQuery",j=[t],_=Object.getOwnPropertyDescriptor(o.prototype,"submitSearchQuery"),E=o.prototype,O={},Object.keys(_).forEach(function(e){O[e]=_[e]}),O.enumerable=!!O.enumerable,O.configurable=!!O.configurable,("value"in O||O.initializer)&&(O.writable=!0),O=j.slice().reverse().reduce(function(e,t){return t(b,v,e)||e},O),E&&void 0!==O.initializer&&(O.value=O.initializer?O.initializer.call(E):void 0,O.initializer=void 0),void 0===O.initializer&&(Object.defineProperty(b,v,O),O=null),o)},557:function(e,t,r){var a={"./af":221,"./af.js":221,"./ar":222,"./ar-dz":223,"./ar-dz.js":223,"./ar-kw":224,"./ar-kw.js":224,"./ar-ly":225,"./ar-ly.js":225,"./ar-ma":226,"./ar-ma.js":226,"./ar-ps":227,"./ar-ps.js":227,"./ar-sa":228,"./ar-sa.js":228,"./ar-tn":229,"./ar-tn.js":229,"./ar.js":222,"./az":230,"./az.js":230,"./be":231,"./be.js":231,"./bg":232,"./bg.js":232,"./bm":233,"./bm.js":233,"./bn":234,"./bn-bd":235,"./bn-bd.js":235,"./bn.js":234,"./bo":236,"./bo.js":236,"./br":237,"./br.js":237,"./bs":238,"./bs.js":238,"./ca":239,"./ca.js":239,"./cs":240,"./cs.js":240,"./cv":241,"./cv.js":241,"./cy":242,"./cy.js":242,"./da":243,"./da.js":243,"./de":244,"./de-at":245,"./de-at.js":245,"./de-ch":246,"./de-ch.js":246,"./de.js":244,"./dv":247,"./dv.js":247,"./el":248,"./el.js":248,"./en-au":249,"./en-au.js":249,"./en-ca":250,"./en-ca.js":250,"./en-gb":251,"./en-gb.js":251,"./en-ie":252,"./en-ie.js":252,"./en-il":253,"./en-il.js":253,"./en-in":254,"./en-in.js":254,"./en-nz":255,"./en-nz.js":255,"./en-sg":256,"./en-sg.js":256,"./eo":257,"./eo.js":257,"./es":258,"./es-do":259,"./es-do.js":259,"./es-mx":260,"./es-mx.js":260,"./es-us":261,"./es-us.js":261,"./es.js":258,"./et":262,"./et.js":262,"./eu":263,"./eu.js":263,"./fa":264,"./fa.js":264,"./fi":265,"./fi.js":265,"./fil":266,"./fil.js":266,"./fo":267,"./fo.js":267,"./fr":268,"./fr-ca":269,"./fr-ca.js":269,"./fr-ch":270,"./fr-ch.js":270,"./fr.js":268,"./fy":271,"./fy.js":271,"./ga":272,"./ga.js":272,"./gd":273,"./gd.js":273,"./gl":274,"./gl.js":274,"./gom-deva":275,"./gom-deva.js":275,"./gom-latn":276,"./gom-latn.js":276,"./gu":277,"./gu.js":277,"./he":278,"./he.js":278,"./hi":279,"./hi.js":279,"./hr":280,"./hr.js":280,"./hu":281,"./hu.js":281,"./hy-am":282,"./hy-am.js":282,"./id":283,"./id.js":283,"./is":284,"./is.js":284,"./it":285,"./it-ch":286,"./it-ch.js":286,"./it.js":285,"./ja":287,"./ja.js":287,"./jv":288,"./jv.js":288,"./ka":289,"./ka.js":289,"./kk":290,"./kk.js":290,"./km":291,"./km.js":291,"./kn":292,"./kn.js":292,"./ko":293,"./ko.js":293,"./ku":294,"./ku-kmr":295,"./ku-kmr.js":295,"./ku.js":294,"./ky":296,"./ky.js":296,"./lb":297,"./lb.js":297,"./lo":298,"./lo.js":298,"./lt":299,"./lt.js":299,"./lv":300,"./lv.js":300,"./me":301,"./me.js":301,"./mi":302,"./mi.js":302,"./mk":303,"./mk.js":303,"./ml":304,"./ml.js":304,"./mn":305,"./mn.js":305,"./mr":306,"./mr.js":306,"./ms":307,"./ms-my":308,"./ms-my.js":308,"./ms.js":307,"./mt":309,"./mt.js":309,"./my":310,"./my.js":310,"./nb":311,"./nb.js":311,"./ne":312,"./ne.js":312,"./nl":313,"./nl-be":314,"./nl-be.js":314,"./nl.js":313,"./nn":315,"./nn.js":315,"./oc-lnc":316,"./oc-lnc.js":316,"./pa-in":317,"./pa-in.js":317,"./pl":318,"./pl.js":318,"./pt":319,"./pt-br":320,"./pt-br.js":320,"./pt.js":319,"./ro":321,"./ro.js":321,"./ru":322,"./ru.js":322,"./sd":323,"./sd.js":323,"./se":324,"./se.js":324,"./si":325,"./si.js":325,"./sk":326,"./sk.js":326,"./sl":327,"./sl.js":327,"./sq":328,"./sq.js":328,"./sr":329,"./sr-cyrl":330,"./sr-cyrl.js":330,"./sr.js":329,"./ss":331,"./ss.js":331,"./sv":332,"./sv.js":332,"./sw":333,"./sw.js":333,"./ta":334,"./ta.js":334,"./te":335,"./te.js":335,"./tet":336,"./tet.js":336,"./tg":337,"./tg.js":337,"./th":338,"./th.js":338,"./tk":339,"./tk.js":339,"./tl-ph":340,"./tl-ph.js":340,"./tlh":341,"./tlh.js":341,"./tr":342,"./tr.js":342,"./tzl":343,"./tzl.js":343,"./tzm":344,"./tzm-latn":345,"./tzm-latn.js":345,"./tzm.js":344,"./ug-cn":346,"./ug-cn.js":346,"./uk":347,"./uk.js":347,"./ur":348,"./ur.js":348,"./uz":349,"./uz-latn":350,"./uz-latn.js":350,"./uz.js":349,"./vi":351,"./vi.js":351,"./x-pseudo":352,"./x-pseudo.js":352,"./yo":353,"./yo.js":353,"./zh-cn":354,"./zh-cn.js":354,"./zh-hk":355,"./zh-hk.js":355,"./zh-mo":356,"./zh-mo.js":356,"./zh-tw":357,"./zh-tw.js":357};function n(e){e=l(e);return r(e)}function l(e){if(r.o(a,e))return a[e];e=new Error("Cannot find module '"+e+"'");throw e.code="MODULE_NOT_FOUND",e}n.keys=function(){return Object.keys(a)},n.resolve=l,(e.exports=n).id=557},560:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=u(r(0)),n=r(57),t=u(r(5)),l=u(r(561));function u(e){return e&&e.__esModule?e:{default:e}}function o({titleIcon:e,title:t,children:r}){return a.default.createElement("div",{className:l.default.root},a.default.createElement("div",{className:l.default.title},a.default.createElement("span",{className:l.default.icon},e),t),a.default.createElement(n.ListGroup,null,r))}o.displayName="SidebarMenuGroup",o.propTypes={titleIcon:t.default.node.isRequired,title:t.default.string.isRequired,children:t.default.node}},561:function(e,t,r){"use strict";r.r(t),t.default={root:"dx4nuAcxjW+uSL-pnmZH6A==",title:"bGBBa1BrkxY3-PUU3J+9Og==",icon:"jU2+85iwMJ45xWLA6-5Vlw=="}},562:function(e,t,r){"use strict";r.r(t),t.default={feed:"ben63NVndl1eP5AvzV9UHA==","feed-octicon":"VOTe4342mnuJqXXdoUc9Kg==",link:"yryGNIvmlmv6Q-+WIvEzWw=="}},563:function(e,t,r){"use strict";r.r(t),t.default={loading:"tjj2BT8fCw9JOqUyk+2NUA==",spinner:"t+xLrZ9+UgNiV1KkX54Elg==","spin-octicon":"N7HeSZ6RHVSZXYxyg8z4yA=="}},564:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=r(358);Object.keys(a).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var n=r(363);Object.keys(n).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===n[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return n[e]}}))});var l=r(364);Object.keys(l).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))});var u=r(365);Object.keys(u).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===u[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}}))});var o=r(173);Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))})},602:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createNextAndPrev=function(e,t){const r=[...e].reverse(),a=r.findIndex(e=>`${e.date.split(" ")[0]}_${e.url}.md`===t);if(-1===a)return[];const n=a===r.length-1?null:a+1,l=0===a?null:a-1,u=null!==n?r[n]:null,o=null!==l?r[l]:null;return[u,o].map(e=>e&&{title:e.title,url:`/${e.date.split(" ")[0].replace(/-/g,"/")}/${e.url}/`})}},603:function(e,t,r){"use strict";r.r(t),t.default={root:"G4FECG+ki2WeiuCJUSf5Sg==",mainContainer:"lRZqkshzEDMI1oshfVHVcA==",sidebar:"FSZgsGy8tAKLdMhbBu29Jg==",header:"VdeyUM6PTl7bXkY6VcOObA==",toggleButton:"f7A3AmeC26DhtyLvGek2rQ==",main:"gNtJ4cKPC9NUDmYx1cVHbg==",footer:"yq+ROOaYBpAcrca7PSFn3g=="}},604:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=u(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),n=l(r(174)),r=l(r(77));function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}t.default=(0,r.default)()(r=class extends a.Component{render(){return a.default.createElement(n.default,{articles:this.props.articles.items,id:"top-article-list"})}})||r},605:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var a=s(r(0)),n=s(r(164)),l=r(38),t=s(r(5)),u=s(r(366)),o=s(r(367)),i=s(r(610));function s(e){return e&&e.__esModule?e:{default:e}}function c({article:e}){var t=`/${e.date.split(" ")[0].replace(/-/g,"/")}/${e.url}/`;return a.default.createElement("div",{className:i.default.root},a.default.createElement(l.Link,{to:t},a.default.createElement("h2",{className:i.default.title},e.title)),a.default.createElement("p",{className:i.default.preview},e.preview,a.default.createElement("span",{className:i.default.more},a.default.createElement(l.Link,{to:t},"more ",a.default.createElement(n.default,{name:"angle-double-right"})))),a.default.createElement("div",{className:i.default.tags},a.default.createElement(u.default,{values:e.tags})),a.default.createElement(o.default,{article:e}))}c.displayName="ArticleItem",c.propTypes={article:t.default.shape({url:t.default.string.isRequired,title:t.default.string.isRequired,date:t.default.string.isRequired,preview:t.default.string,tags:t.default.arrayOf(t.default.string).isRequired})}},606:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var a=i(r(0)),n=r(57),l=r(38),u=r(52),t=i(r(5)),o=i(r(607));function i(e){return e&&e.__esModule?e:{default:e}}function s({value:e}){return a.default.createElement(l.Link,{to:`/tags/${e.replace(/\s/g,"_")}/`},a.default.createElement(n.Badge,{variant:"primary",className:o.default.label},a.default.createElement(u.TagIcon,{className:o.default.icon}),a.default.createElement("span",{className:o.default.a},e)))}s.displayName="Tag",s.propTypes={value:t.default.string.isRequired}},607:function(e,t,r){"use strict";r.r(t),t.default={label:"hhV4D1SFSDqhjX4w3K6bAQ==",a:"AogllZRBEIDYFmO6AZiZEQ==",icon:"r4TZvmGbbfH52shZbr-z6Q=="}},608:function(e,t,r){"use strict";r.r(t),t.default={root:"_4HixIbF51r8KojRqNYk7Eg==",item:"s4cfaIWs7CJa8KDFQGLaEA=="}},609:function(e,t,r){"use strict";r.r(t),t.default={meta:"llE3y7x8yphwSkQLucJ4Xg==",metaContent:"J6k6jCtTAcOfJJye1Ygvmg==",metaIcon:"q3mvvLL57A81IbKd+12BAg=="}},610:function(e,t,r){"use strict";r.r(t),t.default={root:"tYzEHnwDK6kAhxnuTeEvyA==",title:"_0EMH98a0kHvAykaM9xYmTg==",more:"_0ybgLIGfqHUjZPib8sme4w==",tags:"RPyuRLKaDisAgJ9pSFCPog=="}},611:function(e,t,r){"use strict";r.r(t),t.default={wrapper:"U3YWNK7eHNDCTHPOiZaK2Q=="}},612:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=p(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),n=r(76),l=f(r(613)),u=f(r(127)),o=f(r(644)),i=f(r(433)),s=f(r(166)),c=f(r(77)),d=r(25);function f(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}t.default=(0,c.default)()(c=class extends a.Component{componentDidMount(){this.fetchArticle(this.props.match.params)}componentDidUpdate(e){var{match:{params:t}}=this.props;(0,l.default)(e.match.params,t)||this.fetchArticle(t)}render(){var{location:e,article:t}=this.props;return a.default.createElement("div",null,a.default.createElement(n.Helmet,null,a.default.createElement("title",null,t.title),a.default.createElement("meta",{name:"title",content:`${t.title} | ${d.siteName}`}),a.default.createElement("meta",{name:"description",content:t.description}),a.default.createElement("meta",{property:"og:title",content:t.title}),a.default.createElement("meta",{property:"og:description",content:t.description}),a.default.createElement("meta",{property:"og:type",content:t.pageType}),a.default.createElement("meta",{property:"og:image",content:t.ogImageURL}),a.default.createElement("meta",{property:"og:url",content:t.publicURL})),a.default.createElement(u.default,{title:t.title}),t.markdown?a.default.createElement(o.default,{article:t,currentPathname:e.pathname,baseShareMessage:d.siteName}):t.error&&404===t.error.status?a.default.createElement(i.default,null):a.default.createElement(s.default,null))}fetchArticle(e){var{year:t,month:r,day:a,title:e}=e;this.props.actions.fetchArticle(`${t}-${r}-${a}_${e}.md`)}})||c},643:function(e,t,r){"use strict";r.r(t),t.default={wrapper:"DtRcnYS6uyBioerJudJfvg==",title:"BJjJxYkX6x0+Pu13REB4-A=="}},644:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=d;var a=c(r(0)),t=c(r(5)),n=c(r(366)),l=c(r(367)),u=c(r(645)),o=c(r(826)),i=c(r(834)),s=c(r(856));function c(e){return e&&e.__esModule?e:{default:e}}function d({article:e,currentPathname:t,baseShareMessage:r}){t=`${window.location.origin}${t}`;return a.default.createElement("div",{id:"article-detail"},a.default.createElement("div",{className:s.default.meta},a.default.createElement(n.default,{values:e.tags}),a.default.createElement(l.default,{article:e}),a.default.createElement("hr",{className:s.default.hr})),a.default.createElement(u.default,{markdown:e.markdown}),a.default.createElement(o.default,{message:`${e.title} | ${r}`,url:t}),a.default.createElement(i.default,{next:e.next,prev:e.prev}))}d.displayName="Article",d.propTypes={article:t.default.shape({markdown:t.default.string,title:t.default.string,next:t.default.shape({title:t.default.string,url:t.default.string}),prev:t.default.shape({title:t.default.string,url:t.default.string}),tags:t.default.arrayOf(t.default.string)}),currentPathname:t.default.string.isRequired,baseShareMessage:t.default.string.isRequired}},645:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var a=o(r(0)),n=o(r(2)),t=o(r(5)),l=r(646),u=o(r(825));function o(e){return e&&e.__esModule?e:{default:e}}function i({markdown:e}){return a.default.createElement("div",{className:(0,n.default)("markdown-body",u.default.body)},(0,l.renderMarkdown)(e))}i.displayName="ArticleBody",i.propTypes={markdown:t.default.string.isRequired}},646:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderMarkdown=function(e){return h.processSync(e).result};var a=m(r(647)),n=m(r(180)),l=m(r(686)),u=m(r(729)),o=m(r(394)),i=m(r(739)),s=m(r(740)),c=m(r(741)),d=m(r(742)),f=m(r(743)),p=m(r(744)),t=r(408),r=r(824);function m(e){return e&&e.__esModule?e:{default:e}}o=(0,a.default)(o.default,{clobberPrefix:"",attributes:{code:["className"]}});const h=(0,n.default)().use(t.basePlugins).use(l.default,{sanitize:o,remarkReactComponents:{code:(0,u.default)({js:i.default,json:c.default,bash:s.default,coffeescript:d.default,yaml:f.default,typescript:p.default}),a:r.Link}})},68:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(601))&&a.__esModule?a:{default:a};t.default=(0,n.default)(["CLOSE_SIDEBAR","DOCUMENT_HEAD_STATE_CHANGED","LOCATION_CHANGED","OPEN_SIDEBAR","RECEIVE_ARTICLE","RECEIVE_ARTICLE_LIST","RECEIVE_SEARCH_ARTICLE","REQUEST_ARTICLE","REQUEST_ARTICLE_LIST","REQUEST_SEARCH_ARTICLE","SELECT_DATE","SELECT_CATEGORY","TOGGLE_SIDEBAR_DOCKED","TOGGLE_SIDEBAR","USE_CACHED_ARTICLE"])},77:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mapStateToProps=t.mapDispatchToProps=t.default=void 0;var a=r(140),n=r(86),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=u(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(564));function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function o(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function i(a){for(var e=1;ei({},e);t.mapStateToProps=s;const c=e=>({actions:(0,a.bindActionCreators)(l,e)});t.mapDispatchToProps=c;t.default=(...t)=>e=>(0a.default.createElement(n.Pagination,{className:(0,s.default)(c.default.root,c.default.pager)},t?a.default.createElement(l.LinkContainer,{to:t.url,title:`Previous Article: ${t.title}`},a.default.createElement(n.Pagination.Prev,null,a.default.createElement(u.ChevronLeftIcon,{className:c.default.icon})," ",(0,i.default)(t.title,{length:30}))):null,e?a.default.createElement(l.LinkContainer,{to:e.url,title:`Next Article: ${e.title}`},a.default.createElement(n.Pagination.Next,{className:"text-right"},(0,i.default)(e.title,{length:30})," ",a.default.createElement(u.ChevronRightIcon,{className:c.default.icon}))):null);r.displayName="ArticleNavigation",r.propTypes={next:o.default.shape({title:o.default.string,url:o.default.string}),prev:o.default.shape({title:o.default.string,url:o.default.string})};t.default=r},855:function(e,t,r){"use strict";r.r(t),t.default={root:"WeBtVZNYlu35RdlVGd4JUg==",pager:"g8bt-nPhrQpzrpmQeIaV4w==",icon:"sIM4nwFPFj-NIczrPUlXyg=="}},856:function(e,t,r){"use strict";r.r(t),t.default={meta:"rzMPCJAT2MjIoCgqGNeDhg==",hr:"_56p9n-jgxzBFV7P4csi2pA=="}},857:function(e,t,r){"use strict";r.r(t),t.default={root:"uapwuL0lPCqEvDbfTOvEsg==",iconContainer:"vgfxlRZSkoPfldJQ80-+Nw=="}},858:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=c(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),n=r(76),l=s(r(127)),u=s(r(174)),o=s(r(77)),i=r(25);function s(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}t.default=(0,o.default)()(o=class extends a.Component{render(){var{date:e}=this.props.match.params;return a.default.createElement("div",null,a.default.createElement(n.Helmet,null,a.default.createElement("title",null,`${e} | Archives`),a.default.createElement("meta",{name:"title",content:`${e} | Archives | ${i.siteName}`}),a.default.createElement("meta",{name:"description",content:`Archives | ${e} | ${i.description}`}),a.default.createElement("meta",{property:"og:title",content:`${e} | Archives | ${i.siteName}`}),a.default.createElement("meta",{property:"og:description",content:`Archives | ${e} | ${i.description}`}),a.default.createElement("meta",{property:"og:url",content:`${i.protocol}//${i.domain}/archives/${e}/`})),a.default.createElement(l.default,{title:`Entries from "${e}"`}),a.default.createElement(u.default,{articles:this.props.articles.archives[e]||[]}))}})||o},859:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=c(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),n=r(76),l=s(r(127)),u=s(r(174)),o=s(r(77)),i=r(25);function s(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}t.default=(0,o.default)()(o=class extends a.Component{render(){const{tag:e}=this.props.match.params,t=e.replace(/_/g," ");var r=this.props.articles.items.filter(e=>e.tags.includes(t));return a.default.createElement("div",null,a.default.createElement(n.Helmet,null,a.default.createElement("title",null,`${t} | Tags`),a.default.createElement("meta",{name:"title",content:`${t} | Tags | ${i.siteName}`}),a.default.createElement("meta",{name:"description",content:`Tags | ${t} | ${i.description}`}),a.default.createElement("meta",{property:"og:title",content:`${t} | Tags | ${i.siteName}`}),a.default.createElement("meta",{property:"og:description",content:`Tags | ${t} | ${i.description}`}),a.default.createElement("meta",{property:"og:url",content:`${i.protocol}//${i.domain}/tags/${e}/`})),a.default.createElement(l.default,{title:`Entries tagged with "${t}"`}),a.default.createElement(u.default,{articles:r}))}})||o},860:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=m(r(165)),n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=p(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),l=r(76),u=m(r(127)),o=m(r(861)),i=m(r(863)),s=m(r(166)),c=m(r(865)),d=m(r(77)),f=r(25);function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function m(e){return e&&e.__esModule?e:{default:e}}t.default=(0,d.default)()(d=class extends n.Component{getSearchQuery(e){return a.default.parse(e.slice(1),null,null,{decodeURIComponent:e=>e}).q||""}get q(){return this.getSearchQuery(this.props.location.search)}get decodedQ(){return decodeURIComponent(this.q)}componentDidMount(){this.q&&this.props.actions.searchArticle(this.q)}componentDidUpdate(e){e=this.getSearchQuery(e.location.search);this.q!==e&&this.props.actions.searchArticle(this.q)}renderMain(){var{searchResults:e}=this.props;return e.isFetching?n.default.createElement(s.default,null):e.error?n.default.createElement(i.default,{error:e.error}):0{const[t,r]=e.name.split("_");e=`/${t.replace(/-/g,"/")}/${r.replace(/\.md$/,"")}/`;return a.default.createElement("li",{key:e},a.default.createElement(n.Link,{to:e},`${l.protocol}//${l.domain}${e}`))})))}i.displayName="SearchResults",i.propTypes={items:t.default.arrayOf(t.default.shape({name:t.default.stirng}))}},862:function(e,t,r){"use strict";r.r(t),t.default={root:"zdIwDd2zoTIEkEOeyf0Urg=="}},863:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var a=o(r(0)),n=r(57),l=o(r(5)),t=r(193),u=o(r(864));function o(e){return e&&e.__esModule?e:{default:e}}function i({error:e}){console.error(e);e={400:"Bad Request",403:"Please try again later",422:"Unprocessable"}[e.message]||"Unknown Error";return a.default.createElement(n.Alert,{variant:"warning",className:u.default.root},e)}i.displayName="SearchError",i.propTypes={error:l.default.oneOfType([l.default.instanceOf(Error),l.default.instanceOf(t.HTTPError)])}},864:function(e,t,r){"use strict";r.r(t),t.default={root:"dkPHDI+yrn8etYS2ezaf6Q=="}},865:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=u(r(0)),n=r(52),l=u(r(866));function u(e){return e&&e.__esModule?e:{default:e}}function o(){return a.default.createElement("div",{className:l.default.wrapper},a.default.createElement(n.CircleSlashIcon,{className:l.default.icon}),a.default.createElement("p",null,"No results..."))}o.displayName="NoResults"},866:function(e,t,r){"use strict";r.r(t),t.default={wrapper:"n328Lw1O0JAug3yf6g7BsQ==",icon:"MM-otrNMlPImNGWM-gauUQ=="}},867:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=o(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),l=r(76),u=(a=r(433))&&a.__esModule?a:{default:a};function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}class i extends n.Component{render(){return n.default.createElement(n.default.Fragment,null,n.default.createElement(l.Helmet,null,n.default.createElement("title",null,`${this.props.location.pathname}`," 404 Not Found")),n.default.createElement(u.default,{pathname:this.props.location.pathname}))}}(t.default=i).displayName="NotFound"},868:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.context=t.Provider=t.Consumer=void 0;r=r(0),r=t.context=(0,r.createContext)(""),t.Provider=r.Provider,t.Consumer=r.Consumer},869:function(e,t,r){"use strict";e.exports=r(870)},870:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function({history:e,initialState:t}){var{SEGMENT_WRITE_KEY:r}=Object({NODE_ENV:"production",API_BASE:"https://api.github.com",BUILD_NUMBER:"22845",SEGMENT_WRITE_KEY:"K0C4nouS0njLcqt5oX0qFLOhdbq3zFwH",SENTRY_DSN:"https://aba165213a7047379a8918ad2d227769@sentry.io/165757",BRANCH:"master"}),r=[(0,u.createThunkMiddleware)(),(0,l.createRouterMiddleware)(e),...r?[(0,o.default)()]:[],i.default],r=(0,a.createStore)((0,n.createRootReducer)({history:e}),t,(0,a.applyMiddleware)(...r));return r};var a=r(140),n=r(871),l=r(946),u=r(947),o=s(r(951)),i=s(r(959));function s(e){return e&&e.__esModule?e:{default:e}}},871:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRootReducer=function({history:e}){return(0,a.combineReducers)({article:l.default,articles:u.default,sidebar:o.default,searchResults:i.default,router:(0,n.connectRouter)(e)})};var a=r(140),n=r(107),l=s(r(872)),u=s(r(933)),o=s(r(944)),i=s(r(945));function s(e){return e&&e.__esModule?e:{default:e}}},872:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(45),n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=c(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(358)),l=r(137),u=s(r(873)),o=s(r(905)),i=r(25);function s(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}function d(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function f(a){for(var e=1;e(0,o.default)(e).title,m=e=>(0,o.default)(e).author,h=e=>(0,o.default)(e).date,y=e=>{const{tags:t}=(0,o.default)(e);return t?t.split(",").map(e=>e.trim()):[]};t.default=(0,a.handleActions)({[n.useCachedArticle]:(e,{payload:t})=>{var{markdown:r,next:a,prev:n}=e.cache[t.url];return f(f({},e),{},{title:p(r),markdown:r,author:m(r),date:h(r),tags:y(r),url:t.url,next:a,prev:n,isFetching:!1,didInvalidate:!1,error:null})},[n.requestArticle]:e=>f(f({},e),{},{title:"",markdown:"",author:{},date:"",tags:[],url:"",description:"",publicURL:"",ogImageURL:`${i.protocol}//${i.domain}/assets/images/common/open-graph.jpg`,next:null,prev:null,isFetching:!0,didInvalidate:!1,error:null}),[n.receiveArticle]:{next(e,{payload:t}){var r,a=h(t.markdown);return f(f({},e),{},{title:p(t.markdown),markdown:t.markdown,author:m(t.markdown),date:a,tags:y(t.markdown),url:t.url,description:(r=t.markdown,(0,u.default)(r)),publicURL:((e,t)=>{var[r,a,e]=e.split(" ")[0].split("-");return`${i.protocol}//${i.domain}/${r}/${a}/${e}/${t.split("_")[1].replace(".md","")}/`})(a,t.url),ogImageURL:(a=t.markdown,(0,o.default)(a).ogp.og.image.src),isFetching:!1,didInvalidate:!1,cache:f(f({},e.cache),{},{[t.url]:{markdown:t.markdown,next:t.next,prev:t.prev}}),next:t.next,prev:t.prev,error:null})},throw(e,{payload:t,meta:r}){return f(f({},e),{},{title:"",markdown:"",author:{},date:"",tags:[],next:null,prev:null,url:r.url,isFetching:!1,didInvalidate:!0,error:t})}}},l.article)},873:function(e,t,r){"use strict";const a=r(432),n=r(874);e.exports=function(e,t=140){const r=n(e);e=r.replace(/\n|\r/g," ").trim();return a(e,{length:t})}},874:function(e,t,r){"use strict";const a=r(180);var n=r(434),l=r(904),{basePlugins:r}=r(408);const u=a().use(r).use(n).use(l);e.exports=function(e){return u.processSync(e).contents.replace(/:/g,":")}},905:function(e,t,r){"use strict";const a=r(180);var n=r(409),l=r(434),u=r(422),o=r(906),r=r(907);const i=a().use(n).use(l).use(u).use(o,{yaml:r.safeLoad});e.exports=function(e){return i.processSync(e).data}},933:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(934))&&a.__esModule?a:{default:a},l=r(45),u=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=i(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(363)),o=r(137);function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}function s(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function c(a){for(var e=1;ec(c({},e),{},{isFetching:!0,isFetched:!1,didInvalidate:!1,error:null}),[u.receiveArticleList]:{next(e,{payload:{items:t}}){return c(c({},e),{},{items:t,archives:t.reduce((e,t)=>{var r=t.date.split(" ")[0].replace(/-\d\d$/,"");return e[r]=Array.isArray(e[r])?[...e[r],t]:[t],e},{}),tags:t.reduce((e,t)=>(0,n.default)([...e,...t.tags]),[]).sort((e,t)=>e===t?0:to(o({},e),{},{open:!0}),[n.closeSidebar]:e=>o(o({},e),{},{open:!1}),[n.toggleSidebar]:e=>o(o({},e),{},{open:!e.open}),[n.toggleSidebarDocked]:(e,{payload:t})=>o(o({},e),{},{docked:t.docked})},r.sidebar)},945:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(45),n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=u(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(365)),r=r(137);function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function l(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function o(a){for(var e=1;eo(o({},e),{},{isFetching:!0,error:null}),[n.receiveSearchArticle]:{next(e,{payload:t}){return o(o({},e),{},{isFetching:!1,items:t.items,incomplete:t.incomplete,totalCount:t.totalCount,error:null})},throw(e,{payload:t}){return o(o({},e),{},{isFetching:!1,error:t})}}},r.searchResults)},946:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRouterMiddleware=function(e){return(0,a.routerMiddleware)(e)};var a=r(107)},947:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createThunkMiddleware=function(){return a.default.withExtraArgument({api:l})};var a=n(r(948)),t=n(r(949)),r=n(r(950));function n(e){return e&&e.__esModule?e:{default:e}}const l={Articles:t.default,Search:r.default}},949:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(197))&&a.__esModule?a:{default:a},l=r(193),u=r(25);class o extends n.default{static get baseURI(){return super.baseURI?"https://raw.githubusercontent.com":""}static get path(){return`${u.authorGitHubUserName}/${u.repositoryName}/${this.ref}/articles`}static getList(){return this.fetchJSON("/index.json")}static get(e,t={}){return fetch(`${this.baseURI}/${this.path}/${e}`,t).then(e=>{if(e.ok)return e.text();throw new l.HTTPError(e)})}}t.default=o},950:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(197))&&a.__esModule?a:{default:a},l=r(25);class u extends n.default{static get path(){return"search/code"}static execute(e){return this.get(null,{q:this.q(e),per_page:100})}static q(e){return`${decodeURIComponent(e)} in:file extension:md repo:${l.authorGitHubUserName}/${l.repositoryName} path:/articles/`}}t.default=u},951:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(952),n=u(r(443)),l=u(r(958));function u(e){return e&&e.__esModule?e:{default:e}}const o=(0,n.default)();t.default=()=>(0,a.createMiddleware)(l.default,o)},958:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=r(443);n={[((a=r(68))&&a.__esModule?a:{default:a}).default.LOCATION_CHANGED]:(0,n.trackPageView)(e=>({name:e.payload.pathname}))},t.default=n},959:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=r(107),l=(a=r(68))&&a.__esModule?a:{default:a},u=r(173);function o(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function i(a){for(var e=1;et=>e=>(e.error||(e.type===n.LOCATION_CHANGE?s=e.payload:e.type===l.default.DOCUMENT_HEAD_STATE_CHANGED&&s&&(r.dispatch((0,u.locationChanged)(i({},s),e.payload)),s=null)),t(e))}}); \ No newline at end of file +!function(i){function e(e){for(var t,r,a=e[0],n=e[1],l=e[2],u=0,o=[];u(0,l.push)({pathname:e,search:t.search,state:t.state});t.documentHeadStateChanged=(0,n.createAction)(u.default.DOCUMENT_HEAD_STATE_CHANGED),t.locationChanged=(0,n.createAction)(u.default.LOCATION_CHANGED,null,(e,t)=>({title:t.title}))},174:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=u(r(0)),t=u(r(5)),n=u(r(605)),l=u(r(611));function u(e){return e&&e.__esModule?e:{default:e}}function o({articles:e,id:t}){return a.default.createElement("div",{className:l.default.wrapper,id:t},0a.default.createElement(n.default,{key:`${e.date.split(" ")[0]}_${e.url}`,article:e})):a.default.createElement("p",null,"No results..."))}o.displayName="Articles",o.propTypes={articles:t.default.arrayOf(t.default.shape({date:t.default.string,url:t.default.string})),id:t.default.string}},193:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HTTPError=void 0;class a extends Error{constructor(e){super(e.statusText||String(0===e.status||e.status?e.status:"Unknown response error")),this.name="HTTPError",this.response=e}}t.HTTPError=a},197:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(165))&&a.__esModule?a:{default:a},l=r(193);function u(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function o(a){for(var e=1;easync(e,t,{api:r})=>{var a,n,l;a=t(),n=u,(0,o.default)(a.article.cache,n)?e(s(u)):(e(c()),(a=await r.Articles.get(u).catch(e=>e))instanceof Error?(n=a,e(d(n))):(r=0<(t=t()).articles.items.length?t.articles.items:await r.Articles.getList().catch(e=>e))instanceof Error?(l=r,e(d(l))):([l,r]=(0,i.createNextAndPrev)(r,u),e(d({markdown:a,url:u,next:l,prev:r},u))))};const s=t.useCachedArticle=(0,a.createAction)(n.default.USE_CACHED_ARTICLE,e=>({url:e})),c=t.requestArticle=(0,a.createAction)(n.default.REQUEST_ARTICLE),d=t.receiveArticle=(0,a.createAction)(n.default.RECEIVE_ARTICLE,({markdown:e,url:t,next:r,prev:a})=>({markdown:e,url:t,next:r,prev:a}),(e,t)=>({url:t}))},363:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.requestArticleList=t.receiveArticleList=t.fetchArticleList=void 0;var a,n=r(45),l=(a=r(68))&&a.__esModule?a:{default:a};t.fetchArticleList=()=>async(t,e,{api:r})=>{t(u());try{var a=await r.Articles.getList();t(o(a))}catch(e){t(o(e))}};const u=t.requestArticleList=(0,n.createAction)(l.default.REQUEST_ARTICLE_LIST),o=t.receiveArticleList=(0,n.createAction)(l.default.RECEIVE_ARTICLE_LIST,e=>({items:e}))},364:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toggleSidebarDocked=t.toggleSidebar=t.openSidebar=t.closeSidebar=void 0;var a,n=r(45),l=(a=r(68))&&a.__esModule?a:{default:a};t.toggleSidebar=(0,n.createAction)(l.default.TOGGLE_SIDEBAR),t.openSidebar=(0,n.createAction)(l.default.OPEN_SIDEBAR),t.closeSidebar=(0,n.createAction)(l.default.CLOSE_SIDEBAR),t.toggleSidebarDocked=(0,n.createAction)(l.default.TOGGLE_SIDEBAR_DOCKED,e=>({docked:e}))},365:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.searchArticle=t.requestSearchArticle=t.receiveSearchArticle=void 0;var a,n=r(45),l=(a=r(68))&&a.__esModule?a:{default:a};t.searchArticle=a=>async(e,t,{api:r})=>{e(u());r=await r.Search.execute(a).catch(e=>e);e(o(r))};const u=t.requestSearchArticle=(0,n.createAction)(l.default.REQUEST_SEARCH_ARTICLE),o=t.receiveSearchArticle=(0,n.createAction)(l.default.RECEIVE_SEARCH_ARTICLE,e=>({items:e.items,incomplete:e.incomplete_results,totalCount:e.total_count}))},366:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=u(r(0)),t=u(r(5)),n=u(r(606)),l=u(r(608));function u(e){return e&&e.__esModule?e:{default:e}}function o({values:e}){return a.default.createElement("ul",{className:l.default.root},e.map(e=>a.default.createElement("li",{key:e,className:l.default.item},a.default.createElement(n.default,{value:e}))))}o.displayName="Tags",o.propTypes={values:t.default.arrayOf(t.default.string)}},367:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=o(r(0)),n=o(r(5)),l=r(52),u=o(r(609));function o(e){return e&&e.__esModule?e:{default:e}}r=({article:e})=>a.default.createElement("div",{className:u.default.meta},a.default.createElement("span",{className:u.default.metaContent},a.default.createElement(l.PencilIcon,{className:u.default.metaIcon}),a.default.createElement("a",{href:e.author.url,target:"_blank",rel:"noopener noreferrer"},e.author.name)),a.default.createElement("span",{className:u.default.metaContent},a.default.createElement(l.ClockIcon,{className:u.default.metaIcon}),a.default.createElement("time",null,e.date)));r.displayName="ArticleMeta",r.propTypes={article:n.default.shape({author:n.default.shape({name:n.default.string.isRequired,url:n.default.string.isRequired}).isRequired,date:n.default.string.isRequired}).isRequired};t.default=r},408:function(e,t,r){"use strict";var a=r(409),n=r(422),l=r(789),u=r(792),o=r(797),r=r(798);e.exports.basePlugins=[a,o,r,n,l,[u,{heading:"目次"}]]},433:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var a=i(r(0)),n=r(57),l=r(430),u=r(52),t=i(r(5)),o=i(r(857));function i(e){return e&&e.__esModule?e:{default:e}}function s({pathname:e}){return a.default.createElement("div",{className:o.default.root},a.default.createElement("div",{className:o.default.iconContainer},a.default.createElement(u.AlertIcon,{size:"medium"})),a.default.createElement("h4",null,"404 Not Found"),a.default.createElement("p",null,"The requested URL ",a.default.createElement("code",null,e)," was not found on this server."),a.default.createElement("p",null,a.default.createElement(l.LinkContainer,{to:"/",title:"Back to Top Page"},a.default.createElement(n.Button,{variant:"outline-secondary"},"Back to Top Page"))))}s.displayName="NotFound",s.propTypes={pathname:t.default.string.isRequired}},471:function(e,t,r){r(472),e.exports=r(473)},473:function(e,t,r){"use strict";r(474),r(475),r(476),r(477);var n=a(r(0)),l=r(8),u=r(22),o=a(r(482)),i=a(r(488)),s=a(r(869)),c=a(r(197));function a(e){return e&&e.__esModule?e:{default:e}}(()=>{o.default.config("https://aba165213a7047379a8918ad2d227769@sentry.io/165757",{release:"22870",debug:!1}).install(),c.default.baseURI="https://api.github.com",c.default.ref="master";var e=window.__PRELOADED_STATE__;delete window.__PRELOADED_STATE__;var t=(0,u.createBrowserHistory)();const r=(0,s.default)({history:t,initialState:e}),a=document.querySelector("#app-root");window.snapSaveState=()=>({__PRELOADED_STATE__:r.getState()}),(a.hasChildNodes()?(0,l.hydrate):(0,l.render))(n.default.createElement(i.default,{store:r,history:t,ua:navigator.userAgent}),a)})()},477:function(e,t,r){"use strict";r.r(t),t.default={h1:"WCRoq7I4fihqzwOaoF9gXw==",h2:"rfbKH95bZ4X+11gHxGKH2w==",h3:"_9FKEzlIEU-LKeYOMjnl7kw==",h4:"gGt7YWRb9-LmlhLOnfg7pw==",h5:"qBtUpuo07iIeo3GVHDOvKQ==",h6:"iBis+UZ-lvm2Cj2iVlwWng==","markdown-body":"bYzNNQo7oXVz8ln0ZzgRIg=="}},488:function(e,t,r){"use strict";e.exports=r(489)},489:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var a=i(r(0)),n=r(86),l=r(107),u=i(r(499)),o=r(868);function i(e){return e&&e.__esModule?e:{default:e}}function s({store:e,history:t,ua:r}){return a.default.createElement(o.Provider,{value:r},a.default.createElement(n.Provider,{store:e},a.default.createElement(l.ConnectedRouter,{history:t},a.default.createElement(u.default,null))))}s.displayName="Root"},499:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=p;var a=f(r(0)),n=r(38),l=f(r(503)),u=f(r(604)),o=f(r(612)),i=f(r(858)),s=f(r(859)),c=f(r(860)),d=f(r(867));function f(e){return e&&e.__esModule?e:{default:e}}function p(){return a.default.createElement(n.Switch,null,a.default.createElement(n.Route,{path:"/"},a.default.createElement(l.default,null,a.default.createElement(n.Switch,null,a.default.createElement(n.Route,{exact:!0,path:"/",component:u.default}),a.default.createElement(n.Route,{path:"/:year/:month/:day/:title",component:o.default}),a.default.createElement(n.Route,{path:"/archives/:date",component:i.default}),a.default.createElement(n.Route,{path:"/tags/:tag",component:s.default}),a.default.createElement(n.Route,{path:"/search",component:c.default}),a.default.createElement(n.Route,{component:d.default})))))}p.displayName="Routes"},503:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=f(r(0)),n=r(76),l=f(r(506)),u=f(r(5)),o=r(86),i=r(140),s=f(r(509)),c=r(173),d=r(25);function f(e){return e&&e.__esModule?e:{default:e}}r=({children:e,onChangeClientState:t})=>a.default.createElement(s.default,null,a.default.createElement(n.Helmet,{titleTemplate:`%s | ${d.siteName}`,defaultTitle:d.siteName,onChangeClientState:t},a.default.createElement("meta",{name:"title",content:d.siteName}),a.default.createElement("meta",{name:"description",content:d.description}),a.default.createElement("meta",{property:"og:title",content:d.siteName}),a.default.createElement("meta",{property:"og:description",content:d.description}),a.default.createElement("meta",{property:"og:type",content:"website"}),a.default.createElement("meta",{property:"og:image",content:`${d.protocol}//${d.domain}/assets/images/common/open-graph.jpg`}),a.default.createElement("meta",{property:"og:url",content:`${d.protocol}//${d.domain}/`})),a.default.createElement(l.default,null),e);r.displayName="App",r.propTypes={children:u.default.oneOfType([u.default.arrayOf(u.default.element),u.default.element]),onChangeClientState:u.default.func.isRequired};t.default=(0,o.connect)(null,e=>(0,i.bindActionCreators)({onChangeClientState:c.documentHeadStateChanged},e))(r)},509:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=y(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),u=r(57),a=h(r(960)),n=h(r(525)),o=r(38),i=h(r(164)),s=r(52),c=h(r(555)),d=h(r(166)),f=h(r(77)),p=h(r(25)),m=h(r(603));function h(e){return e&&e.__esModule?e:{default:e}}function y(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(y=function(e){return e?r:t})(e)}function g(e,t,r){return(t=function(e){e=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);t=r.call(e,t||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}(e,"string");return"symbol"==typeof e?e:e+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const b=(0,n.default)({paper:{minWidth:240,maxWidth:320,width:"36%",backgroundColor:"#fcfcfc",borderLeft:"1px solid #f3f3f3",padding:16,"-webkit-overflow-scrolling":"touch"}})(a.default);t.default=(f=(0,f.default)(),(0,o.withRouter)(f=f(f=class extends l.Component{constructor(e){super(e),g(this,"handleChangeMediaQuery",e=>this.props.actions.toggleSidebarDocked(e.matches)),this._matchMedia=window.matchMedia?window.matchMedia("screen and (min-width: 769px)"):null}componentDidMount(){0===this.props.articles.items.length&&this.props.actions.fetchArticleList(),this._matchMedia&&(this._matchMedia.addListener(this.handleChangeMediaQuery),this.props.actions.toggleSidebarDocked(this._matchMedia.matches))}componentWillUnmount(){this._matchMedia&&this._matchMedia.removeListener(this.handleChangeMediaQuery)}render(){var{articles:e}=this.props;return 0this.setState({searchQuery:e.target.value})),this.state={searchQuery:this.parseSearchQuery(this.props.location.search)}}componentDidUpdate({location:{search:e}}){var t=this.parseSearchQuery(this.props.location.search);this.parseSearchQuery(e)!==t&&this.setState({searchQuery:t})}render(){return n.default.createElement("div",null,n.default.createElement(c.default,y({},this.props,{id:"recent-posts",title:"Recent posts",titleIcon:n.default.createElement(a.MegaphoneIcon,null)}),this.renderRecentPosts()),n.default.createElement(c.default,y({},this.props,{id:"archives",title:"Archives",titleIcon:n.default.createElement(a.CalendarIcon,null)}),this.renderArchives()),n.default.createElement(c.default,y({},this.props,{id:"tags",title:"Tags",titleIcon:n.default.createElement(a.TagIcon,null)}),this.renderTags()),n.default.createElement(c.default,y({},this.props,{id:"links",title:"Links",titleIcon:n.default.createElement(a.LinkIcon,null)}),this.renderLinks()),n.default.createElement(c.default,y({},this.props,{id:"search-article",title:"Search",titleIcon:n.default.createElement(a.SearchIcon,null)}),n.default.createElement(l.FormControl,{onKeyDown:this.submitSearchQuery,onChange:this.handleChangeSearchQuery,type:"text",placeholder:"Search article",value:this.state.searchQuery})),n.default.createElement("div",{className:f.default.feed},n.default.createElement("a",{href:`/${d.feedURL}`},n.default.createElement(a.RssIcon,{className:f.default["feed-octicon"]}),n.default.createElement("span",null,"Subscribe Feed"))),n.default.createElement("div",null,n.default.createElement("a",{href:"https://circleci.com/gh/sugarshin/blog.sugarshin.net/tree/master"},n.default.createElement("img",{src:"https://circleci.com/gh/sugarshin/blog.sugarshin.net/tree/master.svg?style=svg&circle-token=812f62f2aeba2a3bb9bfe6adf2abd24d7754a7be"}))))}renderRecentPosts(){return this.props.articles.items.filter((e,t)=>t<5).map(e=>{var[t,r,a]=e.date.split(" ")[0].split("-"),a=`/${t}/${r}/${a}/${e.url}/`;return n.default.createElement(l.ListGroup.Item,{key:a,to:a,as:u.NavLink,className:f.default.link,action:!0},e.title)})}renderArchives(){return Object.keys(this.props.articles.archives).map(e=>{var[t,r]=e.split("-"),r=`/archives/${t}-${r}/`;return n.default.createElement(l.ListGroup.Item,{key:r,to:r,as:u.NavLink,className:f.default.link,action:!0},(0,i.default)(e).format("MMMM YYYY"))})}renderTags(){return this.props.articles.tags.map(e=>{var t=`/tags/${e.replace(/\s/g,"_")}/`;return n.default.createElement(l.ListGroup.Item,{key:t,to:t,as:u.NavLink,className:f.default.link,action:!0},e)})}renderLinks(){return[n.default.createElement(l.ListGroup.Item,{key:"sugarshin.net",href:"//sugarshin.net/",action:!0},"About"),n.default.createElement(l.ListGroup.Item,{key:"github",href:"//github.com/sugarshin/",action:!0},"GitHub"),n.default.createElement(l.ListGroup.Item,{key:"keybase",href:"//keybase.io/sugarshin/",action:!0},"Keybase"),n.default.createElement(l.ListGroup.Item,{key:"twitter",href:"//twitter.com/sugarshin/",action:!0},"Twitter"),n.default.createElement(l.ListGroup.Item,{key:"instagram",href:"//www.instagram.com/sugarshin/",action:!0},"Instagram"),n.default.createElement(l.ListGroup.Item,{key:"facebook",href:"//www.facebook.com/sngsato/",action:!0},"Facebook")]}parseSearchQuery(e){return s.default.parse(e).q||""}submitSearchQuery({target:{value:e}}){e&&this.props.actions.goTo("/search/",{search:`q=${e}`})}},b=o.prototype,v="submitSearchQuery",j=[t],_=Object.getOwnPropertyDescriptor(o.prototype,"submitSearchQuery"),E=o.prototype,O={},Object.keys(_).forEach(function(e){O[e]=_[e]}),O.enumerable=!!O.enumerable,O.configurable=!!O.configurable,("value"in O||O.initializer)&&(O.writable=!0),O=j.slice().reverse().reduce(function(e,t){return t(b,v,e)||e},O),E&&void 0!==O.initializer&&(O.value=O.initializer?O.initializer.call(E):void 0,O.initializer=void 0),void 0===O.initializer&&(Object.defineProperty(b,v,O),O=null),o)},557:function(e,t,r){var a={"./af":221,"./af.js":221,"./ar":222,"./ar-dz":223,"./ar-dz.js":223,"./ar-kw":224,"./ar-kw.js":224,"./ar-ly":225,"./ar-ly.js":225,"./ar-ma":226,"./ar-ma.js":226,"./ar-ps":227,"./ar-ps.js":227,"./ar-sa":228,"./ar-sa.js":228,"./ar-tn":229,"./ar-tn.js":229,"./ar.js":222,"./az":230,"./az.js":230,"./be":231,"./be.js":231,"./bg":232,"./bg.js":232,"./bm":233,"./bm.js":233,"./bn":234,"./bn-bd":235,"./bn-bd.js":235,"./bn.js":234,"./bo":236,"./bo.js":236,"./br":237,"./br.js":237,"./bs":238,"./bs.js":238,"./ca":239,"./ca.js":239,"./cs":240,"./cs.js":240,"./cv":241,"./cv.js":241,"./cy":242,"./cy.js":242,"./da":243,"./da.js":243,"./de":244,"./de-at":245,"./de-at.js":245,"./de-ch":246,"./de-ch.js":246,"./de.js":244,"./dv":247,"./dv.js":247,"./el":248,"./el.js":248,"./en-au":249,"./en-au.js":249,"./en-ca":250,"./en-ca.js":250,"./en-gb":251,"./en-gb.js":251,"./en-ie":252,"./en-ie.js":252,"./en-il":253,"./en-il.js":253,"./en-in":254,"./en-in.js":254,"./en-nz":255,"./en-nz.js":255,"./en-sg":256,"./en-sg.js":256,"./eo":257,"./eo.js":257,"./es":258,"./es-do":259,"./es-do.js":259,"./es-mx":260,"./es-mx.js":260,"./es-us":261,"./es-us.js":261,"./es.js":258,"./et":262,"./et.js":262,"./eu":263,"./eu.js":263,"./fa":264,"./fa.js":264,"./fi":265,"./fi.js":265,"./fil":266,"./fil.js":266,"./fo":267,"./fo.js":267,"./fr":268,"./fr-ca":269,"./fr-ca.js":269,"./fr-ch":270,"./fr-ch.js":270,"./fr.js":268,"./fy":271,"./fy.js":271,"./ga":272,"./ga.js":272,"./gd":273,"./gd.js":273,"./gl":274,"./gl.js":274,"./gom-deva":275,"./gom-deva.js":275,"./gom-latn":276,"./gom-latn.js":276,"./gu":277,"./gu.js":277,"./he":278,"./he.js":278,"./hi":279,"./hi.js":279,"./hr":280,"./hr.js":280,"./hu":281,"./hu.js":281,"./hy-am":282,"./hy-am.js":282,"./id":283,"./id.js":283,"./is":284,"./is.js":284,"./it":285,"./it-ch":286,"./it-ch.js":286,"./it.js":285,"./ja":287,"./ja.js":287,"./jv":288,"./jv.js":288,"./ka":289,"./ka.js":289,"./kk":290,"./kk.js":290,"./km":291,"./km.js":291,"./kn":292,"./kn.js":292,"./ko":293,"./ko.js":293,"./ku":294,"./ku-kmr":295,"./ku-kmr.js":295,"./ku.js":294,"./ky":296,"./ky.js":296,"./lb":297,"./lb.js":297,"./lo":298,"./lo.js":298,"./lt":299,"./lt.js":299,"./lv":300,"./lv.js":300,"./me":301,"./me.js":301,"./mi":302,"./mi.js":302,"./mk":303,"./mk.js":303,"./ml":304,"./ml.js":304,"./mn":305,"./mn.js":305,"./mr":306,"./mr.js":306,"./ms":307,"./ms-my":308,"./ms-my.js":308,"./ms.js":307,"./mt":309,"./mt.js":309,"./my":310,"./my.js":310,"./nb":311,"./nb.js":311,"./ne":312,"./ne.js":312,"./nl":313,"./nl-be":314,"./nl-be.js":314,"./nl.js":313,"./nn":315,"./nn.js":315,"./oc-lnc":316,"./oc-lnc.js":316,"./pa-in":317,"./pa-in.js":317,"./pl":318,"./pl.js":318,"./pt":319,"./pt-br":320,"./pt-br.js":320,"./pt.js":319,"./ro":321,"./ro.js":321,"./ru":322,"./ru.js":322,"./sd":323,"./sd.js":323,"./se":324,"./se.js":324,"./si":325,"./si.js":325,"./sk":326,"./sk.js":326,"./sl":327,"./sl.js":327,"./sq":328,"./sq.js":328,"./sr":329,"./sr-cyrl":330,"./sr-cyrl.js":330,"./sr.js":329,"./ss":331,"./ss.js":331,"./sv":332,"./sv.js":332,"./sw":333,"./sw.js":333,"./ta":334,"./ta.js":334,"./te":335,"./te.js":335,"./tet":336,"./tet.js":336,"./tg":337,"./tg.js":337,"./th":338,"./th.js":338,"./tk":339,"./tk.js":339,"./tl-ph":340,"./tl-ph.js":340,"./tlh":341,"./tlh.js":341,"./tr":342,"./tr.js":342,"./tzl":343,"./tzl.js":343,"./tzm":344,"./tzm-latn":345,"./tzm-latn.js":345,"./tzm.js":344,"./ug-cn":346,"./ug-cn.js":346,"./uk":347,"./uk.js":347,"./ur":348,"./ur.js":348,"./uz":349,"./uz-latn":350,"./uz-latn.js":350,"./uz.js":349,"./vi":351,"./vi.js":351,"./x-pseudo":352,"./x-pseudo.js":352,"./yo":353,"./yo.js":353,"./zh-cn":354,"./zh-cn.js":354,"./zh-hk":355,"./zh-hk.js":355,"./zh-mo":356,"./zh-mo.js":356,"./zh-tw":357,"./zh-tw.js":357};function n(e){e=l(e);return r(e)}function l(e){if(r.o(a,e))return a[e];e=new Error("Cannot find module '"+e+"'");throw e.code="MODULE_NOT_FOUND",e}n.keys=function(){return Object.keys(a)},n.resolve=l,(e.exports=n).id=557},560:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=u(r(0)),n=r(57),t=u(r(5)),l=u(r(561));function u(e){return e&&e.__esModule?e:{default:e}}function o({titleIcon:e,title:t,children:r}){return a.default.createElement("div",{className:l.default.root},a.default.createElement("div",{className:l.default.title},a.default.createElement("span",{className:l.default.icon},e),t),a.default.createElement(n.ListGroup,null,r))}o.displayName="SidebarMenuGroup",o.propTypes={titleIcon:t.default.node.isRequired,title:t.default.string.isRequired,children:t.default.node}},561:function(e,t,r){"use strict";r.r(t),t.default={root:"dx4nuAcxjW+uSL-pnmZH6A==",title:"bGBBa1BrkxY3-PUU3J+9Og==",icon:"jU2+85iwMJ45xWLA6-5Vlw=="}},562:function(e,t,r){"use strict";r.r(t),t.default={feed:"ben63NVndl1eP5AvzV9UHA==","feed-octicon":"VOTe4342mnuJqXXdoUc9Kg==",link:"yryGNIvmlmv6Q-+WIvEzWw=="}},563:function(e,t,r){"use strict";r.r(t),t.default={loading:"tjj2BT8fCw9JOqUyk+2NUA==",spinner:"t+xLrZ9+UgNiV1KkX54Elg==","spin-octicon":"N7HeSZ6RHVSZXYxyg8z4yA=="}},564:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=r(358);Object.keys(a).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))});var n=r(363);Object.keys(n).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===n[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return n[e]}}))});var l=r(364);Object.keys(l).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))});var u=r(365);Object.keys(u).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===u[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}}))});var o=r(173);Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))})},602:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createNextAndPrev=function(e,t){const r=[...e].reverse(),a=r.findIndex(e=>`${e.date.split(" ")[0]}_${e.url}.md`===t);if(-1===a)return[];const n=a===r.length-1?null:a+1,l=0===a?null:a-1,u=null!==n?r[n]:null,o=null!==l?r[l]:null;return[u,o].map(e=>e&&{title:e.title,url:`/${e.date.split(" ")[0].replace(/-/g,"/")}/${e.url}/`})}},603:function(e,t,r){"use strict";r.r(t),t.default={root:"G4FECG+ki2WeiuCJUSf5Sg==",mainContainer:"lRZqkshzEDMI1oshfVHVcA==",sidebar:"FSZgsGy8tAKLdMhbBu29Jg==",header:"VdeyUM6PTl7bXkY6VcOObA==",toggleButton:"f7A3AmeC26DhtyLvGek2rQ==",main:"gNtJ4cKPC9NUDmYx1cVHbg==",footer:"yq+ROOaYBpAcrca7PSFn3g=="}},604:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=u(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),n=l(r(174)),r=l(r(77));function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}t.default=(0,r.default)()(r=class extends a.Component{render(){return a.default.createElement(n.default,{articles:this.props.articles.items,id:"top-article-list"})}})||r},605:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var a=s(r(0)),n=s(r(164)),l=r(38),t=s(r(5)),u=s(r(366)),o=s(r(367)),i=s(r(610));function s(e){return e&&e.__esModule?e:{default:e}}function c({article:e}){var t=`/${e.date.split(" ")[0].replace(/-/g,"/")}/${e.url}/`;return a.default.createElement("div",{className:i.default.root},a.default.createElement(l.Link,{to:t},a.default.createElement("h2",{className:i.default.title},e.title)),a.default.createElement("p",{className:i.default.preview},e.preview,a.default.createElement("span",{className:i.default.more},a.default.createElement(l.Link,{to:t},"more ",a.default.createElement(n.default,{name:"angle-double-right"})))),a.default.createElement("div",{className:i.default.tags},a.default.createElement(u.default,{values:e.tags})),a.default.createElement(o.default,{article:e}))}c.displayName="ArticleItem",c.propTypes={article:t.default.shape({url:t.default.string.isRequired,title:t.default.string.isRequired,date:t.default.string.isRequired,preview:t.default.string,tags:t.default.arrayOf(t.default.string).isRequired})}},606:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var a=i(r(0)),n=r(57),l=r(38),u=r(52),t=i(r(5)),o=i(r(607));function i(e){return e&&e.__esModule?e:{default:e}}function s({value:e}){return a.default.createElement(l.Link,{to:`/tags/${e.replace(/\s/g,"_")}/`},a.default.createElement(n.Badge,{variant:"primary",className:o.default.label},a.default.createElement(u.TagIcon,{className:o.default.icon}),a.default.createElement("span",{className:o.default.a},e)))}s.displayName="Tag",s.propTypes={value:t.default.string.isRequired}},607:function(e,t,r){"use strict";r.r(t),t.default={label:"hhV4D1SFSDqhjX4w3K6bAQ==",a:"AogllZRBEIDYFmO6AZiZEQ==",icon:"r4TZvmGbbfH52shZbr-z6Q=="}},608:function(e,t,r){"use strict";r.r(t),t.default={root:"_4HixIbF51r8KojRqNYk7Eg==",item:"s4cfaIWs7CJa8KDFQGLaEA=="}},609:function(e,t,r){"use strict";r.r(t),t.default={meta:"llE3y7x8yphwSkQLucJ4Xg==",metaContent:"J6k6jCtTAcOfJJye1Ygvmg==",metaIcon:"q3mvvLL57A81IbKd+12BAg=="}},610:function(e,t,r){"use strict";r.r(t),t.default={root:"tYzEHnwDK6kAhxnuTeEvyA==",title:"_0EMH98a0kHvAykaM9xYmTg==",more:"_0ybgLIGfqHUjZPib8sme4w==",tags:"RPyuRLKaDisAgJ9pSFCPog=="}},611:function(e,t,r){"use strict";r.r(t),t.default={wrapper:"U3YWNK7eHNDCTHPOiZaK2Q=="}},612:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=p(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),n=r(76),l=f(r(613)),u=f(r(127)),o=f(r(644)),i=f(r(433)),s=f(r(166)),c=f(r(77)),d=r(25);function f(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}t.default=(0,c.default)()(c=class extends a.Component{componentDidMount(){this.fetchArticle(this.props.match.params)}componentDidUpdate(e){var{match:{params:t}}=this.props;(0,l.default)(e.match.params,t)||this.fetchArticle(t)}render(){var{location:e,article:t}=this.props;return a.default.createElement("div",null,a.default.createElement(n.Helmet,null,a.default.createElement("title",null,t.title),a.default.createElement("meta",{name:"title",content:`${t.title} | ${d.siteName}`}),a.default.createElement("meta",{name:"description",content:t.description}),a.default.createElement("meta",{property:"og:title",content:t.title}),a.default.createElement("meta",{property:"og:description",content:t.description}),a.default.createElement("meta",{property:"og:type",content:t.pageType}),a.default.createElement("meta",{property:"og:image",content:t.ogImageURL}),a.default.createElement("meta",{property:"og:url",content:t.publicURL})),a.default.createElement(u.default,{title:t.title}),t.markdown?a.default.createElement(o.default,{article:t,currentPathname:e.pathname,baseShareMessage:d.siteName}):t.error&&404===t.error.status?a.default.createElement(i.default,null):a.default.createElement(s.default,null))}fetchArticle(e){var{year:t,month:r,day:a,title:e}=e;this.props.actions.fetchArticle(`${t}-${r}-${a}_${e}.md`)}})||c},643:function(e,t,r){"use strict";r.r(t),t.default={wrapper:"DtRcnYS6uyBioerJudJfvg==",title:"BJjJxYkX6x0+Pu13REB4-A=="}},644:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=d;var a=c(r(0)),t=c(r(5)),n=c(r(366)),l=c(r(367)),u=c(r(645)),o=c(r(826)),i=c(r(834)),s=c(r(856));function c(e){return e&&e.__esModule?e:{default:e}}function d({article:e,currentPathname:t,baseShareMessage:r}){t=`${window.location.origin}${t}`;return a.default.createElement("div",{id:"article-detail"},a.default.createElement("div",{className:s.default.meta},a.default.createElement(n.default,{values:e.tags}),a.default.createElement(l.default,{article:e}),a.default.createElement("hr",{className:s.default.hr})),a.default.createElement(u.default,{markdown:e.markdown}),a.default.createElement(o.default,{message:`${e.title} | ${r}`,url:t}),a.default.createElement(i.default,{next:e.next,prev:e.prev}))}d.displayName="Article",d.propTypes={article:t.default.shape({markdown:t.default.string,title:t.default.string,next:t.default.shape({title:t.default.string,url:t.default.string}),prev:t.default.shape({title:t.default.string,url:t.default.string}),tags:t.default.arrayOf(t.default.string)}),currentPathname:t.default.string.isRequired,baseShareMessage:t.default.string.isRequired}},645:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var a=o(r(0)),n=o(r(2)),t=o(r(5)),l=r(646),u=o(r(825));function o(e){return e&&e.__esModule?e:{default:e}}function i({markdown:e}){return a.default.createElement("div",{className:(0,n.default)("markdown-body",u.default.body)},(0,l.renderMarkdown)(e))}i.displayName="ArticleBody",i.propTypes={markdown:t.default.string.isRequired}},646:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderMarkdown=function(e){return h.processSync(e).result};var a=m(r(647)),n=m(r(180)),l=m(r(686)),u=m(r(729)),o=m(r(394)),i=m(r(739)),s=m(r(740)),c=m(r(741)),d=m(r(742)),f=m(r(743)),p=m(r(744)),t=r(408),r=r(824);function m(e){return e&&e.__esModule?e:{default:e}}o=(0,a.default)(o.default,{clobberPrefix:"",attributes:{code:["className"]}});const h=(0,n.default)().use(t.basePlugins).use(l.default,{sanitize:o,remarkReactComponents:{code:(0,u.default)({js:i.default,json:c.default,bash:s.default,coffeescript:d.default,yaml:f.default,typescript:p.default}),a:r.Link}})},68:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(601))&&a.__esModule?a:{default:a};t.default=(0,n.default)(["CLOSE_SIDEBAR","DOCUMENT_HEAD_STATE_CHANGED","LOCATION_CHANGED","OPEN_SIDEBAR","RECEIVE_ARTICLE","RECEIVE_ARTICLE_LIST","RECEIVE_SEARCH_ARTICLE","REQUEST_ARTICLE","REQUEST_ARTICLE_LIST","REQUEST_SEARCH_ARTICLE","SELECT_DATE","SELECT_CATEGORY","TOGGLE_SIDEBAR_DOCKED","TOGGLE_SIDEBAR","USE_CACHED_ARTICLE"])},77:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mapStateToProps=t.mapDispatchToProps=t.default=void 0;var a=r(140),n=r(86),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=u(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(564));function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function o(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function i(a){for(var e=1;ei({},e);t.mapStateToProps=s;const c=e=>({actions:(0,a.bindActionCreators)(l,e)});t.mapDispatchToProps=c;t.default=(...t)=>e=>(0a.default.createElement(n.Pagination,{className:(0,s.default)(c.default.root,c.default.pager)},t?a.default.createElement(l.LinkContainer,{to:t.url,title:`Previous Article: ${t.title}`},a.default.createElement(n.Pagination.Prev,null,a.default.createElement(u.ChevronLeftIcon,{className:c.default.icon})," ",(0,i.default)(t.title,{length:30}))):null,e?a.default.createElement(l.LinkContainer,{to:e.url,title:`Next Article: ${e.title}`},a.default.createElement(n.Pagination.Next,{className:"text-right"},(0,i.default)(e.title,{length:30})," ",a.default.createElement(u.ChevronRightIcon,{className:c.default.icon}))):null);r.displayName="ArticleNavigation",r.propTypes={next:o.default.shape({title:o.default.string,url:o.default.string}),prev:o.default.shape({title:o.default.string,url:o.default.string})};t.default=r},855:function(e,t,r){"use strict";r.r(t),t.default={root:"WeBtVZNYlu35RdlVGd4JUg==",pager:"g8bt-nPhrQpzrpmQeIaV4w==",icon:"sIM4nwFPFj-NIczrPUlXyg=="}},856:function(e,t,r){"use strict";r.r(t),t.default={meta:"rzMPCJAT2MjIoCgqGNeDhg==",hr:"_56p9n-jgxzBFV7P4csi2pA=="}},857:function(e,t,r){"use strict";r.r(t),t.default={root:"uapwuL0lPCqEvDbfTOvEsg==",iconContainer:"vgfxlRZSkoPfldJQ80-+Nw=="}},858:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=c(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),n=r(76),l=s(r(127)),u=s(r(174)),o=s(r(77)),i=r(25);function s(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}t.default=(0,o.default)()(o=class extends a.Component{render(){var{date:e}=this.props.match.params;return a.default.createElement("div",null,a.default.createElement(n.Helmet,null,a.default.createElement("title",null,`${e} | Archives`),a.default.createElement("meta",{name:"title",content:`${e} | Archives | ${i.siteName}`}),a.default.createElement("meta",{name:"description",content:`Archives | ${e} | ${i.description}`}),a.default.createElement("meta",{property:"og:title",content:`${e} | Archives | ${i.siteName}`}),a.default.createElement("meta",{property:"og:description",content:`Archives | ${e} | ${i.description}`}),a.default.createElement("meta",{property:"og:url",content:`${i.protocol}//${i.domain}/archives/${e}/`})),a.default.createElement(l.default,{title:`Entries from "${e}"`}),a.default.createElement(u.default,{articles:this.props.articles.archives[e]||[]}))}})||o},859:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=c(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),n=r(76),l=s(r(127)),u=s(r(174)),o=s(r(77)),i=r(25);function s(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}t.default=(0,o.default)()(o=class extends a.Component{render(){const{tag:e}=this.props.match.params,t=e.replace(/_/g," ");var r=this.props.articles.items.filter(e=>e.tags.includes(t));return a.default.createElement("div",null,a.default.createElement(n.Helmet,null,a.default.createElement("title",null,`${t} | Tags`),a.default.createElement("meta",{name:"title",content:`${t} | Tags | ${i.siteName}`}),a.default.createElement("meta",{name:"description",content:`Tags | ${t} | ${i.description}`}),a.default.createElement("meta",{property:"og:title",content:`${t} | Tags | ${i.siteName}`}),a.default.createElement("meta",{property:"og:description",content:`Tags | ${t} | ${i.description}`}),a.default.createElement("meta",{property:"og:url",content:`${i.protocol}//${i.domain}/tags/${e}/`})),a.default.createElement(l.default,{title:`Entries tagged with "${t}"`}),a.default.createElement(u.default,{articles:r}))}})||o},860:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=m(r(165)),n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=p(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),l=r(76),u=m(r(127)),o=m(r(861)),i=m(r(863)),s=m(r(166)),c=m(r(865)),d=m(r(77)),f=r(25);function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function m(e){return e&&e.__esModule?e:{default:e}}t.default=(0,d.default)()(d=class extends n.Component{getSearchQuery(e){return a.default.parse(e.slice(1),null,null,{decodeURIComponent:e=>e}).q||""}get q(){return this.getSearchQuery(this.props.location.search)}get decodedQ(){return decodeURIComponent(this.q)}componentDidMount(){this.q&&this.props.actions.searchArticle(this.q)}componentDidUpdate(e){e=this.getSearchQuery(e.location.search);this.q!==e&&this.props.actions.searchArticle(this.q)}renderMain(){var{searchResults:e}=this.props;return e.isFetching?n.default.createElement(s.default,null):e.error?n.default.createElement(i.default,{error:e.error}):0{const[t,r]=e.name.split("_");e=`/${t.replace(/-/g,"/")}/${r.replace(/\.md$/,"")}/`;return a.default.createElement("li",{key:e},a.default.createElement(n.Link,{to:e},`${l.protocol}//${l.domain}${e}`))})))}i.displayName="SearchResults",i.propTypes={items:t.default.arrayOf(t.default.shape({name:t.default.stirng}))}},862:function(e,t,r){"use strict";r.r(t),t.default={root:"zdIwDd2zoTIEkEOeyf0Urg=="}},863:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var a=o(r(0)),n=r(57),l=o(r(5)),t=r(193),u=o(r(864));function o(e){return e&&e.__esModule?e:{default:e}}function i({error:e}){console.error(e);e={400:"Bad Request",403:"Please try again later",422:"Unprocessable"}[e.message]||"Unknown Error";return a.default.createElement(n.Alert,{variant:"warning",className:u.default.root},e)}i.displayName="SearchError",i.propTypes={error:l.default.oneOfType([l.default.instanceOf(Error),l.default.instanceOf(t.HTTPError)])}},864:function(e,t,r){"use strict";r.r(t),t.default={root:"dkPHDI+yrn8etYS2ezaf6Q=="}},865:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=u(r(0)),n=r(52),l=u(r(866));function u(e){return e&&e.__esModule?e:{default:e}}function o(){return a.default.createElement("div",{className:l.default.wrapper},a.default.createElement(n.CircleSlashIcon,{className:l.default.icon}),a.default.createElement("p",null,"No results..."))}o.displayName="NoResults"},866:function(e,t,r){"use strict";r.r(t),t.default={wrapper:"n328Lw1O0JAug3yf6g7BsQ==",icon:"MM-otrNMlPImNGWM-gauUQ=="}},867:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=o(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(0)),l=r(76),u=(a=r(433))&&a.__esModule?a:{default:a};function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}class i extends n.Component{render(){return n.default.createElement(n.default.Fragment,null,n.default.createElement(l.Helmet,null,n.default.createElement("title",null,`${this.props.location.pathname}`," 404 Not Found")),n.default.createElement(u.default,{pathname:this.props.location.pathname}))}}(t.default=i).displayName="NotFound"},868:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.context=t.Provider=t.Consumer=void 0;r=r(0),r=t.context=(0,r.createContext)(""),t.Provider=r.Provider,t.Consumer=r.Consumer},869:function(e,t,r){"use strict";e.exports=r(870)},870:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function({history:e,initialState:t}){var{SEGMENT_WRITE_KEY:r}=Object({NODE_ENV:"production",API_BASE:"https://api.github.com",BUILD_NUMBER:"22870",SEGMENT_WRITE_KEY:"K0C4nouS0njLcqt5oX0qFLOhdbq3zFwH",SENTRY_DSN:"https://aba165213a7047379a8918ad2d227769@sentry.io/165757",BRANCH:"master"}),r=[(0,u.createThunkMiddleware)(),(0,l.createRouterMiddleware)(e),...r?[(0,o.default)()]:[],i.default],r=(0,a.createStore)((0,n.createRootReducer)({history:e}),t,(0,a.applyMiddleware)(...r));return r};var a=r(140),n=r(871),l=r(946),u=r(947),o=s(r(951)),i=s(r(959));function s(e){return e&&e.__esModule?e:{default:e}}},871:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRootReducer=function({history:e}){return(0,a.combineReducers)({article:l.default,articles:u.default,sidebar:o.default,searchResults:i.default,router:(0,n.connectRouter)(e)})};var a=r(140),n=r(107),l=s(r(872)),u=s(r(933)),o=s(r(944)),i=s(r(945));function s(e){return e&&e.__esModule?e:{default:e}}},872:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(45),n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=c(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(358)),l=r(137),u=s(r(873)),o=s(r(905)),i=r(25);function s(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}function d(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function f(a){for(var e=1;e(0,o.default)(e).title,m=e=>(0,o.default)(e).author,h=e=>(0,o.default)(e).date,y=e=>{const{tags:t}=(0,o.default)(e);return t?t.split(",").map(e=>e.trim()):[]};t.default=(0,a.handleActions)({[n.useCachedArticle]:(e,{payload:t})=>{var{markdown:r,next:a,prev:n}=e.cache[t.url];return f(f({},e),{},{title:p(r),markdown:r,author:m(r),date:h(r),tags:y(r),url:t.url,next:a,prev:n,isFetching:!1,didInvalidate:!1,error:null})},[n.requestArticle]:e=>f(f({},e),{},{title:"",markdown:"",author:{},date:"",tags:[],url:"",description:"",publicURL:"",ogImageURL:`${i.protocol}//${i.domain}/assets/images/common/open-graph.jpg`,next:null,prev:null,isFetching:!0,didInvalidate:!1,error:null}),[n.receiveArticle]:{next(e,{payload:t}){var r,a=h(t.markdown);return f(f({},e),{},{title:p(t.markdown),markdown:t.markdown,author:m(t.markdown),date:a,tags:y(t.markdown),url:t.url,description:(r=t.markdown,(0,u.default)(r)),publicURL:((e,t)=>{var[r,a,e]=e.split(" ")[0].split("-");return`${i.protocol}//${i.domain}/${r}/${a}/${e}/${t.split("_")[1].replace(".md","")}/`})(a,t.url),ogImageURL:(a=t.markdown,(0,o.default)(a).ogp.og.image.src),isFetching:!1,didInvalidate:!1,cache:f(f({},e.cache),{},{[t.url]:{markdown:t.markdown,next:t.next,prev:t.prev}}),next:t.next,prev:t.prev,error:null})},throw(e,{payload:t,meta:r}){return f(f({},e),{},{title:"",markdown:"",author:{},date:"",tags:[],next:null,prev:null,url:r.url,isFetching:!1,didInvalidate:!0,error:t})}}},l.article)},873:function(e,t,r){"use strict";const a=r(432),n=r(874);e.exports=function(e,t=140){const r=n(e);e=r.replace(/\n|\r/g," ").trim();return a(e,{length:t})}},874:function(e,t,r){"use strict";const a=r(180);var n=r(434),l=r(904),{basePlugins:r}=r(408);const u=a().use(r).use(n).use(l);e.exports=function(e){return u.processSync(e).contents.replace(/:/g,":")}},905:function(e,t,r){"use strict";const a=r(180);var n=r(409),l=r(434),u=r(422),o=r(906),r=r(907);const i=a().use(n).use(l).use(u).use(o,{yaml:r.safeLoad});e.exports=function(e){return i.processSync(e).data}},933:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(934))&&a.__esModule?a:{default:a},l=r(45),u=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=i(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(363)),o=r(137);function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}function s(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function c(a){for(var e=1;ec(c({},e),{},{isFetching:!0,isFetched:!1,didInvalidate:!1,error:null}),[u.receiveArticleList]:{next(e,{payload:{items:t}}){return c(c({},e),{},{items:t,archives:t.reduce((e,t)=>{var r=t.date.split(" ")[0].replace(/-\d\d$/,"");return e[r]=Array.isArray(e[r])?[...e[r],t]:[t],e},{}),tags:t.reduce((e,t)=>(0,n.default)([...e,...t.tags]),[]).sort((e,t)=>e===t?0:to(o({},e),{},{open:!0}),[n.closeSidebar]:e=>o(o({},e),{},{open:!1}),[n.toggleSidebar]:e=>o(o({},e),{},{open:!e.open}),[n.toggleSidebarDocked]:(e,{payload:t})=>o(o({},e),{},{docked:t.docked})},r.sidebar)},945:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(45),n=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};t=u(t);if(t&&t.has(e))return t.get(e);var r,a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var l;"default"!==r&&{}.hasOwnProperty.call(e,r)&&((l=n?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r])}return a.default=e,t&&t.set(e,a),a}(r(365)),r=r(137);function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function l(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function o(a){for(var e=1;eo(o({},e),{},{isFetching:!0,error:null}),[n.receiveSearchArticle]:{next(e,{payload:t}){return o(o({},e),{},{isFetching:!1,items:t.items,incomplete:t.incomplete,totalCount:t.totalCount,error:null})},throw(e,{payload:t}){return o(o({},e),{},{isFetching:!1,error:t})}}},r.searchResults)},946:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRouterMiddleware=function(e){return(0,a.routerMiddleware)(e)};var a=r(107)},947:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createThunkMiddleware=function(){return a.default.withExtraArgument({api:l})};var a=n(r(948)),t=n(r(949)),r=n(r(950));function n(e){return e&&e.__esModule?e:{default:e}}const l={Articles:t.default,Search:r.default}},949:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(197))&&a.__esModule?a:{default:a},l=r(193),u=r(25);class o extends n.default{static get baseURI(){return super.baseURI?"https://raw.githubusercontent.com":""}static get path(){return`${u.authorGitHubUserName}/${u.repositoryName}/${this.ref}/articles`}static getList(){return this.fetchJSON("/index.json")}static get(e,t={}){return fetch(`${this.baseURI}/${this.path}/${e}`,t).then(e=>{if(e.ok)return e.text();throw new l.HTTPError(e)})}}t.default=o},950:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=(a=r(197))&&a.__esModule?a:{default:a},l=r(25);class u extends n.default{static get path(){return"search/code"}static execute(e){return this.get(null,{q:this.q(e),per_page:100})}static q(e){return`${decodeURIComponent(e)} in:file extension:md repo:${l.authorGitHubUserName}/${l.repositoryName} path:/articles/`}}t.default=u},951:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(952),n=u(r(443)),l=u(r(958));function u(e){return e&&e.__esModule?e:{default:e}}const o=(0,n.default)();t.default=()=>(0,a.createMiddleware)(l.default,o)},958:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=r(443);n={[((a=r(68))&&a.__esModule?a:{default:a}).default.LOCATION_CHANGED]:(0,n.trackPageView)(e=>({name:e.payload.pathname}))},t.default=n},959:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,n=r(107),l=(a=r(68))&&a.__esModule?a:{default:a},u=r(173);function o(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function i(a){for(var e=1;et=>e=>(e.error||(e.type===n.LOCATION_CHANGE?s=e.payload:e.type===l.default.DOCUMENT_HEAD_STATE_CHANGED&&s&&(r.dispatch((0,u.locationChanged)(i({},s),e.payload)),s=null)),t(e))}}); \ No newline at end of file diff --git a/feed.xml b/feed.xml index 7276bb2162..06300a441a 100644 --- a/feed.xml +++ b/feed.xml @@ -2,7 +2,7 @@ https://blog.sugarshin.net blog.sugarshin.net - 2024-09-01T00:22:15.541Z + 2024-09-11T13:00:20.932Z https://github.com/jpmonette/feed sugarshin | Shingo Sato diff --git a/index.html b/index.html index b02eff16f8..668c1ffecb 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ blog.sugarshin.net
blog.sugarshin.net

[Monthly report] 2024-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2024-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2024-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2024-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめmore

CircleCI

[Monthly report] 2024-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

2022 年まとめ

2023 年を迎えて半年ほど経ってしまいましたが、 2022 年のまとめを書きます。 目次 仕事 メディア掲載 読...more

Shingo Sato

[Monthly report] 2023-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2023-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2022-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめmore

CircleCI

[Monthly report] 2022-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2022-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2022-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2022-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2022-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

2021 年まとめ

2021 年のまとめを書きます。 目次 仕事 メディア掲載 キャンプ 富士河口湖温泉 湖南荘 - 7月 松本市...more

Shingo Sato

[Monthly report] 2021-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2021-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2021-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2021-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2021-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

2020 年まとめ

2020 年のまとめを書きます。 目次 仕事 インスタンスゼロ メルカリ LINE つくったもの 父 キャ...more

Shingo Sato

[Monthly report] 2020-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2020-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

オンラインストアの入荷情報を Slack に通知する

Snow Peak 公式オンラインストアの製品入荷情報を Slack に通知する仕組みを雑につくりました。 目次 モチ...more

Shingo Sato

[Monthly report] 2020-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2020-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2020-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2019-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

2019 年まとめ

2019 年のまとめを書きます。 目次 仕事 インスタンスゼロ メルカリ メルペイ Web Platform ...more

Shingo Sato

[Monthly report] 2019-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests A...more

CircleCI

[Monthly report] 2019-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2019-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

CircleCI Orbs をつかって npm モジュール開発を効率化する

npm コマンドを用途に合わせて便利にまとめたユーティリティを CircleCI Orbs として公開しました。 Cir...more

Shingo Sato

Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する

Main 当ブログプロジェクトの依存モジュールのアップデートを、 Renovate と E2E テストを用いて安全に自動...more

Shingo Sato

[Monthly report] 2019-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2019-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Make private rep...more

CircleCI

[Monthly report] 2019-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests F...more

CircleCI

[Monthly report] 2019-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

インスタンスゼロ株式会社を共同創業しました

これまでにソフトウェア開発を通じて知り合えた仲間たちと 5 名で会社を立ち上げました。 https\://ins0.jp...more

Shingo Sato

[Monthly report] 2019-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

2018 年まとめ

2018 年のまとめを書きます。 目次 仕事 技術 OSS プライベート 2019 年 仕事 夏頃までは、...more

Shingo Sato

[Monthly report] 2018-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

FaSS の予約状況を確認する Hubot スクリプトをつくりました

Main FaSS の予約の順番待ちを確認したり、順番が近づくと通知してくれる Hubot スクリプトをつくりました。 ...more

Shingo Sato

[Monthly report] 2018-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

[Monthly report] 2018-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する

Main Web ページの印刷は、気をつけていないとスタイルくずれを起こしやすいかなと思います。それが、日々、機能追加や...more

Shingo Sato

[Monthly report] 2018-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2017-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

sugarshin

[Monthly report] 2017-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2017-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Make private rep...more

CircleCI

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

[Monthly report] 2017-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2017-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2017-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests U...more

CircleCI

[Monthly report] 2017-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Make private rep...more

CircleCI

OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する

Main 月ごとに、 OSS コントリビューションや GitHub 上での活動をまとめたレポートの当ブログへの投稿を自動...more

Shingo Sato

[Monthly report] 2017-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests m...more

CircleCI

React と Redux なブログ運用をソフトウェア開発する話し

Main 継続的なソフトウェア開発プロセスを取り入れ、最低限の SEO は考慮しつつ無理矢理 React でブログを作っ...more

Shingo Sato

リッチテキストエディタ oneteam-rte を公開しました

Main リッチテキストエディタ用の React コンポーネントを公開しました。 GitHub: https\://g...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/rss.xml b/rss.xml index 5b7931fb86..3ef4f3d7b7 100644 --- a/rss.xml +++ b/rss.xml @@ -4,7 +4,7 @@ blog.sugarshin.net https://blog.sugarshin.net sugarshin's blog - Sun, 01 Sep 2024 00:22:15 GMT + Wed, 11 Sep 2024 13:00:20 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed diff --git a/search/index.html b/search/index.html index d0919783f5..c5bb3f4812 100644 --- a/search/index.html +++ b/search/index.html @@ -1,4 +1,4 @@ | Search | blog.sugarshin.net
blog.sugarshin.net

Search result ""

No results...

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/circleci-orbs/index.html b/tags/circleci-orbs/index.html index 6c828b0038..070d282769 100644 --- a/tags/circleci-orbs/index.html +++ b/tags/circleci-orbs/index.html @@ -1,4 +1,4 @@ -circleci-orbs | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "circleci-orbs"

CircleCI Orbs をつかって npm モジュール開発を効率化する

npm コマンドを用途に合わせて便利にまとめたユーティリティを CircleCI Orbs として公開しました。 Cir...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "circleci-orbs"

CircleCI Orbs をつかって npm モジュール開発を効率化する

npm コマンドを用途に合わせて便利にまとめたユーティリティを CircleCI Orbs として公開しました。 Cir...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/circleci/index.html b/tags/circleci/index.html index b02ce88ae8..33930784fb 100644 --- a/tags/circleci/index.html +++ b/tags/circleci/index.html @@ -1,4 +1,4 @@ -circleci | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "circleci"

CircleCI Orbs をつかって npm モジュール開発を効率化する

npm コマンドを用途に合わせて便利にまとめたユーティリティを CircleCI Orbs として公開しました。 Cir...more

Shingo Sato

Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する

Main 当ブログプロジェクトの依存モジュールのアップデートを、 Renovate と E2E テストを用いて安全に自動...more

Shingo Sato

Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する

Main Web ページの印刷は、気をつけていないとスタイルくずれを起こしやすいかなと思います。それが、日々、機能追加や...more

Shingo Sato

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する

Main 月ごとに、 OSS コントリビューションや GitHub 上での活動をまとめたレポートの当ブログへの投稿を自動...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "circleci"

CircleCI Orbs をつかって npm モジュール開発を効率化する

npm コマンドを用途に合わせて便利にまとめたユーティリティを CircleCI Orbs として公開しました。 Cir...more

Shingo Sato

Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する

Main 当ブログプロジェクトの依存モジュールのアップデートを、 Renovate と E2E テストを用いて安全に自動...more

Shingo Sato

Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する

Main Web ページの印刷は、気をつけていないとスタイルくずれを起こしやすいかなと思います。それが、日々、機能追加や...more

Shingo Sato

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する

Main 月ごとに、 OSS コントリビューションや GitHub 上での活動をまとめたレポートの当ブログへの投稿を自動...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/cli/index.html b/tags/cli/index.html index 98e4f94fe9..e19b49924a 100644 --- a/tags/cli/index.html +++ b/tags/cli/index.html @@ -1,4 +1,4 @@ -cli | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "cli"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "cli"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/cypress/index.html b/tags/cypress/index.html index 3c034d12f3..13ffc8d71d 100644 --- a/tags/cypress/index.html +++ b/tags/cypress/index.html @@ -1,4 +1,4 @@ -cypress | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "cypress"

Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する

Main 当ブログプロジェクトの依存モジュールのアップデートを、 Renovate と E2E テストを用いて安全に自動...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "cypress"

Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する

Main 当ブログプロジェクトの依存モジュールのアップデートを、 Renovate と E2E テストを用いて安全に自動...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/draft.js/index.html b/tags/draft.js/index.html index 891961ba7f..54bc321f80 100644 --- a/tags/draft.js/index.html +++ b/tags/draft.js/index.html @@ -1,4 +1,4 @@ -draft.js | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "draft.js"

リッチテキストエディタ oneteam-rte を公開しました

Main リッチテキストエディタ用の React コンポーネントを公開しました。 GitHub: https\://g...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "draft.js"

リッチテキストエディタ oneteam-rte を公開しました

Main リッチテキストエディタ用の React コンポーネントを公開しました。 GitHub: https\://g...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/github/index.html b/tags/github/index.html index 93b35a2ca3..a21a773f93 100644 --- a/tags/github/index.html +++ b/tags/github/index.html @@ -1,4 +1,4 @@ github | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "github"

OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する

Main 月ごとに、 OSS コントリビューションや GitHub 上での活動をまとめたレポートの当ブログへの投稿を自動...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/github_actions/index.html b/tags/github_actions/index.html index 48c2ddea5a..d28eedc923 100644 --- a/tags/github_actions/index.html +++ b/tags/github_actions/index.html @@ -1,4 +1,4 @@ -github actions | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "github actions"

オンラインストアの入荷情報を Slack に通知する

Snow Peak 公式オンラインストアの製品入荷情報を Slack に通知する仕組みを雑につくりました。 目次 モチ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "github actions"

オンラインストアの入荷情報を Slack に通知する

Snow Peak 公式オンラインストアの製品入荷情報を Slack に通知する仕組みを雑につくりました。 目次 モチ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/hubot-script/index.html b/tags/hubot-script/index.html index 4bcdaa3ab0..b1d20bccd2 100644 --- a/tags/hubot-script/index.html +++ b/tags/hubot-script/index.html @@ -1,4 +1,4 @@ hubot-script | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "hubot-script"

FaSS の予約状況を確認する Hubot スクリプトをつくりました

Main FaSS の予約の順番待ちを確認したり、順番が近づくと通知してくれる Hubot スクリプトをつくりました。 ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/hubot/index.html b/tags/hubot/index.html index f9763916d2..31f14c9f1a 100644 --- a/tags/hubot/index.html +++ b/tags/hubot/index.html @@ -1,4 +1,4 @@ -hubot | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "hubot"

FaSS の予約状況を確認する Hubot スクリプトをつくりました

Main FaSS の予約の順番待ちを確認したり、順番が近づくと通知してくれる Hubot スクリプトをつくりました。 ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "hubot"

FaSS の予約状況を確認する Hubot スクリプトをつくりました

Main FaSS の予約の順番待ちを確認したり、順番が近づくと通知してくれる Hubot スクリプトをつくりました。 ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/instance0/index.html b/tags/instance0/index.html index e11036c5f5..45120dc3dd 100644 --- a/tags/instance0/index.html +++ b/tags/instance0/index.html @@ -1,4 +1,4 @@ -instance0 | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "instance0"

インスタンスゼロ株式会社を共同創業しました

これまでにソフトウェア開発を通じて知り合えた仲間たちと 5 名で会社を立ち上げました。 https\://ins0.jp...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "instance0"

インスタンスゼロ株式会社を共同創業しました

これまでにソフトウェア開発を通じて知り合えた仲間たちと 5 名で会社を立ち上げました。 https\://ins0.jp...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/javascript/index.html b/tags/javascript/index.html index 5fa05f6456..ff5b32906b 100644 --- a/tags/javascript/index.html +++ b/tags/javascript/index.html @@ -1,4 +1,4 @@ javascript | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "javascript"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する

Main 月ごとに、 OSS コントリビューションや GitHub 上での活動をまとめたレポートの当ブログへの投稿を自動...more

Shingo Sato

React と Redux なブログ運用をソフトウェア開発する話し

Main 継続的なソフトウェア開発プロセスを取り入れ、最低限の SEO は考慮しつつ無理矢理 React でブログを作っ...more

Shingo Sato

リッチテキストエディタ oneteam-rte を公開しました

Main リッチテキストエディタ用の React コンポーネントを公開しました。 GitHub: https\://g...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/koa.js/index.html b/tags/koa.js/index.html index f611447fee..8890229177 100644 --- a/tags/koa.js/index.html +++ b/tags/koa.js/index.html @@ -1,4 +1,4 @@ -koa.js | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "koa.js"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "koa.js"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/matome/index.html b/tags/matome/index.html index db030cf5e4..51827987c4 100644 --- a/tags/matome/index.html +++ b/tags/matome/index.html @@ -1,4 +1,4 @@ matome | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "matome"

2022 年まとめ

2023 年を迎えて半年ほど経ってしまいましたが、 2022 年のまとめを書きます。 目次 仕事 メディア掲載 読...more

Shingo Sato

2021 年まとめ

2021 年のまとめを書きます。 目次 仕事 メディア掲載 キャンプ 富士河口湖温泉 湖南荘 - 7月 松本市...more

Shingo Sato

2020 年まとめ

2020 年のまとめを書きます。 目次 仕事 インスタンスゼロ メルカリ LINE つくったもの 父 キャ...more

Shingo Sato

2019 年まとめ

2019 年のまとめを書きます。 目次 仕事 インスタンスゼロ メルカリ メルペイ Web Platform ...more

Shingo Sato

2018 年まとめ

2018 年のまとめを書きます。 目次 仕事 技術 OSS プライベート 2019 年 仕事 夏頃までは、...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/monthly_report/index.html b/tags/monthly_report/index.html index cf54398c41..64a96865bc 100644 --- a/tags/monthly_report/index.html +++ b/tags/monthly_report/index.html @@ -1,4 +1,4 @@ -monthly report | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "monthly report"

[Monthly report] 2024-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2024-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2024-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2024-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめmore

CircleCI

[Monthly report] 2024-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2023-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2022-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめmore

CircleCI

[Monthly report] 2022-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2022-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2022-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2022-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2022-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2021-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2021-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2021-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2021-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2021-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2020-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2020-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2020-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2020-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2019-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2019-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests A...more

CircleCI

[Monthly report] 2019-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2019-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2019-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2019-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Make private rep...more

CircleCI

[Monthly report] 2019-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests F...more

CircleCI

[Monthly report] 2019-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2019-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2017-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

sugarshin

[Monthly report] 2017-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2017-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Make private rep...more

CircleCI

[Monthly report] 2017-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2017-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2017-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests U...more

CircleCI

[Monthly report] 2017-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Make private rep...more

CircleCI

OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する

Main 月ごとに、 OSS コントリビューションや GitHub 上での活動をまとめたレポートの当ブログへの投稿を自動...more

Shingo Sato

[Monthly report] 2017-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests m...more

CircleCI

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "monthly report"

[Monthly report] 2024-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2024-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2024-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2024-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめmore

CircleCI

[Monthly report] 2024-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2023-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2023-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2022-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめmore

CircleCI

[Monthly report] 2022-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2022-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2022-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2022-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2022-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2022-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests f...more

CircleCI

[Monthly report] 2021-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2021-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2021-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2021-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2021-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2021-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2020-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Starred reposito...more

CircleCI

[Monthly report] 2020-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2020-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2020-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2020-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2019-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2019-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests A...more

CircleCI

[Monthly report] 2019-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2019-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2019-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2019-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Make private rep...more

CircleCI

[Monthly report] 2019-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests F...more

CircleCI

[Monthly report] 2019-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2019-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-11 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-03 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-02 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2018-01 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2017-12 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

sugarshin

[Monthly report] 2017-10 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Releases Releas...more

CircleCI

[Monthly report] 2017-09 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Make private rep...more

CircleCI

[Monthly report] 2017-08 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2017-07 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Create new repos...more

CircleCI

[Monthly report] 2017-06 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests U...more

CircleCI

[Monthly report] 2017-05 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Make private rep...more

CircleCI

OSS コントリビューションや GitHub 上のアクティビティのまとめレポート投稿を自動化する

Main 月ごとに、 OSS コントリビューションや GitHub 上での活動をまとめたレポートの当ブログへの投稿を自動...more

Shingo Sato

[Monthly report] 2017-04 my activity this month on GitHub

今月の主な OSS コントリビューションや GitHub 上のアクティビティまとめ Pull requests m...more

CircleCI

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/next.js/index.html b/tags/next.js/index.html index 4081788b6d..6becc99ed8 100644 --- a/tags/next.js/index.html +++ b/tags/next.js/index.html @@ -1,4 +1,4 @@ next.js | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "next.js"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/node.js/index.html b/tags/node.js/index.html index dc36d57cde..9db16fd851 100644 --- a/tags/node.js/index.html +++ b/tags/node.js/index.html @@ -1,4 +1,4 @@ -node.js | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "node.js"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "node.js"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/npm/index.html b/tags/npm/index.html index 1c04c2b495..2340ac42dd 100644 --- a/tags/npm/index.html +++ b/tags/npm/index.html @@ -1,4 +1,4 @@ -npm | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "npm"

CircleCI Orbs をつかって npm モジュール開発を効率化する

npm コマンドを用途に合わせて便利にまとめたユーティリティを CircleCI Orbs として公開しました。 Cir...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "npm"

CircleCI Orbs をつかって npm モジュール開発を効率化する

npm コマンドを用途に合わせて便利にまとめたユーティリティを CircleCI Orbs として公開しました。 Cir...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/oclif/index.html b/tags/oclif/index.html index f16ae8468c..7dfe513313 100644 --- a/tags/oclif/index.html +++ b/tags/oclif/index.html @@ -1,4 +1,4 @@ -oclif | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "oclif"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "oclif"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/oneteam-rte/index.html b/tags/oneteam-rte/index.html index 025ebc36ef..a1578a4789 100644 --- a/tags/oneteam-rte/index.html +++ b/tags/oneteam-rte/index.html @@ -1,4 +1,4 @@ -oneteam-rte | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "oneteam-rte"

リッチテキストエディタ oneteam-rte を公開しました

Main リッチテキストエディタ用の React コンポーネントを公開しました。 GitHub: https\://g...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "oneteam-rte"

リッチテキストエディタ oneteam-rte を公開しました

Main リッチテキストエディタ用の React コンポーネントを公開しました。 GitHub: https\://g...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/puppeteer/index.html b/tags/puppeteer/index.html index 34b44a3d96..e508c2a24c 100644 --- a/tags/puppeteer/index.html +++ b/tags/puppeteer/index.html @@ -1,4 +1,4 @@ -puppeteer | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "puppeteer"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する

Main Web ページの印刷は、気をつけていないとスタイルくずれを起こしやすいかなと思います。それが、日々、機能追加や...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "puppeteer"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する

Main Web ページの印刷は、気をつけていないとスタイルくずれを起こしやすいかなと思います。それが、日々、機能追加や...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/python/index.html b/tags/python/index.html index c0c0214ea4..5ea48bc097 100644 --- a/tags/python/index.html +++ b/tags/python/index.html @@ -1,4 +1,4 @@ python | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "python"

オンラインストアの入荷情報を Slack に通知する

Snow Peak 公式オンラインストアの製品入荷情報を Slack に通知する仕組みを雑につくりました。 目次 モチ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/qiita/index.html b/tags/qiita/index.html index 192def00ec..deaafb2456 100644 --- a/tags/qiita/index.html +++ b/tags/qiita/index.html @@ -1,4 +1,4 @@ -qiita | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "qiita"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "qiita"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/react.js/index.html b/tags/react.js/index.html index 0e5e9ddb20..65c44812dd 100644 --- a/tags/react.js/index.html +++ b/tags/react.js/index.html @@ -1,4 +1,4 @@ react.js | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "react.js"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

React と Redux なブログ運用をソフトウェア開発する話し

Main 継続的なソフトウェア開発プロセスを取り入れ、最低限の SEO は考慮しつつ無理矢理 React でブログを作っ...more

Shingo Sato

リッチテキストエディタ oneteam-rte を公開しました

Main リッチテキストエディタ用の React コンポーネントを公開しました。 GitHub: https\://g...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/redux/index.html b/tags/redux/index.html index 7b22f36171..c27c8f7639 100644 --- a/tags/redux/index.html +++ b/tags/redux/index.html @@ -1,4 +1,4 @@ -redux | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "redux"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

React と Redux なブログ運用をソフトウェア開発する話し

Main 継続的なソフトウェア開発プロセスを取り入れ、最低限の SEO は考慮しつつ無理矢理 React でブログを作っ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "redux"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

React と Redux なブログ運用をソフトウェア開発する話し

Main 継続的なソフトウェア開発プロセスを取り入れ、最低限の SEO は考慮しつつ無理矢理 React でブログを作っ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/renovate/index.html b/tags/renovate/index.html index ae504f0af8..d173d759d1 100644 --- a/tags/renovate/index.html +++ b/tags/renovate/index.html @@ -1,4 +1,4 @@ -renovate | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "renovate"

Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する

Main 当ブログプロジェクトの依存モジュールのアップデートを、 Renovate と E2E テストを用いて安全に自動...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "renovate"

Renovate と E2E テストを用いて依存モジュールのアップデートを安全に自動化する

Main 当ブログプロジェクトの依存モジュールのアップデートを、 Renovate と E2E テストを用いて安全に自動...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/slack/index.html b/tags/slack/index.html index 63144605f0..3e6a561045 100644 --- a/tags/slack/index.html +++ b/tags/slack/index.html @@ -1,4 +1,4 @@ -slack | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "slack"

オンラインストアの入荷情報を Slack に通知する

Snow Peak 公式オンラインストアの製品入荷情報を Slack に通知する仕組みを雑につくりました。 目次 モチ...more

Shingo Sato

Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する

Main Web ページの印刷は、気をつけていないとスタイルくずれを起こしやすいかなと思います。それが、日々、機能追加や...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "slack"

オンラインストアの入荷情報を Slack に通知する

Snow Peak 公式オンラインストアの製品入荷情報を Slack に通知する仕組みを雑につくりました。 目次 モチ...more

Shingo Sato

Web アプリケーションの印刷時スタイルを継続的にチェックして結果を Slack に通知する

Main Web ページの印刷は、気をつけていないとスタイルくずれを起こしやすいかなと思います。それが、日々、機能追加や...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/snow_peak/index.html b/tags/snow_peak/index.html index 9a7172aa79..13f35f8270 100644 --- a/tags/snow_peak/index.html +++ b/tags/snow_peak/index.html @@ -1,4 +1,4 @@ snow peak | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "snow peak"

オンラインストアの入荷情報を Slack に通知する

Snow Peak 公式オンラインストアの製品入荷情報を Slack に通知する仕組みを雑につくりました。 目次 モチ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/software_development/index.html b/tags/software_development/index.html index 0f2305edba..c787c77f8f 100644 --- a/tags/software_development/index.html +++ b/tags/software_development/index.html @@ -1,4 +1,4 @@ -software development | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "software development"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

React と Redux なブログ運用をソフトウェア開発する話し

Main 継続的なソフトウェア開発プロセスを取り入れ、最低限の SEO は考慮しつつ無理矢理 React でブログを作っ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "software development"

mo - CircleCI のモバイル Web クライアントを公開しました

Main モバイルデバイスの Web ブラウザ用 CircleCI クライアントを公開しました。 mo.gif ...more

Shingo Sato

React と Redux なブログ運用をソフトウェア開発する話し

Main 継続的なソフトウェア開発プロセスを取り入れ、最低限の SEO は考慮しつつ無理矢理 React でブログを作っ...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file diff --git a/tags/typescript/index.html b/tags/typescript/index.html index b978d94da1..df69279b2a 100644 --- a/tags/typescript/index.html +++ b/tags/typescript/index.html @@ -1,4 +1,4 @@ -typescript | Tags | blog.sugarshin.net
blog.sugarshin.net

Entries tagged with "typescript"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

blog.sugarshin.net

Entries tagged with "typescript"

Qiita に画像をアップロードする CLI ツールを oclif でつくる

Main Qiita に画像をアップロードする CLI ツールを、 Heroku 製の CLI フレームワーク ocli...more

Shingo Sato

2024 sugarshin | Shingo Sato All rights reserved.

\ No newline at end of file +}}(); \ No newline at end of file