カテゴリー
PHP

明治150年だけじゃない! 毎年和暦のキリ番を祝いたい人のためのキリ番情報

今日のニュースより

菅官房長官は閣議のあとの閣僚懇談会で、「再来年は明治元年から150年を迎え、わが国にとっても一つの大きな節目だ。明治の精神や日本の強みを再認識することは極めて重要であり、明治以降の歩みを次世代に残すことが大事だ」と述べました。

官房長官 再来年の「明治150年」へ施策検討 | NHKニュース

2000年のときに江戸400年を祝った覚えないな。なぜ明治だけ?

はてなブックマーク – yamaisan のブックマーク – 2016年10月7日

年号はいっぱいあるのに、ってことですね。明治が好きで明治に戻りたくてしょうがない人が政治家に多いのかもしれません。

それはともかく、「年号はたくさんあるので、毎年何かしらキリのいい〇〇周年になってるのでは」と思い、計算してみました。前後10年ずつ20年分です。ソースコードはこちら

2006年(平成18年)は

2007年(平成19年)は

2008年(平成20年)は

2009年(平成21年)は

2010年(平成22年)は

2011年(平成23年)は

2012年(平成24年)は

2013年(平成25年)は

2014年(平成26年)は

2015年(平成27年)は

2016年(平成28年)は

2017年(平成29年)は

2018年(平成30年)は

2019年(平成31年)は

2020年(平成32年)は

2021年(平成33年)は

2022年(平成34年)は

2023年(平成35年)は

2024年(平成36年)は

2025年(平成37年)は

今年2016年は享保300年だそうです。暴れん坊将軍の時代ですね。そして、検索したら出てきました。享保300年を祝ってる人たち。明治だけじゃなかった!

造幣局 : 享保の改革300年2016プルーフ貨幣セット~貨幣の改鋳~の通信販売について

300年に一度の企画【享保の会 大感謝祭】開催のご案内 | ジャパントラディショナルカルチャーラボ

来年2017年は、応仁550年。応仁の乱も550周年というわけですね。

来年はまた、養老1300年でもあります。「養老」って年号だったんだ。関係ないけど養老の滝は今年60周年だそうです。

スーパー切りの良い年ということだと、来年の寛仁1000年や、2021年の治安1000年がとても切りがいいですね。「治安」なんて年号もあったんだ。

カテゴリー
PHP

[メモ] Docker + Sculpin で静的サイトを作る

PHP製の静的サイトジェネレーター Sculpin を、Windows 上で Docker で実行しました。

ソース

サンプルのテーマを派生させて差分で日本語+自分用のテーマを作ろうとしたけど、theme の仕組みはまだ実験的です、とある通り、サンプルテーマもテーマ内のアセット読み込みに対応してなかったりまだまだでした。

セットアップのメモをSculpin自身を使って静的ブログにしてみました。

Home — Docker ComposeでSculpinを動かすブログ — ついでにサンプルテーマを日本語に

使えそうなら自分用で必要な Theme と Bundle を作っていこうかとも思っていましたが、他のツールも触ってみた方がいいかもという結論になりました。

カテゴリー
PHP

ズンドコキヨシ問題をPHPとFSMで解く

先週一部で流行していたズンドコキヨシ問題

ランダムな結果の中から特定のシーケンスが出たら「キヨシ」を出し、終了する、という要件で、解き方はいくらでもあると思いますが、自分が考えたのは有限オートマトンを使ったもの

まずはPHPでFSMを扱っているパッケージを探します。PackagistFSM で検索。ダウンロード数が多いパッケージをいくつか見てみて、使い方が好みなものを選びます。今回は Stagehand_FSM を選びました。業務ならここでパッケージの中を精査するんでしょうけど、まあここでは省略します。


{
"require": {
"piece/stagehand-fsm": "2.4.*"
}
}

Composer で持ってきて呼び出します。楽ちんですね。


require 'vendor/autoload.php';
use Stagehand\FSM\StateMachine\StateMachineBuilder;

ドキュメントにありますが、ステートマシンのインスタンスを作り、状態と遷移と開始(や終了)を与えて動かすだけ。

ということで、与えるデータを作るために、次はズンドコキヨシ問題の遷移図を考えます。”online FSM editor”で検索すると、ブラウザで遷移図を描けるページが見つかりました。これは便利。

zundokokiyoshi_FSM
(間違いがあり、画像を差し替えました。@qckanemoto さんありがとうございました。)

あとは図を基に状態と遷移を与え、それぞれの状態で「ズン」や「ドコ」、あるいは「ドコキヨシ」を表示させれば完成です。

FSMを使う意味

今回のチャレンジを最短の手数で解くだけなら、必ずしもFSMみたいなものを使う必要はないでしょう。ただ、遷移図や遷移表みたいなものを書いて、それをただコードに落とし込む、というのは、抜けを減らせる安心感があります。

# 図を間違うこともありますし、コード化するときに間違うこともありますけどね。テスト書いてないので、業務レベルなら失格です

もし、キヨシが出る条件が頻繁に変わるとか、ズンとドコを使って新しい曲を作りたいとか、同じコードのデータ(遷移表)だけをさまざまに切り替えて別の動作をさせたいとか、そういう方向に仕様の変化が予想される場所なら、使うといいのではないかなと思います。ゲーム系のプログラマーはたぶんこういうの日常的に使ってるのでは。

あとは、描いた遷移図や遷移表からそのままJSONなりの定義が出力できて、それを直接食わせたら動くライブラリ、みたいなものがあると、もっと楽で間違いもないんだろうなあ、と思いました。さらに手間を掛けるならそういうツールやライブラリを探すか、作るかするんでしょうね。

https://www.youtube.com/watch?v=c0H_qGSJKzE