近代和暦について。慶応 明治 大正 昭和 平成

2013年4〜7月のあいだ、商工会&商工会議所のアプリケーションの開発に携わりました。そのシステム設計を担当した際、この団体が近代日本の企業の発展の歴史に大きく関与してきたのだと感じました。その案件にかかわったおかげで、近代和暦の扱いに詳しくなれましたので、まとめておきます。

明治について
1868年10月23日に明治天皇が正式に即位しました。慶応四年九月八日のことです。
普通に捉えるとこの日を境に明治元年となると思ってしまいがちですが、少し違うのです。明治天皇はこの時、『暦を遡って一月一日から明治とする』と定めました。そのため慶応四年はなかったことに。たいへん古い商店によっては創業年を併記している場合がありますが、こういうことだったんですね。

太陰暦→太陽暦へ
明治五年一二月三日、その日が明治6年1月1日となりました。
改暦が発効されて施行までわずか23日後だったので、人々は慌てふためいたのは想像に難くありません。

大正について
1912年7月30日(明治45年7月30日)に大正天皇が即位され、大正元年7月30日になりました。
日本の法律、明治45年7月30日も大正元年7月30日も同じ日として存在します。

昭和について
1926年12月25日(大正15年12月25日)に昭和天皇が即位され、昭和元年12月25日になりました。
日本の法律、大正15年12月25日も昭和元年12月25日も同じ日として存在します。

平成について
1989年1月7日(昭和64年1月7日)昭和天皇がお亡くなりになり、その日元号が「平成」になると発表がなされました。それまでの慣例通りではなく、色々な大人の都合もあって翌日施行され、1989年1月8日に平成元年1月8日となりました。

年号を自動計算して返還することのむずかしさ
昭和元年が8日しかなかったり、昭和64年が7日しかなかったり、明治と大正、大正と昭和という違う元号の同一日が存在したり、慶応4年が消えてなくなったり、閏月の変換が明治初期に必要だったりと、西暦と和暦を自動変換するプログラムを書くのは非常にめんどうくさいです。

近代日本のアイデンティティ
暦を振り返り激しい動乱の時代が長く続いていたことを実感し、バブル期に成人した私としては、ここ20年(2012年時点)経済成長がなかった半面、日本は安定と成熟期を過ごしていたと言えると思います。

組織も文化も年を重ねて大人になると感じているのですが、ということは、そろそろ大人の見方、考え方、価値観を踏まえて振る舞う時期がきたと考えます。

いけいけどんどんの若い価値観ではなく、回りをよく見て、他の人の福祉に資するような(お金ばらまいて甘やかすのではない)一回り大きく丸くなった大人の風格を漂わせる振舞いをすればいいのではないかとつくづく思うのです。

jQuery.validation サンプルのテスト実装

作ったはいいが、作った本人が『あれ?これどうやって使うんだっけ?』というのはプログラム書きの間ではよくある話。素敵なコードを書いていた自分に感心しつつ、そのころかなりいっていたんだろうな、いい意味でも悪い意味でもと感傷にふけることも。

というわけで、ちょっと前に紹介していた便利な(はずの)JSバリデーションの使い方がわからなくなったので、テスト的に実装して『あ~こんな風だと便利だな』と味わいたくて、テスト実装した結果をみんなでシェアできればと思っております。

CakePHP2を美味しく食べたい:$autoLayout と $autoRenderでの制御

CakePHP2のhtmlビュー表示制御について

自動レンダリング機能の動きとOFF/ONについて現時点で市販のとあるマニュアル本の書き方がだらしなく(そのうえそれくらいしかないorz)、誤解を招く記述なので自分の整理のためにも書きます。
コントローラのメンバ変数として指定できる$autoLayoutと$autoRender。この$autoLayoutと$autoRenderは画面表示用テンプレート読み込み動作のOFF/ONをつかさどります。初期状態はどちらも”TURE”が指定されていますので’ON’状態です。この二つのメンバ変数を記述しなければ、初期値(ON)で動作することになります。

そのときはどう動くの?

例えば/hoge/でページを表示させるつもりであれば、次のようにコントローラーを作りますね。
/Controller/ディレクトリ直下にHogeController.phpと名前をつけたファイルを作成し、そのファイル内にindex()アクションを記述した場合、
/View/ディレクトリ内に/hoge/ディレクトリを作り、その中にindex.ctpという名前でファイルを配置すれば、そのファイル内に記述した内容が読み込まれます。
さらに
/View/Layouts/ディレクトリ内にあるdefault.ctpファイルが読み込まれます。
そして上記(index.ctp)で読み込んだ内容をdefault.ctp内に記述されている

<?php echo $content_for_layout; ?>

で出力し表示します。もし/View/Layouts/default.ctpが無いとか、/Layouts/ディレクトリがない場合はCakePHPのライブラリ内にあるファイルを読み込んで表示するようになっています。

この挙動を変更したい

レイアウトを使いたくない

コントローラ内に次の1行を加えれば、レイアウト表示をOFFできます。
public $autoLayout = false;
これで、/View/hoge/index.ctpだけが表示されます。

レイアウトを色々と使い分けたい

複数ページを制作しカテゴリ毎に色分けしたレイアウトを複数用意して季節が変わったらレイアウトを変更したいなら、レイアウトファイル名を指定するため$layoutを記述して制御します。
public $layout = 'hoge';
これで/View/Layouts/hoge.ctpを読み込んで来るようになります。
応用編ですが、時間帯で変えたいとかユーザーステータスで変えたいは

public $layout;

 

public function index()
{
$ctp = 'hoge';
if ($hour == 1) $ctp = 'fuga';
if ($hour == 2) $ctp = 'hena';
$this->layout = $;
}

とするといいかもしれません。判断分岐はみなさんのセンスでどうぞ。

そして、
$autoRender = false;
こうすることで、レイアウト用またビュー用テンプレートファイルを読み込んでくる処理を止めることができます。
特殊な用途でこれを止めて、アクション内で何か処理をさせて終わらせる必要がある場合もあるでしょう(画面遷移を振り分けるためだけでリダイレクトさせるとことか)。画面表示の必要が無い場合、この記述を加えてテンプレート読み込みを止めます。

SQLiteをトッピングしたくて… #CakePHP2を美味しく食べたい

様々なデータベースとの親和性が高くて扱いやすい(と思っているというか、そう信じている)CakePHP2ですが、
『ん?ではSQLiteを使うときはどう設定すればいいのかな』と公式マニュアルを漁っても、どうも的を得ない。

SQLiteはデータファイルを普通のファイルとして扱う簡易データベース的ファイル。
であるので、それにふさわしい設定を入れてあげないとちゃんと動いてくれないはず。
「どっかにないかなぁ」とググっておりましたら、ありました!
これはまさに良く的を得ております。
cakePHP2.0での SQLite3(PDO版)を使う
まずはCakeのPDO経由でアクセスするために
セオリー通りに、DATABASE_CONFIGクラス内で変数を定義します。

public $sqlite3 = array(
'datasource' => 'Database/Sqlite',
'persistent' => false,
'host' => '',
'login' => '',
'password' => '',
'database' => 'dummy.sqlite3',
'prefix' => '',
);

そして、SQLiteを使うためには、どのディレクトリにファイルが存在するか教えておかねばなりません。
その設定はコンストラクターで以下のようにするのですね。

function __construct(){
// SQLite用データベースファイルの格納先
// [app_name]/tmp/sqldata/
$dir = ROOT.DS.APP_DIR .DS. 'tmp'.DS.'sqldata'.DS;//-(1)
$this->sqlite3['database'] = $dir. $this->sqlite3['database'];
}

なるほどぉ。(1)の肝は”ROOT.DS.APP_DIR”で、こうしておくことでCakePHPのディレクトリ構成をそのまま引き継ぎ、それ以降をSQLiteの配置ディレクトリに合わせて記述してあげれば、アップロードしたらすぐ動くという具合になるのですね。
わっかりました!

参考サイト:

http://miztools.so.land.to/php5_list/eat_cake/cake2/edit/sqlite3
PDOにもっと詳しくやさしく知りたい方は PDOでサクサクDB開発 に目を通しましょう。
※「一度目を通しておけ」とはザッと軽く読むことだと誤解してました。実はその逆で「よく読んでおけ」ということです。

2013年10月に「激動の1年超を振り返」っていたようです。

先日、昔のブログのデータが出てきました。

「そんなにむかしじゃやいはずだけど、あの頃の自分…どうだったかな?」という興味がわきまして、データを見られるようにローカルにブログを立てて復活させてみました。

そうすると、とぎれとぎれではあっても振り返っている自分が、2013年10月末にこんなブログを書いていたのを発見しました。

大変ご無沙汰しております。なんと1年以上ぶりの更新となってしまいました。
2012年の9/17ぶりですか。この一年もまた激動の年でした。

2012年11月末に、ちょうどぴったり10年住んでおりました京都市内から引っ越して、神戸市役所が見える高台に引っ越しました。ご近所には異人館が点在するようなところです。夜景はデフォルトに美しく見え、朝は差し込む日差しが眩しすぎて目が覚める。そんなところです。

プロバイダーのiPhone操作用バックエンド側システムを作ったり、電力会社のエコ支援システムを作ったり、畑違いの医療システムに関わったり、はたまたScalaっていう言語に触れたりと目が回るほどでしたので目が回りました。

10月はそんなこんなで自分のメンテナンスもあり、仕事を半ば断りモードでゆっくりさせてもらいながら、自分の色々なものの棚卸しと棚上げとシステム更新、やりたかったことをとにかくやってゆきました。

システムの入れ替えといえば、今このブログはMacbook Pro で書いてまして、Windowsの呪縛から解かれることにしました。で、マックライフを楽しんでいるのですが、とにかく可愛いです。多少の不便やわがままは許す。だって可愛いもん!という日々です。「こうやりたいんだけど」ってのは色々なアプリ側で対応してくれているので、その中から入れては削除して入れては削除して見つけていける。それがまた胸のすく思いです。

これがWin系だとレジストリが色々書き換えられて、深い階層に意味わからずフォルダー作られて、どんどん重くなって行く…

というものから解放されて「やっぱりおまえは可愛いぞ!Leonard」と味をしめている日々です。
leonardってのはこのマックにつけた名前。フルネームはLeonardBearで、アイコンはマッドサイエンティストのレオナルドにしています。「熊」ではありません。思いっきりレオナルドな!って意味が込められています。
時に、leonと読んだりレナードと呼んだり、イタリア発音で呼んだりしてます。

そういえば、このマックを購入するときAppleStoreの店員さんが「これはLinuxではなくUnixですっ!」て言っていました。う〜ん、実際にはUnixってのは存在しなかったのでそういった思想ってことで「あ〜はい」って言っておきました。ま、BSD系OSであることは確かだし、長いことBSD系の方々がLinuxと混同されることをいやがっていたので、ま、その残党と考えるとあの女性はなかなかの人なのかもしれません。申し添えておきますが、今やBSD系OSもLinux系と一緒に数えられていますので。なのでMacもそういった意味でLinux系なんですよね。

最近、名刺の肩書きからLAMP職人を外しました。Macにしたので本当はさらにLinux,Apache, MySQL,PHPになっているんですけどね、でも、それしかできないと思われ始めているので「いやそうじゃないし、実はそうじゃなかったんですよ」ってのを主張しようとし始めておりまして。

そういったことをしっかり振り返りきらずに10月が終わり、2013年11月に突入です。神戸人になって丁度1年です。仕事のオーダーがこないので11月に遊んで暮らすモードでいくことになりますが、なんだか清々しい気持ちです。

このあと、くら寿司の順番予約システムから派生したEPARKの保守チームに入ったんですよね。もう書けないことばっかり学びました。結構色々痛かったですが振り返るとあのとき身につけた技が今活かされている感じ。茨の道もいいものです。

神戸人になってさらに2年が経ち、板についてきました。酸いも甘いも味わって、やっぱり神戸が好きでした。なのでもっといい感じに神戸人になりたいと思っています。

見た目って大事だよ☆cssでエッジ効かせたい

2013年11月から2014年9月までのあいだは、お寿司屋さんとか携帯電話会社の店頭にあるあの待ち行列予約を作っていまして、そのときに書いたブログを復活。

CSS: marginの正しい理解 (CSSのmarginが難しい)
を読みました。これは本当によくまとまっています。

操作する画面を整えるところで、いわゆる”UI”を美しく整えたいんだけど「これってなんかおかしい」という他の人が作業した設定にぶち当たり、自分もよくわかっていないから、結局見た目だけであーしてこーしてと解決させていませんか?

そんなことしたら次の誰か(未来のあなた自身かもしれない)の修正で破たんしますよ!間違いなく確実に。

ってことで、ちゃんと理解しよう、CSSも。

って当時書いていましたが、時代はCSS3でSassとかの時代で、デザイナーさんたちはマークアップエンジニアに昇格してわたしたちプログラマーとかエンジニアの職域とかぶるようになってきました。

 

CakePHP3ってなかなかいけるかも

CakePHP3 もともとはCake使いだったんだけど、本に頼っていたのでOnlineマニュアルがかなりいいって知らなかったんだよね。

今のCakeは最初からPHP7をターゲットにしているので、これまでとは別物らしいけど、Cakeの設計思想は踏襲しているからかなりいいかも。

Cakeエバンジェリストな方といっしょに仕事していて影響を受けているのかもしれないが、日本語の充実度は素晴らしい。しかもボランタリベースでここまで充実して多言語展開とは素晴らしいです。

Zend Framework 2.5 追いかけるのやめてこっちにしようかなと思うほど。
これなら業務アプリでもCakeおすすめできる。

5年前の今頃はありありと夢を描いてた

京都の四条烏丸・五條警察署の隣りにあるビルに毎日通ってたな。京都の桜はどこもきれいで、おにぎり買って花見ランチ毎日していた。京都の春は本当に美しい…でも

「2年以内に京都を出る!」と心に決めて5ヶ月経っていて「神戸がいいな。あんなふうにこんなふうに暮らしたい」って思っていた。それが今ほぼ実現している。

夢をありありと描くって本当に大事だと思う。つくづくそう思う。

僕の場合、なかば強制的に期限を切った。もう染まりたくないと思ったから。染まりきるまで2年…それまでにっ

今、充実した毎日を送れているようにおもう。

そして改めて思う。夢に期限をつけるって大事。そうすればそれは目標になるから。

おもしろいな稲垣えみ子

子供の頃「朝日新聞じゃなきゃやだっ!」ていう子だった。19のとき読売新聞に務めることになって(新聞屋だけどね)、そこの本気に新聞大好き新聞屋青年が「朝日って昔から世論誘導するから嫌い」というので読売としっかり読み比べて朝日新聞を読む気をなくした。

その青年と心通わせるようになって、彼が夢中になっていた「朝日パソコン」。『これはいい意味、世の中動かしていくよ』っていうので影響されて読んだ。それでDOS/Vが生まれてくる経緯を知り、大崎氏を知り「これからはコンピュータが普通にみんなが持つようになる」と確信してスキルチェンジに邁進した。1998年、その人と友人になれるとは思いもしなかった。その人は今の高性能モバイル機器の基礎技術を作った人だ。IBMの中の人だったときも外に出たあとでも。

そんな僕に影響を与えた彼、今じゃ世の中を動かしていると彼をよく知るようになったし大好きだったからわかる。いろんな空気、作っている。
その人の名をここに記しそして消す…特別な親近感を感じた。尊敬というより敬意を感じながら考えた。今そんなふうに感じている。

師匠もそろそろ30歳だね。そうかあれはもう9年も前の話になるんだ。自分の中で驚きです。師匠は元気かな…この方にも感謝しきれない。僕の人生を変えた。

なんか迷走した始まりだが、稲垣えみ子さんが朝日新聞の論説委員だったということから始まって、全てを捨てて今生きているってのを見て、なんかブワッと思いだした。ぼくもそれなりに積み上げたもの捨ててきて、なのにいまさらしがらみに囚われているように感じていて、それの根本になたを振っている今日このごろな感じがしたから。

きっと頑張るとうまくいかない。

自由な発想それが大事。

じゃ僕は落書きでもしようかな。昔みたいに、鉛筆削ってスケッチブックに思いの向くまま気の向くままに。

そんなことしてるとピカッと輝くなにかがでてくるんだよね。今日も思いついたし。あんまり調子に乗らないように、でもそれは「あんまり」という接頭辞が付いているわけで。

いい感じで調子に乗ろう!

図に乗らずノリノリで「僕やっぱり天才かも。よしよし」ぐらいで。

自分の夢を実現させる方法を君は知っているかい?

自分の夢を実現させる方法をあなたは知っていますか?

それは自分をその夢に向かって突き進むよう動かすことです。そんなツールがあるといいですね。実際そんなツールはありません。もしかしたらドラえもんが出してくれるかもしれませんが、、、

実際のところ、多くの人の自分の夢は自分一人では決して叶いません。必ず他の誰かの助けが必要です。仮に「有名な画家になりたい!」という夢があったとして、世の中に自分一人しかいなかったら、どんなに絵がうまくても「きみ凄いね!大好きこの絵!」って言われないから。他の誰かの助けが絶対に必要。

でもやはり変化するのは自分。誰かの支えを得ながら。

今は本当にそういう意味で良い世の中になってきて、クラウドファウンディングとかあるからお金の問題は解決しやすい。でも、心の支えってやっぱりおかねじゃないよね。しかも収益上げられないとなれば、世界中でひときわドライな日本人だからそんなんじゃだせないよってなる。

だからそんな心の支えを集められるツール欲しいなって思うわけ。

その方向性でなにかないかと探したり考えたとき、ツイッターかな。#ハッシュタグつけて呟けばとりあえずなんかつぶやき集まる。でもなんか足りない。

そいういう方向性で考えたとき意外とないんだよね。

だったらそれ作ろう。
そう思って企画を始めました。

自分の夢実現をみんなに応援してもらう(ときに叱咤&そして激励)それを意識して頑張れるツール、つくってるよ。