Category Archives: Random Gubbins

A recent release of Bouldr threw a bit of a spanner in the works when the excellent Asset Packager began choking when attempting to create our concatenated and compressed javascript file.

It turns out that as I am developing in Windows (gah!), I need to run dos2unix in order to ensure that the js files are in the appropriate file format (our server is running CentOS). In order to automate this process, I added the following to our deploy script:


# Need to ensure files are in UNIX format for the asset packager to run correctly
run "cd #{release_path}/public/javascripts && find . -name '*.js' -exec dos2unix '{}' \\;"

# Run the asset packager to create the production javascript and css files
run "cd #{release_path} && rake asset:packager:build_all RAILS_ENV=production"

This one had me for a while: When attempting to install the MySQL gem on my shiny new Slicehost slice, I was getting the folowing error:


Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
   ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb install mysql -- --with-mysql-include=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
   --with-opt-dir
   --without-opt-dir
   --with-opt-include
   --without-opt-include=${opt-dir}/include
   --with-opt-lib
   --without-opt-lib=${opt-dir}/lib
   --with-make-prog
   --without-make-prog
   --srcdir=.
   --curdir
   --ruby=/usr/local/bin/ruby
   --with-mysql-config
   --without-mysql-config
   --with-mysql-dir
   --without-mysql-dir
   --with-mysql-include=${mysql-dir}/include
   --with-mysql-lib=${mysql-dir}/lib
   --with-mysqlclientlib
   --without-mysqlclientlib
   --with-mlib
   --without-mlib
   --with-mysqlclientlib
   --without-mysqlclientlib
   --with-zlib
   --without-zlib
   --with-mysqlclientlib
   --without-mysqlclientlib
   --with-socketlib
   --without-socketlib
   --with-mysqlclientlib
   --without-mysqlclientlib
   --with-nsllib
   --without-nsllib
   --with-mysqlclientlib
   --without-mysqlclientlib

Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out

It turns out, all I needed was to run the following:


gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

Hope this saves someone the hour or so I spent scratching my head!

Railscasts are a Rails developers wet-dream.

Since Ryan created the site, it has been a fount of knowledge for anyone wishing to learn about the latest and greatest tips and tricks. To make things even better, they are free, though PeepCode is also very much worth a look for those of us wanting to glean a little (or a lot) of in-depth knowledge; $9 is a menial sum to pay for what amounts to a full-on lecture!

If you haven’t done already, go take a look - there is even a bunch of screencasts dedicated to Rails 2.0!

Symptoms

  • rake wouldn’t work
  • script/server wouldn’t run

# Logfile created on Wed Nov 21 13:39:25 +0000 2007 by /
DEPRECATION WARNING: observer is deprecated and will be removed from Rails 2.0  See http://www.rubyonrails.org/deprecation for details. (called from ./script/../config/../app/controllers/account_controller.rb:3)
DEPRECATION WARNING: depend_on is deprecated and will be removed from Rails 2.0  See http://www.rubyonrails.org/deprecation for details. (called from observer_without_deprecation at ./script/../config/../vendor/rails/actionpack/lib/action_controller/deprecated_dependencies.rb:29)
wrong number of arguments (1 for 0)
./script/../config/../vendor/rails/activerecord/lib/active_record/vendor/mysql.rb:566:in `initialize'
./script/../config/../vendor/rails/activerecord/lib/active_record/vendor/mysql.rb:566:in `new'
./script/../config/../vendor/rails/activerecord/lib/active_record/vendor/mysql.rb:566:in `scramble41'
./script/../config/../vendor/rails/activerecord/lib/active_record/vendor/mysql.rb:144:in `real_connect'
./script/../config/../vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:389:in `connect'
./script/../config/../vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:152:in `initialize'
./script/../config/../vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:82:in `new'
./script/../config/../vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:82:in `mysql_connection'
./script/../config/../vendor/rails/activerecord/lib/active_record/connection_adapters/abstact/connection_specification.rb:262:in `send'
./script/../config/../vendor/rails/activerecord/lib/active_record/connection_adapters/abstrct/connection_specification.rb:262:in `connection_without_query_cache='
./script/../config/../vendor/rails/activerecord/lib/active_record/query_cache.rb:54:in `connection='
./script/../config/../vendor/rails/activerecord/lib/active_record/connection_adapters/abstrat/connection_specification.rb:230:in `retrieve_connection'
./script/../config/../vendor/rails/activerecord/lib/active_record/connection_adapters/abstrac/connection_specification.rb:78:in `connection'
./script/../config/../vendor/rails/activerecord/lib/active_record/base.rb:760:in `columns'
./script/../config/../vendor/rails/activerecord/lib/active_record/base.rb:768:in `columns_hash'
./script/../config/../vendor/rails/actionpack/lib/action_controller/session/active_record_store.rb:105:in `setup_sessid_compatibility!'
./script/../config/../vendor/rails/actionpack/lib/action_controller/session/active_record_store.rb:79:in `find_by_session_id'
./script/../config/../vendor/rails/actionpack/lib/action_controller/session/active_record_store.rb:283:in `initialize'
./script/../config/../vendor/rails/activerecord/lib/active_record/base.rb:864:in `silence'
./script/../config/../vendor/rails/actionpack/lib/action_controller/session/active_record_store.rb:283:in `initialize'
c:/ruby/lib/ruby/1.8/cgi/session.rb:273:in `new'
c:/ruby/lib/ruby/1.8/cgi/session.rb:273:in `initialize'
./script/../config/../vendor/rails/actionpack/lib/action_controller/cgi_process.rb:122:in `new'
./script/../config/../vendor/rails/actionpack/lib/action_controller/cgi_process.rb:122:in `session'
./script/../config/../vendor/rails/actionpack/lib/action_controller/cgi_process.rb:154:in `stale_session_check!'
./script/../config/../vendor/rails/actionpack/lib/action_controller/cgi_process.rb:109:in `session'
./script/../config/../vendor/rails/actionpack/lib/action_controller/base.rb:1052:in `assign_shortcuts_without_flash'
./script/../config/../vendor/rails/actionpack/lib/action_controller/flash.rb:140:in `assign_shortcuts'
./script/../config/../vendor/rails/actionpack/lib/action_controller/base.rb:424:in `process_without_filters'
./script/../config/../vendor/rails/actionpack/lib/action_controller/filters.rb:624:in `process_without_session_management_support'
./script/../config/../vendor/rails/actionpack/lib/action_controller/session_management.rb:114:in `process'
./script/../config/../vendor/rails/actionpack/lib/action_controller/base.rb:330:in `process'
./script/../config/../vendor/rails/railties/lib/dispatcher.rb:41:in `dispatch'
./script/../config/../vendor/rails/railties/lib/webrick_server.rb:113:in `handle_dispatch'
./script/../config/../vendor/rails/railties/lib/webrick_server.rb:79:in `service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start'
./script/../config/../vendor/rails/railties/lib/webrick_server.rb:63:in `dispatch'
./script/../config/../vendor/rails/railties/lib/commands/servers/webrick.rb:59
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in `require'
./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:343:in `new_constants_in'
./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in `require'
./script/../config/../vendor/rails/railties/lib/commands/server.rb:39
script/server:3:in `require'
script/server:3

Solution

Very simple - the machine that was running this app hadn’t got the mysql gem installed, therefore, simply running:


gem install mysql

sorted the problem out.

In protest at Total’s involvement in Burma, Mike Robertson solos the Eiffel Tower. (via)

Andrew Earl sends this Highball problem with perfect style - Amazing to watch!

I first noticed that I was a slave to Facebook when I was talking to a friend of a friend. We talked casually for a while, in the normal ‘getting to know you’ way, eventually touching on whether each other has a Facebook account. This seemed perfectly natural, however, on reflection, I could see that I had actually been working towards this question for the entire conversation; I wanted to breech The Facebook Threshold, and add this person as a friend.

This was not the first time I had considered the possibility that I have been trawling my friends friend lists just to increase the friend count on my own profile, rather the first time I have accepted this seemingly innocuous yet worrying prospect.

Speaking to my own friends, I find that this trend continues: many of those with more than fifty friends have actually collected people that they don’t consider to be friends with any more - people from their pre-school days that are now 25 years old or more, and that they haven’t spoken to or seen in the intervening period.

Maybe it’s just our social vanity getting the best of us, but escaping from this arms race feels almost impossible from the inside.

Building sites that both support and derive value from a community is one of our great memes at the moment, and one we have fully embraced when building Bouldr. One of the biggest problems, however, is how to break even; servers, bandwidth and development all cost money, and someone has to pay.

Thanks to the legions of advertising networks that have grown out of this rich demand for an easy monetisation method, there are plenty of opportunities to quickly and cheaply monetise a site (so long as you don’t end up unintentionally breaking it, that is!). Read More »

Feeling good to finally be jumping on the biggest web Bandwaggon since BB’s - though to be frank, I have nothing wothwhile to say just yet…

I have a couple of projects ‘in the pipeline’ at the mo, so maybe I could use this to make announcements or discuss their features and so on.

We’ll see, I guess.