Tumblelog by Soup.io
Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

February 27 2012

xcodebuildにXcodeの場所が変わったことを教える

Xcodeのバージョンアップをしてから、/Developer ディレクトリがなくなり /Applicationsの下に引っ越したようなので、 xcodebuildコマンドが動かなくなりました。

   1  Error: No developer directory found at /Developer. Run /usr/bin/xcode-select to up
   2  date the developer directory path.

xcode-selectコマンドで新しい場所を教えて上げる必要があるようです。

   1  xcode-select -switch /Applications/Xcode.app

これでok.

February 02 2012

androidのViewGroupの派生クラスでonDrawを使用する

カスタムViewGroupを作成した場合に、onDrawで独自の描画処理を行いたい場合、 以下のフラグを立てる必要があります。

   1  setWillNotDraw(false);

December 24 2011

検索エンジンbotのアクセスを検出するrack-turing-test

久々にrubygemsをリリースしました。

Rack::Requestで検索エンジンのbotからのアクセスかどうか判定します。

   1  request.bot? #=> true or false

これだけ。

githubで検索してみたら、個別に実装している例がたくさん見つかったわりに、単体で切り出されているものがあまりなさそうだったので作ってみました。

December 23 2011

プルダウン・プルアップでページ移動するUI

前回に続いてUI特許取得回避のための記事です。

Twitterアプリのタイムラインでプルダウンして指を離すと新着確認するUIがありますが、iBooksやPDFビューアなどのページ単位のナビゲーションをするアプリで、下図のように

ss

  • 上端位置からプルダウンして指を離す→前項の下端に移動
  • 下端位置からプルアップして指を離す→次項の上端に移動

できるとスムーズなページ送りができて便利だと思います。

December 22 2011

何もない場所をもう一度クリック/タップしたら最寄りのボタンにhitしたことにする

UI特許取得を避けるために書いておきます。

クリック���タップでボタンを外した場合に、もう一挑戦してまた外れた場合、タップ地点の近くにあるボタンなどのUI要素をクリック���タップしたことにすると便利だと思います。

3回失敗、4回失敗するごとに、徐々に探索半径を広げていっても良いかもしれません。

December 20 2011

NSString.stringWithCString:length:encoding: は無い?

deprecatedになっているNSString.stringWithCString:length:を使っている古いコードがあり、新しい記述に書き換えようとしたのですが、documentによると length 指定ができない NSString.stringWithCString:encoding: を使えという指示しかないようです。

等価なコードで置き換えるとしたらこんな感じかな���

   1  //[NSString stringWithCString:bytes length:length];
   2  [[[NSString alloc] initWithData:
   3    [NSData dataWithBytes:bytes length:length]
   4    encoding:NSUTF8StringEncoding] autorelease];

ARC使用でしたら autorelease は不要ですね。

December 17 2011

Rails-2.3.x のログを無効化する

production環境などでログ自体を無効化するには config/environments/production.rb あたりで

   1  RAILS_DEFAULT_LOGGER = Logger.new("/dev/null")

すればok.

December 13 2011

デプロイ先の .rvmrc をtrustする

.rvmrc ファイルを置いておくと自動的に使用するRubyのバージョンを切り替えられるので便利ですが、デプロイ先で利用する場合に毎回 .rvmrc を信頼するか Yes/No? と聞かれるのが自動化と相性が良くないので、

   1  % cd /path/to/.rvmrc
   2  % rvm rvmrc trust

しておくとその後何も聞かれなくなります。

December 12 2011

Chiyoda.rbを発足いたしました

新しい地域Rubyコミュニティ Chiyoda.rb を発足いたしました。

千代田区周辺のRubyに縁のある企業に会場をお借りして定期的に会合を開催し、Rubyプログラマーの間で情報交換を行う場所を提供する事を目的としております。

株式会社万葉様のご協力により、第1回の会合を開催する運びとなりました。

Rubyistの皆様方におかれましてはお誘い合わせの上ご参加いただければ幸いです。 よろしくお願いいたします。

December 10 2011

Rails3.1でscssではなくsassを使う

SCSSよりSASSが好きです。 時々SCSSのことをSASSと呼んでるものがあって紛らわしいですね。

Rails 3.1では config/application.rb

   1      config.sass.preferred_syntax = :sass

と記述すれば SASS をデフォルトで使ってくれるようです。

Let's prefer the SASS :)

December 09 2011

IKImageBrowserViewの背景色を透明にする

IKImageBrowserViewは画像のリストを表示する場合に非常に重宝します。

現時点ではIBから背景色を設定することができないのですが、以下のようにすると背景色を設定できます。

   1  [imageBrowserView
   2    setValue:[NSColor clearColor]
   3    forKey:IKImageBrowserBackgroundColorKey];

December 03 2011

brew upgradeで"Error: undefined method `include?' for nil:NilClass"が出たら

brew upgrade groonga しようとしたら、以下のようなエラーが出てきました。

   1  Error: undefined method `include?' for nil:NilClass

これはbrewのバージョンが古いのが原因らしい。

   1  cd `brew --prefix`/Library/Contributions/examples
   2  git clean -n
   3  rm brew-upgrade.rb

して再挑戦したら上手く動きました。

November 30 2011

herokuでRails3.1を使う

新しい環境に移行すべく、ruby-1.9.3, rails-3.1.3 で作ったwebアプリをherokuにデプロイしてみたりしています。 いくつか注意点があったのでメモ。

application.css isn't precompiled

手元の環境で動いていても、いざデプロイすると以下のようなエラーが出ることがあります。

   1  ActionView::Template::Error (application.css isn't precompiled):

事前に bundle exec rake assets:precompile してから生成物をgitに含めてデプロイすればいいのですが、自動的に生成して欲しい場合には、 config/environments/production.rb

   1    config.assets.compile = true

を指定します。これで勝手に生成してくれます。

Could not find a JavaScript runtime

これもassetsの生成に関する問題なのですが、jsファイルを生成するにあたって、jsのランタイム環境が必要になります。 これもherokuの環境でやるためには、Gemfile に以下を追加します。

   1  group :production do
   2    gem 'therubyracer-heroku'
   3  end

これでok

slim用のvimプラグイン

slimの記法を見やすくカラーリングしてくれるvimプラグインはこちらです

git clone して ~/.vim 以下にコピーすればokです。

November 20 2011

rvmとCapistranoを併用する

rvmを使ってcapistranoでアプリケーションごとに異なるrubyのバージョンを利用するには、Capfileの先頭に以下のような記述をすればok

   1  $:.unshift(File.expand_path('./lib', ENV['rvm_path']))
   2  require "rvm/capistrano"
   3  set :rvm_ruby_string, '1.9.3'
   4  set :rvm_type,    :user

ついでに ROOT に .rvmrc を追加して中身に

   1  rvm 1.9.3

のようにしておけば cd したときにrubyのバージョンが切り替わって便利です。

ruby-1.9.xで自動的にmagic-commentをつける

結構需要がありそうな割に、決定版的なツールがなんなのかわからなかったのですが、とりあえずこれを使えば目的を果たせます。

使い方:

   1  % gem install magic-commenter
   2  % cd /path/to/root/of/ruby/files
   3  % magic-commenter

あとは自動的にmultibyteキャラクタを含んでいる rbファイルを見つけて マジックコメントを挿入してくれます。

November 19 2011

NetGenesis SuperOPT-GFiveでMSQ session table full

NetGenesis SuperOPT-GFiveを使っているのですが、特定のPCを接続するとIPマスカレードのセッションテーブルがいっぱいになるという問題が発生しており、原因を調べておりました。

という記事があり、webalizerが原因か、と疑ってみましたが、そのPCにはwebalizerは入ってません。 topでプロセスの動きを眺めていると、haproxyが変な動きをしていたのでこれをpurgeしてみると、どうやらビンゴのようでした。 ということで、特に使ってなかったのでhaproxy を削除してsession table full問題は解決。

November 07 2011

Sqlite3でSQLite3::BusyExceptionが出たら

database.ymlに

   1  development:
   2    timeout: 2000

のようにタイムアウトをミリ秒で指定すればok デフォルトでは 0 になっていて掲題の例外が発生するようです。

October 25 2011

バックグラウンドジョブのプロセスIDを表示する

バックグラウンドジョブの一覧は

   1  % jobs

で得ることができますが、そのままではPIDがわかりません。

   1  % jobs -p

とやると PID を含めた結果が得られます。

October 20 2011

ハンドミラー30万ダウンロード達成御礼

iPhone/iPad向けのハンドミラーアプリですが、iPhone4発売の頃にリリースして以来一年とちょっとで30万回ダウンロードされるに至りました。 ご愛顧のほど御礼申し上げます。

ハンドミラー

ss

iPhone4S特需

つい先日までずっと500DL/dayぐらいで推移していたのですが、iPhone4Sがリリースされてから急激にダウンロード数が伸び、現在のところ 20000DL/day に達しています。 機種変時にDLが急増してランキング上位に来るということは、DL後もずっと使い続けてくれている人が多いということだと思うので、非常に嬉しい限りです。

将来の予定

他人目線で自分を見れる反転機能を搭載予定です。 実装はすでにできているのですが、いかにシンプルさを保ったまま導入できるかUIを考えているところです。 シンプルさが唯一にして最大の取り柄ですので、将来にわたって広告を表示する予定はありません。もちろんスパイウェアのような事もしません。 今のところ収益0ですが、製作時間10分(アイコンは半日がかりですが)程度なので特に気にせず気長に構えております。

今後ともご愛顧のほど宜しくお願いいたします。

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.