日々精進

新しく学んだことを書き留めていきます

2012-09-01から1ヶ月間の記事一覧

rate,ratio,propotionの違い

勉強になったので共有。 rate:ある一定期間における、何かが発生した回数もしくは何かの数。 ratio:二つの量の関係。片方がもう片方に対してどのくらい大きいのかを、二つの数字で表す。 proportion:全体との関係を考慮した場合の一部分。なるほど。。 参…

hidden = NOとアニメーションを一緒にやるとアニメーションがキャンセルされる

hiddenはアニメーションできないプロパティなので、以下のようなコードを書くとアニメーションがキャンセルされる。 self.view.hidden = NO; [UIView animateWithDuration:0.2 animations:^{ self.view.frame = CGRectMake(0, 0, 100, 100); }]; アニメーシ…

UIWebViewが真っ白になる

なんで?と思ったらUIWebViewのopaqueがtrueなのが 原因らしい。falseにしたらちゃんと文字が見えるようになった。 参考:iphone uiwebview inital white view - Stack Overflow

UIImageViewに設定したgestureイベントが動かない

UIImageViewはuserInteractionEnabledがデフォルトNOになっているので、IBでYESにしてやるとgestureが効くようになる。 参考:ios - UIGestureRecognizer on UIImageView - Stack Overflow

UIViewのtransformを使うとframeがおかしくなる

前からおかしいと思ってたけど、transformを使うとframeの値がおかしくなるのは仕様らしい。 参考:でらうま倶楽部 : iPhone 大丈夫?表示系のトラブル。 まじか。。 そしてframeがboundsとcenterから計算されてるというのも意外。逆だと思ってた。。

イベント透過ビューの作り方

hitTestをオーバーライドすればいいらしい。 参考:iPhone アプリ研究会 UIView上のボタンと背景にあるボタンのタップについて

node.jsのスクレイピングはCPUヘビーな処理

jsdomを使ってスクレイピングする処理のパフォーマンスを計測してみた。 Requestにかかった時間:200msぐらい Request以外にかかった時間(jsdomでDOM構築一回400ms、jQueryスクレイピング200ms):1000msぐらい ということでスクレイピングはCPUヘビーな処理…

UILabelは行間のスペースを調節できない

まじかよ。。回避策は以下があるらしい。 1.UILabelを複数使う 2.drawTextInRectをoverrideして自分で描画処理を実装 今回は2行でいいと決まっていたので1番を選択。 行間の調節したい場面多いと思うけど簡単にできないんだね。 参考:ios - Set UILabel…

UIButtonを押しても反応がない

UIButtonを押してもハイライトされないし、イベントは発生しないしで困った。 調べた結果、親ビューのframe外に出ているのが原因だった。 IBではビューのサイズを縦向きに合わせて作っていて、 横にしたときはautoresizeして画面にフィットするようにしてい…

webstormが超重くなる

webstormを使っているとすごく重くなって頻繁に固まることがある。 ウィンドウの右下のメモリ使用量を見るとMax近くになっている。たぶんメモリリークしてるんだろう。 一度終了させると軽くなる。 最近のPCは電源落とさないからちょっとでもリークしてると…

UIButtonのtitleを中央に表示する

UIButtonのtitleが微妙に上に寄っていて困った。 以下のコードで直せた。 [self.button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter]; [self.button setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; …

deck.jsでプレゼン資料を作ってgithubで公開

今度【増員】【TechBuzz】第2回.js系勉強会 〜Backbone.js 大集合!/ Backbone.js+Ruby On Rails + CoffeeScriptではじめるモダンWebアプリケーション / Backbone.IOでつくるリアルタイムアプリ / MVCフレームワークの選択基準と主要フレームワークの特徴〜 …

ナビバーにバックボタンっぽい外見のバーボタンを置く

標準のバックボタンはイベントハンドラを登録できなかったり、背景を変更できなかったりするのでUIBarButtonItemに置き換えたい。が、これが簡単にできない。 戻るボタンの形のボタンタイプは公開されておらず、 以下のようにタイプコードをべた打ちしないと…

UISearchBarのplaceholderのフォントを変更する

UISearchBarのplaceholderのフォントは変更できないらしい。 ので、placeholder用UILabelを作ってUISearchBarのSubviewとして追加し、UISearchBarDelegateのsearchBarTextDidBeginEditingとsearchBarTextDidEndEditingの中でラベルを表示・非表示することでp…

UILabelはVertical Alignmentが出来ないらしい

まじかよ。。しょうが無いからUILabelのoriginを調節して位置を合わせました。 参考:iphone - Vertically align text within a UILabel - Stack Overflow

Macでバックスラッシュを入力する方法

MacにPC用キーボードをつないで使っていると、\キーを押しても_になるのでバックスラッシュは入力できないと思っていたがoptionを押しながら\で入力できるらしい。 知らなかった。 参考:失業とNSStringの改行とスクリーンショット - よせばいいのに

NodeでShift-JISのページをスクレイピングしたら文字化けする

Nodeは基本的にUTF8しか扱えないのでスクレイピングしてきた文字列がShift-JISとかだったらUTF8に変換してやる必要がある。 が、node-iconvを使って変換しても文字化けが直らず困った。 調査してみると、どうもrequestライブラリがHTMLを取ってきたときに文…

UIButtonのtitleが表示されなくて困った

以下のコードを実行してもボタンのタイトルが表示されない。 self.customButton = [BarButton buttonWithType:UIButtonTypeCustom]; self.customButton.titleLabel.text = @"編集"; 困っていろいろ調べたら、タイトルは専用のメソッドを使って設定するらしい…

resizableImageWithCapInsetsで不可解な挙動

resizableImageWithCapInsetsを以下のように設定してもうまくいかなかった。具体的にはボタンの背景画像がresizableImageWithCapInsetsを設定しない場合と同じように変にリサイズされてしまう。 UIImage *image = [UIImage imageNamed:@"list_header_btn_bg.…

backbone勉強リソース

http://recipeswithbackbone.com/toc.html https://github.com/addyosmani/backbone-fundamentals https://peepcode.com/products/backbone-js https://peepcode.com/products/backbone-ii https://peepcode.com/products/backbone-iiihttp://www.quora.com/…

JSクライアントサイドモジュールライブラリ

JSはファイル間の依存関係を管理する仕組みがないので、RequireJSなどを使って管理する。 このモジュールライブラリが意外といっぱいあるらしい。 CoffeeScript時代のモジュールシステムの選び方ガイド | netswitch! ライブラリの調査結果は上記がよくまとま…

coffeescriptスタイルガイド日本語訳

coffeescriptスタイルガイドを抄訳してみました。 訳文は不正確なところがあるので詳しくは原典を参照してください。 polarmobile/coffeescript-style-guide · GitHub コードレイアウト インデントはスペース2つとする。タブは使わない。 1行の最大文字数は…

coffeescriptの自動コンパイルをサブフォルダでも行う

全サブフォルダのcoffeescriptファイルを監視して変更があったら自動コンパイルするには以下のコマンドを実行する。 coffee -wc **/*.coffee"**"で再帰的にサブフォルダを取ってこれるんだね。。linux初心者なんで知らなかった。

非同期メソッドのテストとpredictableNextTick

非同期メソッドのテスト方法についての記事にちょっと面白そうなことが書いてあった。 Make Your Tests Deterministic - How To Node - NodeJS 内容は以下。 非同期なメソッドを複数回呼び出しているメソッドのテストは難しい。 その理由は非同期なメソッド…

nodeのメモリリーク調査

アプリでメモリリークが起こっていたので調査したんだけど、これがちゃんと調べられるツールがなくて困った。 ・node-inspectorを使ってみたがだめ ↓を参考にnode-inspectorを使ってみたがなぜかProfilesボタンがブラウザに出てこず断念。チュートリアルと全…

Backbone.js入門

・このチュートリアルすごい簡単かつStepByStepで非常にわかりやすかった。最初に写経すべき。 Hello Backbone.js Tutorial ・これは二つ目の課題にいいかも。 backbone-localstorage.js

underscore.jsの使い方を間違った

どうもまだコールバックしまくりのスタイルになれないので以下のような間違いをしてしまった。 ↓正しい var containsAll = function(ary1, ary2){ var result = true; _(ary2).each(function(el){ if (!_.contains(ary1, el)) result = false; }); return re…

process.nextTick()の資料

IT

process.nextTickの大事さが身にしみたので↓の資料で勉強した。 Understanding process.nextTick() - How To Node - NodeJS 日本語訳素晴らしい。

_(array).eachをbreakする方法

_(array).eachをbreakする方法は無いらしい。 その代わり、_(array).forEachを使ってコールバックの中でfalseを返すとbreakできる。 eachとforEachは同じ仕様にしてほしいなあ。。 参考:javascript - how to break the .each function in underscore.js - S…

fs.createWriteStreamでエラー「{Error: ENOENT, open errno: 34, code: 'ENOENT', path: ・・・」

fs.createWriteStreamを実行すると下記エラーが出てこまった。 {Error: ENOENT, open errno: 34, code: 'ENOENT', path: ・・・ 原因はファイルパスが間違っていることだった。。 fsに渡すファイルパスの"./"は実行中のJSファイルがあるフォルダだと思ってい…