サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
kusakari.hatenadiary.org
忘れっぽいのでまとめておきます。 ruby Rubyの真偽値はつぎの通り。trueは真な値のうちの代表的な値である。0や""も偽じゃない。 偽 - nil, falseのみ 真 - 偽以外 trap真偽値 - Rubyリファレンスマニュアル http://www.ruby-lang.org/ja/man/html/trap_BFBFB5B6C3CD.html php boolean に変換する場合、次の値は FALSE とみなされます。 boolean の FALSE integer の 0 (ゼロ) float の 0.0 (ゼロ) 空の文字列、 および文字列の "0" 要素の数がゼロである 配列 ゼロを要素とする オブジェクト (PHP 4のみ) 特別な値 NULL (値がセットされていない変数を含む) 空のタグから作成された SimpleXML オブジェクト その他の値は全て TRU
jpmobileとしては、iPadはモバイルじゃないよという考えなのだろうなと思いつつも野暮なことをしてみました。 ついでにタブレット端末かどうか判定するコードも入れました。 lib/jpmobile_ext.rb # -*- coding: utf-8 -*- Dir[File.join(File.dirname(__FILE__), 'jpmobile/**/*.rb')].sort.each { |lib| require lib } module Jpmobile # autoload mobile classes module Mobile autoload :Ipad, 'jpmobile/mobile/ipad' DEFAULT_CARRIERS_WITH_IPAD = %w(Docomo Au Softbank Vodafone Emobile Willcom Ddipoc
以下のサイトから。 BLACKLISTALERT.ORG - Test if your IP or DOMAIN is listed in a spamdatabase http://www.blacklistalert.org/
Ruby は RubyInstaller を使ってインストールしておく。 ImageMagick のサイトから ImageMagick-6.6.9-8-Q8-windows-dll.exe をダウンロード(2011/05/11時点の最新)。 http://www.imagemagick.org/script/binary-releases.php#windows インストール時にパスを追加するという項目と以下の項目をチェックする。 「Install develpment headers and libraries for C and C++」 インストール(include, lib のパスは自分の環境に合わせる) gem i rmagick -- '--with-opt-include="C:\Program Files\ImageMagick-6.6.9-Q8\include" --wi
bundler を使い始めてから cron 経由の script/runner が起動しなくなり、エラーを見ると次のようになっていた。 /usr/bin/env: ruby: No such file or directory rvm の Ruby が見つけられないようなので、cron から実行する shell script を次のように変更する #!/usr/bin/env bash app_home=/home/test_app ruby_home=/usr/local/rvm/gems/ruby-1.9.2-p0 bundle_path=$ruby_home/bin/bundle export GEM_HOME=$ruby_home export PATH=$PATH:/usr/local/rvm/bin:$ruby_home/bin cd $app_home $bundle_pat
Titanium.Media.showCamera( overlay: (省略), transform: Ti.UI.create2DMatrix().scale(1), success: function() { (省略) ); 参考 Camera overlay bug?
Cassandraの運用前に設定しておきたいTIPSです。 cassandra.in.shのXms, Xmxを設定する データ量にもよりますが、基本的には多ければ多いほど良いと思います。 また、(Cassandra専用サーバーであれば)XmsはXmxと同じ値にしておくのが良いと思います。 bin/cassandra.in.sh JVM_OPTS=" \ -ea \ -Xms16G \ -Xmx16G \ (省略) cassandra.in.shにulimitを設定する 負荷が高くなった際に too many open files エラーが出る場合があるため、JVM_OPTS の前あたりに、ulimit を追加します。(ulimitはデフォルト1024) bin/cassandra.in.sh ulimit -n 32768 JVM_OPTS=" \ -ea \ -Xms16G \ -Xmx
EventMachine(0.12.10)はRubyInstaller(1.9.2)+ DevKit ではgem installできない。 gem install eventmachine こんなエラー。 C:/Ruby192/bin/ruby.exe extconf.rb (省略) cmain.cpp: In function 'int evma_send_file_data_to_connection(long unsigned int, const char*)': cmain.cpp:752:6: error: cannot convert 'stat*' to '_stati64*' for argument '2' to 'int _fstati64(int, _stati64*)' make: *** [cmain.o] Error 1 (省略) Gem files will
CakePHP1.2 のセレクトタグを例に動作を見てみます。 例えば、CakePHP でデータベースの値からセレクトタグを作りたいとき以下のようにします。 $areas = $this->Area->find('all'); $areas = Set::combine($areas, '{n}.Area.id', '{n}.Area.name'); この $areas を検索条件にして、さらに先頭に“すべてを検索”を追加したい場合、以下のようにする。 <?php echo $form->select('area_id', $area, null, array(), 'すべてを検索'); ?> 生成された Html は以下のようになる。 <select name="data[User][area_id]" id="UserAreaId"> <option value="">すべてを検索</o
キャッシュから取り出したオブジェクトの自動ロードの仕組み。 Hashのブロック初期化のマニュアルを見て、ようやく動きがわかった。上手いな。 def autoload_missing_constants yield rescue ArgumentError, MemCache::MemCacheError => error lazy_load ||= Hash.new { |hash, hash_key| hash[hash_key] = true; false } if error.to_s[/undefined class|referred/] && !lazy_load[error.to_s.split.last.sub(/::$/, '').constantize] then retry else raise error end end 参考 Hash - Rubyリファレンスマニュ
といっても、もちろん本当に軽量化するわけじゃなくて、体感速度を速くします。 GotoFile Eclipse Plugin http://www.muermann.org/gotofile/ eclipse で使えるプラグイン GotoFile は非常に便利なんだけど、検索結果が大量にあると重い! そこで検索結果を最大100件しか表示しないようにカスタマイズすることで、かなり体感速度は上がります。 具体的には org.muermann.gotofile.FilenameExclusionFilter で、 30行目から以下のように4行追加するだけです。(ちなみに v1.3.5 のソースです) +public static final int MAX_SEARCH_RESULT_COUNT = 100; public List filter(List l) { ArrayList res =
serializeはRubyオブジェクトをそのままDBに格納できる機能です。 非常に便利な機能なので、現在進めている案件で、この機能を多用しているのですが、結構使いどころが難しいことがわかってきたのでまとめてみます。 例えば、次のようにして使います。 class User < ActiveRecord::Base serialize :hobbies, Array end user = User.new user.name = 'kusakari' user.hobbies = ["baseball", "football"] user.save user = User.find(1) p user.hobbies # ["baseball", "football"] なぜ使いどころが難しいと思うか挙げてみます。 親オブジェクトと保存のタイミングが常に同じになる 例えば hobbies テ
ちなみにWindows版mongrelは大丈夫でした。 /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/cgi.rb の107行目あたり (省略) # この三行はコメントアウトして when String 以下を挿入 # else # to['Set-Cookie'] = options['cookie'].to_s # end when String cookies = cookie.split.map { |a| a[-1..-1]==';'?a[0..-2]:a } cookies.each do |c| if c.split('=').count == 2 to['Set-Cookie'] = c else to['Set-Cookie'] = c+'=' end end else to['Set-Cookie
install gem install memcache-client 試したのはバージョン1.8.3。 how to use require 'rubygems' require 'memcache' memcache_servers = ['192.168.1.11:11211', '192.168.1.12:11211', '192.168.1.13:11211'] memcache_options = { :timeout => 1, } cache = MemCache.new memcache_servers, memcache_options cache.set 'key', 'value' p cache.get 'key' options namespace 名前空間。(デフォルトnil) readonly 読み込み専用。書き込んだらMemCacheError(デフォルト
UIViewController* controller = [[[UIViewController alloc]init]autorelease]; controller.hidesBottomBarWhenPushed = YES; [self.view addSubView:controller.view]; 検索下手なのでなかなか見つけられなかった。
C:\Program Files\PHP にインストールしたら、デフォルトで C:\Program Files\PHP\php.ini が読み込まれているみたい。 コマンドプロンプトを開いて、--ini オプションで確認できる。(PHP 5.2.3 以降) C:\>php --ini Configuration File (php.ini) Path: C:\WINDOWS Loaded Configuration File: C:\Program Files\PHP\php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)Loaded Configuration File が実際に読み込まれている php.ini。 参考 PHP をコマンドラインから使用する http://
Entry は User を blong_to で Entry 数順の User 一覧を取りたい場合、 group を使って以下のようにする。 $params = array( 'fields' => array('User.id', 'User.name', 'count(Entry.id) as EntryCount'), 'conditions' => array('User.del_flag' => false), 'order' => array('EntryCount' => 'desc'), 'group' => array('User.id'), 'limit' => 10, ); $users = $this->Entry->find('all', $params); 簡単ですね。 ちなみに User の属性をすべて取得した場合は以下のようにします。 $fields =
最近、GMail の greasemonkey 拡張を作っています。 そんなとき、どうしても自分でイベントを作らなくてはいけなくなったので調べてみました。 Enter キーイベントを送る ["keydown", "keypress", "keyup"].forEach( function(eventName){ [13].forEach( function(keyCode){ var eve = document.createEvent("KeyboardEvent"); eve.initKeyEvent(eventName,true,true,window,false,false,false,false,keyCode,1); document.body.dispatchEvent(eve); } ); } ); マウスイベントを送る ["mousedown", "mouseup"].f
少し前に、mixiアプリがライフサイクルイベントに対応しました。 概要は次の通り。 アプリの開始、削除の通知を受け取ることができる。 アプリ開始時に招待したユーザー情報を取得することができる。 リアルタイム処理ではなく、1時間に1回まとめて通知される。 ということで、ライフサイクルイベントによって、アプリを削除したユーザーのデータを削除することができるようになりました。 ただし、アプリを削除してすぐ再開した場合などに、どのように通知が来るのかなど、細かいことはドキュメントに載っていません。 そこで、そのあたりの動作を確認するために、少し実験をしてみました。 イベント順序 イベント発生順序は常に「event.addapp => event.removeapp 」という順序です。 また、アプリを削除後すぐに同じアプリを追加した場合、アプリ開発者としては addapp イベントだけ発生して欲しい
j2sdk に含まれている ImageIO を使って、拡大・縮小画像をファイルに書き出した場合、 javax.imageio.ImageIO#write の保存画質は結構悪い。 そこで ImageIO#write を使う代わりに、以下のように明示的に JPEG の品質レベルを指定することでかなり画質が良くなった。 write するために用意した java.awt.image.BufferedImage readImage と、 java.io.File outputFile を使って、 OutputStream os = null; try { os = new FileOutputStream(outputFile); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os); JPEGEncodeParam params =
ちなみに Windows の場合のみです。エラーはこんな感じ。 >rake db:migrate rake aborted! Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) (省略) Aptana Forums • View topic - Rails 2.2 MySQL removed error SOLUTION から、libmySQL.dll をダウンロードして、RUBY_HOME\bin\ 以下へコピー。MySQLのサービスを再起動すると db:migrate が成功した。 参考 Knowledge Is Everything: Rails 2.3 migration issues with MySQL 5.1.3
<% diary_title = "今日の#{application_name}".kconv(Kconv::EUC, Kconv::UTF8) diary_body = "日記の内容".kconv(Kconv::EUC, Kconv::UTF8) -%> <a href="http://mixi.jp/add_diary.pl?id=<%= viewer_id %>&diary_title=<%=u diary_title %>&diary_body=<%=u diary_body %>" target="_top">日記を書く</a> 参考 mixiアプリで日記に書くリンクの作り方 : tech.kayac.com - KAYAC engineers' blog
$className = "User"; if (class_exists($className)) { $instance = &new $className(); } 以前、少し調べたけどわからなかったんだけど、今 Net_UserAgent_Mobile のソースコードを見ていて発見した。 追記 こんな感じでも良いみたい。 $className = "User"; if (class_exists($className)) { $instance = new ReflectionClass($className); }
Array.new.paginate
CakePHP 1.2 の EmailComponent は TLS に対応していないため、Gmail 経由でメールを送ることができません。そのため、PHPMailer を利用して EmailComponent を突貫で作りました。(使用バージョンは CakePHP 1.2.3.8166 + PHPMailer 2.2.1) ちなみに、Gmail(Google Apps) には1日500宛先までという送信制限があるので注意が必要して下さい。 詳しくは Gmail と Google Apps のメール送信制限 - 夜の Discovery をご覧下さい。 使用手順 phpmailer をダウンロードして、phpMailer という名前で vendors 以下にコピーします。 Codeworx Technologies http://phpmailer.codeworxtech.com/ 僕が
最初に断っておくと、mod_rewrite を使わない方法であれば使えます。 なぜ使えないのか。 それは、.htaccess の機能が一部制限されているから。 RewriteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] ←この記述でエラー! よくあるご質問を見ると、次のように書いてある。 htaccessはご利用可能です(一部機能に制限があります)。 一部機能制限とは書いてあるが、さすがにこれだけでは何もわからない。ということでお名前.com に問い合わせてみた。 18:36 に問い合わせて、19:49 に返事が来るという素晴らしいレスポンスの早さ!(お名前.com の好感度がアップしました) そして、その回答内容がこちら。 お問い合わせいただきました件について、大変恐れ入りますが
rails のこの不具合のせいで、クッキーに対応していない携帯でセッションが切れる。(jpmobile) 四苦八苦した後、検索したらあっさり同じことで悩んでいるいる人が解決している記事を見つけました…。 しかも、2日前の記事だし…。 ビューで引数なしでnamed routeを使ったときdefault_url_optionsが無視されるのに対処 - ζ’ワ’)ζ<うっうー遅レス。http://d.hatena.ne.jp/babie/20080728/1217236493 丁寧に解説してくれているので勉強になります。 不具合に対応するコードはこんな感じにしとけば、ActionView に修正入っても大丈夫かな。 lib/jpmobile_ext.rb module ActionView class Base delegate :default_url_options, :to => :con
いつのまにか会社のメールサーバから Yahoo! メールにメールを送ると迷惑ボックスに入るようになっていました。 いくつか自社サービスを運用していることもあり、このままではまずいということで、 Yahoo! がお勧めしている「DomainKeys(ドメインキーズ)」を導入してみることにしました。(ちなみに SPF は導入済みです) Yahoo!メール - 迷惑メール対策 http://antispam.yahoo.co.jp/index.html なりすまし・フィッシング対策の最新技術「DomainKeys」について http://antispam.yahoo.co.jp/efforts.html#02 まずは、dk-milter をダウンロードします。 SourceForge.net domainkeys-milter http://sourceforge.net/projects/dk
正確にはドリコムモバイルCGMではなく、(たぶんPC版も含むため)unshiu というのが正式なプロダクト名で、オープンソース版は Peeled unshiu というプロダクト名だそうです。 unshiu http://wiki.unshiu.jp/ unshiu の強みは? unshiu の強みについては公式サイトには詳しくは書かれていませんが、既に大規模サイトでの運用実績があることと、 携帯機能(ポイント機能なども有り)、管理機能が充実していることだと思いました。 おそらく、携帯機能+PC用管理画面のドリコムモバイルCGMという製品があって、それにPC機能を追加して Peeled unshiu として公開したのではないかと思います。 大規模サイトでの運用実績についてはドリコムモバイルCGMのサイトに、 大規模対応 サーバーを冗長化できる仕組みになっているので、大規模な会員数・トラフィッ
次のページ
このページを最初にブックマークしてみませんか?
『kusakari.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く