2015年1月27日火曜日

休止宣言

休止します。

第04期の最後の投稿が 2014年11月26日なので2ヶ月以上あいてしまった。

1ヶ月以内にやめると投稿するルールを結局守れていないという話

情報発信意欲というのは、一般的な会社員的には「自己満足」の世界でしかないわけでして、実利益を得るところまで到達するだけの労力をかけるのって大変。
会社の仕事が忙しくなったら、あるいは「あわただしくなったら」頻度が下がって休止してやがて飽きるしブログの情報も薄くなる

続けられる人は習慣化と自己満足継続の成果であろう。すばらしい。私はそこまでしない。へたれることにする。人生の重点のおき方は誰かに左右されたくないものである。

また情報発信意欲がわいてきたら再開する。もとい「仕事以外で調べて書きたくて仕方なくなったら発信する」

この間にしていたことノート

  • 仕事上の必要性から JavaScript, PHP を勉強したり調査したり
  • ぷよぷよ!クエスト で遊んでいたり(ホント ソシャゲは地獄だぜ! フゥハハハーハァー)
  • BorderLands2 が面白くて仕方なかったり
  • 開発チームの人が転職した。転職って大変なのかなと思って調べてみたりした。

休止期間開始メモ

第04期終了   : 2014/08/24
休止宣言(本日) : 2015/01/27
第04-休止期開始 の日数 : 156日

仮に再開するなら第05期である

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 つけたらいいんでしょ!?(雑)

2014年8月24日日曜日

第04期終了。そして区切り。

部屋を引っ越したのが、大きかった。


今までは会社の寮に住んでいたのだが、8月の夏季休暇を利用してアパートへ引っ越した。そうすると、引越しとその後の生活、そして生活に早速降りかかる問題のトラブルシュートなどに追われて、いろいろやらなくなる。そう。Unityもだ。続けられなくなっていたのが、もう本格的に終わった状態になる。

このブログ、自分の宣伝ではやっていない。仕事でもない。ブログで食ってく気もない。ただ、ちょっとは世の中に役立てればな、ぐらいは思ってる。まあ、文章スタイルは垂れ流しで、読者のことは考えていないんだけれども。

だから、ブログどころじゃなくなれば、すぐ更新が停止するんですわこれが!

第04期の情報

第04期開始:2014/06/06
第04期終了:2014/08/24
期間長さ:79日

一番読まれた記事は:Unity3D の回転とクオータニオンのリファレンスリンク

Unity3Dとてもよいです。あと、それを使う人がもっと増えると、そして情報発信が増えると、もっともっといいです。まだまだ日本語情報は少ないなって思うよ。海外?アメリカ?英語ワカリマセーン!、、、英語しんどいです。かなり広まっているんじゃないかな?知らんけど。

かつて調べた内容のその後の話題

ちょっとだけ書きたくなった。

  • Windows 8 :ニュースを聞いた。早速 Windows 9 (コードネーム Threshold)の情報がうわさされるように。ニュースになるように。情報源を精査してないので本当かどうかわかってないが。まあ、Vistaと同じ運命をたどるだろうね。とか書かれていたな。
  • iPad : 便利。Cookpad のアプリが便利すぎてしかたない。Wunderlistの改変がちょっと受け入れがたい。便利さがすごく失われた。今後のアップデートに期待。
  • 投資 : こっそりはじめてみた。NISA枠だけで。投資にそんなにお金回せません。

ここまでの期間情報のちょっとまとめ

  • 第01期:2013/02/10 => 2013/03/29:47日
    • 中間01-02期:2013/03/29 => 2013/07/02:96日
  • 第02期:2013/07/02 => 2013/10/05:95日
  • 第03期:2013/10/05 => 2014/01/26:113日
    • 中間03-04期:2013/01/26 => 2014/06/06:131日
  • 第04期:2014/06/06 => 2014/08/24:79日

案外続かないな。個人的に1ヶ月半続くと飽きるという感覚があったが、大体裏付けられた形。一見期間が長く見えても、活動が少なく、ブログに上げられないために活動が停滞して結局終わりを宣言するのが遅くなるだけなんだという話、、、に見えるが?、、、どうなんだろう?


2014年7月13日日曜日

お部屋探しのメモ

何を探しているか

ワンルームぐらい、予算が5万以内の安い物件。会社に近い物件。学生マンション。

探す

基本スタンスは:ウェブでなんとなく様子を見て、店舗へ行って店員さんの話を聞く。だが、相場というか、大体どこにどのくらいの価格で、というのはやっぱりウェブで探しておきたいもの。
  • HOME'S
    • 地図ベースで探せる。というかこのサイト以外は地図を見て探せない。
      駅から少しはなれる物件の検索に最高。
  • at home
    • 不動産会社さんごとでの検索が便利。
      比較的物件数の多い会社さんは、同じ地域の物件を多く持っているので
      初動のお店訪問の候補探しに。
お部屋は紹介していないけど、お部屋の探し方をご紹介。

見る

過去に一人暮らしをしたことがあるため、、、、現在は会社寮である、、、大学も一時期学生寮に住んでいた、、、ので、ある程度自分の生活に必要なものがわかっている。無論生活が変われば、いや、変えたいのだが(主に二人暮らし的に)、必要なものは変わる。

なお、現在の建物はほぼ必ずエアコンが付いていると考えてよい。逆にない部屋は即効NG。避けるべき。熱中症があなたを待っている。
  • 狭さ・間取り
    • 布団、ベッドをまともに置けるか
    • 洗濯機は置けるか(ないのはNG,廊下設置はあまり、、、ベランダか室内)
    • 冷蔵庫はキッチンに置けるか(結構うるさい。)
    • 光は。明るすぎて困る場合と、暗すぎて困る場合の2パターンがある。
  • 水周り
    • トイレ、風呂、シンク、洗濯機周りは臭くないか。においは個人的にかなり重要
    • トイレ、風呂の種類(UBの便利さに慣れていて別じゃなくても良い)
    • 風呂の広さ、、、は1R、1Kの時点であきらめる
    • ボイラーの調節機能があるかどうか。シャワー中にお湯切れとかあるある
    • キッチンはコンロか?IHか?IHはかなり料理の幅が狭まる。わりと安全だが。
  • 立地
    • 通勤ルートがどうなるか
    • 最寄駅や最寄バス停はどこにあるか。距離は。本数は。
    • 最寄のコンビニ、スーパー、ドラッグストア、ホームセンターへの距離。
  • 自分は関係ないが
    • 駐車場、駐輪場の条件と値段。ない場合もあったり。
    • 周りはうるさいか(道路沿い、線路沿い、繁華街が近い)
    • 隣の部屋の音はどれぐらい聞こえそうか(生活時間帯に行くと、実際音が聞けるかも)
  • もっと世帯じみた話題
    • ごみ捨ての場所、条件
    • 地域自治会加入、あるいは自治会活動の有無
その他も言い出せば結構ある。コンセント位置、ネット対応、防犯の条件、収納能力、、、

思いつく限りチェックしておくと、後悔する要素が少なくなって良い。住めば都派か、とにかくこだわる派か、とか。住む場所というのは個性の固まりである

日程とか費用に関する話題

不動産屋さんでとにかく聞く。普通は急な予定は嫌われる。そりゃね、いろいろ手続きもあるし、部屋探しもあるし。さすがに1週間ではなんともなりません。実のところ自分は3週間ぐらい後に引越しの予定で、正直無理してる感がある。普通は1ヶ月、1ヶ月半ぐらい前から話をしておくと楽。まあ、1ヶ月かな。

費用に関しては本当に差が出る、、、気がする。
  • 月々費用(不動産関連のみ)
    • 賃料(そりゃね)
    • 共益費
    • 保障代(不動産屋さんによる。保証人の変わり、あるいは追加)
    • その他不動産屋さんによるオプション(があったので書いている)
  • 初回費用 ≒ 更新費用(2年ごと)
    • 敷金 => クリーニング費用としての没収を念頭に。必ず確認
    • 礼金
    • ”先払い家賃”(基本的に日割り)
    • 仲介手数料
    • 火災保険(あるいは保障)
    • かぎ交換費用
  • その他想定出費
    • 引越し費用
    • 家財費用(冷蔵庫は?洗濯機は?)
    • 光熱費、食費(暮らし方が変わると結構変わる。いや、変えられる。)
これも事前に調べるのがベター。


2014年7月9日水曜日

Unity3D の回転とクオータニオンのリファレンスリンク

Unity3D (4.5.1) の回転と姿勢とクオータニオン関連の関数とか変数を、目に付いた範囲でまとめてみる。どう使うかの解説を書こうと思ったが、、、ま、次の記事で「伝わらない」記事を書こう。

視点としては、次の3視点で関連のある関数・変数をまとめた。
  • Phyxエンジンを用いた姿勢制御(Rigidbody)
  • Transformを直接変更するスタイルの姿勢制御(回転制御)
  • Vector3, Quaternionによって、状態変数の変更を行う計算関連
並びはクラスごととした。用途ごとにまとめようかとも思ったが、まずはもっとも見通しのよいスタイルにした。

回転と姿勢制御関連のリファレンス

リンク先は、UnityのScriptAPI Reference である。日本語にリンクしている。関数と変数の表記法は、C#の方式にしている。私がC#使うからである。UnityScriptとBooについては、リンク先で確認されたい。

注意点として、クラスに含まれる関数、変数を「すべて」紹介しているわけではない。省略された中にも回転制御に関連のある関数・変数はある。かもしれない。今のところ意図的に省いたのはRigidbody.AddForceだけ。他にあったらこっそり使わずに教えてくださいおねがいします

今回調査したクラス一覧

  • Rigidbodyクラス
  • Transformクラス
  • Vector3クラス
  • Quaternionクラス

Rigidbodyクラス

変数

  • AddTorque
    • void AddTorque(Vector3 torque, ForceMode mode = ForceMode.Force);
    • void AddTorque(float x, float y, float z, ForceMode mode = ForceMode.Force);
  • AddRelativeTorque
    • void AddRelativeTorque(Vector3 torque, ForceMode mode = ForceMode.Force);
    • void AddRelativeTorque(float x, float y, float z, ForceMode mode = ForceMode.Force);
  • MoveRotation
    • void MoveRotation(Quaternion rot);

Transformクラス

変数

  • LookAt
    • void LookAt(Transform target, Vector3 worldUp = Vector3.up);
    • void LookAt(Vector3 worldPosition, Vector3 worldUp = Vector3.up);
  • Rotate
    • void Rotate(Vector3 eulerAngles, Space relativeTo = Space.Self);
    • void Rotate(float xAngle, float yAngle, float zAngle, Space relativeTo = Space.Self);
    • void Rotate(Vector3 axis, float angle, Space relativeTo = Space.Self);
  • RotateAround
    • void RotateAround(Vector3 point, Vector3 axis, float angle);

Vector3クラス

Static 関数

  • Angle
    • static float Angle(Vector3 from, Vector3 to);
  • Lerp
    • static Vector3 Lerp(Vector3 from, Vector3 to, float t);
  • MoveTowards
    • static Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta);
  • RotateTowards
    • static Vector3 RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta);
  • Slerp
    • static Vector3 Slerp(Vector3 from, Vector3 to, float t);
  • SmoothDamp
    • static Vector3 SmoothDamp(Vector3 current, Vector3 target, Vector3 currentVelocity, float smoothTime, float maxSpeed = Mathf.Infinity, float deltaTime = Time.deltaTime);

Quaternionクラス

変数

コンストラクター

関数

  • SetFromToRotation
    • void SetFromToRotation(Vector3 fromDirection, Vector3 toDirection);
  • SetLookRotation
    • void SetLookRotation(Vector3 view, Vector3 up = Vector3.up);
  • ToAngleAxis
    • void ToAngleAxis(float angle, Vector3 axis);

Static関数

  • Angle
    • static float Angle(Quaternion a, Quaternion b);
  • AngleAxis
    • static Quaternion AngleAxis(float angle, Vector3 axis);
  • Euler
    • static Quaternion Euler(float x, float y, float z);
    • static Quaternion Euler(Vector3 euler);
  • FromToRotation
    • static Quaternion FromToRotation(Vector3 fromDirection, Vector3 toDirection);
  • Lerp
    • static Quaternion Lerp(Quaternion from, Quaternion to, float t);
  • LookRotation
    • static Quaternion LookRotation(Vector3 forward, Vector3 upwards = Vector3.up);
  • RotateTowards
    • static Quaternion RotateTowards(Quaternion from, Quaternion to, float maxDegreesDelta);
  • Slerp
    • static Quaternion Slerp(Quaternion from, Quaternion to, float t);

演算子(Operators)

  • * 演算子
    • static Quaternion operator *(Quaternion lhs, Quaternion rhs);

以上である!