Wunderlist(Mac App)が起動時にクラッシュするのを直す

個人のタスク管理は Wunderlist | To-do list, Reminders, Errands - App of the Year! を使っているんですが、
起動後に突然死するようになって全く使えず困っていました。

探してみたらFAQに解決方法が載っていたのでメモ。
http://support.wunderlist.com/customer/portal/articles/1490719-mac-app-crashes-on-startup

cd ~/Library/Containers/com.wunderkinder.wunderlistdesktop/Data/Library/Application\ Support/Wunderlist
rm ./*

ずっと ~/Library/Application\ Support 以下を探してぐぬぬしていたんですが、なるほど。

MySQLSandboxでbinlogを無効にする

普段ローカルで作業するときはMySQLSandboxをたちあげて、さくっとテストを流したりしているんですが、
あるときから突然

Binary logging not possible. Message: Statement cannot be logged to the binary log in row-based nor statement-based format [statement: ~~~~ ]

と出てコケるようになってしまいました。

原因はメッセージに出ているように、binlogのフォーマットがstatementになっているからなのですが、
~/.my.cnfは置いてないし、プロジェクトのmy.cnfにはbinlogの設定書いてないしと何が原因か分からず。binlogは出さなくていいので、ただ設定をオフにしたい…

そこでそういえばと思ってps aux | grep mysqlしたら、--defaults-fileに設定されている~/sandboxes/version/node*/my.sandbox.cnfに
log-bin=mysql-binが書かれていて、これや!とコメントアウト&restart_allしたら無事動くようになりました。

my.sandbox.cnfを生成しているところがきっとあるはずなので、なにかオプションをくわせたら or EXPORTしたらいいかんじにしてくれそうなのですが、時間切れ。
もうちょっとみてみます。

さくらVPSで環境構築

普段webアプリケーションの中身ばっかり書いていて、その周りにはふわふわっとした理解しかないので、もう一度自分で組み立てて理解を深めようシリーズ。
ずいぶん前に取得したさくらのVPSを、よい機会!とまっさらにして始めてみています。
備忘録というか、作業メモというか。

やりたいこと

ドメイン

さくらのドメイン設定でゾーン設定をする→ムームードメイン(で取得した)でネームサーバの設定をする→まつ
このあたりあんまりよくわかってない。宿題。

ユーザを追加してsshログインできるようにする

http://blog.myfinder.jp/2010/09/vpsssh.html
done!

perlbrew

perlbrewをいれておく。
あとはcpanmでよしなに。

nginxのインストール

自分からnginxさんとふれあうのは初めてだったりする。

はじめからyumにあったのは1.0.15-5だったので、
stableのURLを探してきて、
http://nginx.org/en/linux_packages.html#stable

$ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
$ sudo yum install nginx

してから、

$ sudo nginx
$ ps auxf | grep nginx

いるいる。

起動したらすでに80番ポートが開いているらしい。
ブラウザで叩いてみる。

_人人人人人人人人人人_
> Welcome to nginx! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

おお。

/etc/nginx/ にconfファイルがあった。読みやすいですね。
ここで、80番で受けて別ポートで立ち上げたpsgiを呼んであげれば(proxy_pass http://127.0.0.1:5000; とか?)いいのかな…?
きょうはここまで。

shipitするときに忘れがちなBuild manifest

$ perl Build.PL
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Product name' version 'version'

$ ./Build manifest  

./Buildがたたけないよー><とかやりがちなので、備忘録としてぺたり。

IB上に配置したオブジェクトに対応関係を持たせたい

試行錯誤中。よいプラクティスがあればコメントなどいただけると幸いです。

たとえばIB上で

(上層)
Button A
Button B
Button C
imageView A
imageView B
imageView C
(下層)

のように配置したとして、
buttonAをタップしたときにimageViewAになんらかの変化をさせたい、
ついでに他にプロパティも持たせたい、
でもクラス化はしたくない(このビューの並び順を変えたくない)ときってどうすればいいのだろう…

とりあえずの解決策として、

- (void)_buildHogeInfo {
    NSDictionary* hogeInfo = @{
                          @"mochi" : @{
                                  @"button"  : self.mochiButton, // すでにIBOutlet接続をしてある
                                  @"name" : @"もち",
                                  },
                          @"dango" : @{
                                  @"button"  : self.dangoButton, // すでにIBOutlet接続をしてある
                                  @"name" : @"だんご",
                                  },
                          };
}
- (IBAction)touchDownHogeButtons:(id)sender {
    for (NSString* key in [self.hogeInfo allKeys]) {
        NSDictionary* info = [self.hogeInfo objectForKey:key];
        if (!info) continue;

        NSArray* innerKeys = [info allKeysForObject:sender];
        for (NSString* innerKey in innerKeys) {
            if ([innerKey isEqualToString:@"button"]) {
                NSLog(@"name: %@", [info objectForKey@"name"]); // ここでなんらかの処理
            }
        }
    }
}

こんなことしてました。うーん…