雑記

隅田川テラス工事中

87632172FB56476E84957A5EF69217CAjpeg

隅田川のテラスのうち両国橋の下のところの工事が進んでいます。

靖国通りを横断しなくても浜町側に行けるようになるのはありがたい。

 

Posted by issei

Category : 雑記

クレジットカード落としました

カード会社からの電話が留守電にあって気がつきました。

子供を電動自転車で保育園に送るときにサイフがポッケから落ちたのですがその時に落したらしいです。 届けられたブツを警察署で確認してわかりました。 ユニクロのなんちゃってジーンズはポッケからよく落ちるんですよね・・・・

とりあえず、誰がカード番号を見ていたかわからないのでカードの使用を停止し色々手続をしてるところです。 ただ、かなりの部分(公共料金の引き落しなど)は自動で新しいカードに引き継がれると聞いたので、とりあえずそちらは放置して止められてしまうとクリティカルなやつだけ仮の別のカードに変更しているところ。いろいろ面倒くさいですねー。

Posted by issei

Category : 雑記

iPhone割れる

IMG1419JPG

羽田空港のフードコートでご飯食べてたらポロッと手から床に落ちました・・・

 

Posted by issei

Category : 雑記

眼鏡が壊れた

まだ完全に崩壊したわけじゃないけど、つるにヒビが入っているので壊れるのは時間の問題と思われ。 さっそくJINSで購入(また安物) 受け取りは夕方
Posted by issei

Category : 雑記

プラレール博2016 (2回目)

とても混んでたプラレール博。

最強最悪といってもいい。入場2時間待ち。帰りのころには海浜幕張のあたりまで列ができてました。あれは今日中に入場出来るんでしょうか?

日付指定にして入場制限かけないとヤバイですね。これ。

Posted by issei

Category : 雑記

律儀に咲くやつ2015

IMG5114JPG

名前通り律儀にお彼岸の時期に咲く花

Posted by issei

Category : 雑記

ヨドバシカメラのゴールドポイントカードを交換してもらった

長年愛用してるポイントカードがパキパキに割れてきたので交換して貰いました。「お客さん相当前に作りましたね」と言われました。多分ヨドバシが仙台に出店した頃に作ったので、比較的新しいほうじゃ?と思ってたのですが調べてみるとゴールドポイントカードの導入は1990年11月。一方仙台に出店したのは1991年4月だから結構初期型のようですね。

ちなみにポイントカードを交換すると、カードの番号も変更になります。(そしてポイントが移行される)。

しかし当時からバーコードのみでサーバでポイントを一元管理してたとか先見の明があったとしか言いようがないですね。逆いうとバーコードだけ読み取れればカードはパキパキでも関係ないと。まだバーコードは割れてないようだし交換しなくてもよかったかなー?

 

Posted by issei

Category : 雑記

眼鏡が壊れた

なので、遠近両用を作りました。

JINSで

 

Posted by issei

Category : 雑記

JavaScript の catch節とスコープ

今更車輪の再発明かもしれないけれど、JavaScriptを圧縮する(難読化する)プログラム作ってます。 nodeで動くものはゴマンとあるようですが、フルスクラッチでruby 100%が目標です。

そんなわけで、ECMA262を読破してるのですがおかげさまでJavaScriptに詳しくなりつつあります。 この手のソフトの中ではuglifyjsがなかなかに好成績を出すんですが、場合によってはそれより小さくできているように見えます・・・めでたい。 ただし本当に正しく圧縮されてるのかは試験する余地がありますが・・

さて、圧縮する過程で苦労してるのがJavaScriptのスコープです。 JavaScriptのスコープは単純なようで難解です。 例えば以下のようなコードを実行したときに何が帰ってくるのかすぐに正しく答えられる人は少ないんじゃないか?と思います。

function zzz(){
    bbb = 2;
    try{
	throw 3;
    }
    catch(bbb){
	var bbb;
	console.log(bbb);
	bbb = 1;
    }
    finally{
    }
    console.log(bbb);
}
zzz();
console.log(bbb);

結論からいうと結果は

3
2
undefined

です。 順番に紐といていきます。

varは function内のどこで宣言しても同じ効果がある。

関数内でvar宣言した変数は外部との関係が断たれるわけですが、この宣言はどこでしても同じです。極端な話 関数の一番下でひっそりと書いておいてもいいのです。もちろんむちゃくちゃ分りにくくなりますが・・・ よって、catchの中にある var bbbは

function zzz(){
    var bbb = 2;
    try{
	throw 3;
    }
    catch(bbb){
	console.log(bbb);
	bbb = 1;
    }
    finally{
    }
    console.log(bbb);
}
zzz();
console.log(bbb);

と書いたのと同じです。つまり bbbは 関数zzzの内部でのみ有効な変数ですから関数内でいくら 値を変更したとしてもグローバルな bbbは代りません。よって最後の consoleは undefinedを 返します。

catchの引き数は catchの中のみで有効である

catchの内部はハンドルした例外が入る bbbが優先されます。 よってcatch内では bbbは 3になっています。よってconsoleの出力は3となりますし、 bbbを別な値に書換えてもvar宣言された bbbはもちろん、グローバルなbbbも変化しません。 というわけで、最初に書いたような出力になるわけです。 なんかややこしいいですが、 1. functionの内部で var宣言された変数は、局所になる 2. var 宣言はどこかで一度すればよい。 3. ただし、catch節の引き数だけは例外にcatchで有効 と覚えておくと実務的には困らないかな?と思います。

あ、あとこちらもよろしく。ここまで書いておいてなんですが、まだこの問題にちゃんと対処できていません・・・

minjs 0.1.5
https://rubygems.org/gems/minjs

Posted by issei

Category : 雑記

プラレール博

FEBD0B59584842A3B533966767CC32A3jpeg 42D279D697144334A4558CA0EA6D0682jpeg

人生初のプラレール博 at 幕張メッセ。平日ということもあり混雑はソコソコでした。

Posted by issei

Category : 雑記