There's an echo in my head

日々のメモ。

2013-01-01から1年間の記事一覧

PostgreSQLでシーケンスオブジェクトを最大IDに合わせて更新する

PostgreSQLについてよくわかってないので、間違っている可能性も否めない IDを指定してINSERTした場合にはシーケンスオブジェクトが更新されないっぽい。 たとえばfixtureなどから初期データをseedしたときなんかにIDがベタ書きされていると、あとあとレコー…

選択されたタブの背景色を消す

デフォルトでは選択されたUITabBarのタブには青い背景色が付くけど、これはselectionIndicatorImageに透過画像を指定することで消すことができる。 aTabBar.selectionIndicatorImage = [UIImage imageNamed:@"transparent.png"];

UINavigationControllerDelegateのnavigationController:willShowViewController:animated:で直前に表示されていたUIViewControlleを参照する

Persistent rightBarButtonItem Property of UINavigationItemに書かれていることがやりたくてUINavigationControllerDelegateのnavigationController:willShowViewController:animated:を使おうとしたんだけど、navigationController.visibleViewController…

ImageMagickでLittle CMSを扱った処理を行うために

こんなエラーが出たとき、Little CMSのライブラリに対応できていない。 convert: delegate library support not built-in `/path/to/jpg' (LCMS) @ warning/profile.c/ProfileImage/565. 対応しているdelegateは次のコマンドで確認できる。 $ convert -list …

PostgreSQLで開発用の適当なユーザを作る

Rails+MySQLだとrootユーザが適当に指定されているのでそれを使ったりするけど、PostgreSQLだと初期状態でそういう適当なユーザはいない。なので自分で作る。 $ createuser -d -s root -dでデータベースを作る許可を、-sでsuperuser権限を付与する。

RDSの新規インスタンスを立ち上げた時に作れるDBはキャラクタセットがLatin1になる

MySQLの場合。

Alfred+Dashの設定

Alfredのworkflowの設定を毎度忘れるので画像でメモ*1。 Alfredにrb hogeとするとDashでruby:hogeと検索してくれる。 Inputs → Script Filter: コマンドは./dashAlfredWorkflow "ruby:{query}。 Actions → Open URL URLは dash://{query} dash-workflow-call…

ImageMagickでpdfをjpegに変換しようとしたらGhostscriptでpdfinflt.psが必要になった話

pdfをjpegに変換しようとしたらこんなエラーが出た: $ convert -limit memory 512 -density 600 -quality 80 -resize 800x /path/to/001.pdf /path/to/001.jpg **** Error reading a content stream. The page may be incomplete. **** Error reading a cont…

Capistranoでunicornを扱うときはBUNDLE_GEMFILEをリセットする

Capistranoでunicornを使ったアプリをデプロイしているとBundler::GemfileNotFoundという例外があがることがあるらしい*1 どうやらBUNDLE_GEMFILEがreleasesのある時点でのGemfileのパスを保持したままデプロイを重ねて、そのファイルがtruncateで削除されて…

Chromeでtextarea内のフォントを等幅にする

Chrome拡張のStylistを使うとサイトごとのユーザ定義CSSが使えるようになるので、これで等幅のMigMix 1Mをtextareaに適用する。 拡張→Stylist→Options→Styles から"Add New Style"に飛んで、 "All site"にチェックを入れて、 CSS入力欄に次のように記述する:…

capistranoでassetsに更新がない場合にprecompileを行わない

サーバ間に差異があると意図どおりに動かない可能性があるのでおすすめできない(追記2参照) capistranoのでデプロイをするとdeploy:assets:precompileを走らせてassetsのコンパイルをしてくれるけど、毎回assetsに変更があるわけではない。なので変更がな…

MySQLでタイムゾーンの設定

MySQLでその接続セッション中のタイムゾーンを設定しようとしたらエラーが出た: mysql> SET @@SESSION.time_zone = "Asia/Tokyo"; ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Tokyo' 原因はMySQLにタイムゾーンに関する情報が入っていなか…

Linuxでタイムゾーンの設定

EC2でAmazon Linuxのインスタンスを立ち上げると、デフォルトではタイムゾーンはUTCになっている。これを日本時間にするには次のようにする: root# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime root# /etc/init.d/crond restart crondも再起動しない…

capistrano_database_ymlでデプロイ時にdatabase.ymlを生成する

capistrano_database_ymlを使うと、デプロイ時にテンプレートからdatabase.ymlを生成することができる。このときcapistrano側からパラメータを与えられるので、multistageと組み合わせると「本番サーバとステージングサーバで同じproduction環境を使いながら…

サンクリ60に行ってきた。

ここ最近、テレビで見てる「俺の妹がこんなに可愛いわけがない」にハマり、特にあやせが気に入ってる。もう嫁さんになってほしいぐらい可愛い。 あやせさん、嫁に来てくれないかなー。— Masato Ikeda (@ikm) June 22, 2013 そんなあやせさんの同人誌がサンシ…

RailsのルーティングでデフォルトのMIMEタイプを指定する

RailsアプリケーションにたとえばGET /fooってリクエストを投げると、ActionDispatchあたりでGET /foo.htmlとして解釈してコントローラに処理が渡る。GET /foo.jsonみたいに拡張子がついていれば補完されずに処理が渡る。 でもAPIサーバを作ってる時はデフォ…

bundler経由でmysql gemを入れるときの--with-mysql-configの指定方法

mysql gemをインストールするとき--with-mysql-configの値としてデフォルトでは/usr/local/mysql/bin/mysql_configで渡されるけど、Homebrewでインストールするとそこには存在しないので、手動で指定する必要がある。 普通にgemコマンドからインストールする…

Jcropを使う要素は複製されるのでクエリの書き方に注意

jqueryプラグインのJcropを使うとIMG要素の画像を切り抜き(クロップ)できるので便利。 使い方は別のサイトにお任せするとしてハマった点をメモ。 $(query).Jcrop()とすると、queryにマッチした要素は最初のJcropの呼び出し時にコピーされ、コピー先の要素…

ImageMagickのconvertで複数ページのPDFを複数の画像ファイルに変換できないとき

たとえば複数ページのPDFをJPGの複数ファイルに変換するときは次のようにする。 $ convert foo.pdf foo.jpg うまくいくとfoo-0.jpg, foo-1.jpg, ... というように展開される。 *1 ただこれがうまくいかないことがあって、複数ページなのに最初のページしか出…

METROCK2013に行ってきた

公式サイトとセットリスト サンボマスター、ごはん、UNISON SQUARE GARDEN、Cure Rubbish、大道芸、Perfume、STROBOY、WHITE ASH、ごはんとおやつ、世界の終わり、くるり。予想以上に面白かった。 とにかくUNISON SQUARE GARDENがカッコ良かった。Vo./G.の斎…

homebrewで入れたImageMagickでpdfを扱う

convert: Postscript delegate failedと言われたらghostscriptで。 tiffも扱いたいので--with-libtiffも付ける。 $ brew install ghostscript $ brew install imagemagick --with-libtiff --with-ghostscript Warning: --with-ghostscript is not recommende…

lsyncdとrsync、sshでファイルの同期(rsyncdサーバは立てない)

lsyncdはlinux上で動くファイルの更新を検知して処理を走らせるデーモンで、これとrsyncを組み合わせればファイルの更新があったときにリモートサーバとファイルを同期できる。 lsyncdとrsyncでぐぐるとrsyncdサーバを立てる記述が目につくけど、sshdが立っ…

homebrewで入れたImageMagickでtiffを扱う

homebrewで入れたimagemagickのconvertコマンドでtiff画像を変換しようとしたら convert: no decode delegate for this image format というエラーが出たので調べてみたらImagemagick can not find deletegates library for .tiff format on mac os x mounta…

百田尚樹「海賊とよばれた男」を読んだ

上下巻で扱ったけど、あまりにおもしろくて一気に読んでしまった。鐵造さん気骨があって本当にかっこいい。 第二次大戦中の話とかも出てきて、いけいけドンドンな描写をされるとうへぇとなってしまう冷めた現代っ子な自分だけど、本当に面白かった。歴史の教…

Amazon Linuxにstart-stop-daemonをインストール

gccが入っていなければインストールしておく。 yum install -y gcc start-stop-daemonをCentOSで使うに従ってインストール。 cd /usr/local/src wget http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz …

結城浩「数学ガール」 を読み終えた

大学で習ってた微積分学の授業を思い出して面白かった。一つの問題を別の問題に置き換えて解くプロセスを見て、そんな考え方があるのかと驚いた。あと、数式は言葉だということも書かれてて、うんうんそうだよな!と何度も頷いた。次巻も買いそう。

capistrano-rbenvを使ってみてのメモ

capistrano-rbenvを使うとcapistranoでrbenvを扱うことができる。3系には今のところ対応していない(capistranoの3系ってどこに出てるんだろう?)。 Vagrant/Ched-soloで環境を作っていて2点ほどメモ。 multistage環境でcapistrano-rbenvを使うときにrbenv_…

Sinatraのエラーとかログまわりの設定

Sinatra: Configurationから抜粋。なお、デフォルト値についてはSinatra::Baseのサブクラスを作った場合の値を記載。 logging 有効になっている場合、STDERRにApache Common Log形式でリクエストのログを書きだす。デフォルトでfalse。 dump_errors 有効にな…

RubyでSchemeの処理系を書いてみた

つくって学ぶプログラミング言語 RubyによるScheme処理系の実装を4章まで読んで、実際に実装してみた。 a2ikm/scheme_r 文字列どうするんだろうとか、REPLしょぼいなーとか、一つのクラスにほとんど処理ツッコんでるなーとか、さらに5章ではこの処理系で自分…

Rubyの正規表現で対応する括弧を考慮していい具合にマッチさせる

1.9以降に搭載された正規表現エンジン(oniguruma, onigumo)では (?<name>式)によってマッチした式部分に名前(ここではname)を付けることができ、 それにマッチした内容を後方参照\k<name>で参照でき、 また\g<name>でその式を再帰的に呼び出すことができる これを使えば、</name></name></name>…

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。