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

Rails 悲観ロック

Memo. ActiveRecord::Locking::Pessimistic

daemontools + start_server + unicornでhot deploy

「Server::Starterに対応するとはどういうことか」の補足 : sonots:blog daemontools + start_server + unicorn でのハマりどころと対策がまとまってて、とても助かった。 sonot++

submit_tag

memo. submit_tag(value = "Save changes", options = {}) confirm と disable_with は 3.2.3 までは options に定義していたが、3.2.5からは data属性に定義が必要になった模様。。 submit_tag (ActionView::Helpers::FormTagHelper) - APIdock

Bundler.setupとrequire

Bundlerの仕組みを十分に理解しているとは言い難かったので、深堀りしてみたい。 Bundler.setup http://bundler.io/bundler_setup.html Configure the load path so all dependencies in your Gemfile can be required まず最初にやるべきは依存関係にある全…

Programmable Web

api

ProgrammableWeb こんなサイトがあるのか。便利。

Rails4で廃止になった findメソッド群

オレオレメモ。 正式には Dynamic finder methods と呼ぶらしい。 Rails3 から Rails4 にアップグレードすると NoMethodError: undefined method `find_or_initialize_by_*****' というエラーが出ることがある。 こういう時は Ruby on Rails 4.0 Release Not…

Rubyにおけるライブラリロード

Ruby のライブラリロード周辺を理解してなかったので、調査&実験メモです。*1 環境 OSX Mavericks rbenv 0.4.0 + ruby 2.1.2 ロードパス を調べる $: でも $LOAD_PATHでも同じ。 $ ruby -e 'puts $:' /usr/local/Cellar/rbenv-gem-rehash/1.0.0 /Users/kota…

MySQL autocommit

MySQL の autocommit / start transaction についてちょっと調べる機会があったので、メモ。 以下、 MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.4.1 START TRANSACTION、COMMIT、そして ROLLBACK 構文 より引用。 AUTOCOMMIT デフォルトにより、MySQL…

Mac OS X でのrbenvによるruby環境構築

「初心者なんで、rbenvで構築した環境にgemをそのままinstallでいいよねー」と思ってたけど、gemのversion違いとかで、そのうち涙目になりそうな気がしてきたので、真っ当な方法を模索してみました。 いくつ記事を漁ったところ、bundlerを使うのはもはや当然…

続:Learning JavaScript Design Patterns

Abstract Factory VehicleFactory をそのままではちょっと芸がないので、Ballにしてみた。 Decorator Crepeをデコレーションしてみた。 Flyweight イミュータブルな巨大配列の作成に Flyweight を適用してみた。

Learning JavaScript Design Patterns

JavaScriptデザインパターン作者: Addy Osmani,豊福剛,サイフォン合同会社出版社/メーカー: オライリージャパン発売日: 2013/05/25メディア: 大型本この商品を含むブログ (7件) を見る 原著である Learning JavaScript Design Patterns がオンラインで公開さ…

メモリリーク

メモリリークに関して理解したかったので、いくつか記事を読んでみた。 ガーベッジ・コレクターは定期的にオブジェクト・グラフ全体を調べ、各オブジェクトを参照している他のオブジェクトの数をカウントします。あるオブジェクトのカウントがゼロの場合 (そ…

new演算子を使わない

JavaScript The Good Partsでnew演算子は使わないほうがいいよと書かれてるものの、具体的な方法明示されてないので、少々調べてみた。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new より引用。 When the code new foo…

スタックトレースをHTMLで

オレメモ。 PlackならPlack::Middleware::StackTraceを使えばカンタンなんだけれど、深淵なる理由で使えぬ時はこんな感じで書き出してる。

brew install vim

lua, luajit, perl, python オプション付でhomebrewでインストールする方法。 brew install vim \ --with-lua --with-luajit --with-perl \ --with-python3

VERSION MISMATCH in OpenSSL test program

ちょっとハマったのでメモしておく。 状況 $ cpanm Crypt::OpenSSL::CA (中略) Configuring Crypt-OpenSSL-CA-0.23 Running Build.PL Checking OpenSSL version number... *** VERSION MISMATCH in OpenSSL test program! *** The version number extracte…

ViewControllerを再帰的にPushする

ios

StoryBoardでUIを構築しているViewControllerをどうやったら再帰的にNavigationControllerにpushできるか。 方法1 instantiateViewControllerWithIdentifierメソッドを使う。 - (IBAction)didPressPushButton:(id)sender { MTViewController *vc = [self.sto…

NavigationBarとNavigationToolBar

「StoryBoard上で、Bar Button ItemやNavigation ItemをViewControllerに追加しても、ちっとも反映されないよ…」と悩んでいたものの、もしかしてと思ってUINavigationControllerリファレンスを読んだらやはり。 UINavigationController Class Reference The …

IBM X40にUbuntuをインストールした

Windows XPのサポートが終了した。 が、OSサポートが終わったくらいでX40を捨てるのももったいないので、Ubuntuをインストールすることに。その時の記録を残しておく。 事例を探す X40にUbuntuをインストールしたというドンピシャな事例を発見! http://bell…

perlにおける "-" と "--"の扱い

問1 curl -L http://cpanmin.us | perl - Task::Amon2 -nv がやっていることを正確に述べよ(10点) んー、自信なし。 ということで、真面目に調べてみる。 こういう時はじぶんで試行錯誤してみるのが吉。 test.pl #!/usr/bin/env perl use strict; use warn…

コードからStoryBoardのViewControllerをインスタンス化する

http://www.rizastar.com/blog_xcode/access-storyboard-from-code/ こちらに書かれてることまんまですが... 1. StoryBoardにidentifierを設定 2. instantiateViewControllerWithIdentifierでinstance化 MTFlippedViewController *vc = (MTFlippedViewContro…

staticとconst

c

staticについては Practical Programming in C - Lec01 で少しだけ書いたけど、おさらいしてみる。 static宣言 使い方は2通り。1つは外部変数や関数のスコープをそのファイルのみに閉じること。もう1つは関数の内部変数に適用し、静的領域にメモリを確保する…

Same Origin PolicyとCORSとCPS

web

一度きちんと整理しておきたし。 オリジンとは URLのscheme, host, portによって定義される。以下、いずれも違うオリジンになる。 http://example.com https://example.com http://sub.example.com http://example.com:8080 同一生成元ポリシー 英語で言うと…

CocoaPods

ios

CocoaPodsのインストールでだいぶハマって時間かかってしまった。 まずインストールされてるrvmとrubyのバージョンが古かったので、一からクリーンインストールした。これは割愛。 gemのインストール $ gem install cocoapods -V cocoapodsのセットアップ $ …

カンタンRemote Debug

以前は、ADBやport forwardingが必要ですごく敷居が高かったが、Chrome32からすごくカンタンになった模様! https://developers.google.com/chrome-developer-tools/docs/remote-debugging?hl=ja

APUE - 17 UNIX Domain Sockets

Unixドメインソケットは、同じマシン上のプロセス間コミュニケーションに使われる。 とりあえずソケットをつくってみる、カンタンな例。 $ ls -ila foo.socket 61366608 srwxr-xr-x 1 kotaroito 1522739515 0 3 5 23:01 foo.socket socketがつくられてるのが…

APUE - 16.3 Addressing

本日はSection 16.3 Addressing。 getaddrinfo(3) getaddrinfo() は、(インターネットのホストとサービスを識別する) node と service を渡すと、一つ以上の addrinfo 構造体を返す。それぞれの addrinfo 構造体には、 bind(2) や connect(2) を呼び出す際に…

APUE - 4.14 File Systems

i-nodeについてきちんと理解したかったので、本日は4.14 File Systems。 Figure 4.14 Cylinder group's i-nodes and data blocks in more detail i-nodeとは? ファイル種別、アクセス権限、サイズ、データブロックへのポインタなど、ファイルに関するメタ情…

iCalendar, webcal

iCalendarについてちょっと調べたので、メモ。 iCalendarとは? iCalendarはイベント・TODOなどのカレンダーデータを表現・交換するための標準フォーマットで、RFC 5545(旧版 RFC 2445)で規定されている。 RFC 5545 This document defines the iCalendar d…

APUE - 3.11 Atomic Operations

pread(2) Man page of PREAD pread() は、ファイルディスクリプタ fd の (ファイルの先頭からの) オフセット offset から最大 count バイトをバッファ buf へ読み込む。ファイルオフセットは変化しない。 lseek(2)に続けてread(2)を実行したのと概ね同じだが…