screen

How can somebody be so stupid to choose “screen” as product name?

I mean the word “screen” has already a meaning! A very strong meaning! That means it is very difficult to google for the product “screen”. So you have to add more keywords into your search. It is a nightmare!

ie.css isn’t precompiled

If you get this Error Message:

ActionView::Template::Error (blueprint/ie.css isn't precompiled)

Than that means that your ie.css isn’t precompiled :-)
No. Seriously. If you get this message, probably you are running on production and your css files are not precompiled. Take a deeper look to the Assets Pipeline in Rails 3.1.X. If your css and js files are in the right place, you can fix this error message by executing this command here:

rake assets:precompile

Or with JRuby:

jruby -S rake assets:precompile

That should generate all precompiled css and js files and fix the problem.

JRuby + Neo4J Problems

I have JRuby on Rails app, which is using an ueber JAR to access Neo4J. The Neo4J database is in the rails root directory unter “data/”. By starting the HTTP Server I got today this Exception:

IllegalArgumentException: No index provider 'lucene' found. Maybe the intended provider (or one more of its dependencies) aren't on the classpath or it failed to load.

The problem was in the “data/”. In some way it was corrupt. I am not sure. After I exchanged the “data/” directory with an older version, the HTTP Server started without any problems.

Unicorn

Unicorn is a pretty cool and super fast HTTP Server for Rack applications. You can install it with this command:

gem install unicorn

and you can run you Ruby on Rails app on it with this command:

<RAILS_ROOT>: unicorn_rails

Just navigate into your root app directory and type in “unicorn_rails”. By default it will run the server on Port 8080 and you app is available on:

http://localhost:8080

Unicorn is optimized for Linux/Unix machines! You can not run your JRuby app on it, because some native extensions are not yet implemented for JRuby.

 

ActiveRDF + DBPedia + Ruby on Rails

This article show how to use ActiveRDF in Ruby on Rails to write queries for DBPedia. DBPedia is the semantic version of WikiPedia. Basically the whole knowledge in Wikipedia is available in DBPedia over RDF (Resource Definition Framework). There is a query language for RDF called SPARQL. With SPARQL and RDF you can write queries and fetch data from DBPedia/Wikipedia.

That is pretty awesome. You can see DBPedia/Wikipedia as a big Database or Knowledge base.

ActiveRDF is a Ruby GEM to use RDF in Ruby. To use it in Rails you have to add this two lines to your Gemfile

gem 'activerdf'
gem 'activerdf_sparql'

In you application.rb file you have to add this line pretty much in the top.

require 'active_rdf'

In the same file, in the class part you have to configure the connection pool for RDF.


module TrophicWeb
  class Application < Rails::Application

  adapter = ConnectionPool.add_data_source(:type => :sparql, :results => :sparql_xml, :engine => :virtuoso, :url ="http://dbpedia.org/sparql")
  adapter.enabled = true
  Namespace.register(:dbpedia, "http://dbpedia.org/ontology/")

That’s it for the initialization. Now you can use it in your code. Here is an example how to fetch a species and the corresponding thumbnail uri.

species = RDFS::Resource.new("http://dbpedia.org/resource/Symphurus")
thumbnail = species.dbpedia::thumbnail.uri

Thats it.

Mizuno

Mizuno is Webserver for JRuby on Rails.

I looked for different options to run my JRuby App. After some googleing I found Mizumo. It was very easy to install:

jruby -S gem install mizuno

and very easy to start. Just go into the root directory of your rails app and exec.

mizuno

or if you want to start on Port 80.

sudo mizuno --port 80

Mizuno is the fastest option for Reck applications on JRuby:

Mizuno: 6106.66 req/s (mean) 
Jetty (via jruby-rack): 2011.67 req/s (mean) 
Mongrel: 1479.15 req/sec (mean)

ActiveRdfError: cannot execute query without data sources

I am playing around with LinkedData, RDF and SPARQL. That are the basics of the semantic web, the web 3.0.  ActiveRDF is a Ruby Framework for accessing LinkedData in a object oriented way. It is pretty cool. I installed the GEM on my MacBook Air:

gem install activerdf

And I installed the SPARQL Adapter:

gem install acitverdf_sparql

I started the ruby console to try the example from the front page of ActiveRDF. And I got this Exception:

ActiveRdfError: cannot execute query without data sources

The example from the ActiveRDF page does not work for me. I had to add one more line to make it work:

adapter.enabled = true

The full modified example is here:

require 'active_rdf'

adapter = ConnectionPool.add_data_source(:type => :sparql, :results => :sparql_xml, :engine => :virtuoso, :url => "http://dbpedia.org/sparql")
adapter.enabled = true
Namespace.register(:dbpedia, "http://dbpedia.org/ontology/")
tj = RDFS::Resource.new("http://dbpedia.org/resource/Thomas_Jefferson")
tj.dbpedia::birthPlace
tj.dbpedia::deathDate

query = Query.new.distinct(:o).where(tj, RDF::type, :o )
query.execute

This is working fine for me.