pools.jp | プログラミングやアイデアのメモ

XCodeのコメントに自動挿入される作者名と組織名を変更する

XCodeにてObjective-Cを遊びで使ってます。(趣味レベル)
新規追加したソースコードのコメント欄に自動的にあらわれる作者名と会社名が

//  Created by 日本語名 on 08/11/09.
//  Copyright 2008 __MyCompanyName__. All rights reserved.

こんな風に日本語&変な変数になってて、イライラするので直しました。
続きを読む »

Rubyワンライナーで画像変換(Pikl)

自分用メモ。カレントディレクトリの画像を一括変換するワンライナー。

ruby -e 'require "rubygems"; require "pikl"; Dir.glob("*.JPG").each{|f| Pikl::Image.open(f).fit(640,640).save("m_#{f}") }'

これでのワンライナーで、一律、幅640pixに揃えることができ、便利なのですごく頻繁に使う。
このエントリー、ちょっと体裁がひどいことになってるけど、とりあえず実用上問題ないので無視。

Rubyで大量の画像を縮小してサムネイルを作成する方法(Pikl)

Rubyの画像ライブラリをバージョン0.2.7にアップデートしました。

このPiklを使うと画像の拡大/縮小処理を簡単につくることができます。
(リリースのついでに)大量の画像を規定のサイズに変換するスクリプトを紹介します。

サンプルの仕様

サンプルとして、こんな仕様を考えてみました。

  1. inディレクトリに入っている拡張子がjpgまたはJPGの画像を読み込む
  2. 200×200pix、50×50pixの2種類の枠に内接するように画像をリサイズする
  3. サイズをプリフィックスにしてリサイズした画像をoutディレクトリに書き出す

サンプルの実装

実装してみます。

require "rubygems"
require "fileutils"
require "pikl"

outdir = "out"
indir  = "in"

setting = {
 :large => [200,200],
 :small => [50,50],
}

FileUtils.mkdir_p(outdir)
Dir.glob(["#{indir}/*.jpg","#{indir}/*.JPG"]) do |jpg|
 Pikl::Image.open(jpg) do |img|
   setting.each do |label, size|
     path = %Q|#{outdir}/#{label}_#{File.basename(jpg)}|
     img.fit(*size).save(path,:jpg)
   end
 end
end

はい、できあがり。

まとめ

RubyといえばRMagickが王道ですが、Piklもなかなか便利じゃないかと。
サンプルで使用したfitメソッドは、指定した矩形に内接するように画像をリサイズするメソッドで、お気に入りのメソッドのひとつです。

大量のサムネイルをつくるなんて時には、ぜひ使ってみてください。
Piklのインストール方法
RubyForgeプロジェクトページ

rubyでQRCodeを作成するライブラリrqrをリリース

rqr_sampleLinuxとMacOSX用にQRCode作成ライブラリをこっそり作ってました。

協同開発者のSoejimaさんによりWindows用バイナリが完成し、APIの設計と実装もひと段落したのでちゃんと紹介します。

rubyforgeのメインページ
rubyforgeのプロジェクトページ

rqrは簡単にQRCode画像を出力した場合に有用なライブラリです。
続きを読む »

Rails1.2.6でActiveRecordの接続がクローズされない問題

MySQLに対して一定時間アクセスがないとmysql側から接続をクローズしてしまい、mongrelで起動したRailsアプリ側は接続を開きっぱなしになるケースが稀に発生します。

対応方法を教えてもらったのでメモしておきます。

対応方法

次のようなコードでmysqlのcloseメソッドをオーバーライドして対応しました。

require 'active_record/vendor/mysql'
::Mysql.class_eval do
  def close_with_bug_fix
    @status = :STATUS_READY
    command COM_QUIT, nil, true
    self
  ensure
    @net.close
  end
  alias_method_chain :close, :bug_fix
end

RAILS_ROOT/vendor/plugins/mysql_close_bug_fix/init.rbというファイルを作り、上記コードを保存してプラグインとして使ってます。

コンソールから使えるTwitterクライアントtwtrを更新


ブラウザを開かずにコンソールから使えるTwitterクライアントtwtrをつくりなおしました。
長いmake中やらプログラミングの息抜きに使うとよいです。
OSX/Windows/Linuxで使えます。

アップデート内容

  • gemインストールに対応
  • コマンド体系を再設計
  • ヘルプを充実(twtr -h)
  • アカウント設定をコマンドで実現
  • rpliesを追加

インストール(推奨)

インストールはずいぶんと簡単になりました。

gem install twtr

インストール後コンソールを一度閉じるか、プロファイルを再実行してパスを有効にします。これで終了。

続きを読む »

Rubyで画像処理をするライブラリPikl

画像処理ライブラリといえばImageMagickが有名ですが、多機能すぎてお手軽という感じがしません。
そこでlibjpeg、libpngを使ったシンプルなRubyライブラリPiklを開発してみました。

http://rubyforge.org/projects/pikl/

使い方

『90°回転して、横を120px(縦は成り行き)にリサイズ、png形式で保存』は、こんな感じ。

require "pikl"

Pikl::Image.open("hoge.jpg") do |img|
  img.rotate(90).resize(120, :auto).save("fuga.png")
end

続きを読む »

RSA公開鍵をRubyForgeへ登録する手順

メモ。textmateからsvn+sshする際にパスフレーズ入力が不要になるよう以下の設定を行った。

RSA暗号方式の鍵を作成

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): [デフォルトままならEnter]
Enter passphrase (empty for no passphrase): [パスフレーズを入力]
Enter same passphrase again: [再度パスフレーズを入力]

生成した鍵をRubyForgeへ登録

$ scp .ssh/id_rsa.pub username@rubyforge.org:.ssh/authorized_keys

パスフレーズの記憶

$ ssh-add
Enter passphrase for key '~/.ssh/id_rsa': [パスフレーズを入力]

以上。

capistranoでエラー(sudo: no passwd entry for app!)

capistrano2.3.0にてdeployしたところ以下のようなエラー。

Password:
[hogehoge.com] executing command
** [out :: hogehoge.com] sudo: no passwd entry for app!
command finished

メーリングリストに同じような内容で質問と回答があった。
なんでもcapistrano2では:runnerというセッティングがあるそうで、sshのログインユーザーとは別にプロセスの実行ユーザーを指定する必要があるらしい。
というわけで、deploy.rbを次のように変更

set :user, 'hoge'
set :runner, 'hoge' #この行を追加

再度セットアップを実行。

$ cap deploy:setup
(中略)
$ [hogehoge.com] executing command
$ command finished

できた。

osxで使えるsha1sumをrubyで実装してみた

checksumをするのにsha1を使う場合Linuxではsha1sumを使うけど、OSXにはこのコマンドがありません。
そこでsha1chkなるツールを作ってみました。

仕様はwikipediaにあるsha1sumの説明を参考にして、rubyのDigest::SHA1で実装。
ダウンロードは以下から。(早速チェックサムとってみたw)

download sha1chk.tgz
SHA1 Checksum: 117b91cdde66d2ce0a59fbf247a118f6943d7fb3

続きを読む »

Pages (8): [1] 2 3 4 » ... Last »