• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

Trying to install my app to iPhone 2.2.1, but it fail with following message:
Cantinstallapp.jpg

The Info.plist for application at /Users/satoko/repos/ezPhotoMail/build/Debug-iphoneos/ezPhotoMail.app specifies a minimum OS version of 3.0, which is too hight to be installed on satoko の iPhone

###Check the Base SDK in target
If "Base SDK" is set to "iPhone Device 3.0", it could no be installed to iPhone 2.2.1 or former. But My target's "Base SDK" was OK.

###Two target, two Info.plist
Then suddenly my instincts tells me: Wait, there's another *.plist file for second target!

Well, there's two targets in this project: currently selected target's Base SDK is "iPhone Device 2.2.1" , the other one's is "iPhone Device 3.0".

Maybe that's the problem, I thought. Here's my action:

  1. I deleted below:
  • second-target
  • second-Info.plist(used in second-target)
  1. Then clean up caches:
  • Clear target
  • Close the project
  • delete build directory
  1. re-open the project and build/run with my iPhone 2.2.1...
  2. Voila! It worked!
posted by hibi hibi on Fri 19 Jun 2009 at 07:32 with 0 comments

While people in the US move to FriendFeed or Plurk, Japanese move to Wassr.

Wassr is one of the most popular twitter clone service in Japan. It has stared service about year ago, now has almost all the same features of Twitter(like API, mobile version site...).

First I noticed some Dowango(runs NicoNico Douga) ppl go to wassr a couple of months ago while twitter is down. And now more and more ppl move to Wassr. Most of the people do multiple post to Twitter and Wassr, though.

###Wassr
http://wassr.jp/ Japanese version
http://wassr.com/ English version
runs by
http://www.mobilefactory.jp/

posted by hibi hibi on Fri 4 Jul 2008 at 11:21 with 0 comments

While creating AR extending plugin, I had some trouble to test it. Because testing a such plugin needs creating db and its absurd. So here's my solution. 

Tip #1: First, extend the AR, and name it as a MockBase. Then extend MockBase to test your class. This prevents other tests like your rails app or other plugins from failing.

Tip #2. Requiring environment.rb loads all rails env this includes AR. Thus you can you use AR in your test class.

rails>>
#acts_as_notifiable_test.rb
begin
require File.dirname(FILE) + '/../../../../config/environment'
rescue LoadError
require 'rubygems'
gem 'activerecord'
require 'active_record'
end

class MockBase < ActiveRecord::Base; end
MockBase.class_eval do
alias_method :save, :valid?
def self.columns() @columns ||= []; end

def self.column(name, sql_type = nil, default = nil, null = true)
columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type, null)
end
end

class MockModel < MockBase
acts_as_notifiable :callback => :after_create, :message => "hello", :recipients => "test@gmail.com"
end

class ActsAsNotifiableTest < Test::Unit::TestCase
def test_option_message_string
assert_equal "hello", MockModel.new.instance_eval{jabber_message}
end
<<--

###Reference

posted by hibi hibi on Fri 21 Mar 2008 at 00:00 with 0 comments

Submitting new Issues via API would be so cool and meet the needs of the times. They have been issues about a year..., lame :(
Please please consider seriously!

posted by hibi hibi on Fri 7 Mar 2008 at 12:27 with 0 comments

In my company, we're using a Redmine. And I thought it would be more useful if I could receive some activities(Like creating/updating Issue) via GTalk. Thus I created acts_as_notifiable.

NOTE:

  • I added this plugin to directory:

http://agilewebdevelopment.com/plugins/acts_as_notifiable

###Repository
http://svn.s21g.com/public/rails/plugins/acts_as_notifiable/

###To work with Redmine
0. Install XMPP4R: http://xmpp4r.rubyforge.org/
shell>>
$sudo gem install xmpp4r
<<--

  1. Install plugin
  2. Create file: #{RAILS_ROOT}/config/acts_as_notifiable.yml
    rails>>

#{RAILS_ROOT}/config/acts_as_notifiable.yml
to:
recipients: you@gmail.com me@gmail.com
from:
id: your_notify_account@gmail.com
password: pass
connect: talk.google.com
<<--
3. Add acts_as_notifiable to the Model class
rails>>
class Issue
acts_as_notifiable :message => Proc.new {|o| "[#{o.project.name}:#{o.class.name}##{o.id}]#{o.status.name}:#{o.subject}\n #{o.journals.last.notes unless o.journals.blank?}"}
<<--
4. restart server

NOTE: Don't forget to add your_notify_account@gmail.com to your IM client!

posted by hibi hibi on Wed 5 Mar 2008 at 16:58 with 0 comments

OpenIdAuthentication is depend on gem ruby-openid 1.1.4. In addition, ruby-openid 1.1.4 is broken with 1.0.1 gem :(
So, I applied patch(Ticket#10604) and they works well.

  1. Install gem ruby-openid(2.0.4)
    shell>>
    gem install ruby-openid
    <<--

  2. Install plugin
    shell>>
    $ ./script/plugin install http://svn.rubyonrails.org/rails/plugins/open_id_authentication/
    <<--

  3. Apply patch

  • Get a patch and save as ticket10604.diff

http://dev.rubyonrails.org/ticket/10604

  • Move diff file to plugin root
    shell>>

#{RAILS_ROOT}/vendor/plugins/open_id_authentication/ticket10604.diff
<<--

  • Move to plugin root and do patch command
    shell>>
    $ patch -p1 < ticket10604.diff
    patching file init.rb
    Hunk #1 FAILED at 1.
    1 out of 1 hunk FAILED -- saving rejects to file init.rb.rej
    patching file lib/generators/open_id_authentication_tables/open_id_authentication_tables_generator.rb
    patching file lib/generators/open_id_authentication_tables/templates/migration.rb
    patching file lib/open_id_authentication.rb
    Hunk #5 succeeded at 69 with fuzz 1 (offset -2 lines).
    Hunk #6 succeeded at 88 (offset -2 lines).
    Hunk #7 succeeded at 152 (offset -2 lines).
    patching file lib/open_id_authentication/association.rb
    patching file lib/open_id_authentication/db_store.rb
    patching file lib/open_id_authentication/nonce.rb
    patching file lib/open_id_authentication/setting.rb
    patching file tasks/open_id_authentication_tasks.rake
    patching file test/normalize_test.rb
    patching file test/open_id_authentication_test.rb
    patching file test/status_test.rb
    <<--
  1. Do some work in README
  • Creating tables
    shell>>
    rake open_id_authentication:db:create
    <<--

  • Add some routes
    rails>>

#config/routes.rb
map.open_id_complete 'session', :controller => "sessions", :action => "create", :requirements => { :method => :get }
map.resource :session
<<--

  • Generate SessionsController, and create vews/sessions/new.html.erb
    Tip:NOT to use sample code in agilewebdevelopment.com. Use sample code in README.
    rails>>
    def open_id_authentication
    authenticate_with_open_id do |result, identity_url|
    if result.successful? && @current_user = @account.users.find_by_identity_url(identity_url)
    successful_login
    else
    failed_login(result.message || "Sorry, no user by that identity URL exists (#{identity_url})")
    end
    end
    end
    <<--
  1. Ommit version of ruby-openid
    rails>>

#open_id_authentication/init.rb
begin

gem 'ruby-openid', '=1.1.4'

gem 'ruby-openid'
<<--

posted by hibi hibi on Wed 27 Feb 2008 at 17:12 with 2 comments