月別アーカイブ: 2015年6月

1秒間の奇跡

変わりゆく規則

原子時計今年の7月1日は水曜日ですが、9時直前にうるう秒が挿入され、通常とは1秒長い一日になります。地球が自転する時間は一定と考えその時間を24時間と決めて1秒の長さを決めていました。

また、地球が太陽の回りを1周する時間を一年と決めていました。公転する時間は24時間の整数倍でないのでうるう年を設けています。

地球の自転は一定でなく、原子時計により1秒の長さを不変にした場合、従来方式では長い年月には季節にずれが生じるために、うるう秒を導入して1秒長い1年であったり短い1年を設定しています。

わずかな空隙

4分間の隙の中にわずかな空隙(くうげき)が人の一生を変えたり、成功と失敗の分岐点となることがあります。

松本清張点と線では、東京駅で13番線プラットフォームから15番線プラットフォームが見えるのは、1日の中でわずか4分間しかないことが謎解きのテーマになりました。作品が発表された当時、4分間の間隙として話題をさらいました。

7分間の奇跡最近では、7-Minute Miracle/7分間の奇跡のタイトルで、新幹線の7分間清掃作業を2分間に編集した動画が世界的に注目されています。

きびきびした無駄のない動きで7分間で清掃を終え、最後に深々とお辞儀する行動が賞賛され、記録的な再生回数を更新しています。2015/1/16に公開された東京都の動画は本日で3,865,245の再生回数でした。

うるう秒

名称未設定-1科学が進歩するとともに規則が変わることがあります。今年はうるう秒を挿入する年であり、日本では7月1日8時59分59秒の後に8時59分60秒を設けます。1秒を削除する場合は8時59分58秒の後は9時00分00秒になります。うるう秒は2、3年に一度ほど、調整が入りますが平日では18年ぶりです。そのため、システムの誤動作が案じられています。

6ビット表現値パソコンのOSはうるう秒をサポートしているのでしょうか。1分は60秒であり0~59の値を持つので6ビットを要します。6ビットあれば63まで表現できます。かつて、カノープス社から発売された製品で、ファイル作成日の秒の部分を特別な意味づけに60,61,62,63を設定し、16ビットパソコン上で8ビットOSも区別なく動作できるというユニークなシステムが一世を風靡しました。

PLUS-80というシステムで大いに満足して利用した思い出があります。その当時はファイルタイムスタンプは時分に重きが置かれ、秒まで管理することはなく、うるう秒もまだ、話題になってない頃の話です。

1秒間の勝負

1秒を削り出せ7分間の奇跡に対抗して今回は、うるう秒に思いをよせつつ、1秒間の勝負がテーマです。

証券取引では他社に先駆けて行動したものが勝利することが多いです。そのため、わざわざ、高速通信設備を敷設して有利な商取引をもくろみます。個人のパソコンは速度に関しては高速な証券会社の設備にはかないません。

高速処理の世界では1秒はかなり長い時間とも言えます。2015-07-01の8:59:59の後は8:59:60となり、いつもよりは1秒遅く取引所が開きます。

このことは公知の事実ですが、複雑なシステムの隅々までうるう秒を織り込んでいるとは限りません。ひょっとしたらジェイコム株大量誤発注事件のよう大量誤発注事件に、先んじれば巨利をものにできるでしょうか。

銀行や証券会社では取り扱う金額が巨額であり、他に先駆けてシステム構築をするために、表に現れない様々な事件や不始末があったかも知れません。

預金の利子は小数点以下を切り捨てますが、その一円未満のわずかな金額を自分の口座に移動したシステム開発者が積もり積もって巨額を横領したとのうわさが流れたことがあります。

法の隙間をついて抜け駆けすると別件で締め付けられることもあり、なかなか実行に踏み切る人は少ないですがドラマの世界ではうるう秒を用いた勧善懲悪が実現してもよかったのではないでしょうか。

倍返しする銀行員『半沢直樹』が話題騒然となって久しいですが、時刻を取り仕切るグリニッジ天文台との時差が9時間であるため、うるう秒挿入時刻が取引所の開所時刻に重なります。この1秒間の空隙を利用して半沢直樹が合法的に巨万の利益を取得し、頭取まで昇り詰めることをファンは熱望していたのです。

おわりに

1秒から7分までの空隙にまつわる一つの情念ですが、2015-7-1の9時前にこの記事が掲載できて安堵しています。今回は1秒を挿入しますが、1秒削除の方がシステムへの打撃が大きいのではないでしょうか。

この記事は違法行為を助長するものではありません。起りえる事象を事前に察知して対策が施され混乱が生じないことを願っています。

トイレ小考

トイレと介護

介護中

お手洗い、トイレ、厠(かわや)、便所、御不浄(ごふじょう)、はばかり、東司(とうす)、雪隠(せついん、せっちん)など数々の呼び名があります。トイレは公共場所では男女別々になっています。

高齢者の男女ペアでは介護のために、一緒にトイレに入ることがあり、誤解や犯罪防止に介護中を示す介護マークを貼ることが多くなっています。トイレを見ればその国の文化や地域の民度が分かるとも言われています。

toilet3o

心配りに富んだ男子小便器

トイレは男女別、男子トイレは大小別に分かれています。最近、男子小便所でかつて見たことがない仕切り板が付いた便器を発見し写真に収めました。これまでの男子小便器は上右図に示すように仕切り板がないのがほとんどです。

女性は男子公共トイレにおける小用のマナーのことをお分かりいただけないので説明します。〇〇〇〇〇、〇〇〇のように便器が並んでいる場合、5連では先に1人がどの席に立っても2人目は1人分離れて立つことができますが、3連では真ん中が使用中(〇◎〇)であれば、2人目は隣り合う席(◎〇あるいは〇◎)に立たざるを得ません。

このような場合は失礼に当たりませんが、◎〇〇のように左端が使われていれば2人目は右端の席に立つ(◎〇)のがマナーです。隣り合っても違反とは言えませんが、ムッとされることがあります。

隣り合わせた席で小用を足すときは横から覗かれることがありましたが、仕切り板があればその恐れはありません。

toilet3n

仕切り板付き小便器は東京都の上野駅に数年前から設置されていました。準備が整ってやっとカメラに収めました。痴漢と間違われないように清掃員がいて用を足す人が途切れた少ないチャンスを捉えてシャッターを切りました。

トイレ研究の採用

トイレなしトイレ研究をライフワークにしている学者が大勢います。モータリゼーションが到来して高速道路の建設が始まった頃、適切な距離間隔でパーキングエリア、サービスエリアが設置され、男女それぞれ適切な便器数を決定するためにトイレ研究学者の見解が参考にされたと言われています。

男女別のトイレ利用時間を調査するために、学生に長距離列車に乗ってもらい、男女それぞれに、列車内トイレ利用時間を計測したと聞いたことがあります。

おわりに

ウォシュレット時代によりトイレの形式は様々です。最近、日本のウォシュレットタイプトイレは外国からの旅行客に人気抜群で土産品として重用されています。

WikiPediaで小便器を閲覧したところ、わずかながら仕切り板に関する記述があり感心しましたが写真は掲載されていません。

横文字がまぶしかった頃、トイレのことをWCとも言っていましたが、今では死語になったようです。ちょっとトイレに想いを馳せてみました。

今日という日に

今日という日に何が

wikipedia

過去の今日という日に何が起きたかを調べるにはWikipediaを検索すれば明らかになります。Wikipediaを検索するAPIが用意されています。

URLアドレスhttp://ja.wikipedia.org/w/api.phpに検索する日付を付加してapi.phpを呼び出す方式です。たとえば以下のように指定します。 http://ja.wikipedia.org/w/api.php?action=query&export&format=txt&titles=2月9日

APIとはApplication Programming Interfaceの略でアプリケーションを作成する場合、すべて一から作り上げるのは骨が折れます。そこで既存の公知の事実を集大成して標準の技術を呼び出し確実にそして簡便にAPI効果を引き出せるような手続きのことを言います。APIはライブラリ、関数、ファンクション、DLL、サブルーチンなどの呼称と大差ないでしょう。但し、今ではアプリケーション作成に限定されません。

例にたとえるAPIによってその人の年齢や経験が推しはかられることになりますが、古い人間にはサイン関数などを挙げることができます。

この回で今日は何の日に関する記事はおしまいです。

参考資料

今日は何の日A

「今日は何の日」APIを作成しましたさんがわかり易く解説しています。 ソースコードをダウンロードし、日付を指定する部分を本日の日付が自動的に設定されるように修正しました。

また、コードの先頭にini_set(‘display_errors’, 0);を指定して Warning: Cannot modify header information ? headers already sent by (xxx)のエラー出力を抑制します。Warningエラーが出ないようにする根本解決策は見つからず、出力されても実行結果が正しいようなのでエラー非表示にしました。

今日は何の日

検索結果では、グレゴリオ暦で年始からの通算日Today’s Elementと1差、異なります。元日を0にするか1にするかの違いから生じます。 無料で使わせていただいて恐れ多いことではありますが、今年がうるう年かどうかは自明であり(閏年では〇〇日目)という文面を改訂していただければありがたかったです。

以下の検索結果は毎日、毎日、異なる結果になります。

11月25日 wikipedia検索
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

 

Today’s Element

今日は何の日、第4弾の動作

今日の日の三要素を表示するサンプルコードを示します。

三要素

①本日の日付
②曜日
③元日からの通算日

 

サンプルコード

<div id="enchant-stage" style="width: 580px; height: 600px;"></div>
<script src="http://aidesign.lolipop.jp/wp-content/uploads/2014/11/enchant.js" type="text/javascript"></script><script type="text/javascript">// <![CDATA[
const X0 = 60;               // 画像の位置X
const Y0 = 50;               // 画像の位置Y
IMAGE = {icon0: "http://aidesign.lolipop.jp/wp-content/uploads/2015/06/week8A.png"}; 
enchant();                   // ライブラリの初期化
myWeek = new Date();             // 現在日付を取得
myYear = myWeek.getFullYear();   // 年
myMonth = myWeek.getMonth() + 1; // 月
myDate = myWeek.getDate();       // 日
myDay = myWeek.getDay();         // 曜日
myHour = myWeek.getHours();      // 時
myMinute = myWeek.getMinutes();  // 分
mySecond = myWeek.getSeconds();  // 秒

myMess1 = myYear + "年" + myMonth + "月" + myDate + "日";
myMess3 = myHour + "時" + myMinute + "分" + mySecond + "秒";
myMess = myMess1 + " " + myMess3;
//alert("WhatDay-0 "+myMess+" "+myDay);

var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;

date = new Date("1/1/"+myYear); // 1970-01-01から今年の元日までのミリ秒
var time = date.getTime();
var curr = myWeek.getTime();    // 1970-01-01から今日までのミリ秒
var total = Math.floor((curr-time) / day);
//alert("ANS="+curr+" time="+time+" answer="+total);

window.onload = function(){  // ロード時に実行する関数
  //alert("WhatDay-2");
  game = new Game(400, 200); // ゲームの画面サイズを指定し、領域を確保
  game.rootScene.backgroundColor = "palegoldenrod";
  game.preload(IMAGE.icon0);
  //alert("WhatDay-2A");
  game.onload = function() { // プリロード終了後に呼ばれる関数を指定する
    //alert("WhatDay-3");

    display(10, 25, myMess); // 今日の日付

    score = new Label("strID");        // ラベルオブジェクト
    score.color = "darkgreen";
    score.font = "normal normal 12px/1.0 monospace";
    score.text = "《今日は何の日》 Version 1.0.03";
    score.x = 4; score.y = 4;
    game.rootScene.addChild(score);

    //alert("WhatDay-4");
    word = new Label("str-0");         // ラベルオブジェクト
    word.color = "deeppink";
    word.font = "normal normal 30px/1.0 monospace";

    bear = new Sprite(120, 120);       // 目標の画像と座標を指定する
    bear.x = 20+X0; bear.y = Y0;
    bear.image = game.assets[IMAGE.icon0];
    bear.frame = myDay;                // 目標のx座標
    game.rootScene.addChild(bear);     // 目標を移動

    display(10, 50+Y0, "今日は");
    display(150+X0, 50+Y0, "曜日です");
    display(10, 125+Y0, "元日からの通算日="+total);
  }
  // ゲームのスタート
  game.start();
}

function display(x, y, string){
    idiom = new Label("str-1");        // 熟語
    idiom.text = string;
    idiom.x = x; idiom.y = y;
    idiom.color = "blue";
    idiom.font = "normal normal 20px/1.0 monospace";
    game.rootScene.addChild(idiom);    // 目標を移動
}
// ]]></script>
まとめ

現在日付と曜日はDate関数を呼び出すことで求めています。通算日は1970-01-01から本日までの経過時間と本年-01-01までの経過時間との差から算出しています。0が始値です。

年始からの通算日

曜日の画像はenchantライブラリの連続画像を部分表示するframe機能を利用しています。この機能を用いれば7枚の画像を細切れに用意せずとも7枚をつないだ1枚の画像で済みます。

ところどころ、alert関数に//が付加されたコメント文があり、デバッグの跡を見ることができます。

天気情報を取得する関数

経緯

10日間天気予報今日は何の日のソースコードを公開する一環として、この項をまとめます。以前に述べましたが、OpenWeatherMapを利用して天気情報を取得してみるの記事に力を得て、function.phpに組み込みました。

WordPressのバージョンは現在、4.2.2ですが、将来のバージョンアップに対応すべく子テーマにしています。

NewThemeWordPressカスタマイズは操作を誤ると甚大な損傷を受けることがありますので慎重な対応を要します。

子テーマ作成方法は、当ブログの
WordPressのカスタマイズ実践編
子テーマのCSSが反映されないとき
を参照してください。

天気情報取得ソースコード

実際、関数やショートコードは下図のようにPHPタグに囲まれます。

PhpTag

組み込む手順

ソースコードをダウンロードするにはここをクリックします。ダウンロードができない場合はテキスト画面が現れるのでコピー&ペーストにてSampleFunctions.txtをデスクトップ上に作成し、その後functions.phpにリネームします。このファイルは30行足らずのサイズです。

WordPressCustomizeここからは①WordPressのカスタマイズ実践編の手順にてchildフォルダにfunctions.phpが存在しているものとして話を進めます。WordPressカスタマイズが今回初めてならば、このたびのfunctions.phpが全内容になりますが、すでにある場合は追加される形になります。

換言すると最初に、従来からのカスタマイズfunctions.phpをデスクトップ上に用意し、今回の関数コードを先頭に追加します。次にファイル転送ソフトのFFFTPにて/wp-content/themes/childフォルダに上書きします。

元々のfunctions.phpは600行ほどのサイズで/wp-content/themes/twentyfouteen等にあり、WordPressシステムがブログ立ち上げ時このファイルに追加してくれます。小テーマのchildはtwentyfouteenの外にあるので、バージョンアップしても問題なく動作するようになっています。

話がくどくなりますが、子テーマを宣言しているのだから、システム固有のfunctions.phpには一切、手を付けません。

動作の確認

動作の確認はFFFTPにてchildフォルダのfunctions.phpを切り換え、ショートコードを[tokyo_weather city=”Tokyo,jp”]のように記述したページを開き、F5キーを押下すれば天気情報を取得する関数が動作します。[]は共に半角です。

最後に

2日間天気予報ショートコードをウィジェット欄で参照すれば、ウィジェット欄に天気予報が表示されます。画面サイズにより1行ぶんが2行にわたって表示されることがあります。

ここで示したサンプルコードは2日分ですが、最大16日まで拡大できます。openweathermap.orgからリリースされているドキュメントを読み、ダウンロードしたコードをじっくり眺めて改訂してください。

天気予報取得関数の内容を理解すれば、お天気アイコンをカレンダー上に表示できるようになります。

上図のように%表示の数字は降水確率を意味することが多いのですが、ここでは湿度を表しています。

元日からの通算日等のソースコードは次回になります。

今日一日、良い日でありますように!

Have a nice day!

今日は何の日、第4弾に相当する記事ですが、今日は何の日の記事を今回で完結するために、タイトルを変更しました。今日を有意義に過ごすために、今日という日の要素を以下に示します。
akinohana2
サポート項目は
①本日の日付
②曜日
③元日からの通算日
④東京の天気
⑤東京の気温

今日は何の日、第4弾の動作

 

今日と明日の天気予報
天気:最高℃~最低℃ 湿度 風速

0℃~0℃ 0% 0m

0℃~0℃ 0% 0m



終わりに

今日は何の日-0で掲げた内容から六曜日、占い、今日は何の日が欠落しています。六曜日を求めるには今日の日付をパラメータに指定して関数を呼び出しだけで算出できると見込んだのですが、そう簡単にことが進まず全項目をサポートするには、テーマが大き過ぎると判断して別ページにまとめることにしました。

今日は何の日を表示するにはWikiPedeaを参照する手法が確立しています。これも別項にて取り扱われます。ここまでのソースコードは次回に示されます。

おまけ

天気取得関数がopenweathermap.orgによってサポートされています。プログラミングのためのドキュメントが用意されていますが、連想配列の形式を理解してプログラムコードに反映するのにちょっと時間がかかりました。データが1つしかないのに配列になっていましたが、拡張用にたまたまそのようになっており、[0]を省略していたために誤動作していました。

ウィジェット欄に表示されることも考慮にいれフォントサイズを小さめに設定しました。詳しくは次回に公開されるソースコードをご覧ください。

時の記念日

時への雑感

6月10日は『時の記念日』です。日本人の時間に対する感覚は鋭敏と言えましょう。狭い国土に大勢がひしめき合っているのですからこれもやむを得ないところです。

川越の時の鐘この感覚も「所変われば品変わる」で一律とはいきません。寒暖の差が小さい地区や大きな土地柄では30分、1時間の遅れなど丙チャラのようです。

日本の中核企業が業務転換で中国企業の傘下に治まり、かつてのエリート幹部が新体制のトップから時間についての細かな訓示を受けているニュースが記憶に残っています。

悠久の時の流れの前では会議が1,2時間遅れようとも大した問題ではない、その国の実情に合わせて欲しいという意味合いでした。

水時計時の記念日の本題に戻して、江戸時代に庶民は寺院が鳴らす「時の鐘」で生活リズムを整えていました。その頃、時の刻み方は不定時法で《日の出およそ30分前と日没およそ30分後の間を6等分して一刻(いっとき、2時間)》としたということですが、日の出30分前にはまだ太陽が昇っていませんから時間の始まりを知ることができません。雨の日も然りです。

明け方、払暁直前の明け六つに鐘を鳴らすとき、寺院の打鐘担当者は如何にして鐘を鳴らしたのでしょう。大名、豪商、寺院は不定時法の時計を持っていたでしょうから、それを基にしたと推測されます。

万年時計あるいは定時法の時計は割と簡単に入手できますから、不定時法への換算表が存在したかも知れません。江戸では徳川家菩提寺の寛永寺が最初に鐘を撞き末寺はそれにならったとされています。

今ではうるう秒も存在し、中央で制御した時刻を電波で受け取る方式が定着しています。時は誰にでも平等に24時間を与えられています。時間は有効に使ってこそ価値があります。

遊び心から鐘への想い

ジャン和鐘は余韻が特長と言われます。競輪では残り一周というときに打鐘します。ジャンと呼んでいます。陸上中距離走でも鳴らしていると思います。これは時間というより、トップ選手のタイミングに合わせて参加者全員に最終周を知らせているものです。

今日は何の日-2

今日は何の日、第3弾
カーネーション
サポート項目は
①本日の日付
②曜日
③元日からの通算日
④東京の天気
⑤東京の気温

ブラウザについて

ローカル環境でhtmlを作成し、動作を確認します。ブラウザにより動作が異なることがあるので、IE,Google Chrome, FireFoxで確認したところ、本文はそのままで登録画像を改訂した場合、Google Chromeはなかなか反映されず四苦八苦しました。納得のいかない動作が起きた場合はブラウザを替えてテストすることも一法です。

軌道修正

Flower2ブログ本文記事にopenweathermapからJSONデータを取得し天気情報を表示することは、一筋縄ではありません。

html5ファイルを作成してローカル環境で実行する方式は簡単に期待した動作を得ることができましたが、ウェブ上では様々な動作の同期処理に難解なところがあります。

天気情報を取得するに当たり、OpenWeatherMapを利用して天気情報を取得してみるを参照して、当初のJavaScriptからphpによるプログラミングに切り替え、WordPressのシステムファイルであるfunction.phpに織り込むように軌道修正しました。

次回は天気情報の日本語化を考えています。

今日は何の日、第3弾の動作
WordPlaying


今日と明日の天気予報
天気:最高℃~最低℃ 湿度 風速

0℃~0℃ 0% 0m

0℃~0℃ 0% 0m



今日は何の日-1

今日は何の日、第2弾カーネーション

サポート項目は
①本日の日付
②曜日
③元日からの通算日

WordPlaying

まとめ

完成したところから公開です。元日からの通算日を表示するに当たり、通 算日を算出するJavaScript関数を探しても見つかりませんでした。そこでDate()関数のgetTime機能により1970-01-01からの通算ミリ秒を取得し、今年の元日との差を求め24時間のミリ秒で除して値を少数以下切り捨てて算出しています。

年始からの通算日は0~364(365)の値を取ります。 “http://ja.wikipedia.org/w/api.php”で求めた値とは1の差が生じます。たとえば、5日ごとに繰り返し作業をする場合、通算日を5で除しその剰余(0~4)を求めます。このような場合は始値を0に設定する方が使いやすいです。

ソースコードは最後に一挙に公開されます。