CDレビュー: Hecq – Mare Nostrum(2015)

★★★☆☆

前作が割と良かったので、2枚目として聞いてみた。

a large glass box and a loud hum fill the nave of the deconsecrated chapel. inside the box is marenostrum, the largest computer in spain. from the outside, the only sign that it is alive are the blinking lights and the noise from its ventilators. but marenostrum can say much more – it just needs someone who can hear it.

スペインにある最大のコンピュータ、marenostrumを使って作曲したそうだ。CDの限界80分近くまで電子音を詰め込むわ詰め込むわ。そこから出てくるのは絶望の海か暗黒の夜明けか。。聴いていると滅入る。1曲19分は長すぎで、私には体力が続かなかった。

ジャケットから飛べるリンク先で視聴できます。

こちらのブログで未収録の5,6曲目が紹介されています。

 

電子音楽の他のCDレビューはこちらです。


PHP、traitsってどう使うのさ?

traitsとは、PHP5.4で実装された複数のクラスに実装する共通メソッドを定義するための仕組み。Programming PHPを読んでもtraitsの使いどころがわからない。スーパークラスじゃダメなの?

web検索すると、疑問にズバリ答えてくれるブログが見つかった!

要約すると、traitsは「多重継承を実現するための仕組み」で、「デザインパターンなど、必ず共通で使う枠組みでソースのコピペをなくしたい時に使用」するものだそうだ。ここではSingletonを例にとって説明してくれている。

 

<?php
trait SingletonTrait
{
    private static $instance;
 
    private function __construct() { }
 
    public static function getInstance()
    {
        if (!isset(self::$instance)) {
            self::$instance = new self();
        }
        return self::$instance;
    }
}

class SomeManager
{
    // シングルトンパターンを利用する
    use SingletonTrait;
 
    public function processSomething()
    {
        // ...
    }
}
 
// クラスの利用
$mngr = SomeManager::getInstance();
$mngr->processSomething();

 なるほどね!ありがとうございます!


フィスコレポートを読む 3800 ユニリタ、9607 AOI Pro.、3392 デリカフーズ、3250 エー・ディー・ワークス、7893 プロネクサス、3179 シュッピン、7508 G-7ホールディングス、4350 メディカルシステムネットワーク、9995 ルネサスイーストン、2485 ティア

3800 ユニリタ

成長期待候補。財務は超健全。基幹業務システムの開発・販売を業とする地味な会社だが、前期にデータ活用会社のビーコンITを吸収合併し、事業の相乗効果を狙う。吉と出るか凶と出るか。

ビーコンITとの合併により売り上げは大幅増加したが、グループシナジーのための基盤作りの支出を計上したため営業利益率が大幅ダウン、しかし20%台を保っており、強い。

大きい利益率は同社のメインフレーム事業によるものだ。メインフレームは縮小業界だが金融・損保でまだ相当数が使われており、残存者効果もあり利益率が異常に高い。ここで稼いだ金を成長産業に投資できるという大きなメリットがある。ビーコンITの吸収合併はそのような狙いの一つと思われる。

同社の株価は2013年から一貫して右肩上がりだが、成長余地はこれからだというのにPERが10倍程度と妙に安い。特に地雷は見当たらないので、注目するべき株の一つだろう。

9607 AOI Pro.

老舗の大手広告制作会社。リーマンショックでも赤字にならない安定性と高い成長率、なぜか同業他社より割安な株価が特徴。インターネット動画広告にも多数進出しているため、しばらく安定性しそうであるが、広告業界は景気の影響をもろに受ける(同社の株価は一時高値の1/3になっている)ので二の足を踏む。6月頭からなぜか株価が20%も値上がりしているため、買うのは手控えられる。

3392 デリカフーズ

外食・中食向けカット・ホール野菜卸会社。ユニークな業務である。カット野菜が主利益源であるため、成長するためには工場の増設が不可欠で、必ず費用が掛かる。生鮮食品の特徴なのか、営業利益率2.7%は低すぎ(といっても、同業他社は平均1.1%ともっと低い)で費用増が大幅利益減に即繋がり、2つ工場を増設する来期は大幅減益予定である。若干割高だった株価は右肩下がり気味。食品卸ってあんま儲かんないね。

3250 エー・ディー・ワークス

ウェブサイトが綺麗で軽い。個人富裕層向け投資用不動産販売、というターゲット層を明確にした不動産屋。好景気をバックに業績は成長しつつあるが、株価が何故か44円しかない。謎すぎる。なぜ44円?

7893 プロネクサス

IR情報の作成を受託する、という誰も思いつかないオンリーワンな会社だが、すでに受注率は上場企業の60%に達しており、成長性が全くない。売上は10年間ほぼ横ばいである。しかし何故か株価は上がっている。株価は収益性と連動するとは限らない、という好例である。

3179 シュッピン

個人投資家ブログで取り上げられることがある銘柄。中古高級カメラ、時計に絞り込み、ECの売行増と店舗売りのインバウンド需要により売上大増加中の会社だ。が、レポートを読むと実店舗のインバウンド狙いよりも本業のECにリソースを集中している企業であることが分かる。参入障壁、値下がり懸念のない商品にターゲットを絞り込んだ戦略性、年30%以上の成長を今後3年間見込める成長性、バラ色の銘柄である。そのためPERは32.27倍と割高でとても買えない。

7508 G-7ホールディングス

オートバックスと業務スーパーが主業務。消費増税で絶不調の今期に変わり来期は65%利益増予定、という決算発表後に一気に1.5倍まで値上がりした。未だに株価は超安値のPER8.97倍。オートバックスは景気変動多すぎ・競合多すぎであまり魅力的な業態ではないが、業務スーパー単一業態だったら買うかもしれない。

4350 メディカルシステムネットワーク

調剤薬局「なの花薬局」と医薬品ネットワークが主業務。医薬品ネットワーク業が優れたビジネスモデルで、薬剤の卸会社と薬局の間に立ち、薬剤の融通をする。薬局は価格交渉が有利になり、メディカル社は手数料を稼げる、卸会社は大口の取引先がゲットできるという3社がwin-win-winなモデルだ。独自性も障壁も大きいから利益率も54.6%と異常に高い。

しかし売り上げの大半を占める調剤薬局業務はM&AのしすぎでD/Eレシオ (有利子負債÷自己資本)392.3%と強気に借金し過ぎ。利息が利益の約10%を食いつぶしている。最近増資をして株価は低迷している。PER11.11倍と安めだが、借金の多さを考えると怖い。

9995 ルネサスイーストン

半導体を扱う商社。あまり魅力的ではないので、飛ばします。

2485 ティア

名古屋の成長中葬儀屋。関東でも越谷、鳩ケ谷に進出している。IRが充実しておらず、ウェブサイトを見てもどういうビジネスモデルなのかさっぱりわからない。利益率は意外にも10%程度と、低くない。葬儀の単価が同業他社と比べて1/4ほど安いことが強み。フランチャイズ事業にも手を広げており、今は売上構成比が3%しかないが、利益率が高く成長が期待される。葬儀業界は今後老人が増えるため2040年まで安定成長するそうだ。今後は金が余っている年金世代が亡くなっていくから、単価が激減することはなく同社の大幅な減益は考えにくい。葬儀で成長ってありなんだ、と驚いたレポートだった。

足元の株価のPER19.86倍は売上の年平均成長率6.8%と天秤にかけるとやや高め。年初から一貫して上げトレンドである。最近流行のAKBのCMで爆上げなんてことは絶対に起きないので、じわじわ上げる銘柄が好きな人向け。


詰碁印刷2

詰碁印刷のためのプログラム – diary 六帖
の続き。今日はSGFのパーサーを作るところまでで時間切れで終了。来週はcanvasに問題図と正解図を描いて並べて表示したい。
kickzone/SGFPrint · GitHub

SGFファイル仕様参考
SGFƒtƒ@ƒCƒ‹Œ`Ž®

次のサイトを参考にして、とてもスタイリッシュなswitch文の変形が書けました。ありがとうございます。qiita.com
コードの先頭で使ってます。

var SGFParser = (function(){
var parseItemSub = {};
//黒置き石
parseItemSub['AB'] = function(str, item){
item.okiishi.push(new SGFStone(BLACK, str));
}
//白置き石
parseItemSub['AW'] = function(str, item){
item.okiishi.push(new SGFStone(WHITE, str));
}
//コメント
parseItemSub['C'] = function(str, item){
item.comment = str;
}
//黒着手
parseItemSub['B'] = function(str, item){
item.stone = new SGFStone(BLACK, str);
}
//白着手
parseItemSub['W'] = function(str, item){
item.stone = new SGFStone(WHITE, str);
}
return {
//SGFファイル全体のパース
parse: function(content, element){
//改行は邪魔なので全部取っ払う
content = content.replace(/[\n\r]/g,"");
var nodeStack = []; //スタック
var prevNode = null;
var startIdx = -1;
//ノードに分割
for(var i=0; i<content.length; i++){
if(content[i] == "("){
//ノード開始
//いま見ているノードをpushして次のノードを作成
if(startIdx != -1){
var node = new SGFNode(content.slice(startIdx, i));
if(nodeStack.length == 0){
//ルートノードを設定
element.root = node;
} else {
//最後のノードの子ノードとしてpush
nodeStack[nodeStack.length-1].childNodes.push(node);
}
nodeStack.push(node);
}
//ノードの文字列開始
startIdx = i + 1;
}else if(content[i] == ")"){
//ノード終了
//いま見ているノードがあれば新規作成
if(startIdx != -1){
var node = new SGFNode(content.slice(startIdx, i));
if(nodeStack.length == 0){
//ルートノードを設定
element.root = node;
} else {
//最後のノードの子ノードとしてpush
nodeStack[nodeStack.length-1].childNodes.push(node);
}
} else {
//見ているノードがない、すなわち終了カッコが連続した場合は、スタックを1つpop
nodeStack.pop();
}
startIdx = -1;
}
}
},
//ノードのパース
parseNode: function(text, node){
//アイテムに分割
var startIdx = -1;
for(var i=0; i<text.length; i++){
if(text[i] == ";"){
if(startIdx != -1){
var item = new SGFItem(text.slice(startIdx+1, i));
node.items.push(item);
}
startIdx = i;
}
}
if(startIdx != -1){
var item = new SGFItem(text.slice(startIdx+1));
node.items.push(item);
}
},
//アイテムのパース
parseItem: function(text, item){
var id = "";
var str = "";
var startKakko = -1;
var startId = -1;
for(var i=0; i<text.length; i++){
if(text[i] == "["){
startKakko = i;
if(startId != -1){
id = text.slice(startId, i);
}
startId = -1;
}else if(text[i] == "]"){
str = text.slice(startKakko+1, i);
startKakko = -1;
//parseItemSubに処理があればそれを実行
if(id in parseItemSub){
parseItemSub[id](str, item);
}
}
else{
if(startKakko == -1 && startId == -1){
startId = i;
}
}
}
}
}
})();

エビスコム – HTML5&CSS3デザインブック(ステップバイステップ形式でマスターできる)

http://ecx.images-amazon.com/images/I/61pynA4XF1L.jpg

★★★★☆

直感的で分かりやすく、しかもソースは全て本の中にある

HTML5/CSS3のごく基本的な知識を前提に、レスポンシブWebデザインを導入したサイトをどうやって作ればいいか、その一例を順序立てて丁寧に書いてある本。ソースと画面表示を対応させながらサブタイトル通りステップバイステップで少しずつ進んでいく。

例えばULタグで作成したリストは次のように黒丸がつく。


<ul>
<li>東京最高</li>
<li>神奈川なめんな</li>
</ul>

  • 東京最高
  • 神奈川なめんな

これの黒丸をなくし、左側の余白をなくすためにスタイルシートに次のように設定すると、単純な列挙になる。

 —
ul {
margin:0;
paddiing:0;
list-style: none
}

  • 東京最高
  • 神奈川なめんな

 

このように一々すべてのデザインの適用について、すべてソースと表示の対応がされている。CSSをどのように書けば、どこのデザインが変わるのか直感的に分かりやすい構成だ。ほんの少しずつのデザインの積み重ねが、気が付くと立派なサイトになっている様を順序良く見せられるさまは感動的である。ソースは全て本の中に書いてある。あなたもメモ帳で同じソースコードを書けば、全く同じデザインをブラウザで表示させることができる。本と同じ場所を変更すれば、同じ場所のデザインが変わる。これぞステップバイステップ形式の醍醐味である。

また、ブロック要素を使ったボックスの配置方法を詳しく解説している記述を本の先頭に持ってきたところも上手い。1つのボックスの下に3つのボックスを配置し、さらにフッターを配置する。このようなボックスの配置は昨今のwebデザインの最も基本かつ重要なことではないかと思う。古いHTMLの知識しかなかった私はテーブル使うんじゃないの?なんてアホなことを考えていたが、divをはじめとするボックス要素の力の大きさを見せつけられる内容であった。

網羅性がなく、内容は薄い

しかし欠点もある。まず網羅性がない。実践的な解説に終始しており、CSSの機能を逐次解説することはない。ここで紹介されているデザインはあくまで一例であって、絶対的なものでは決してない。筆者の思想も全く見えてこない。また、例えばリンク先が全部 A HREF=”#” だったりと完成したページを紹介しているわけでもなく、今後記事を追加していったときにどのようにデザインを変えるべきか、などということは全く考慮されていない。この本の範疇に敢えて含めなかったのかもしれないが。

ビジュアル的分かりやすさ重視のため、この分厚さでページを4つ作って終わり、というのもややバリエーションに欠ける。

総合的には買って損はない

とはいえ、分かりやすさにかけては類書と比べて群を抜く。この本を参考にして私は先週、別サイトのトップページをデザインすることができた。webデザイン入門者にとってはうってつけの本と言えるだろう。ただし、一度マスターしてしまえばあまり読み返すことはないかもしれない。ステップアップのためには、他のデザイン書や様々なウェブサイトのHTMLやCSSを読んで、デザイン術を盗む必要がある。

買って損はない。私は新本で購入したが、2808円はやや高く感じる。しかし古本が出回る頃には陳腐化している可能性もあるので、出費としては仕方ないと割り切るしかなさそうだ。


竹内謙礼 – 売り上げがドカンとあがるキャッチコピーの作り方

これはよくできた本だ。キャッチコピーの出来に売り上げが大きく左右されるのは、新聞広告、電車の吊り広告、そしてウェブ広告を見ればわかる。買いたくなるコピーには必ず目が行く。クリックしてしまう。楽天市場の商品紹介は、売りコピーの巣窟だ。

強い言葉と弱い言葉の区別(例:弱い言葉「安い」「痩せる」→強い言葉「激安」「3日で-○kg」)、「引き」「特徴」「説明」による要素の分解、日常のキャッチコピーの探し方などなど、軽めの筆致ながら重要なポイントがコンパクトにまとめられている。

この筆者は、顧客のことを心の底でアホと思っていながら、それを表に絶対に出さない究極の商売人だと感じた。

お客様というキャッチャーは、どんなボールでも受け取れるほど有能ではないからだ。自分が取れる範囲のボールしか受け取らないし、無理してボールを追いかけようともしない。

どんな文脈でも絶対に「客」や「顧客」と呼ばず「お客様」という表現を徹底して使い続けるところに商人魂を見た。

この本で最も圧巻なのは、巻末の「キャッチコピー言い回し辞典」だ。600語にも及ぶ筆者のキャッチコピーの頻出言い回しと用語解説がついている。3年間かけて集めたものだそうだ。またこの解説が身も蓋もなくて面白いのだ。何回も吹き出してしまった。

『感動プライス』安いのか高いのか判別しづらい言葉だが、温かさがあって「いい商品を安く」という印象を与える。安売りをしたくない時に使用。

『次回販売は未定』製造が追いつかない人気商品である印象を与え、即時の購入を促す効果のある言葉。もちろん、実際に未定であるか否かは問わない。

『気にならない』気にかかっている点を解消できる効能を宣伝する際に使用する言葉。お客様の気持ちを先取りして代弁することで、あたかも必然であるかのような心情へ導く効果がある。

筆者の努力の結晶であるこの辞典には気合が溢れている。

人間は楽をしたい生き物、虚栄心のある生き物、金を節約したい生き物である。ここを如何にして突くかが問われている。という商売人の基本中の基本を叩きこまれる思いのする本だった。言い回し辞典は折を振れて何度も読みかえしたい。新聞広告やチラシ広告、ウェブ広告は毎日目を通さなければいけないね。

買いか

買い。フルプライスでも買うべき。私は2005年の単行本版を古本で買ったが、いまはリンク先で文庫の増補改訂版が安く出ているので買うべき。


PHPイミフ仕様3 __get(), __set()

PHPはクラスに存在しないプロパティをセットすることができる。これだけでもかなりフリーダムすぎる仕様だと思う。
その上、クラスに存在しないプロパティが呼び出されたとき専用のメソッドを定義することができる。それが、__get()と__set()である。

<?php
class Thing
{
public $a = 0;
}
$buttai = new Thing;
$buttai->b = 1; //問題なし
?>

__get()と__set()は、例えばDBからでっかいデータをゲットする処理なんかは重いから、アクセスされたときはじめてDBアクセスするような場合、なんかに使うのだそうだ。

<?php
class Person
{
public function __get($property)
{
if ($property === 'biography') {
$biography = "なんだか長い説明文123456789"; // DBからデータをゲットするなど
return $biography;
}
}
public function __set($property, $value)
{
if ($property === 'biography') {
// DBにデータをしまい込むなど
}
}
}
?>

jQuery, getterとsetterのヘンテコ動作

Programming PHPと並行してjQueryのオンラインマニュアルを読んでいる。

今日とても変わっている実装だと思ったのはこちら。getterとsetterについての解説だ。

$( "h1" ).html( "hello world" );

これはH1タグ全部を”hello world”に書き換える。

ところが、getterはセレクタで指定される先頭の要素の値だけしか返ってこない。

$( "h1" ).html();

これは先頭のH1タグの中身だけが返ってくる。setterのことを考えると全要素の中身が返ってきそうだが、全部ではない。1つだけ。

さらに、setterはjQueryオブジェクトを必ず返すが、getterはjQueryオブジェクトを返すとは限らない

上の例なら、setterはメソッドチェーンを使ってさらにH1タグ全体に対して何か処理を加えることができるが、getterでは”hello world”などの文字列が返ってくるので追加の処理は行えない。

C言語からプログラミングを始めた身としては、まずgetterとsetterの書き方がまるでオーバーロード関数のようである、というのは直感的ではない。さらに、返ってくるオブジェクトが異なるというのも直感的ではない。

jQueryを使いこなしている人から見れば当たり前のことだろうが、見た目がほとんど同じなのに動作が全然違うというのは躓きやすそうなのでメモしておく。

これはなんでもありのJavaScriptだから許される仕様だ。ライブラリは何を返そうがどこでどんな変数の置き換えをしても許される。グローバル空間の汚染すら許される。そのため、ユーザーはライブラリについて一々マニュアルを読みまくる必要性が必ず生じる。仕様を知らなければ何もできない。しかも仕様は変わる。技術はすぐに移り変わる。1つ覚えたからといって未来永劫その知識を活用できる保証が全くない。大変な世の中になったものだ。

 

なお、メソッドチェーンならこんなこともできる。

$( "#content" )
    .find( "h3" )
    .eq( 2 )
        .html( "new text for the third h3!" )
        .end() // Restores the selection to all h3s in #content
    .eq( 0 )
        .html( "new text for the first h3!" );

ちょっと気持ち悪い。私ならend()は使わないで2行に分割して書くだろうな。


CDレビュー: Read Gainsford & Richard Spece – Music for Clarinet and Piano (2014)

★★★★☆

クラリネットはどことなく間抜けのようで、実は度量が広くて暖かい音を出す不思議な楽器だ。作曲者はいずれも20世紀の現代音楽家で、不安定なメロディーラインを特徴とする。現実と虚構、秩序と錯乱のあいだを行ったり来たり。これをクラリネットが演奏すると、ふざけているのか優しいのか狂ってるのか大真面目なのか全く判然としないのに、聞き手の気持ちはモヤモヤしない。何故かすっきりする。何度聞いても不思議な音色だ。

個人的には3番目のHamiltonさんの4番勝負が動きが大きく構成もアゲアゲだったり諧謔効かせまくりだったりで、一番好き。

 

 

クラシックの他のCDレビューはこちらです。


全保有株値上がり!予備校株が軒並み大幅値上がり、カルナバイオは予想通り暴落

日経平均が昨日の大幅下げから一転、一昨日とほぼ同じ水準に落ち着いたのと比例して、今日は手持ちの全銘柄が値上がりした。値動きはイーギャランティの+4.1%が最も大きく、あとはほぼ微増。

 

4678秀英予備校がS高+16.33%、4645市進ホールディングスが+12.88%ととても怪しい値動きをしている。昨今の塾業界の業務提携続出が関連していると言われているが、特にこれといった材料はないので、一体何の金が流れ込んでいるのか。

 

4572カルナバイオは予想通り激しい値下がり。-12.98%と本日一番の下げとなった。財務が胡散臭い会社は必ずこのような日が来る、という確信がより高まった。

 f:id:happyholiday:20150619165351p:plain

もちろんガーラ、リーバイスも今週は下がってばかり。

 

f:id:happyholiday:20150619171715p:plain

エニグモは5日連続で上げましたね。今週だけで30%くらい上がっている。期待萎まず。すごいですね。

 


ギリシャがかなりまずいことになってるけれど、6/30にギリシャが金返せなくなったらユーロ圏の金融はしばらくズタボロになるのかな。日本にも波及すると思われるけれど、その時どのくらいの金がマーケットから逃げるのかな。

f:id:happyholiday:20150619171541p:plain

ユーロ円は2か月で128円→139円になってるのでギリシャ危機より日本の金刷り過ぎの効果の方がよっぽど大きいようだけれど。。