JavaScriptのカプセル化

JavaScriptのカプセル化について

日頃はWebサイトの制作というバイトなんぞをしているわけではありますが、いい加減スパゲティコードから卒業しなければなあと思い立ち、カプセル化について勉強するわけでありました。

カプセル化のメリットとしては、外部からアクセスできなくなる(隠蔽)というのが一番あると思うんですよね。うんうん。
ここでいう『外部』というのは悪意を持ったアクセスというわけではなくて、例えば他の関数で変数の値の上書きができないようにするというニュアンスですな。

大体発見し辛いバグというと、知らずのうちに変数の値が書き変わっていて、というものでして。
それを未然に防ぐ、という意味合いでも、不用意に外からアクセスできないように隠蔽化しておくのが吉というわけですな。

全部Public

JavaScriptの特長として、変数や関数は基本的に全部Publicです。つまりどこからでもアクセスができてしまいます。
JavaScriptを始めた当初は「なんて便利だ」と思った機能ですが…

で試行錯誤の結果以下のような書き方が「とりあえず」は良さそう。

所感

privateもどきの機能を達成することはできましたが、いくつかの難点もあるようで
・いちいち「private」と打つのがめんd(ry
・メモリ消費が激しい?(prototype使わないから?よう分からん)(そんなに大量にオブジェクトを生成するわけでもないので無視してます汗)
まあこの辺が「とりあえず」という謂れですかなあ
参考サイト[2]には『privateは諦めましょう』なんて言われていますしなあ

参考サイト

[1] JavaScriptとprivateの見果てぬ夢 (JavaScript Advent Calendar 2011 オレ標準コース 6日目) – 泥のように
http://blog.tojiru.net/article/238901975.html

[2] newを封印して、JavaScriptでオブジェクト指向する(1) – 泥のように
http://blog.tojiru.net/article/199670885.html

[3] Javascriptでカプセル化を実現する! – 日本野望の会
http://yabooo.org/archives/53

c++/boost 乱数生成

並列計算への旅vol.1

(投稿日時を見てみたら2012年も半分終わったんですなあということで月日が流れるのは早いものです)

ということでひとまずは目標としてモンテカルロシミュレーションでも並列計算ができたらなあと考えておりますので,
その1つめの道のりということでまずは乱数を発生させてみましょうというコーナー

c++もほとんど初めて触った(もっぱらCをぶん回しているので)ワタクスにとってはおまじないが多いなあという印象なのですがまあ動いているのでよしとしましょう汗

時間も測れるように

目標が並列計算なので,計算速度を計測する必要がありますよねということで

boost/progress.hppを使えば1行で処理速度を計測して出力までしてくるので便利な世の中だなーという印象を受けました笑
特定の処理の部分だけの処理速度を計測したい場合には{}で囲むとよろしいある.

本当に生成されてるん?

本当に意図した分布の乱数が生成されているのかが分からなかったのでcsvで書き出して確認してしましょうという粘着コーナー笑

ということで一様乱数から標準正規乱数に変えるにあたり,

に変えました.
書き出しの仕方が古臭いのはツッコまない方向で汗
この部分も後々boostで書き換えたいと思います(実はその部分で大きくハマったのではありますが汗)

で,書きだされたcsvのヒストグラムや統計値でも眺めてみましょうかということでRにでもぶち込んでみましょう

(今気づいたのですが,シンタックスハイライターにR言語用のものが無い件について)

で,まあ平均0標準偏差1ということで標準正規分布っぽいものが生成されましたと.

latexでpng画像を表示する

ハマったのでメモ

latexを用いて文書作成しているときに,epsではなくてpngを表示したい時には,

eps以外のフォーマットの画像を貼り付け
http://d.hatena.ne.jp/mallowlabs/20070120/1169314704

上記の方の方法で基本的にはOKなのですが,この

という一行を書くと

LaTeX Error: Option clash for package graphicx.

というエラーが発生してpngを表示させることができなかった.
これはどうやらgraphicxパッケージを2回読みに行っていることによるエラーらしい.

LaTeX のエラーメッセージ
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?LaTeX%20%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8

今回は,独自のクラスファイルを使用していたため,graphicxを2回よみに行っている模様.
通常はクラスファイルを編集するなりして読みに行かせないようにすれば良いと思うのですが,学会などテンプレートが指定されている場合,そんなことも出来ません罠
で,試行錯誤をした結果,

とすることでエラーを回避することができました.
texを理解している人にとっては基本のキかもしれませんが,天下り式に使用しているワタクスはハマったので俺様メモということで.

WordPress プラグイン導入

プラグインを導入して利便性を向上させるの巻

このブログはwordpressで構築しているのでありますが、更新の利便性をあげるためにいくつかプラグインを入れましたのでメモ

Lockdown WP Admin
wordpressのログインページはデフォルトではwp-adminとなっていますので、それを隠蔽。
AddQuicktag
本文中に定型文を登録することができます。記事を投稿するにあたりCSSのクラス指定とかを書かないといけない仕様のためそれを少しでも簡単にします。
Crayon Syntax Highlighter
シンタックスハイライターですな。プログラムコードを記載した時に見やすくしてくれます。
cf) WordPress – シンタックスハイライト関連プラグイン

シンタックスハイライターテスト

こんな感じですな。

ということで暇を見つけてはc++/boostの勉強をしておりますということで(ノ∀`)
並列計算とかやってみたいですな

#スマートフォンで見るとシンタックスハイライター横長になってますがまあしゃーないですなm(_ _)m

ブログ 始めました。

超俺様備忘録です

基本的には、時間を持て余したM2が自分のために書くメモであります。
その自分用のメモを皆様に晒し上げるというプレッシャーを与えることで何か得るものがあれば良いなあという他力本願のもと運営される予定です。
それからtwitterでは長くて書けないような内容もこちらの方にポストしていければなあと風呂敷を広げておきます。

以下ブログ構築用のメモなど

基本的にはレスポンティブなデザインで、PCもスマートフォンもワンソースで管理できたらなあと考えていましたが、結局デバッグというかブラウザ対応に時間は取られるので効率あまり良くないですなという印象。
でもソースを別にすると先祖帰りというかこっちのソース編集したつもりが別のソースを編集していたということが発生するのでまあ1つのファイルにしておくのが無難ですかなという感じでございます。

以下、利用したサービスなど

respond.js
media-queryをIE8以下に対応させる
fancybox
様々なファイルタイプに対応したlightboxですな
compressor
Javascriptを圧縮
cf)web高速化のためのコーダー向け圧縮ツール・サービスまとめ
LESS.app
cssの拡張的な。入れ子式で書いたり変数を定義したり出来ます。コンパイルも自動でやってくれるのでsaasよりも使いやすいかなと(saasはあまり調べてませぬ。。)

もっと効率よく記事を更新できるように何か考えないといけませんなあ
一部デザイン崩れとかそもそもIE対応適当とか色々ありますが見切り発車的に公開