I had a lot of trouble with some rubygem warnings after upgrading to Ruby 1.9.1 and Rails 3.0 on Mac OS x Snow Leopard. They always occurred when I started the server within the project with the command

rails server

At first, when running on bundler 0.9.3, I had two types of errors. The first NoMethodError populated the terminal with hundreds lines of code, like …

WARNING:  # NoMethodError: undefined method ` ' for nil:NilClass 
# -*- encoding: utf-8 -*-
...
WARNING:  Invalid .gemspec format in \
'.rvm/gems/ruby-1.9.1-p378/specifications/spec.gemspec'

The bundler-team around Carlhuda fixed that issue within bundler 0.9.4. So that problem will not occur any more.
The other problem was quite persistent. When starting the server via

rails server

or doing a test via

rake

within the rails-3-project resulted in a bunch of warnings:

/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:14: \
warning: already initialized constant VERSION
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:14: \
warning: already initialized constant RubyGemsVersion
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:194: \
warning: already initialized constant MUTEX
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:196: \
warning: already initialized constant RubyGemsPackageVersion
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:202: \
warning: already initialized constant WIN_PATTERNS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1079:\
 warning: already initialized constant MARSHAL_SPEC_DIR
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1084: \
warning: already initialized constant YAML_SPEC_DIR
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/version.rb:72: \
warning: already initialized constant VERSION_PATTERN
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb:20: \
warning: already initialized constant OPS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb:30: \
warning: already initialized constant OP_RE
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/version.rb:246: \
warning: already initialized constant Requirement
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:18: \
warning: already initialized constant TYPES
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/platform.rb:171: \
warning: already initialized constant RUBY
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/platform.rb:177: \
warning: already initialized constant CURRENT
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:39: \
warning: already initialized constant NONEXISTENT_SPECIFICATION_VERSION
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:50: \
warning: already initialized constant CURRENT_SPECIFICATION_VERSION
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:56: \
warning: already initialized constant SPECIFICATION_VERSION_HISTORY
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:72: \
warning: already initialized constant MARSHAL_FIELDS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:75: \
warning: already initialized constant TODAY
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:593: \
warning: already initialized constant Cache
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:14: \
warning: already initialized constant DEFAULT_BACKTRACE
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:15: \
warning: already initialized constant DEFAULT_BENCHMARK
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:16: \
warning: already initialized constant DEFAULT_BULK_THRESHOLD
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:17: \
warning: already initialized constant DEFAULT_VERBOSITY
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:18: \
warning: already initialized constant DEFAULT_UPDATE_SOURCES
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:24: \
warning: already initialized constant OPERATING_SYSTEM_DEFAULTS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:30: \
warning: already initialized constant PLATFORM_DEFAULTS
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:53: \
warning: already initialized constant SYSTEM_WIDE_CONFIG_FILE

Jeremy Kemper from the Rails core team pointed out that this is not a Rails problem, but a RubyGems issue. Ruby 1.9 ships with an outdated RubyGems … like 1.9.1p378 ships with RubyGems 1.3.1. I did update RubyGems to Version 1.3.5 by

sudo gem update --system

but this resulted in some duplicated rubygem files, which cause the error.

So how can the problem be solved? Deleting and reinstalling Ruby 1.9.1 does not have any effect … but the solution is quite simple:

If you already installed Ruby 1.9.1 and Rails 3.0 beta:

1. Be sure that you do NOT install RubyGems 1.3.5 separately after the installation of Ruby 1.9.1 – this would result in a double installation. So have that in mind when following the excellent instructions to installing Ruby, RubyGems, and Rails on Snow Leopard of Dan Benjamin.

2. If you already installed Ruby 1.9.1, updated to RubyGems 1.3.5 and bundler 0.9.4 and also installed Rails 3.0, the only thing you have to do is:

sudo gem uninstall rubygems-update

That’s it. No errors any more!

If you did not install Ruby 1.9.1 and Rails 3.0 yet …

1. You may start with Dan Benjamin’s recipe and modify it so you download, make and install the ruby-1.9.1-p378.tar.gz but NOT the rubygems-1.3.5.tgz.

2. Then update RubyGems with the command

sudo gem update --system

3. Ensure that the rake and the sqlite3-ruby gems are installed, too.

4. Now install the needed gems and rails –pre as described in the Rails 3.0 beta release notes

5. After the successful installation of Rails 3.0 beta, you now have to do the vitally important step:

sudo gem uninstall rubygems-update

6. Finally check, if any gem needs an update before diving into Rails 3.0 by

sudo gem update

Hope this helps … and saves some time. Thx Andy for the hint ;-)

Tim Pritlove talked about the iPhone and the native application development for that mobile phone with Martin Pittenauer and Dominik Wagner. Mac users may be aware of Martin and Dominik as the Coding Monkeys with their first Mac OS X masterpiece: SubEthaEdit, a collaborative text editor for the Mac. In 2008 the Monkeys also developed some iPhone applications, like Circulator or Big Clock. Tim, Martin and Dominik all together realized Blinkenlights Stereoscope a simulation of the Blinkenlights Installation Toronto 2008. That’s why they all can tell a lot of stories of the similarities and differences of programming for Mac OS X and the iPhone OS. Overall a great mixture for those interested in iPhone developement as well as experts.

The only downside for all international blog readers: The podcast is in German only. Here’s the link to the podcast!

In the last days, there is a lot of whispering: Here a Chinese iPod skin manufacturer publishes a small iPhone skin on his website, an analyst wishes for an iPhone for the mass marked … and bang, everybody is expecting an iPhone nano to be announced. Then the news is spreaded, that Steve Wozniak – second founder of Apple – will join the presentation of the newest modbook at the Axiotron booth at MacWorldExpo … it’s a MacBook transformed into a tablet Mac. That increases the desire and spins the rumor mill even faster for an iPod tablet or MacBook touch. However, the market positioning of such a multitouch-gadget will be tricky:

  • If Apple stays with the walled garden iPhone version of Mac OS X they would have the existing and vital iPhone developer community committed to multitouch and gesture control … and by the way an exclusive distribution channel for applications with the AppStore. The main focus probably would be gaming and entertainment. But the gadget will loose the “pants pocket factor”.
  • If Apple uses a full Mac OS X version they could use the experiences of Axiotron and have to count on the Mac OS X developers, that they implement the benefits and potentials of multitouch and gesture control within their (existing) applications. The gadget would be more like a “MacBook Air Touch” than an iPod tablet and would more likely suite and target the business customers. En passent this would explain why there is so little spectacular information about the new Mac OS X Snow Leopard features leaked out.

What ever Phil Schiller will present on his Keynote at the Moscow-Center at MacWorldExpo in San Francisco on January 6th … and what is hidden behind the concealed exhibition banners … I’m thrilled and I’m really looking forward to it ;-)

Sometimes you are embarrassed to conntect Mac OS X Leopard with a Windows XP printserver. It should work the Mac plug-and-play way … but it isn’t. So here is the howto, so you don’t need to trouble your head about it.

Context:
In the first corner: A Mac OS X Leopard (10.5.3) machine
In the second corner: A Kyocera 2000D laser printer connected to a Windows XP printserver which is protected by password and username.

Problem:
Adding the printer via the standard Apple-way as a windows printer works – but printing does not work because it is not possible to authenticate against the printserver.

Solution:
You need to add the shared printer via the hidden “Advanced” printer feature in the Print & Fax preferences.

  • Open “Print & Fax” in “System Preferences”
  • Click “+” to add a new printer
  • Control-click (or right-click) on the toolbar at the top of the window and select “Customize Toolbar…”
  • Drag the “Advanced” icon to the toolbar and select “Done”
  • Click on the “Advanced” icon … and be patient … after a moment or two, you can select “Windows” from the “Type” dropdown-menu
  • Enter the SAMBA URL of the shared windows printer in the “URL” textfield:
    smb://USERNAME:PASSWORD@WINDOWSDOMAINNAME/PRINTSERVER/PRINTERSHARENAME or
    smb://USERNAME:PASSWORD@IPADDRESS/PRINTERSHARENAME
    If the shared printer does not need a password, you can use smb://USERNAME@…
  • Fill out the other fields “Name” and “Location” as you prefer
  • When printing the first time you will get prompted for your USERNAME and PASSWORD. Fill in your windows printserver username and password and enable the “Add this to your keychain” checkbox.

… it’s nearly plug-and-play ;-)

The huge system update to Mac OS X 10.5.3 with 200 to over 400 MB resolves a lot of bugs and adds up some additional features to Leopard. Example: More digital cameras with their specific RAW-formats are supported now. Or the possibility to sync the Apple Address Book application with Google Contacts.
Great to see that WIFI stability was increased by the Apple developers.
An annoying – but resolvable – problem appeared after updating when I tried to use the time logging software TimeLog 4: All log entries within TimeLog are saved in iCal – and after upgrading to 10.5.3 my work time entries just doubled. It’s easy to fix the problem by deleting every dublicate log entry – but you better checkt the timesheet in detail before you hand it out to your customer ;-)

Pages: 1 2 Next