2012年7月6日金曜日

テスト駆動JavaScriptを写経する時の注意点

テスト駆動JavaScriptを写経中です。
なかなか理解が追いつかず苦戦しております。

そして注意点ですが、サポートサイトをチェックすることです。
http://tddjs.com/

この本は「リスト12-34」みたいにコードをたくさん載せてくれていますが、
どのファイルのどこに追加すればいいのかがわかりにくいです。

zipかgitでコードが落とせるようになっているので完成形、全体像をチェックしながら進めるとよいと思います。

特に写経を始める時には「Initial project states」に置いてあるコードをダウンロードしてから始めるとよいです。
jsTestDriver.conf等、必要なファイルは揃った状態で始められます。

僕の場合、
本文通りにsrc/以下のファイルにコード書いたのに動かない!
と思っていたらlib/以下に必要なファイルがあったりして無駄な時間を過ごしてしまいました。。。


2012年7月2日月曜日

第4回チューニンガソンに参加してきました。

@nise_nabe氏に誘われて第4回チューニンガソンに参加してきました。
http://www.zusaar.com/event/312053

 インフラ周りは全然わからん(かといってアプリ側すげー出来るかと言うと…)ので、周りの人がどんな風にやってるのか体感できればと思っていました。
実際手も足もでなかった(;´Д`)

内容はRailsのrefineryのコメントPOST/GET回数を10並列で一定秒数測定するというものです。
参加者一人ひとりにAWS EC2のインスタンスが配られてチューニング。
アプリのソースはいじっちゃダメで、RubyやMySQL、Gemのパッケージは入れ替えOK。
運営側も一定間隔毎に計測バッチ流してる感じ。
今回は大阪、名古屋、福岡等地方リモート会場もあったみたいです。

Rubyは以前さくらVPSに入れてみたりしてみましたが、環境構築からコケまくって涙目だったので良い思い出がなく、とりあえずMySQLからいじってみました。

テケトーにこの辺の値を増やしてみましたが全く効果出ず。
innodb_buffer_pool_size
table_open_cache
hread_cache_size
query_cache_size

むしろいじればいじるほど遅くなる。。。
チューニングわからん。
そしてMySQLは諦めてRuby周りへ。
なんとなくgem updateとかしてみたら動かなくなる(´;ω;`)ブワッ
Rubyわからん。

周りの人達は下記のようなことをしてたっぽいです。
・RubyをEnterprise Editionに入れ替え。
(Ruby1.8だったのですが、これだけでもかなりスコア上がったらしい。)
・nginx、passengerを使う
・varnishを使う
・DBをオンメモリにする
・RubyのGCを切ってみたり

わかってないことだらけである。
自分がカスだと言うことを思い知らされたのでまた一から勉強し直します。
リバースプロキシだとか、DBにしてもそうですが、キャッシュを使うってところを掘っていってみようかと思います。

2012年6月29日金曜日

Perl Beginners #3

初心者向けといいつつ、初心者向けじゃない勉強会、
Perl Beginnersにまたまた行って参りました。

仕事で少し遅れてしまい、会場に入ってみるといきなり、
Fluentdって単語が耳に入る。

はい?Perl勉強会じゃないの?

FluentdとはログをJSONでまとめてうまいことしてくれるものみたいですね。
http://fluentd.org/
覚えておかねば。
いつも思うけどこの勉強会ってそこそこレベル高いエンジニアでPerlもちょっとはやっとくかー人達が来ているんだろうなあ。

今回のテーマはDBということで、自分としてはあまり得意ではない領域なので、
・これから習得するならまずはDBI+MySQL
・DBIをきちんと理解してからORマッパ覚えたほうがいい
・慣れてきたらmemcachedとかにも手をのばす
というアドバイスが聞けたのは良かった。

今の仕事では過去に誰かが作ったDB関連の処理をまとめたクラスを呼び出してSQL書くくらいで自分で一からやる経験が足りてなかったので。
DBだけに限らず、WAFとかでも基本がわかっていないと使いこなせなかったりいざって時に困るような気がする。

あと、後置ifでmy宣言はしちゃいけないらしい。
↓↓こんなん
my hoge = "HOGE" if (foo == "FOO");


まあifがfalseで変数が未定義になるとあとでコケたりして面倒くさいでしょうね。

次はそろそろビギナーズセッション出ようかな。
そろそろ人前でしゃべってボコられたほうがいいのかもしれない。

2012年6月22日金曜日

3月末で会社を辞めた人のお財布事情

4月からフリーランスになりましたが、今のお仕事は末締めの翌々月末払いなので4〜6月はほとんど無補給で生き延びてきました。
が、やっとお金が入ると思ったところで最後に支払いが重なってえげつないことになっています。。。
会社辞めてからこれまでのお金の流れをちょっと残しておこうと思います。
 
まず3月分の給料はがっつり減ります。
3、4、5月分の税金・年金・健康保険料等が引かれるからです。
会社が代行して納付、つまり天引きのやつですね。
辞めた後も代わりに払ってくれるわけです。
あと、余った定期代が回収されました。半年ずつ支給されていたので。
え?バイト代?って気持ちでした。

4月には3月中にやった残業の残業代が振り込まれます。
毎月振り込まれる給料は当月の基本給+前月の残業代だからです。
僕は有給消化できず、3月も残業ありだったので。
とは言え何十時間も残業したわけではないので大した金額ではなかったです。

で、支払いについては、
4月は先に払っているようなもんなので保険料とか払っていません。
5月から年金の支払いが始まり、6月は加えて住民税と国民健康保険料を払います。
住民税は4分割なので払わない月もありますが、他は基本毎月です。
まとめて払うと割引があったりもします。
なんでこういう風になるかと言うと、
所得税、住民税、年金、健康保険等、社会人が支払うべきお金は全員均等ではなく稼いだお金を元に決められていて、その計算タイミングがそれぞれ微妙に違うからです。
1年間の区切りが年だったり年度だったり、詳しくはもっと詳しい解説サイトがあると思うのでそちらでご確認を。

この辺りは年の前半で辞めるか後半で辞めるかでも変わってくると思います。
僕は3月退職なので給料から引かれましたが、6月で辞めるとなるとほぼ1年分の支払いがあるのでさすがに給料からは引けないはずです。

会社を辞める時には貯金がすごく大事です。僕も少しは貯めていましたが一気に減りました。。。

失業保険を受ける場合でも自己都合退職は3ヶ月ぐらいもらえるまで時間が掛かったと思うので、給料半年分くらいはみておいたほうがいいかもしれません。
退職は計画的に。

2012年6月5日火曜日

アプリ開発においてタブレットをサブディスプレイにするのはありかもしれない

約一年前にAndroidのタブレット端末ICONIA A500を買ってみたものの誇りをかぶってしまっていたので週に何回か出入りしているコワーキングスペースにサブディスプレイとしておいています。

そして最近気付いたのですが、この組合せ、スマホアプリ開発にいいかもしれない。
なぜなら元々がタッチパネルってことはタッチ入力できる!!
シミュレータなのに実機確認っぽく操作でき、マウスで操作するよりはましかなと思います。
 まあ最終的に実機テストは必須ですが。

Air Displayというアプリを使ってWi-Fi経由でこのとおり















拡大するとこんな感じ















設定はここで変えます

2012年5月27日日曜日

青色申告会に入ってみたが…

フリーランスになり、確定申告が必要になるので青色申告会とうものに入ってきました。
入会すると会費はかかりますが、記帳・決算指導や企業の福利厚生的なもの、共済などの各種保険があります。

僕は新宿区民なので新大久保にある事務所に行って来ました。
新大久保は普段立ち寄らないのですが、学生の時に旅行で行った韓国釜山が懐かしかった。
てかもうほぼ韓国w

事務所は平日は17:30まで、奇数の土曜の午前中に開いています。

手続きは書類に名前とか住所とか仕事内容を書いて入会金を支払って即完了です。

しかし、

なんと通っているコワーキングスペースで会計士さん(税理士資格もお持ち!)と知り合いまして、アドバイスして頂ける流れに!!

申告会は共済とか積立とかがいいなと思ってたけど、指導は予約制で開いてる時間が微妙だし、 一度も指導受けずに辞めるかも。。。


フリーランスは身体が資本なので保険は気になっているのですが、都民共済ってのもあって大差ないっぽいし。

うん、多分辞める。

2012年5月25日金曜日

Amazon Product Advertising API 署名認証ではまった

Amazonアソシエイトやってみたいなと、
こちらのAjaxTowerさんのサンプルを試してみていました。
http://www.ajaxtower.jp/ecs/signature/

しかし認証エラーになります。
Versionが"2009-01-06"だったり、今は必須のアソシエイトIDがなかったりしていたので、 そこら辺かと思い、いろいろ試してみたのですが一向に

 The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

と返され明らかに署名がおかしい。
上記で紹介されていたエンコーダ base64.jsを下記のものに変更したところ動きました。
 http://user1.matsumoto.ne.jp/~goma/js/base64.html

AjaxTowerさんのサンプルが動かなかったという報告は見つけられなかったので、 windowsとmacの差なんでしょうかね。

これを機に文字コードをもう一度勉強しようと思いました。