是非に及ばず

プログラミングに関する話題などを書いていきます(主にRailsやAndroidアプリ開発について)

外部キー制約はとりあえず設定するべき(不要になったら外せばいい)

外部キー制約の話。tech.tabechoku.com blog.j5ik2o.me外部キー制約はつけたほうがいい。まず全部つけてから不要だったら外せばいい。 Rails界隈だとそもそも外部キー制約を理解していないし、使ったこともない人が多すぎる。 さらに言えばCHECK制約もつける…

vim7.4でファイルを開いた時に先頭文字が「g」に置き換わる不具合の対処方法

CentOS7(64bit)でvim7.4を使ってみようと思い、最新のパッチ(764)を適用した上でビルドしたところ、タイトル通りの不具合が発生した。 2015/07/03時点では、ネットで同様の現象について書かれている記事を見つける事ができなかったので自分で書いておく。自…

「通信の最適化」の回避策について考える

各キャリアが行っている「通信の最適化」が問題になっているが、これをアプリやAPIなどで回避する方法をまとめる。 以下のいずれかで回避できるはず。(1) HTTPS(SSL)を利用する (2) 暗号化した上でデータを送受信する HTTPS(SSL)を利用する docomoやauのペー…

ruby2.2でkyotocabinet-rubyがインストールできない問題の対処法

通常の流れとしては、 ruby extconf.rb make make install で良いはずなのだが、ruby2.2で試したところエラーが発生した。具体的なエラーはこのようなもの。 $ wget http://fallabs.com/kyotocabinet/rubypkg/kyotocabinet-ruby-1.32.tar.gz $ tar xvzf kyot…

jpmobileでundefined method `extract_handler_and_format_and_variant'という例外が発生する場合の対処方法

rails 4.0.8とjpmobile 4.1.2の組み合わせで以下のような例外が発生するようになった。 undefined method `extract_handler_and_format_and_variant' for #<Jpmobile::Resolver:0x007fc644bf8350> 解決したので書いておく。 エラーの原因 Jpmobile::ResolverはActionViewのextract_handler_and_for</jpmobile::resolver:0x007fc644bf8350>…

データ構造とコードはどちらも重要である

こんな記事を見たので思うところを書いてみる。 【コンピュータサイエンス名言紹介 vol.1】Linus Torvaldsの考える「良いプログラマーが気にかけること」この記事の中でポイントとなるのは、 「ダメなプログラマーはコードに気をつかう。良いプログラマーは…

jpmobileをTizenに対応させる方法(Rails3)

概要 jpmobileをTizenに対応させてみる を参考にしたというかほぼそのまま。参考サイトでは、lib/以下にファイルを置いているけど、個人的には独自のパッチは、config/initializers/以下に配置するのがベストだと思うので、そっちのアプローチで対応してみた…

Node.jsをCentOS5.xにインストールする手順

node.jsをCentOS5.xにインストールする手順のメモ。 検証環境と前提 CentOS 5.8 64bit Node.js 0.98 Python 2.7.3 インストール手順 最新のPythonをインストール CentOS 5.8の標準で入るPyhtonのバージョンは、2.4.3となっているが、 Node.jsのビルドでは、2…

[Subversion] Subversionリボジトリのバックアップ方法についてまとめてみた

Gitが流行っている中、Subversionリポジトリのバックアップ方法をまとめるという残念なエントリ。 でも、正直自分が使うだけならGitでも構わないがメンバーが多くなってくると、 Gitは説明が面倒だし、Subversionのほうが楽だよなぁ・・・ 結論 結論から言う…

オブジェクト指向を理解したければRubyを使え!

普通の構造化プログラマーがオブジェクト指向の存在意義を理解するコツ を読んで脊髄反射してみる。 自分自身がRuby信者(笑)なので、Rubyをおすすめするわけなんだけども、中途半端にオブジェクト指向機能が入っている言語で学習したところで構造化プログラ…

Androidでテキストをマーキー表示するカスタムビューの作り方

前置き Androidアプリでテキストをマーキー表示したいって事あるよね? でも、そんなに簡単には出来なかったりする(汗 ここでいうマーキーの動作は、HTMLのmarqueeタグのイメージ。 標準のTextViewのandroid:ellipsize="marquee"で実現できるかな?と思った…

Rubyで任意のテキストにふりがなを付ける(Yahooのテキスト解析/ルビ振りを利用する)

概要 ここでは、RubyとYahooデベロッパーネットワーク/テキスト解析>ルビ振りAPIを利用して任意の文字列にふりがなを付ける方法を示す。 やる事は非常に単純で以下の3ステップだけなので、非常にお手軽である。 APIにアクセスするためのリクエストURLを作成…

Androidのエミュレータ起動時にdisconnected! Cancellingというメッセージが出て起動しない件

EclipseからAndroidプロジェクトを実行またはデバッグを行うと、エミュレータが起動するのだが、 デバッグボタンを押して、エミュレータを起動すると、「disconnected! Cancelling」というメッセージが表示され、接続が切断されてしまう。 ネットではいくつ…

Railsのnamed_scopeをまとめて実行するサンプル(Ruby1.9.2 + Rails3版)

説明 前回のエントリーと同じ内容なので、ポイントだけ書く。 Ruby1.9.2+Rails3では前回のサンプルでは動かない部分があるので、それを動くようにする。 具体的には、この部分が動かない。 scope.call p, *args Ruby1.8.7+Rails.2.3では動作するが、Ruby1.9…

Railsのnamed_scopeをまとめて実行するサンプル

概要 例えば、こんなモデルがあったとして、 class Member < ActiveRecord::Base belongs_to :customer named_scope by_email, lambda{|email| {:conditions => ['email = ?', email]} } named_scope by_deleted, lambda{|flag| {:conditions => ['deleted =…

Railsで携帯版のGoogleAnalyticsを使う方法

ついにGoogle Analyticsが携帯に対応した!というのはうれしい事なんだけど、 当然PHPやPerlのソースはあってもRailsはない・・・ 仕方ないので、PHP版ソースをRailsに翻訳して使う事にする。 ちょっと長いけど、コピペで動くはず。 ga.phpに相当する処理を…

お名前.comのVPSの設定メモ

VPS

スペックと月額費用のバランスが一番良いと思うVPSなので思い切って借りてみた。 初期設定(yumの入れ方とか)は、id:wadap:20091014を参考に。 スペック CPU CPUx8。Quad-Core AMD Opteron(tm) Processor 2384、2700.111MHz メモリ 1GB HDD 50GB スワップ な…

named_scopeでオブジェクトを基点として検索をする

「オブジェクトを基点に検索するといい事があるよ」という事を聞いたので、メモしておく。 前提 ログイン中のユーザが投稿した記事一覧を表示したいとする。 URLは/articlesで、ArticlesControllerのindexアクションが呼ばれるものとする login_userでログイ…

RubyKaigi2009 2日目 レポート(感想)

とりあえず、会社の人にも見せようと思ってPowerPointにまとめたんだけど、ブログにもちょっとだけ書いておこう。 使用している技術要素に関しては、自社とほとんど変わらないんだけど、圧倒的にアクセス数が違うなぁという感じがした。 ニフティ @ニフティ…

PassengerMaxRequestsとPassengerPoolIdleTimeの関係について

PassengerMaxRequestsとPassengerPoolIdleTimeに関する個人的なメモ。 とりあえず、今自分が使用している設定はこちら。お決まりの3行はここでは省略する。 PassengerUseGlobalQueue on PassengerMaxPoolSize 30 PassengerMaxInstancesPerApp 0 PassengerMax…

RSpec on Railsの実行方法のまとめ

前置き この記事ではrailsを利用する前提なので、全てのコマンドはRAILS_ROOT直下で実行する事を想定しています。 まとめて全部実行 この場合、テスト用データベースの作成などもやってくれる。 $ rake spec .............. Finished in 0.169177 seconds 14…

Rails 2.3.2のvalidates_uniqueness_ofの不具合について

Rails 2.3.2がリリースされたので、さっそく2.2.2からアップデートしてみた。 特に問題ないなと思っていたら、validates_uniqueness_ofでエラーが発生したので対処方法をメモ。 どんなエラーなのか Railsには重複をチェックするためのバリデーションとしてva…

Rails2.2でPassengerのRailsBaseURIが動かない問題の解決方法

Rails2.2.2をPassengerのRailsBaseURIで動かそうと思ったら、 動かなくて困ったので解決方法をメモしておく。 config/environment.rbに以下の内容を記述したら解決した。 (自分は開発環境ではmongrelで動かしてるので、productionモード時のみ対策方法を入れ…

rspecでrake db:createの対象がtestのみになる件

Rails2.2.2とrspec1.1.12(rspec-rails1.1.12)で確認。 通常、こうするとconfig/database.ymlのdevelopmentを参照する。 $ export RAILS_ENV=development $ rake db:createしかし、rspecをconfig.gemで利用するようにした場合、 同様のコマンドでconfig/datab…

Railsのi18nを利用して完全なエラーメッセージを取得する

Rails2.2からi18nを使って各種メッセージを日本語化出来るようになったが、 普通にerror_message_onを使うと・・・ error_message_on(:user, :name) => "を入力してください。" これでは困るので、第3引数に項目名を渡す必要がある。 例えば、@user.nameが未…

成功しないコミュニティサイトのたった1つの理由

セカンドライフはなぜ成功しなかったのかを読んで、 なるほど!と思ったので自分用にまとめておく。 ここでいうコミュニティサイトとは、ユーザがサイトにログインして なんらかの行動を取るというスタイルのサイトの事。 ユーザに継続してログインさせ続け…

SliceHostを借りたら最初にやるべき事

経緯 会社の後輩と共同で携帯向けのSNSサイトを作ろうという話になったので、ドメインとサーバを用意する事にした。 仕事ではRailsを使っているし、Rails(Ruby)が気に入っているので、 CentOS5が使える root権がもらえる そこそこ安い という条件で検討した…

Rails(TMail)で携帯のメールアドレスをパースするとエラーになる件の対応方法について

Ruby(Rails)で携帯の写メールを受け取るプログラムを作っていたら、ドット(.)が連続するメールアドレスでエラーになった。本来はRFC違反だから使ってはいけないんだけど、DoCoMoとかauでは使えてしまうので対応する必要がある。 対応方法をまとめてみた。 ※…

RMagickでJPEGを保存する際のクオリティの設定方法その2

前回の記事で、RMagickはJPEGにフォーマット変換する時に一時的にファイルへ保存しないと画質変更が出来ないと書いたんだけど、一時ファイルを作らずに画質の設定/変更が出来る事が分かったのでメモ。 まずは、普通にJPEGに変換 これでもOKだけど、いちいち…

mecab-rubyのインストール後にtest.rbがエラーになる件(lmecab no)

Rubyで分かち書きをする必要に迫られたので、mecabのRubyバインディング(mecab-ruby)を試す事にした。 その時にインストールでエラーになったので対処方法をメモしておく。 mecab-rubyのインストール方法 普通にmake installじゃtesr.rbが動かない。 ポイン…