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ファイルを一気に読み込んで問題集を作る、という形式にするのがベターか。これは完成したら公開できそうだ。


CDレビュー: Yes – Drama (1980)

★★☆☆☆

えー。

うっそー!!!全然ドキドキしないよ!!!!どうしたんだYes!!!

このアルバムはヴォーカルのジョン・アンダーソンとキーボードのリック・ウェイクマンが脱退した後に作られたそうだ。ジョン・アンダーソンはYesの天から降ってくるような音の要であり、リック・ウェイクマンはクラシックの素養があるということなので、彼の魅力的な演奏も失われてしまった。私の大好きなパイプオルガンは彼が弾いたものだったのだろう。この二人が抜けたらあとはギター野郎しか残ってないんだから、そりゃーだめだ。ピューと吹くジャガーさん風に言えば「カラッカラのペランペランだ!」

 

プログレッシブロックの他のCDレビューはこちらです。


PHP、入れ子関数

PHPの関数は全てグローバル空間に配置されるため、どこからでも呼び出せる。
ただし、外側→内側の順で呼び出さなければならない。おそらく、外側の関数が呼び出されて初めて、内側の関数がグローバル空間に配置される、ということなのだろう。

function outer ($a)
{
function inner ($b)
{
echo "there $b";
}
echo "$a, hello ";
}
// outputs "well, hello there reader"
outer("well");
inner("reader");

ガーラに学ぶ仕手株の基礎知識

http://rokujo.hatenadiary.com/entry/2015/05/21/151402

このあと予想に反してしばらくの間ヨコヨコが続いたガーラ。

 

f:id:happyholiday:20150608150438p:plain

 

今日はとうとうストップ安を付け売買が成立しなかった。

f:id:happyholiday:20150608150454p:plain

 

AKBを投入して宣伝した肝いりのフリフオールスターズ。一体どのくらい人気なのかと思ってGoogle Playのランキングを見に行った。

f:id:happyholiday:20150608150602p:plain

うーん、221位。。レビューはどんなもんじゃろ?

 

f:id:happyholiday:20150608150623p:plain

メタボロにしか見えない。もともと砂上の楼閣だったんだから、こりゃ下がるわー。

 

これまでに学んだ仕手株の特徴

・大抵は赤字企業。PERがマイナスで割安割高が計れないため、過熱をストップさせる材料がない。

・負債依存が大きく、PBRが高い。

・時価総額が比較的小さい。高々2-300億円止まり。大口が数億動かすだけで簡単に株価操作できる。

・怪しい第三者割当増資を行っている。増資先は高値で株を売り抜ける。

・業績に即寄与しない材料をきっかけとして突然上がる。

大体これらに該当している。昨今の事例だと、ガーラ・リーバイスは真っ黒、ボルテージとGMOペパボが灰色に該当する。

これらの株は買いが買いを呼び多くの場合イナゴタワーを作る。イナゴタワーは絶対に崩れる運命にあるが、いつ崩れるかはわからない。1日で崩れることは少ないので、タワー発生1日目以前に波に乗った人間だけが得をする。ただし1日目はストップ高のことが多いのでほとんどの人間は買えない。つまりストップ高を付けた後に買った人間はみな損をする。しかしストップ高でも買おうと思う人間が多くなければイナゴタワーにならない。人間の欲望が生み出し、崩れ落ちる運命にあるバベルの塔そのものである。ただし塔を崩すのは神ではなく、大口機関投資家の金の力である。。情けなや!


The Rough Guide To Native American Music (1998)

★★★★☆

以前聴いた

The Rough Guide to Australian Aboriginal Music (1999) – diary 六帖

と同じで、侵略者にぶち壊されたアメリカ先住民の文化の悲哀を感じる1枚だ。2曲目Cherokee Morning Songや10曲目Are You Ready for W.O.R? なぞアメリカ文化に染まり切って堕落してしまっている。なんたることだ。

一方、7曲目Basket Danceや13曲目Victory Danceのようなトラディショナルな曲は燃える。そして極め付きは14曲目のこれ。

www.youtube.com

ひたすらMickey Mouse!!! Minnie Mouse!! Pluto!! イエァァァ---Super Star !!!と叫んで踊るこの曲は、アメリカ文化への怒りと投げやりな気持ちにあふれている。必聴。


株式市場6月第1週雑感、2173 博展、8170 アデランス、4929 アジュバンコスメジャパン、2198 アイ・ケイ・ケイ、3064 MonotaRO、9757 船井総研

先週の動き

3639ボルテージが先週だけで1.5倍になった。先月後半の花より団子効果から数えるともう2.5倍とすさまじい。しばらくの間は上下動が激しくなるだろう。スマホゲーム業界は本当に値動きが激しい。

また、以前から注目していた3908コラボスは月曜日にS高を付けた後、水木金と馬鹿みたいに上がってあれよあれよと1.6倍になったのち、金曜日に崖のように10%以上下げて終わった。私はS高翌日の火曜日の寄り直後に売ってしまった。結果的には大儲けを逃したが、実力不相応の上げだと感じて撤退した行動は正しかったと思っている。企業としては気に入っているので、本当は長期で持ちたかったのに。。

2930北の達人も悲しいことに仕手株化してしまった。気に入った企業はなぜみんなそうなってしまうのか。やはり月曜に買ったら金曜までに30%も値上がりしたのち、金曜ラストで7%下げて差引約2割増しとなった。コラボスとほぼ同じパターンだ。ここはもうしばらく粘ろうと思っている。この後下がって含み損になる可能性もあるが、長い目で見られそうな銘柄なので短期的には下がった方がうれしいかも。

9836リーバイスがグーグルと提携して5日連続ストップ高、株価4倍となっている。前期の決算を見たらここはひどい!ひどすぎる!!!ガーラもびっくりの当期純損失売上高比率9.6%!!10000円のジーンズを売ると会社が960円損するという恐ろしい数字だ。2012年から一直線の出来高ほぼ0の超低迷株価で、マイナスにマイナスを掛ければプラスになるとばかりの勢い。既にPBR15.62倍に達している。ジーンズメイトが0.58倍、ライトオンが0.79倍なのでどう見ても危険水準だが、明日上げるかもしれない。人間の欲と期待は本当に怖い。運のいい昔からのホルダーには朗報だが、参加者はみなギャンブラーだよ?

フィスコレポートを読む

2173 博展

http://www.fisco.co.jp/uploads/hakuten20150601.pdf

株式会社博展 HAKUTEN

イベントプロモーション会社だけあって、トップページがすっげー綺麗。重いけど。FireBugでデバッグしたらなんと、アニメーションをすべてCSS(をjQueryで操作)でこなしている。Flashなしでこんなにできる時代になったんだな。それほど難しいことはやってないようなので、私も見習いたい。株は業績に不確定要素が大きくリスキーで買えない。

8170 アデランス

http://www.fisco.co.jp/uploads/aderans20150601.pdf

株式会社アデランス

会長の名前が根本信男って、この業態を選択するために生まれてきたような人だな。株は人口減により斜陽産業なので買えない。

4929 アジュバンコスメジャパン

http://www.fisco.co.jp/uploads/adjuvantcosmejapan_20150602.pdf

ADJUVANT COSME JAPAN

化粧品会社。営業利益率約20%は立派な数字だ。サロンで購買意欲を高めて売るビジネスモデルで、ネット通販で出回る非正規商品のせいで売上減だそうだが、せっかく自然派を売りにしてるんだから、商品価値はかなり高いので、いっそネット通販を主にしてしまってもいいのではないか。大塚家具のようなもどかしさを感じる。

2198 アイ・ケイ・ケイ

http://www.fisco.co.jp/uploads/ikk20150602.pdf

感動のハウスウェディングをプロデュースするアイ・ケイ・ケイ株式会社

ウェディング会社。私が持っているエスクリと業態が丸かぶりだが、この2社は立地が綺麗なくらい分かれている。エスクリは東京が中心で、名古屋・大阪・仙台と大都市をほぼ押さえているのに対し、アイ・ケイ・ケイは九州が基盤で、広島・大分・福井・高知・佐世保など地方都市を中心に出店している。二社とも出店しているのは福岡くらいだ。競争の多い大都市圏で「絶対に戦わない」という戦略を取る、面白い出店方針だ。客単価はエスクリが392万、アイケイケイが388万円とほぼ等しい。また、出店拡大型の経営だから有利子負債が積み重なっていくのもエスクリと似ている。ここは徐々にレバレッジが高くなっている。

今期売上高予想は160億/31バンケット。エスクリの230億/36バンケットと比べると地方のウェディング市場は若干見劣りする。が、地価や人件費の差で、営業利益率はエスクリ10.4%、アイケイケイ12.9%とこちらが勝っている。

なお、売上高も当期純利益もエスクリの方が大きいのに、アイケイケイの時価総額はエスクリの1.42倍もある。フリーキャッシュフローは業態のせいで両社とも大きなマイナスで、特に違いはない。これはエスクリの方が負債比率が大きく危険と見られているということなのか、不当に安いのかどちらかだろう。

3064 MonotaRO

http://www.fisco.co.jp/uploads/monotaro20150604.pdf

株式会社MonotaRO IR情報 投資家の皆様へ

工具通販という特殊かつ未開発な業態で伸びしろが大きい、消費増税にも負けない売上年30%以上の成長率、毎年圧縮される販管費、ROE30%、地味だが月次情報まで公開する親切なIR、海外展開拡大中、私もここでエアコンパテを買おうとした、など魅力的すぎる企業だがPER72.51倍は高すぎ。1年前に知ってたら買ってただろうなぁ。。残念。ここは2011年から数えてテンバガーなのね。すごい!

9757 船井総研

まずビジネスモデル紹介のページが面白すぎる!!!このサイトは全部読んでおこうと持った。

http://www.funaisoken.co.jp/consulting/solution/

そしてこの会社のビジネスモデルも面白すぎる!!中小企業や士業の人たちに経営アドバイスをしたりセミナーを開いたり、それだけで売上が100億だよ。相談ってのは一大ビジネスになる可能性があるんだな。元手がマンパワーだけだから、営業利益率は非常に高い。24%もある。すごいのはコンサル対象が住宅、不動産、士業、アミューズメント、介護、医療、外食、などなどほぼすべての業界をカバーしているということ。さまざまな業界について相当勉強しないと無理だよな。しかも最近は自分で物流まで始めてしまっている。

レポートによると

“ズバリソリューション” とは船井総研オリジナルの言葉であり、「いま実践すれば、飛躍的な業績向上を狙える、その業界における旬のビジネスモデル」 を意味する。一般的な経営コンサルティングでは、経営診断を行った後にカスタマイズされた解決策の提案を行うのが常道だが、同社は逆の発想である。事前に成功するビジネスモデルを準備しておき、そのモデルに賛同するクライアントを集客していく。

なるほど!!!!パッケージなのね!!!といっても、成功するビジネスモデルを用意するのも大変だよなぁ。。要はあれか、巷にあふれる情報商材のレベルを高めたものってわけね。。で、陳腐化する前に新しいモデルを考えればいいというわけだ。

魅力的なので買いたいが、あと1割くらい下がってくれないかなあ。

 

今週は残念ながら今すぐ新規購入したい銘柄はなし。私がもっと稼げるようになったら、四季報を買ってレポートに頼らない銘柄探しがしたい。


サーバー不要!クロスドメインAjax実験

ランキングアニメーション・仕様書 – diary 六帖

の仕様を変更し、クロスドメインAjaxの威力を試すため、javascript内で完結できるようにした。前回書いたPHPのコードはとりあえず保留。

 

まず骨子を作る。

http://rokujo.esy.es/Responsive/ranking.html

23区ランキング

1(15) 千代田区 94点
2(16) 練馬区 78点
3(20) 渋谷区 76点
4(13) 江戸川区 73点
5(2) 板橋区 70点
6(18) 中央区 66点
7(1) 新宿区 65点
8(12) 品川区 59点
9(22) 港区 56点
10(17) 江東区 51点
2秒後に再読み込みします

10秒ごとに乱数で23区に点数を割り当ててランキング表示するだけ。これをクロスドメインAjaxを使用し、内容をYahooファイナンスの値上がり率ランキングから値をとってきたものに変え、jQueryで値をゲットして1分ごとに自動更新するようにしてみた。

http://rokujo.esy.es/Responsive/ranking_yf1.html

株式値上がり率ランキング

1(-) 9836 リーバイ・ストラウス ジャパン(株) +36.23%
2(-) 9687 (株)KSK +29.85%
3(-) 8073 (株)MAGねっとホールディングス +22.78%
4(-) 5962 浅香工業(株) +18.05%
5(-) 3664 (株)モブキャスト +17.4%
6(-) 3914 ジグソー(株) +16.83%
7(-) 7625 (株)グローバルダイニング +15.53%
8(-) 7217 (株)テイン +15.15%
9(-) 3318 (株)メガネスーパー +15%
10(-) 6267 ゼネラルパッカー(株) +14.56%
11(-) 3161 アゼアス(株) +14.53%
12(-) 3913 (株)sMedio +14.49%
13(-) 3912 (株)モバイルファクトリー +14.42%
14(-) 7638 (株)シーマ +10.71%
15(-) 6619 ダブル・スコープ(株) +10.57%
16(-) 6046 (株)リンクバル +9.96%
17(-) 9421 (株)ネプロジャパン +9.72%
18(-) 3825 (株)リミックスポイント +9.49%
19(-) 3355 クリヤマホールディングス(株) +8.39%
20(-) 4589 アキュセラ +7.84%
55秒後に再読み込みします

今日は日曜日なので値が更新されないが、一応機能を果たしているようだ。すごい。これでサーバー負荷は0だやった!動作は明日確認してみよう。あとは、アニメーション処理を作ることができれば完璧だが今日は時間が足りなかった。。

やっていることは、jquery.xdomainajax.jsを使って、次のように$.getで内容をゲットしているだけ。

function MakeRanking(prevRank, callback){

    var rank = new Ranking();
    rank.prefix = “+”
    rank.suffix = “%”;

    $.get(“http://info.finance.yahoo.co.jp/ranking/?kd=1&tm=d&mk=1“, function(data){
        var ranks = $(data.responseText).find(‘tr.rankingTabledata’);

        for(var i=0; i<ranks.length; i++){
            var elem = new RankingElement();
            var cols = $(ranks[i]).find(‘td’);
            elem.name = $(cols[1]).text() + ” ” + $(cols[3]).text();
            var tmp = $(cols[6]).find(‘span’);
            elem.value = Number($(tmp).text());
            rank.elements.push(elem);
        }
        rank.make(prevRank);

        callback(rank);
    });
}

リターンされたhtmlはそのままjQueryでパースすれば、内容のスクレイピングも簡単にしかも直感的にできた。

クロスドメインAjax – diary 六帖

ここでも書いたように、jquery.xdomainajax.jsを使えば自サーバーの負荷ははじめにhtml, jsファイルを読み込むときだけで、あとは何回再読み込み仕様が全くのゼロ。ただしアメリカYahoo!に負荷がかかる。


日本経済新聞社 – 検証バブル―犯意なき過ち

★★★★★

日経がまとめたバブル通史。私はバブルが発生している真っただ中においてはほんの子供であったため、何が起こっているかは全く知らなかった。

そういえば80年代の終わりか90年代初めに、祖父が家族に株を買うことを頻りに勧めてきた記憶がある。もちろん当時は小学生くらいだったので株ってなんじゃ?と思っていた。もう一方の祖父に反対されて買わなかったらしいけれど。当時の祖父は羽振りが良かった。そして、しばらくすると祖父はおかしくなり、いつ遊びに行っても寝ているか酒を飲んでいるか怒鳴るかしていた。祖父は新世紀を迎えることなく癌で早死にした。私がバブルについて知っていたことはその1点だけである。

正にその時代、日本経済は空前のバブルに沸いていた。土地の値段が天井知らずで上がり続け、その土地を担保に企業はレバレッジ経営をしたり、さらに不動産に投資して利益を上げていた。要因となったのは円高不況脱出のための利下げと金融緩和による投資意欲の過熱、土地が値上がりし続けるだろうという人々の信仰、政府の認識能力の欠如による対応の遅れ、一番大きな原因は、日本人の横並び意識という国民性だった。最後の原因は文章中に明示的に書いてあるわけではないが、私はそう感じた。

誰もかれもが土地が値上がりするという誘惑に取りつかれたため、みな土地に投資する。ある銀行が土地を担保にして過剰に融資を始めた。その土地がのちに値下がりするとも知らず。そして、ここが驚くべきところだが、明らかにおかしな状況なのに、他行に負けまいとどの銀行も他に倣って融資を始めてしまうのだ。

土地も株式も以上に加熱し、平均PERは80-200倍まで膨らんだそうだ。今そんな事態になったら私は怖くて全額引き揚げる。やばすぎる。東京圏の土地は最大4倍ほどまで値上がりし、バブル崩壊後1/4になった。

企業も個人も財テクと言って投資に走った。「今買えば絶対儲かるから」小金持ちほどそんなフレーズに欲望を刺激されて財産を破裂させる羽目になる。

祖父はある特例市の中心駅から歩いて10分程度というそれなりの土地に家を持っていた。おそらく、この土地を担保にして株を買ったらどうかと、証券会社や悪い友達に唆されたに違いない。バブル崩壊とともに、株が大幅に値下がりして夢破れ、飲んだくれになったのだろう。しかし家を売り払ったわけではなく暮らし向きが貧乏になったようにも見受けられなかったので、失うものはあったが致命的ではなかったのだろう。飲んだくれるほどのことじゃないじゃん、って今では思う。70代くらいだったろうから、一世一代の博打に敗れた気持ちにでもなったんだろうか。もはや知る由はない。

この本からは大事なことをいくつか学んだ。

・金は経済の血液である。金が回らなければ経済は死ぬ。公的資金注入=輸血である。

・銀行をつぶすのは簡単だ。預金者が預金を引き出すだけでよい。

・人間は過ちを認めたがらない。当事者はみんな仕方がなかったんだという。

・バブルが止められなかったのと太平洋戦争から引き返せなかった構図は同じである。

本のタイトルに反して、バブルには次のような犯意があると言いたいように感じた。「俺は儲けたい」「俺は大丈夫」「やばいけど誰かが何とかする」「俺に責任はない」

 


フリーダムPHPその3、多重ループを抜ける

PHPはwhileループやforループを何段階も抜ける記述方法がある。break 2; のように、breakのあとに数字を指定してやればよい。

<?php
$i = 0;
$j = 0;
while ($i < 10) {
while ($j < 10) {
if ($j == 5) {
break 2; // 2段階外側に抜ける
}
$j++;
}
$i++; //これは実行されない
}
echo "{$i}, {$j}"; // 0, 5
?>

ふつーの構造化プログラミング言語だったらbreakする前にフラグを立てて、1段階外でフラグを見てもう1段階抜けるって書き方をするけれど、PHPは自由だねぇー。

なんとcontinueも多重で抜けられる。

<?php
$i = 0;
$j = 0;
while ($i < 10) {
$i++;
while ($j < 10) {
if ($j == 5) {
continue 2; // 2つ上位のwhileまで戻る
}
$j++;
}
}
echo "{$i}, {$j}"; // 10, 5
?>