休肝日カレンダーを作った

休肝日カレンダーを作った。

先日の健康診断で肝機能に若干の異常値がでました。

医者が言うには
問題となるほど高い数値ではないが、酒の飲みすぎが原因なのは明らか。
毎日飲んでいるようなので休肝日を少なくとも2日作れば数値は低くなっていくはず。
とのこと。

習慣になっているので難しいですし、付き合いもあるのでどうすればいいか考えた末

休肝日カレンダーを作った。管理者:妻。

実行できたら塗りつぶすシステム。
基本的に月曜日と火曜日を「飲まないとエライ日」にした。
水曜日は「飲まなければスゴイ日」とした。
木曜から日曜日は「飲んでよし」とした。

休肝日が休日や飲み会などに重なった場合は日にちをずらしてOKにした。

ファイル張っておきますー。休肝日2011年度版

EC-CUBE:2.11 カスタマー情報の追加メモ

1:データベース:dtb_customerに必要な項目を追加

2:それらの項目にセレクトボックスなどの配列情報があればマスターデータも用意する。マスターデータのテーブルは[mtb_]で始まるテーブルとして設置。

3:下記、拡張クラスのfunction init()の中で新しい変数を設定し追加したマスターデータを代入しておく。

  • data/class_extends/page_extends/admin/customer/LC_Page_Admin_Customer_Edit_Ex.php
  • data/class_extends/page_extends/admin/customer/LC_Page_Admin_Customer_Ex.php
  • data/class_extends/page_extends/admin/mail/LC_Page_Admin_Mail_Ex.php
  • data/class_extends/page_extends/admin/total/LC_Page_Admin_Total_Ex.php
  • data/class_extends/page_extends/entry/LC_Page_Entry_Ex.php
  • data/class_extends/page_extends/mypage/LC_Page_Mypage_Change_Ex.php
  • data/class_extends/page_extends/shopping/LC_Page_Shopping_Ex.php

[php]
function init() {
parent::init();
$masterData = new SC_DB_MasterData_Ex();
$this->[任意の編集名:例:arrHeight] = $masterData->getMasterData(“[追加したマスタデータテーブル名:例:mtb_height]”);
}
[/php]

4:テンプレートを修正する

  • /data/Smarty/templates/default/frontparts/form_personal_input.tpl
  • /data/Smarty/templates/admin/customer/edit.tpl

[php]
<!–{if $flgFields > 1}–>
<tr>
<th>[タイトル:例:身長]<span>※</span></th>
<td>
<!–{assign var=key1 value=”`$prefix`[キーとなる変数:例:height]”}–>
<!–{if $arrErr[$key1]}–>
<div><!–{$arrErr[$key1]}–></div>
<!–{/if}–>
<select name=”<!–{$key1}–>”>
<option value=”” selected=”selected”>身長を選択</option>
<!–{html_options options=[マスターテーブルの変数名:例:$arrHeight] selected=$arrForm[$key1]}–>
</select>
</td>
</tr>
<!–{/if}–>
[/php]

  • /data/Smarty/templates/default/entry/confirm.tpl
  • /data/Smarty/templates/admin/customer/edit_confirm.tpl
  • /data/Smarty/templates/default/mypage/change_confirm.tpl
  • /data/Smarty/templates/default/shopping/confirm.tpl
  • /data/Smarty/templates/default/mail_templates/order_mail.tpl

[php]
<tr>
<th>[タイトル:例:身長]<span>※</span></th>
<td>
<!–{$arrForm.[変数名:例:height]|h}–>
</td>
</tr>
[/php]

5:データチェックを追加する。データチェックのヘルパークラスの拡張クラスにファンクションを追加する。
/data/class_extends/helper_extends/SC_Helper_Customer_Ex.php
sfCustomerCommonParam()をオーバーライドし、ファンクションsfCustomerCommonParamEx()を追加で呼ぶようにする。
[php]
function sfCustomerCommonParam (&$objFormParam) {
parent::sfCustomerCommonParam($objFormParam);
SC_Helper_Customer_Ex::sfCustomerCommonParamEx($objFormParam);
}

function sfCustomerCommonParamEx (&$objFormParam) {
//カスタマイズここから
$objFormParam->addParam(“身長”, ‘height’, STEXT_LEN, ‘n’, array(“EXIST_CHECK”, “SPTAB_CHECK”, “MAX_LENGTH_CHECK”));
//カスタマイズココまで
}
[/php]

2.11.x系でのディレクトリ定義

<!--{$TPL_URLPATH}-->
/html/user_data/packages/default/

<!--{$smarty.const.USER_TEMPLATE_REALDIR}-->
html/user_data/packages/

<!--{$smarty.const.TOP_URLPATH}-->
/html/

<!--{$smarty.const.ROOT_URLPATH}-->
/html/

<!--{$smarty.const.HTML_REALDIR}-->
/html/

<!--{$smarty.const.HTTPS_URL}-->
https://ドメイン

<!--{$smarty.const.P_DETAIL_URLPATH}-->
/html/products/detail.php?product_id=

<!--{$smarty.const.IMAGE_SAVE_URLPATH}-->
/html/upload/save_image/

<!--{$smarty.const.DATA_REALDIR}-->
/data/

<!--{$smarty.const.CLASS_REALDIR}-->
/data/class/

<!--{$smarty.const.CLASS_EX_REALDIR}-->
/data/class_extends/

<!--{$smarty.const.TEMPLATE_REALDIR}-->
/data/Smarty/templates/default/

<!--{$smarty.const.TEMPLATE_ADMIN_REALDIR}-->
data/Smarty/templates/admin/

<!--{$smarty.const.TEMPLATE_TEMP_REALDIR}-->
html/upload/temp_template/

<!--{$smarty.const.GRAPH_URLPATH}-->
/html/upload/graph_image/

<!--{$smarty.const.IMAGE_TEMP_URLPATH}-->
/html/upload/temp_image/

<!--{$smarty.const.CART_URLPATH}-->
/html/cart/

<!--{$smarty.const.ADMIN_LOGIN_URLPATH}-->
/html/shopmng/

<!--{$smarty.const.ADMIN_SYSTEM_URLPATH}-->
/html/shopmng/system/

<!--{$smarty.const.ADMIN_PRODUCTS_URLPATH}-->
/html/shopmng/products/

<!--{$smarty.const.ADMIN_ORDER_URLPATH}-->
/html/shopmng/order/

<!--{$smarty.const.MOBILE_IMAGE_URLPATH}-->
/html/upload/mobile_image/

<!--{$smarty.const.MOBILE_TOP_URLPATH}-->
/html/

<!--{$smarty.const.MOBILE_CART_URLPATH}-->
/html/cart/

<!--{$smarty.const.MOBILE_P_DETAIL_URLPATH}-->
/html/products/detail.php?product_id=

京都、会席、貴船

産前旅行で京都に行ってまいりました。
※このブログでは奥さんが妊娠していることを書いていませんので突然ですが、10月末に生まれます。男らしいです。

さて、そんなわけで夫婦二人の最後の旅行というわけで京都に行こうということになり、先週いってまいりました。
ちょっと背伸びして贅沢しようということで、一日目の夕食はカウンターの会席料理「阪川」へ。
祇園の雰囲気に包まれた、知らなかったら見つけられない、高そうな店のアレです。
入る瞬間は緊張しました。一見さんということで入り口に一番近いカウンター席に案内される。あいにく写真をとることはしなかったのですが(雰囲気が壊れるので)、本当においしい料理の数々。見た目はきれいですが飾りつけていることはなく、質素な感じ。でも口に入れると、いつも食べてるものとは全然違うのでした。ボリュームもすごかったし(食べ切れなかった)、味も雰囲気も料理人もさすがでした。そして思ったよりも安かった。ココに決めてよかったです。

2日目は京都の夏といえばの貴船へ。と、よく知っている風にいいましたが旅行の直前までこの貴船の存在をしりませんでした。。知り合いに聞くと結構有名で、「川床」という川岸で食事をするという夏の風物らしく。中でも貴船という地区がもっともメジャーな場所らしい。ほとんどの店が「川岸」ではなく「川上」に座敷が用意されています。つまり自分がご飯を食べているその下を川が流れるというものです。よく知らなかったので中でも評判の店「ひろや」を予約。あとでわかったのですが一番高い店だったらしいです。。京都の夏は蒸し暑く街中では汗だくだくだったのですが、ここは25度くらいと聞き、ちょっと肌寒い感じさえしました。料理はとにかく見た目が風情あるものばかりでした。氷の器に刺身がのってたりします。前日においしいものを食べていたのでそれに比べれば味はそうでもなかったと感じました(たぶん錯覚ですが)。
貴船

夕飯もホテルのレストランで食事。ホテルの中はゆったりできます。最後に出てきたデザートが、なんと山椒のアイス。うまびっくりしました。

3日目はさすがに会席を食べる気にならず、ここが庶民の悲しくも素晴らしいところですが、どうしてもラーメンが食べたくなりました。ネットで調べても京都のラーメンはほとんどコッテリ。うーん。なるべくさっぱりなものがいいな。で、見つけたのが魚介とんこつの「麺や高倉二条」。京都では魚介がめずらしいそうですが、全国的に珍しいのは麺が全粒粉を使っているところ。そばのような麺です。おいしかったです。コッテリだったけど。

レンタルサーバーで困った。

レンタルサーバをお客様が借りて、IDとパスワードをもらい、いざ設定をしようとなったときに、それぞれの仕様があまりにもわかりづらかった。

■さくらのレンタルサーバ ビジネス
「マルチドメイン対応」となっているのに実際には中途半端な仕様でした。
たとえばaaaaaa.comとbbbbbb.comを二サイト設置して、それぞれinfo@aaaaaa.com と info@bbbbbb.comのメールアカウントを作りたいなんていうことは当たり前にあるはずだがこれができない。
電話したところによると「できる」とはいうのだが、その意味はaaaaaa.comとbbbbbb.comのinfoアカウントが同じメールボックスになるので二つとも同じメールがくる、というもの。つまりメールを送りたい側にとってはinfo@aaaaaa.comとinfo@bbbbbb.comは同じメールアドレスになります。これは「できる」とはいわないでしょう。
このような仕様は中途半端といわざるを得ません。「マルチドメイン対応」と広告を打っていいものか疑問があるし、契約者に対しての説明が十分でないと思います。

また、DNSの設定も独特です。「会員メニュー」と「サーバーコントロールパネル」なるものがあるのですが、「サーバーコントロールパネル」の方ででさくらインターネットで取得したドメインの設定ができます。ところが、「会員メニュー」でも設定ができてしまいまして、それをすると通常「サーバーコントロールパネルで設定できるはずの項目が表示されない上、「サーバーコントロールパネル」で再度ドメイン設定しようとしてもエラーが吐き出されるような状態に陥ります。このような仕様も大変困ったものです。

■ファーストサーバー ギガント
このプランはもう新規では申し込めないのですが、まずデータベースが使えないです。いまどき珍しい。電話して聞いたらSQLightは使えますよと。。ギガントのプラン自体が古い仕様なので仕方がないともいえるのかもしれないが、そうであれば他社の多くのレンタルサーバーサービスと同じように無償で機能をアップグレードしいてほしいのですが、アップグレードは新規で新しいプランの申し込みになるとのことです。これはアップグレードとはいわず、単によりよいレンタルサーバーへの引越しです。

さらに面倒なのがDNSの変更でした。データベースが使えないなら別のサーバーにとりあえず移動してDNSだけ変更したいと申し出たところ、DNSの変更をするためにはドメイン管理の解約手続きをしてほしいとのこと。ドメイン管理の解約?いえいえ、解約をしたいわけではなくてDNSの変更をしたいだけなんですけど。。といったところ一度ドメイン管理の解約をしないとそれができませんとの回答。ドメイン管理の解約ってなんですか?ドメインの解約とは違うんですか?と聞いたところ、ドメイン管理を解約すると「Doレジ」というところに管理が移動するらしい。。それはお客側にしてみれば解約ではないですよね。まったく意味のない手続きをやらされた上に最低1週間はかかりそうでした。そもそもDNSを変更できないドメイン管理ってなんだろうと思います。

■というわけで、
過去の負の遺産をがっつり引きずっているレンタルサーバーは避けて通るのが懸命だと、改めて実感しました。

iPad熱狂の中

スマートフォンが登場してからマルチデバイスの時代が来ると誰もが予想し、iPadの登場でそれが確信に変わりました。音楽を持ちあるくという衝撃をSONYが打ち出し、AppleがiPodでもう一度革新させ、それ以来Appleは様々なiPodを登場させ、人々のライフスタイルに浸透していきました。さらにiPhone発売以降ではAppleはデバイス市場において巨大な1勢力として世界に名乗りを上げたわけです。

そしてiPadの登場です。この斬新なプロダクトに多くの人が来る未来を重ね合わせています。

しかし、iPhoneの登場から少しある種の「違和感」を感じいていました。今となっては当然のことを言うようですが、iPhoneで使えるアプリケーションはApple製品でしか使えません。アプリケーションはAppleの承認が必要です。そして多くのサイトで使われていいるFlashがiPhoneでは見られません。

この「違和感」はiPadの登場でより強まりました。またFlashでiPhoneアプリを作れないように制約されたことで、なんとなく好きなAppleが変わっていってしまうような気にもなりました。

Apple が現在の地位に上り詰めたのはApple製品を独特に保護してきたからです。Appleが守り続けていると思うのは、陳腐な言い方になってしまいますが「オシャレ感」なのではないかと思います。そしてAppleにとってはこの「オシャレ感」はファンに対する「信頼」そのものなのだろうと思います。

長い間Macが存在し続けられたのはこの「信頼」があったからでしょう。
そして使われるアプリケーションを制限するのも、Flashを制限するのも、この「信頼」を守るためなのではないか。どうやら私が感じていた「違和感」とはAppleへの「信頼」の形が、単なる「オシャレ感」から、人々のライフスタイルを作り出していくような本当にいい製品を作っているという「信頼」へと変わっていったことによるもののようです。逆に言えばAppleの製品が人々に信頼されていけばいくほどAppleが守り続けてきたすばらしさが色濃くなってしまうということです。

それはつまりこういうことです。Windowsにはウィルスが多い。Appleにはエロがない。この事実は見る人によって違ってきます。Windowsはシェアが多く、自由。Appleには少しのファンしかおらず、選択肢が少ない。
つまりAppleが大きくなればなるほど、ネガティブな側面が色濃くでてきてしまうのではないかと思っているわけです。

Microsoftに変わってAppleはGoogleを敵に回しています。iPadの中身をAndroidにしてしまうことで、それはそれで1つ価値あるプロダクトになりえるはずです。そしてGoogleは「自由」の象徴です。こう考えていくとなんとなく、[Apple II]登場以降のWindowsとMacの歴史を繰り返していくのではないかという気がします。

joomlaでpreタグ内の改行がbrタグに自動的にに変換されてしまう件について

joomlaでeditorにJCEを使用し、記事にコードをのせるためにsyntax highlighterを使ったときに、せっかくコードをきれいに保存してくれるのにタイトルのような余計な機能のせいで、見苦しくなってしまう。こういった「余計な機能」はセキュリティーやユーザビリティの観点から「妥当な機能」なのだろうが、やっぱり柔軟性にかける。このような記事に対するユーザーへの制限はjoomlaに限らないが、javascriptがかけなかったり、tableがかけなかったりするのはつらい。。

今回はjoomlaのpreタグ内の改行がbrタグに変換されてしまうのを回避すべく、まさぐってみた。
ただし。コードを把握しているわけでなく、適当にいじったら出来たというメモ程度のものなので、まねしないほうがいいかもしれません。

/plugins/editors/jce/tiny_mce/tini_mce.jsを編集
1:「j=j.replace(/\r?\n|\r/g,” “);」の一文を削除(これをやるとpreタグに限らず全部のタグに改行が可能になる。)
2:「{pattern:/(<pre[^>]*>)(.*?)(<\/pre>)/g,encode:1},」の一文を削除(これをやるとpreタグ内の改行がbrタグに変換されなくなる。)

上記の方法では結局保存したときに元に戻ってしまう模様。コードと数時間格闘したが、結局わからずじまい。。。

途方にくれていたとき、ハッと発想の転換が。

「そうだ。Syntax Highlighter側でbrタグを改行であると認識させちゃえばいいんじゃね?」

というわけで、またまた力技だが
plugins/content/syntaxhighlighter/core/shCore.js を編集するのですが、
plugins/content/syntaxhighlighter/src/shCore.jsが元のファイルのようなので
予め、plugins/content/syntaxhighlighter/core/shCore.jsをそのファイルで上書きます。
そして、plugins/content/syntaxhighlighter/core/shCore.js を編集。

1081行目あたりにある for(var i = 0; i < elements.length; i++) というループの中で、
elements[i]がtargetという変数に代入される前に下記の2行を加えてelements[i]の内容を書き換えます。

elements[i].innerHTML = elements[i].innerHTML.replace(/\<br*\>/g,”\n”);
elements[i].innerHTML = elements[i].innerHTML.replace(/\<*code*\>/g,””);

2行目はjoomlaで編集してるとpreタグの中に入ってくるcodeタグもついでに消しています。

これでとりあえず解決(?)です。

光より速い通信技術

少し前に、事業仕分け騒動で「光より速い通信技術」という発言がインターネット上で話題になりました。この発言に疑問を持った方の言い分は「光より速いものなんてあるわけないじゃん」ということらしいのですが、結論からいえばそれは誤解でしょう。ここで言っている「光」とは「フレッツ光」とか「auひかり」とかのことを指しているわけで、つまり「それらのサービスより速い通信技術」というわけです。

そう、インターネットはまだまだ速くなる余地があります。最近IBMワトソン研究所がゲルマニウム半導体を用いた超高速光受信機の開発に成功したそうです。これにより従来の通信速度を4倍に上げることが出来るとのことです。つまり、光回線は様々な箇所でインプット・アウトプットを繰り返していて、それらを行っている通信機器の性能がボトムネックになっているので、性能を上げることによって速度を上げられることになります。

しかし実際には通信はたくさんの場所を経由しているのでどこかでボトムネックがあれば恩恵は感じられないかもしれませんね。

鉄よりも硬いプラスチック

理屈はよく理解できていないのだが、プラスチックがなぜ軟らかいのかというと構成原子が整列できていない(つまり結晶化されていないということ)かららしく、原子を整列させることが出来ればプラスチックは硬くなるということらしい。

で、出来たんですって。広島大学さん。しかも簡単な工程(過冷却状態で融液を押しつぶす)を一つ増やすだけで出来たらしく、ということは普通のプラスチックよりもちょい高めの値段で売ることができるそうです。しかも不純物を入れることがないのでリサイクル可能。ただ、鉄よりもというのは同重量の鉄よりもという意味らしいです。

引っ張りに関して鉄鋼と同程度の強度にするためには2倍の厚みが必要。でもそのときの質量は4分の1ですむようです。うーん。厚みが2倍というのは小さいパーツには向かないかもしれないですね。車体につかう鋼板の代替品に使うことなどが想定されていて、とりあえず食品容器などで試すそうです。硬さが必要だけど軽いと良いものはたくさんあるから無限の応用が期待できそうですね。