ほんっとにはじめてのHTML5

WebデザイナーさんによるHTML5+CSS3の解説。

HTML5/CSS3超初心者レベルからのスタート – diary 六帖

この日から、二週間ほどかけて少しずつ読み通した。分かりやすいしサンプルコードは上手だし素晴らしい!そして自分がどれだけHTMLもCSSも全く知らなかったか痛感させられた。

モダンなHTMLは文章構造の骨組みだけを提供し、CSSですべてをデザインする。今の時代、HTML5で必要な機能はほぼすべて提供されており、CSSの工夫によりいくらでも視覚表現を生み出すことができる。驚いた。また、divタグを初めとするボックス要素の組み合わせ、入れ子、配置によってあらゆるデザインを構築することができる、、というコストがかからずお手軽かつ奥が深いデザインの世界の入り口に立つことができたような気がした。

一番感銘を受けたのは次のページだ。

正に私が作った

TrainNavi2

のようなデザインのデの字も見当たらないようなフォームが、CSSの力により見違えるような変身を遂げる劇的ビフォアアフターを見ているような気にさせられた。これ、CSSでちょいちょいプロパティを追加してるだけなんだぜ。。

卒業制作として、日曜日に次の荒涼とした自サイトを改造してみようと思った。

六帖webアプリ

管理人さんはプログラミングが主業ではないのでjavascriptは何となく理解してるだけと言っているが、canvasの扱いを見る限りそこらへんのプログラマーのレベルはとっくに超越している。画像処理は面倒な数値処理やちょっとした数学が絡むため、複雑になりやすく意味不明のコードができやすい。ゲームプログラマーってすごいよなぁといつも思っている。座標軸回転、拡大縮小、z座標の取り扱い、最近ではリアルタイムアニメーション(近日更新らしい、期待!)などをマスターした管理人さんのスキルは十分すごいと思う。


PHPイミフ仕様1 strpos

次のコードは動作しない。

<?php
$str = "ゆっくりしていってね";
$pos = strpos($str, "ゆっくり");
if($pos != false)
{
echo "ゆっくりが見つかった";
}
?>

なぜなら、上のコードならstrposは0を返すので、0とfalseは==や!=のような演算子なら等しいものとして扱われてしまう。さらに厳格な===や!==を使わなければならない。

<?php
$str = "ゆっくりしていってね";
$pos = strpos($str, "ゆっくり");
if($pos !== false)
{
echo "ゆっくりが見つかった";
}
?>

これなら動作する。なぜ見つからなかったら-1を返す仕様にしなかったんだろう。。


一人の発言によって金が秒速で動くこの世の中

昨日一瞬で円が2円以上も上がったといううわさを聞いた。調べると、黒田総裁の一言が原因だったらしい。

 

http://livedoor.blogimg.jp/masorira-kabu/imgs/a/c/acffa165-s.png

えらいこっちゃ。FXやってる人は何人か全財産ぶっとばしてそうだ。一人の口によって相場がこんなに動くものなのね。

円高になるのは外国人、特にアメリカ人が大量の利益確定売りをしたということだ。正直なところ、黒田君の機嫌一つで国が大口発注したりするとは思えないので、彼らにとっては材料なんか一つのきっかけに過ぎないわけで「みんなが売るだろうから俺も今のうちに売っとこ」と思って売りまくるわけだよね。それが大人数になるとこんなことになるのか?

ところで同日同時刻、日経平均も150円ほどの大幅な下げを経験している。円安と株価は相関関係にあるのか?こちらをご覧あれ。

30日間(2015/4/29->6/10)の相関係数0.88112
この期間の為替ドル円と日経平均との関係は、正の相関関係が強いと言えます。

まじですか。円安と日経平均は運命共同体なのですか。日本は輸出産業しかないということなのか悲しい。

なお新興市場も昨日の下げで打撃を受け、私のポートフォリオも少々のダメージを受けた。今日はドル/円が元に戻ったので日本に金が流れ込み、株価も反発した。アメリカ様との通貨の力関係で我々の財産の多寡が決まる。しかも人間の気分次第。寒い世の中だと思わんかね。


VBA:それは全角と半角、大文字小文字を区別しないアバウトな言語

仕事でAccessVBAを使っていて1点ハマったことがあった。CSVファイルのカンマ区切りの指定したカラムの文字列を取り出す、という私ではない誰かが作った関数に欠陥があるので、その調査をしていた。

'※記述は変えてあります
Public Function mid_between_comma(strin As String, strout As String, J As Integer) As Integer
Dim i As Integer, AAA As Integer, cnt As Integer
Dim cnt_X(2) As Integer, cnt_A(2) As Integer
Dim strtemp As String
cnt = 0
For i = 1 To Len(strin)
strtemp = Mid(strin, i, 1)
If strtemp = "," Then
cnt = cnt + 1
If cnt = J Then
cnt_X(1) = cnt
cnt_A(1) = i
End If
If cnt = J + 1 Then
cnt_X(2) = cnt
cnt_A(2) = i
End If
End If
Next
'以下略

これだけ見ると動作しそうだ。しかし、次のような行を読ませるとまともに動作しない(内容は変えてあります)。

5,55,5555,55,5555,5555,5555555555,5555,555555,”ジョセフ・ジョースター,きさま!,見ているなッ!”,55,555,5,5555,5,5,5555,5,5,5,5,5,5,5,”5,55,55,5555

『,”ジョセフ・ジョースター,きさま!,見ているなッ!”』このカラムを丸ごと取り出したいのに、全角カンマが何故かセパレーターと認識され、例えば『”ジョセフ・ジョースター』だけが取り出されてしまう。理由がわからないので上記のコードをデバッグしていた。すると

If strtemp = "," Then

なんとここ、strtempに全角カンマが入っていても、Trueとなった!!あほか!!!!
カンマだけなのか?とデバッガ上で次のように試してみた。

"S" = "S" 'True
"0" = "0" 'True
"a" = "A" 'True
"0B1" = "0b1" 'True

おいマジかよ!アンビリーバボー!ありがた迷惑!
というわけで、VBAを扱う方は注意!彼のイコール演算子は、全角半角、大文字小文字を区別してくれない。丹精込めて作成したコードが思わぬ誤動作をしているならば、このクソみたいな仕様が原因かもしれない。。なお、VB.NETでは、上記の比較は全てFalseになる。それがまともな判断だと思う。
それでもExcelやAccessで前時代的なVBAを使わなければいけない貴方は次のメソッドを使いましょう。

StrComp(",", ",", vbBinaryCompare) 'False

夢で蹴りたい――日本の戸籍システム、マイナンバー

訳あって親との交際を絶っている。

もうずいぶん昔に家を飛び出して以来数十年にわたり、住所を変えるごとに住民票を親に取られ、嫌がらせをされた。嫌がらせをされるたびに引っ越しを繰り返し、10回を超える引っ越し費用のために貯金が全部飛んだ。今では借金を背負っている。

日本では親族が合法的に住民票を取得できる。住民票どころか、戸籍も閲覧できる。戸籍の附票も閲覧できる。附票を見れば転居した履歴まで全部わかる。戸籍から配偶者の家族の情報だって取得できる。何だこの制度!?親は弁護士に頼んで戸籍謄本や附票を取得していることがすでに分かっているが、実は弁護士に金を払わずとも、親自身が取得したってなんの問題もない。これに対抗するには、住民票と居住地を乖離させるしかない。

配偶者のDVやストーカーが原因で住民票と異なる住所に転居した場合については、昨今では法律が整備されているため、転居先で国民健康保険や医療費給付、住民票の閲覧制限などのサービスを受けることができる。

しかし親が自分の居所を嗅ぎまわるために住民票を放置して転居した場合については法律が存在せず、上記のサービスは一切受けられない。役所に相談して全部拒否された。住民票と居住地が一致していないことを役所が把握すれば最悪、職権で住民票からの抹消もありうる。と役所に言われた。親のせいで、国民としてカウントされなくなるのだ。

だからといって生命が奪われるわけではないのだが、困るのは保険証が交付されないことだ。本人確認が必要な手続きは一切できない。例えば証券口座の開設ができない。私は株取引したくてもできないまま一生を終えるかもしれない。医療費も10割全額自己負担になるので、医者にはかかっていない。

さて最近、マイナンバーなる牛糞を発酵させたような制度が導入されようとしている。マイナンバーは住民登録地に郵送される。私はこのままだとマイナンバーを受け取ることはできない。

報道を見るとマイナンバーは来年中にでも会社に知らせなければいけない見込みである。私のようなケースは一体どう会社に説明すればいいのか。親から逃れるために居住地と住所を一致させることができないのでマイナンバーはわかりません。で通るのか!?

私と同じ思いをしている人たちは他にもいる。 blog.jjseisakuken.jp

今日、親を蹴り飛ばす夢を見た。実家に恋人と押しかけ、親がクソみたいな態度を取ったところで腹が立って蹴っ飛ばしたところで目が覚め、現実でも夢と同じ右足が蹴りだされていた。奴らが早く死んでくれれば、こんな思いしなくていいのに。


太田 忠 – 賢い投資家必読! 株に強くなる本88

★★★★☆

著者

太田忠は証券会社から独立した投資家、企業化。ドイチェアセットやらJPモルガンやら、有名どころの外資企業の出身である。

投資講座、株式投資入門、資産運用なら太田忠投資評価研究所株式会社

彼は文学部出身という引け目を武器に変え、25年で2万冊の蔵書を蓄えた。見習いたいものだ。

内容

本の紹介は多岐に渡る。ハウツー本や投資の古典から、歴史書・フィクション・漫画にまで及ぶ。88冊紹介されていたうち、自分が読んだことのある本は4冊。それらの本の紹介文は、所々つまみ食いしたまとめにすぎないという印象が強い。他にもちょっとこじ付け的な本や、後半の紹介が端折られていて明らかに最後まで読んでいない本があったりして雑な点も見受けられるが、全体として紹介されている本のレベルは高い。7割くらいは、読んでみたいと思わせるような本ばかりだ。他人が本を紹介してくれるというのは本当にありがたい。自分一人ではそれらの本に辿りつくことができないから。

「敗者のゲーム」「ウォール街のランダム・ウォーカー」のような定番書はもとより、「本間宗久相場三昧伝」「火星からの侵入」「資本主義の終焉と歴史の危機」「証券投資の思想革命」「行動ファイナンスと投資の心理学」ここら辺は古本屋で見つかり次第即購入したい本だ。

買いか?

読む価値はあるが800円は高い。ブックオフで100円で売られていたら買うので十分。


75 Jahre Donaueschinger Musiktage 1921-1996 (CD10) Pierre Boulez, Karlheinz Stockhausen

★★★☆☆

ブーレーズ先生全然わかりませんよ。。1曲目は初出1958年という早すぎたノイズ音楽。異様、という感想しかつけられない。残りは意味不明!!音楽っていったいなんなんじゃろうねぇ。

Track List:

     1     
Poésie pour pouvoir, for 5-track tape and 3 orchestra groups
Pierre Boulez
                
    2     
Structures, Book II, for 2 pianos
Pierre Boulez
                
    3     
Structures, Book II, for 2 pianos
Pierre Boulez
                
    4     
Structures, Book II, for 2 pianos
Pierre Boulez
                
    5     
Kontra-Punkte, for 10 instruments
Karlheinz Stockhausen

 


PHPフリーダムその4、可変変数による関数コール

$変数名()
で変数名と同じ名前の関数をコールできる。

<?php
switch ($which) {
case 'first':
first();
break;
case 'second':
second();
break;
case 'third':
third();
break;
?>

これは次のコードと等しい。

<?php
$which();
?>

何でもありだな。$whichの名前をもつ関数がなければ当然ランタイムエラーなので、次のようにしてエラーを予防できる。

<?php
if (function_exists($which)) {
$which();
}
?>

PHPのゆるーい型付け、タイプヒンティング

PHP5で導入されたタイプヒンティング。関数の引数に型情報を書くことができる。

<? php
class Entertainment {}
class Clown extends Entertainment {}
class Job {}
function handleEntertainment(Entertainment $a, callable $callback = NULL)
{
echo "Handling " . get_class($a) . " fun\n";
if ($callback !== NULL) {
$callback();
}
}
$callback = function()
{
// なんかする
};
handleEntertainment(new Clown); // 動作する
handleEntertainment(new Job, $callback); // ランタイムエラー
?>

関数に型を付けることで、引数として与えるオブジェクトの種類を強制することができる。ただしスクリプト言語のサガで、実行時にしかエラーを検出できないのが欠点だ。TypeScriptみたいにコンパイルしないからしゃーないよねー。
更にもう一つ欠点がある。なんとスカラー型は使用できない。つまりint, stringを型情報として書くことはできない、、ってどこまで片手落ちなんじゃ!
もちろん型情報を省略することもできるわけで、PHPの型付け力は非常にゆるいものなのでした。


詰碁印刷のためのプログラム

詰碁を印刷できるプログラムが必要になった。

日本中で売られている詰碁集には限りがあり、買い占めていけばいずれ全部解き終わってしまう日がやってくる。

インターネット上、特に中国には大量のsgfファイルがあり、これを扱えるようになれば10年は詰碁に不自由しないだろう。

都合上webやPC上ではなく、印刷して使用したい。しかしsgfを扱うソフトは印刷機能が無かったり、あっても期待するような機能ではない。MultiGoの印刷機能はそれなりではあるものの、碁盤全体が必ず表示されてしまい紙が勿体ない。

またも、自分で作るしかないようだ。

HTML5+canvas+javascriptを使うのが一番手っ取り早いだろう。以前File APIの使い方を覚えた所なので、zipで圧縮したSGFファイルを一気に読み込んで問題集を作る、という形式にするのがベターか。これは完成したら公開できそうだ。