職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

麻疹風疹(MR)混合ワクチンの接種

8月に麻疹(はしか)日本国内発生のニュースが流れてきて、その後も発症例が増加しているという話を受けて、麻疹・風疹混合ワクチン(MRワクチン)の接種を受けてきた。



ワクチン接種を受ける意義

何故受けた方が良いか?について筆者が適当に語るコーナー。


基本的にはこういう思考である。

世代的な話

1977年4月2日~1990年4月1日に生まれた世代は1回接種法であり、キャッチアップキャンペーン非対象だった。免疫がついていない可能性が高く、最も感染の危険が高い年代。

https://ja.wikipedia.org/wiki/%E9%BA%BB%E7%96%B9#.E4.BA.88.E9.98.B2

ヤバそうである。

事業継続計画(BCP

筆者の勤め先においても 1977年度〜1989年度生まれ の人は非常に多く、麻疹の大規模な流行があれば従業員の健康のみでなく、事業継続そのものが脅かされることも考えられる。


リモートワークが整備されていたとしても、潜伏期間が長い、かつ、潜伏期間でも感染力のある伝染病 という存在には弱い、という話はおそらく正しい。だけど整備されていないよりは整備されている方が良いに決まっている。伝染病への合理的な対策というのは打っておくに越したことはない。

筆者の業務の一つであるサーバ管理、こういう仕事は、誰か一人以上の人間が活動できる状態であることが強く求められる。そんな中でサーバ管理者全員が麻疹で倒れたりしたら、鯖缶本人やその家族たちだけでなく事業も傾く。怖い話だ。



ワクチン接種を受けるための活動

冒頭に掲げたtweetをした9月1日より、接種についての情報を集め始めた。しかし、接種の情報の多くは子供達(の保護者)に向けたものであり、成人が接種を受けることを主目的にした情報はほとんど手に入らなかった。接種実施の病院の一覧も、簡単には手に入らないようである(筆者は結局入手することができなかった)。

やっぱり接種を受けるのは無理なのだろうか?と思いながら、数年前に一度お世話になった内科の先生のWebサイトを見てみると、そこにはMRワクチン接種をやっていることが明記されていたため、電話で問合せた。予約も予想外にすんなりと取ることができた(9月5日時点)。
電話で喋った感じだと、医院では通常は在庫を持たず、予約を受けてから業者さんから仕入れるような感じだった。電話問い合わせから接種までの間には数営業日を空ける必要があった。

そして予約していた日に病院に行くと…、なんと接種を見送りされてしまった。理由は筆者自身の風邪。自分では大丈夫なつもりだったが、先生の判断だから仕方がない。
通常の手当てを受けてから数日が経過した今日、無事に接種を受けることができた。費用は1万円とちょっとくらいだった。

これから受ける皆さんへ

筆者が接種を受けた病院の先生曰く

  • 卸売りの業者さんのところにも、そんなに在庫は残ってないし、入ってこないようである
  • ワクチンは病原体を培養して製造されるという性質から、いきなり増産できるようなものではない
  • 病院への問い合わせは増えてきている

という話だったので、今年中の接種は難しいかもしれない。健闘を祈る。

CloudWatch Logs のログを華麗に読む CWLReader を公開

CWLReader という小さなソフトウェアを公開しました。

github.com

解決しようとした課題

AWS でいろいろ運用している皆さんの多くは、各種ログを CloudWatch Logs へ溜め込んでいることでしょう。
ログの内容に不審な点があれば通知を投げるといった仕組みも一緒に設けられていることが多いと思いますが、特に立ち上げ間もないシステムの場合は、人力で全てのエラーログに目を通すことは重要です。何故なら、どういったログがどのように出ていれば通知を投げれば良いのかという知見が蓄積されていないからです。

そこでログを見る訳ですが、公式の CloudWatch Logs のツールだと、「どこまで読んだ」という情報が管理されないため、全てのログを漏れなく見るためには、自分でその情報を管理する必要があります。

CWLReader の特徴

  • ログを見る権限だけの IAM ユーザを用意し、そのキーを使ってログを取得できる
  • IAM ユーザのキーは、ブラウザの LocalStorage で管理される
  • 「どこまで読んだ」の情報は、LogGroup ごとに、これも LocalStorage で管理される
  • ログの続きを読もうとするとき、前回の「どこまで読んだ」の情報に基づいて続きからロードできる
  • ファイル1個で稼働する
    • file:// で読ませることも可能だけど、これは LocalStorage の内容を他のスクリプトに読まれる危険性があるのでオススメはできない

さいごに

何かお気付きの点などございましたら、issue を上げて頂きますと嬉しいです。
英語書くのしんどいよ〜という方は、Twitterで連絡下さい(ブロックしてたらゴメンなさい)。

第24回 #シェル芸 勉強会に参加してきました

タイトルの通りです。今回も大阪サテライトに参加しました。

本家
usptomo.doorkeeper.jp

大阪サテライト
atnd.org

Togetterまとめ
togetter.com

問題 【問題のみ】第24回◯◯o◯裏番組シェル芸勉強会 – 上田ブログ
問題+解答例 【問題と解答】第24回◯◯o◯裏番組シェル芸勉強会 – 上田ブログ

この日の自分の tweet T.Motooka(@t_motooka)/2016年08月27日 - Twilog
シェル芸とは無関係の発言も含んでいるとは言え、149tweetsもしており、不健全な感じがします。

続きを読む

多言語・翻訳ナイトに参加してきました

多言語・翻訳ナイト Vol.3 に参加してきました。

polyglots.doorkeeper.jp

どうやって勉強会の存在を知ったのか

近畿地区の勉強会情報を収集して配信してくれているbot @atnd_kinki の配信で知りました。

自分と多言語

過去には日英韓の3ヶ国語対応のWebアプリを開発・運営していました。韓国語は翻訳者のご協力を頂きながらの対応でしたが。
現在でも日英2言語対応しているアプリは自分で翻訳して実装、運営までやっています。
本格的に多言語対応をやっておられる方からみればヒヨっ子みたいなもんですが、多言語対応には関係がありますし、興味もあります。

多言語関連で自分が最近興味を持っていたのは、こんな話題です。

  • 自分が知らない言語への翻訳の運用ノウハウ(翻訳者さんへ翻訳を依頼するためのノウハウ)
  • コンテンツ(ブログ記事など)の翻訳を実施した際の、コンテンツ管理ノウハウ

こういう話も聞けたらいいなー、と考えながら参加しました。もちろん聞くことができてますし、それ以上の知見が得られました。

お聞きした話(抜粋)

  • 行政が出す文書の翻訳の難しさ
    • 更新が滞る問題
    • 偉い人たちが自動翻訳で満足してしまう問題
    • 災害などの緊急情報の伝達の難しさ
    • 2020年のオリンピックに向けた課題
  • ビジネス向けのオンライン翻訳サービス YarakuZen の話
    • 訳語の統一に気を使いながら翻訳をするときに、とても便利そう
  • 翻訳業務のクラウドソーシング Conyac の話
    • チームを組んでもらって大人数で翻訳みたいなことも可能らしい。すごい。
  • WordPress の多言語化用プラグイン Bogo の話
    • RDBのデータ管理に関する話も飛び出してきて、かなり興味深い話だった。
  • ロケール/言語と国旗の問題
  • 日本語の難しさ:統計的アプローチが取りづらい

さいごに

主催の多言語団の皆様、参加された皆様、会場の JUSO Coworking さん、ありがとうございました!

おまけ:ぼやき

「 n ヶ国語」(n>=2)という日本語の表現からは、1言語1カ国みたいな過去の認識が垣間見えますね。
実際には1つの言語が複数の国で使われていたり(例:英語)、1つの国で複数の言語が公用語になっていたり(例:スイス)するので、あまり現実に沿った表現ではないという気がします。
言葉狩り(他の方が書かれている文章に文句をつけること)をするつもりはありませんが、自分が書く文章からは無くしていこうかな、ともうっすら考えたりしてます。この記事では使っていますが。

おまけ:ネタ

日中韓をはじめ、世界中で見つかる間違い英語を投稿して共有するためのサイトがあります。
www.engrish.com
かなり笑える内容なのですが、自分が作ったものが載ると思うと、なかなかつらいものがあります。
世界へ笑いを提供できるのなら、まあそれも一興ですが。

ひとまずは、載らないように 頑張ろう! #一句

名古屋のSVGイベントに参加してきました

名古屋の Web 界隈の集まりである WCAN(ダブキャン と読むそうです)主催のイベント、WCAN mini 2016 Vol.2 SVG Maniax in NAGOYA に参加してきました。

wcan.jp

これまで、SVGのオンラインのイベントには何度か参加していました。

ですが、オフラインでのイベントは非常に珍しいものです。新幹線に乗ってでも名古屋へ行く価値はありました。

得られた知見の数々

Togetterにまとまっているので、こちらを見られるのが良いでしょう。
togetter.com

自分で喋った内容

こんな内容で喋りました。

speakerdeck.com

このとき、デモで使った花火のSVGのソースは、こちらです。

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 400">
	<rect fill="#000000" x="0" y="0" width="400" height="400"/>
	<defs>
		<g id="particle1">
			<rect x="196" y="90" width="8" height="20" fill="#c06090"/>
			<rect x="196" y="60" width="8" height="20" fill="#ff9030"/>
		</g>
		<g id="group1">
			<use xlink:href="#particle1" transform="rotate(0 200 200)"/>
			<use xlink:href="#particle1" transform="rotate(10 200 200)"/>
			<use xlink:href="#particle1" transform="rotate(20 200 200)"/>
			<use xlink:href="#particle1" transform="rotate(30 200 200)"/>
			<use xlink:href="#particle1" transform="rotate(40 200 200)"/>
			<use xlink:href="#particle1" transform="rotate(50 200 200)"/>
			<use xlink:href="#particle1" transform="rotate(60 200 200)"/>
			<use xlink:href="#particle1" transform="rotate(70 200 200)"/>
			<use xlink:href="#particle1" transform="rotate(80 200 200)"/>
		</g>
	</defs>
	<g>
		<use xlink:href="#group1" transform="rotate(0 200 200)"/>
		<use xlink:href="#group1" transform="rotate(90 200 200)"/>
		<use xlink:href="#group1" transform="rotate(180 200 200)"/>
		<use xlink:href="#group1" transform="rotate(270 200 200)"/>
	</g>
</svg>

このソースを拡張子 .svg で保存し、Webブラウザに読み込ませると、スライド中に登場する花火のイラストが表示されるはずです。
(スライド中に登場する画像は blur などのフィルタをかけていますが、下のソースでは省略しています。)
この画像は、時計の12時の部分にいる破片を時計回りに90度分だけコピーし、その90度の扇型のものを4つ並べて円形にしています。

ここで、保存したSVGのソースの <g id="particle1"> の子要素をいじくると、花火全体の見栄えが変わると思います。たった1箇所を変えるだけで全体が変わるのです!
みなさんもぜひ <use> 要素を活用していって下さい。

もちろん、SVG そのものも楽しく使っていきましょう!

さいごに

運営してくださっているWCANの皆様、セッションやLTで講演された皆様、そして当日参加された皆様、ありがとうございました!

参考図書

SVG Essentials

SVG Essentials

※英語です