heightForHeaderInSection:とheightForFooterInSection:のデフォルト値

UITableViewControllerの中でヘッダーやフッターの高さを変えたいけど、デフォルトの高さも使いたい時。UITableViewAutomaticDimensionを返せばよい。

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
  if (section == 0) {
    return 32.0;
  } else {
    return UITableViewAutomaticDimension;
  }
}

NSStringが指定した文字のみで構成されているかチェック

NSStringが特定の文字だけで構成されているか判定したいことがある。文字種だけの問題で正規表現を使う程ではない、という時は、NSCharacterSetの包含関係の判定を使うと簡単にチェックできる。パスワードのValidationとか、UITextFieldに数字のみを受け付ける場合のちょっとしたチェックなどに便利。

続きを読む NSStringが指定した文字のみで構成されているかチェック

gitで差分を抽出してpatchで使えるファイルを生成

gitで差分を抽出してpatchで使えるファイルを生成したい時、毎回同じ検索ワードで検索して、毎回同じサイトを見ていたので、自分用にメモ。普通のpatchコマンドで取り込めるdiffファイルをgitで作成する – kanonjiの日記という記事が自分にとって一番分かりやすかった。このページを参考に、自分が使う用に書いておく。

$ # ファイルを生成
$ git diff (diffの方法) > (パッチ名.patch)
$ # 実行結果を確認
$ patch --dry-run -p1 

$ git diff develop features/dummy > diff.patch
$ patch --dry-run -p1 

gitに関する書籍

日本の高速道路の出入り口はいくつあるのか

ふと所用により、日本の高速道路の出入り口(インターチェンジ)の概算が知りたくなった。頭のいい人ならチャチャッとフェルミ推定して算出するのだろうが、考えるよりダーティコードを書いた方が早いと思ったので高速道路の出入口数を調べるテキトーなスクリプトを組んだ。Wikipediaには「日本のインターチェンジ一覧」というページがあるので、そこから情報を引っ張ってきて日本の高速道路のインターチェンジの数をざっくり算出する。

実行したら、2,692ヶ所と出た。2013年10月11日現在、最低でも日本に2,692カ所は高速道路の出入り口があるっぽい。

以下、概算に使ったコード。ハードコーディングしまくりなので、Wikipediaのページの構成が変わったらすぐに使えなくなるので要注意。

StoryboardのTableViewでセルがはみ出して操作できない

StoryboardにUITableViewControllerを置いて、Prototype Cellを設定している時、様々な種類のセルを設定しているうちに、ViewControllerの高さが足りなくて下の方の要素が見られないことがある。その時の対処法。

以下の記事を参考にしたら解決した。
Can’t scroll to the bottom of a long Static TableViewController in XCode 5 Interface Builder to edit the cells below the fold

StoryBoard上でスクロールできるようにしたいViewControllerを選択して、Attributes InspectorのView ControllerのExtend Edgesの中にある”Under Top Bars”と”Under Bottom Bars”のチェックを外す。
Extend Edges in Xcode
この2つのチェックを外すと、TableViewの上でスクロールできるようになる。

Thanks to @shao1555!

イラレでデフォルトの単位が変わってしまった時の対処

Adobe Illustratorで長方形ツールの時に、キャンバスをドラッグせずにただクリックだけすると、以下のように数値でサイズを指定して図形を生成することができる。
長方形ツール

この時、単位が何かの拍子にミリメートルになってしまったりする。それを解決する方法。Mac OSXの場合は、メニューの横にあるメニュー[Illustrator]→[環境設定]→[単位…]をクリックして出てきたダイアログの「一般」の項目を利用したい単位に修正すると、直る。
環境設定 - 単位

railsでsanitizeすると閉じタグを付け忘れた時にタグが続いてしまう

sanitizeというメソッドを使うと、ホワイトリストに載ったHTMLタグ以外を削除して出力できる。例えば以下のようなコード(haml)を書くと、

%p
  - dummy_text = '斜め'
  = raw(sanitize(dummy_text))
斜め

と出力される。

通常はこれで問題ないが、タグが閉じられないままだと、続けて出力されてしまう。

%p
  - dummy_texts = ['<i>斜め' '斜めったまま']
  - dummy_texts.each do |dummy_text|
    %p
      = raw(sanitize(dummy_text))

↓こんな感じ。

斜め
斜めったまま

つまり、validではないHTMLをvalidにするにはどうすればいいかという問題。

続きを読む railsでsanitizeすると閉じタグを付け忘れた時にタグが続いてしまう

Mongoidのany_ofがorではなくandになる

any_ofでorの結果を取得したいのに、結果はandになってしまう、という場合

User.any_of(:created_at.gte => 1.week.ago, :name => /^j/)

上記のコードは、1つのハッシュをany_ofとして渡している。any_ofはハッシュを複数渡すのが正解なので、以下のコードが正しい。

User.any_of({:created_at.gte => 1.week.ago}, {:name => /^j/})

よくミスするのでメモ。

Webの表(tableタグの内容)をExcelに入れる方法

Webの表(tableタグの内容)をExcelに入れたい時に、普通にコピペするだけだとセルがずれてしまったり表示が崩れてしまってうまくいかないことがある。その時は、以下のようにするとWebの表に近い表をExcel上にコピーできる。

  1. 表のあるWebページをブラウザからローカルに保存する(自分の場合は、Chromeで「Webページ、完全」を選んだ)
  2. Microsoft Wordでローカルに保存したWebページを開く
  3. Word上で表の部分をコピー
  4. ExcelでA0セルにペースト

WordにはHTMLのパーサーがついていて、Word内で表を生成した時点で、Officeシリーズの中である程度共通に使えるデータに変換されたのだと思う。

Excel本