ふとしたことで購入することになったので読んでみた。
色々と思うところはあるけど、堀江さんが楽しいと思うことに前向きに取り組むためのノウハウが書かれている本といったところでしょうか。
少し宣伝っぽさがある内容にも取れたけど、好奇心から生じる行動力が多動力となるのかーという感想(小並感)
私の周りで情報共有のためのツールとしてesa.ioというサービスを深く愛用させていただいております。最近使い始めて1年が経ちました。サービスを使っていく中で最近あったちょっとした出来事とそれを改善するために作ったchrome extensionについて紹介します。
esaというサービスは、公式サイトに書いてある通りチームで情報を育てていくサービスです。各人で記事を作成・共有など行い、皆でその記事の情報を更新し育てていきます。
情報を育てるため・育てやすくするための仕組みとして、
などの様々なサポートがあります。また提供されているchrrome extensionを使用することで、markdown入力時のサポートが受けれて記事作成も楽に行なえます。こちらのextensionはesaのサイト以外でも使えて大変便利です。esarea - Chrome ウェブストア
またここ1年の間esaを使って情報共有をしてきましたが、カテゴリを基準をもって切っていけば様々なケースに使用できて汎用性もあり大変扱いやすいです。現状では日報、議事録、企画案の共有、約束事など様々な用途に使用されています。 ※個人的にはUIが大変親しみやすく、また使いやすいところが大変気に入っています。
1年近く使うとそれなりにたくさんの記事が溜まっていきます。そんな中最近よくあるのが過去作成された記事で最新の情報が反映されていないものが少しずつ増えてきたということです。読んでいる人は早い段階で気づけばいいのですが、気づくのが遅くなってしまった場合に時間のロスにつながることもあります。
その記事が信頼足り得るものかどうかを図るための指標として、記事の最後の更新時間と現在時刻の差分が大きいかどうかみたらいけるのでは?と考えました。githubでいう 直近数ヶ月何もcommit履歴がないリポジトリ ≒ メンテナンスがされいないかもしれない
のような1つの判断基準は、esaにも当てはまるであろうと思った次第です。記事の更新が一定期間ない場合に注意書きを出すことで、ユーザに古い記事かもしれないという示唆を行う。注意書きをみたユーザは「記事更新チャーンス!」といわんばかりに記事の更新を行い常にアップデートされていく記事がesaに溜まっていくみたいな方針をぼんやりと考えました。記事の更新期間があいている時に注意文言を出すのは、qiitaやDevelopers.ioなどではかなり前から導入されているもので、今回はそれらをオマージュしました。
esa-cautionerというchrome extensionを作成しました。
※コードはjsの経験ほぼゼロの初心者が組んだようなものなのでPRお待ちしております。
仕組みは画面右端に下のスクショのように記事作成時刻と記事更新時刻がでているのでタグから記事更新時刻を取ってきて現在時刻と比較します。
比較してみて半年間更新がなければ注意文言を記事トップに表示するといったシンプルなものです。
半年間というのは今の利用状況に合わせて決めた値なのでnヶ月みたいな設定ができるような改善が今後必要そうかなと思います。
簡単な実装のchrome extentionですがesaの記事を有用な状態に保っていくには地味に効果を発揮してくれそうな感じ。
そうなるといいなー
nginxでメンテモードを実装した。機能としては/tmp/503
ファイルがあったら、nginxがメンテナンス画面を出すというもの。
最初は503のstatusだったらメンテナンス画面をだすという実装だったけど、メンテナンス以外の時で503の場合は別のviewを出したかったので下記のようなconfigファイルにした。
server { listen 80; server_name _; error_page 503 @503_error; set $maintenance 0; if (-f "/tmp/503") { set $maintenance 1; } if ($maintenance = 1) { return 503; } location @503_error { root /etc/nginx/html; internal; expires 0; if ($maintenance = 1) { rewrite ^(.*)$ /maintenance/503.html break; } if ($maintenance != 1) { rewrite ^(.*)$ /503.html break; } } location / { ... }
ポイントとしては、
error_page 503 @503_error;
を設定することlocation @503_error
の内部では
かなと。
最初 location /503.html
のような指定を使っていたけど、これだと上手くlocationに入らないケースがあって、そこは正直良く挙動の理解ができないです..
@でlocationの指定を行うようにしたら意図した挙動になりました。うーん違いがよくわらん
nginxには定義した特定のcontent-typeの時にレスポンスの中の文字列を書き換えるsub_filterという機能があります。
こちらですね。Module ngx_http_sub_module
できることは文字列の書き換えで、
sub_filter 'example.com' 'www.example.com';
と定義するとレスポンスの中のexample.com
という文字列をwww.example.com
に書き換えてくれます。sub_filter_once
のon,offで繰り返し置換するかどうかの設定をすることができ、sub_filter_types
で置換の対象とするcontent-typeを複数指定できます。利用シーンとしては、特定のURLにアクセスしたときだけでリクエストの中身書き換えたいとか、アプリケーション側の変更無しでサイトドメイン等変更したい時などが考えられます。
sub_filterを使っていて少しハマった挙動としては、例えば hoge.example.com
とfuga.example.com
をwww.example.com
に書き換えたいという時は、
sub_filter `hoge.example.com` `fuga.example.com`; sub_filter `fuga.example.com` `www.example.com`;
みたいな書き方をするとhoge.example.com
がfuga.example.com
に書き換わった後に、書き換わったfuga.example.com
はwww.example.com
には書き換わらないのでちゃんと
sub_filter `hoge.example.com` `www.example.com`; sub_filter `fuga.example.com` `www.example.com`;
と丁寧に書いてあげる必要があります。またgzip圧縮指定をしているとレスポンスの中身の書き換えが正常に行われないので置換したいURLへのアクセスには proxy_set_header Accept-Encoding "";
を指定のlocationなりにつけてあげる必要があります。
GW中どうせなら積んでいた本を読もうと思い、2012年ごろに出版された「データベース技術 実践入門」を読んだ。書いてあった内容は、実践入門というより広く薄い内容ではあったけど、自分が気にしていなかったことや知らなかったことなどもあったし、技術の振返りとして読んで面白かった。印象に残ったことは下記の内容。
UUID()
やNOW()
がそのまま実行されるため、必ずしも同じデータになるとは限らないPURGE MASTER LOGS TO
で行うこれらが気になった点。本を読んでいてMySQL5.6が出たぐらいのころの本なので現状とは少し違ってきている点もあるかもしれない。だけど時代的背景からみるMySQLの使い方や基本的な内容の振返りなどまんべんなく見れて良かった。
ここ2ヶ月色々あって毎日終電まで作業していたせいもあってブログの更新がなかなかできてなかった。まだ山を超えてないのだけれど息抜きとちょっと気になることがあったのでブログ書こうかなとなった次第です。
先日とある時に、「Reactちょっと触ってみました」みたいな会話から「Reactどうです?」って聞かれて「C#みたい雰囲気でしっくりきた」って返したのだけれど、思い返すとまったく言いたいこと伝えられてないし、意味わからなすぎるよ!!ってなったので冷静に思っていることを文字で書きます。
Webのフロントエンドはほっっとんど触ったことがなく、ちょっと触れたよーっていうものだとjs, reactぐらいなので、その両方からみた時にReactがいいなーっておもったところは以下でした。
みたいなところがあるかなと。バックエンドの出身の私から見るとオブジェクト思考的に扱えて、LL言語のような手軽さでコーディングできるのですごくしっくりきて入りやすいなって思いました。
みたいなことを伝えたかったのですが、どうも言葉がでてこなかった…変に緊張したりするとたまにやっちゃうので意識的に気をつけるようにしていきたいなと。
これからも頑張るぞい