ラベル 中間期04-05期 の投稿を表示しています。 すべての投稿を表示
ラベル 中間期04-05期 の投稿を表示しています。 すべての投稿を表示

2015年4月13日月曜日

さようならPresto, こんにちはChronium.

Opera というブラウザがあります。

私はOpera に広告が乗っていた時代から使っている。Opera 8 だったと思う。IE6 がくそだくそだといわれつつも最大シェアを持っている時代を通り過ぎている。私のウェブ生活にはOpera が常に隣にあった。

バージョンアップを重ねるたびに「なんか前のと違う」と思いつつ、なんだかんだで手になじんでいったOpera。私が使っていた機能は
  • どのブラウザよりも手になじんで最小限で無駄のないマウスジェスチャ。
    • FirefoxでもChromeでもジェスチャプラグインを入れて使っている
    • 最も手になじんだ操作で無駄もないのはOperaだけ
  • 便利なブックマーク機能
    • ただし Opera 9 あたりが最強だった
    • ブックマークバーを出しやすい、ツリー方式で整頓しやすい,見渡しやすい
  • 上部ブックマークバー
    • といっても一般的な機能ではある、、、はず

Operaというブラウザは、一度終わっています。

OperaはかつてPrestoという独自のウェブブラウザエンジンを開発していた。そして、他のどんなブラウザよりずっと早く多くのページを表示することができた。W3Cの仕様に完全準拠していたためにIE6向けに最適化されたページのいくつかが壊れて表示される問題があった時代もありましたね、、、。そしてそれは v12.19 というバージョンで終わった。いつだったか。2年以上前だった気がする。そして、Webkit (Chromeと共通)エンジンに移行することを発表した。

OperaがWebkit(Chronium) エンジンに移行したとき、ひとまず試した。ところが、そのときのOperaは驚くほどChromeで、Chrome以外の何者でもなく、正直言って存在価値がなかった。詳細はWikipediaのOperaのページで。私はブックマーク機能を失うのがいやで移行しなかったし、その後の以降を検討しなかった。

一方で、どうしようもない問題も抱えていた
  • v12.19 (Presto最終版)は、WOW32モードで一定条件を満たすとOSごと落ちる
    • いまどき珍しいソフト起因のブルスク
    • 条件は:Operaでメモリを4GBまで使った状態で動画を再生する(Youtubeなど)こと
    • FlashPlayerにも一定原因はあるんだろうと思う
    • 動画を自動再生するページを開くだけでOSごと落ちるので大変気を使った
  • そもそもアップデートが止まっている。
  • いくつかのサイト(といっても主にYahoo)がサポート対象外とした
そして、さっきだ。決定的な出来事が発生した。調べ物のペースが乗ってきたときに、予期せず動画の含まれるページを踏んだ。プロバイダとかなんとかの宣伝動画だったんだと思う。そして、落ちた。ブルスクになった。賢者タイムでもここまで残念な気分にはなるまい。上司に今まで必死に作ったものの仕様をすべて否定されひっくり返されたときの悲惨な気分がよみがえってきた。、、、さすがにそこまでひどくはなかった。しかしだ。もうだめだ。これはさすがにもうだめだ。残念だが、お別れの時がきたのだ。

さようならPresto, こんにちは Chronium

かくして、Opera 28 をインストールした。案の定「貧弱なマウスジェスチャのついたChrome」に成り下がっていた。ちょっと操作をしてみて、失ったものに気づき、苛立ちを覚えた。それを捨てることに下Opera社を恨んだ。しかし、仕方ないのだ。お別れは済ませたのだ。振り返るわけにはいかないのだ。

幸い、我慢強き先人たちが拡張機能を切り開いてくださっていた。Chrome ベースなのでそうではないかと思ったが、実際あった。ありがたかった。

私にとって大体 v12.19 に近づけるためにしたことについて記す。
  • 失われたホイールジェスチャ,リンクジェスチャの復活 : MoreGestures
  • 殺意が芽生えるほど使いづらいブックマーク管理を多少マシに:Bookmarks
  • 幸いなことに、ブックマークとセッションは v12.19 のものを引き継ぐことが出来た
    • ただしセッションはブックマーク扱いである
残念ながらブックマーク管理機能は元には戻らなかったし、まだ不満が残っている。しかし、最低限度はクリアした。旧来の機能を捨てるという選択をしたOperaには許せない気持ちがいっぱいだが、それでもまだOperaというブランドとわずかに残る優位性を捨てずにがんばっていることについては、畏敬の念をもつ。だから私は結局Operaを使う。拡張開発者の裾野も広がっているのだろう。プラグインの作者様には無条件で感謝する。

悪いことばかりではない。Evernote Web Clipper がOpera でも使えるようになったのだ。Chrome に擦り寄ることもすべて悪いことではないのだ。(ちなみに Firefoxプラグインは使い物にならない。実体験済み)

そして私はまた悪くなった操作性に慣れ、失われた機能を忘れながら、Operaを使うのである


2014年11月26日水曜日

株主優待初めて届いた

株主優待の権利確定が9月末、それで11月末に近い本日、株主優待を始めてもらった。
お金では還元しないで現物で還元するというのも、会社の方向性の意思表示である。優待が最善とは思わないが(実際配当でくれてもいいはずだし)配当する気がない分”個人に有利なように”配当してくれるというのは、それはそれで方向性であると思う。

株式を持つことは本来、会社を所有することである。わずかであるが株式を持つことで会社の決定に対する議決権を持っている。行使できるほど強くないけれども!と思うと、その会社に対する愛着をもてようというものである。

お金を得たいだけなら、会社の債券を買ったらよい。株価特有の「株価値上がり」がない代わりに、配当だけで得られるはずの金額よりずーっとおおきな利率で販売される。会社にとっては即座にお金を得られる代わりに、大きな利率というリスクをしょい、その分倒産・未払い・価値の減などの大きなリスクを購入者に負ってもらうという代物だから、、、。

ところでその株主優待会社名なんかも公開してよさそうなのに公開しないのは、あれだな、秘密主義ってやつだな

株式での利益についてちょっとおさらいしておくと

  • 株式での利益は、キャピタルゲイン(値上がり益)と、インカムゲイン(配当益)がある
  • 株主優待は、インカムゲインの一種。配当の形式が金銭ではないもの
    • 現物支給(自社商品、お歳暮形式)
    • 特製金券(株主優待券)
    • 社会貢献(寄付など)
  • インカムゲインのメインは期末配当、1株あたり何円,という形でつける
  • キャピタルゲインは、購入時株価から売却時株価の差額
株式で利益を得る方法は
  • 株を購入することで配当を得る。
    • 株価があまり変わらない銘柄だとこれが主か。
    • 利益額=売却までに得た配当
    • 損をする場合=売却時までの株価の減少 > 売却時までの配当合計額
  • 会社が”有名になる”ことで株を買おうとする人が増える=>株価上昇
    • いわゆる「人気投票」の側面
    • 誰もが高く売ろうとし、誰もが安く買おうとするために成立する
株価上昇は基本的に期待するものではない(中期~長期投資を考える場合)
  • 長く保有することで、その間に得られるであろう配当金を考える
  • 株価+配当金 = 将来の価格、と思うほうが考える上で楽
  • 株価が安いとは=>想定(将来)配当金が現在株価より”割合として”高い
    • 配当(=その源泉となる営業利益)が高そうなのに
      株価がそれに比して安い=>PER
株価上昇はほぼインフレとイーブンと考えるとなんか納得がいく
  • 物価が高くなる=>ものを高く売らざるを得なくなる
    =>会社の利益はその分増えないとおかしい
    =>配当も当然それに比して”額面が”増えないとおかしい
    =>同じ株価のままだと配当に対して株価が安い状態になる
    =>株価が”インフレの分だけ”高くなるはず
  • インフレが”理想的に”進めば、額面だけが増えて相対的な価値は変わらないはず
    =>株価の額面がその分変わっただけと考えても不自然ではない
じゃあなぜ短期的な急上昇が起こるのか?=>わからない。だからそういう株には手を”出せない”。ソシャゲ株上がりすぎでしょう、、、そんなに儲かり続ける保障はないのに。

2014年11月4日火曜日

PHPと16進数にまつわる思いがけない挙動

0x80000000 (32bit) はintでしょうか?いいえ、floatです。

それで比較していてはまったという思い出話。

PHPでバイナリを処理しようという、酔狂(?)な方は要注意ですぞ

なんでそんなことを使用かという話は話せないし面倒なのでほっといて

次のようなコードを書いていて問題は発生した。

$binaryString = "\x7F\xFF\xFF\xFF\x80\x00\x00\x00";
// 実際は別途取ってきたバイナリデータがあるとおもいねぇ!
$unpacked = unpack("NN", $binaryString);
assert($unpacked[1] === 0x7FFFFFFF);    // <- pass 
assert($unpacked[2] === 0x80000000);    // <- assertion error !!!!

原因は:定数と変数と”暗黙の変換”の問題。

あれー!同じだろこれー!と思って散々原因を探してわかったのは

  • そもそもPHPの”すべての”整数(integer)は32ビット「符号付」しかない
    • 符号無整数は存在しない
  • unpack関数では、符号無整数を「指定は出来るが」「実際変換後は符号付整数」になる
    • 上記 $unpacked[2] は、内部的には -2,147,483,648 となっている
  • 0x80000000 は「整数の範囲を超えるので」「小数に自動変換される」
    • var_dump で見てみると、(float) 2,147,483,648 になっている
  • なので、厳密な一致テストを行うと、まあ、あいまいな一致テストでも、FALSE になる

他の方もはまっているようなそうでもないような微妙な話題である。調べようにも、わかってみればああ、そうか、だが気づくまではどはまりするという話題でもある。

ちなみに回避法は:強制的なキャスト

上記例の変数をそのまま使うと
assert($unpacked[1] === (int)0x7FFFFFFF);  // <- pass
assert($unpacked[2] === (int)0x80000000);   // <- pass, OK!
とする。符号無なので,内部的には右辺 0x80000000 は負の値になっているが、比較さえしなければ特に問題はない。少なくとも私はしない。はず。

2014年10月12日日曜日

生存報告記事:最近していることのメモ

前回投稿が8月27日、現在が10月12日。ああ、残念なことをしてしまった。ブログに対する明らかなモチベーションの低下をさらしてしまった。

この記事の立ち位置についてちょっとだけ書いてみる

毎日の仕事をストレスにさらされながら自分の役割をとりあえずこなすことに必死で決して仕事に関して言えば勉強をしていないわけではなくだがそれゆえにほかの事はとにかく時間を休憩をすることのために費やしているような今年三十路になろうとする一般的な技術者の、なんとなくすごされた時間についての貴重な資料

何があったのか。


  • 8月上旬:引っ越した。
  • 8月中:各種手続きとか必要なものを買い揃えたりとか
  • 8月27日:最後の更新
  • 9月中:仕事がばたばた開始。何もしないことが最善の回復法と悟る
  • 10月上旬:ブログのことを思い出す。
  • 10月12日(本日):自分ルールを守ろうとうごく

この間にしたりしていたりすること。


  • 新しい生活の確立。必要なものを買ったり、近場を歩き回ったり。
  • 料理をする。CookpadのIpadアプリが秀逸。プレミアム登録したくなった。
    • しなかった理由:1ヶ月経ってみたら、意外と冷凍食品依存だったため
    • しなかった理由2:無料分だけでもかなり楽しめる。つくれぽもしたよ!
  • ぷよぷよ!クエスト(アプリ)。
    • 漁師カードが壊れ性能だったいうことを知ってショックを受けている
  • JavaScript, PHP, HTML/CSS :お仕事で使ってる!とだけ。
    • 今までC#メインだったんですがねぇ。
  • Steamゲー。
    • 値引きしているというだけで買ってしまうんだよなあ。
    • StelthBastardDeluxe、大体のステージはS取るだけで1000位以内。
    • Portal, Portal2, Half-Life,,, ValveCollection
    • Rise of Flight : Cannel Battle Edition
      • 買ってから半年以上経ってる。やっとエンジンスタートの仕方を知っ
    • TrackMania2 Canyon <= お気に入り。ドリフト万歳ゲー

C#er から見た JavaScriptの印象と感想

こんな代物(言語)をきっちり扱える(ライブラリを設計できる)人たちは本当によく勉強してる!

なんでオブジェクトと関数が同じ構文で定義できてしまってしかも扱い上は同じなのか。なんでスコープがブロックで終わらないのか(終わるものも何で混じっているのか)。なんでクラス”定義”という概念がなく、とにかくオブジェクトだらけなのか。ライブラリの使い方になんでクセを覚えるぐらいに方法が違うのか。

この状況が、JavaScript最盛期(jQuery など、フレームワークライブラリが大量に出現した時期)からすでに2~3年、ひょっとすると7~8年経過しているはずなのに(調べていない)その作法の違うたくさんが生き残って成長して広く使われているという不思議。

言語によってある程度書き方が決まってきてしまうほうが、、、使いまわす上では楽なんだけどなあ。Javaとか。C#とか。役割がかなり似通ったライブラリが、別の作法でたくさんある状況と、役割のちょっとずつ違うライブラリが、同じような作法である状況と。個人的には後者のほうが楽なんですわ、、、。

ライブラリ万歳ですわ、、、。クセはあってもやっぱり便利。jQueryでごり押してる。いってもセレクタとイベント機能ばっかり使っていますけれども。スコープ?変数名全部変えてvar つけたらいいんでしょ!?(雑)