[ANN] Nitro/Og 0.31.0

(forwarding from nitro’s list)

Nitro version 0.31 is a maintenance release, mostly aimed at fixing
small things in 0.30 release.

The release is mostly due to the great work of Bryan Soto at integrating
patches from the community and to the nicety of darcs :slight_smile:

** Changes

= Og ==

  • Increased size of ogtype field in single table inheritance tables to
    50 from 30.

  • Made Og (Mysql) respect the port option when creating and dropping
    databases.

  • Added thread_safe to Og.setup options.

  • Added #to_xml and #to_rexml method to Og managed objects.

== Nitro ==

  • Mongrel adapter updated to work with latest versions of Mongrel.

  • Fixed a long-standing bug where the template root wasn’t determined
    correctly (would result in blank pages).

  • Added sendfile support.

  • helper/pager.rb: add option to set nav link titles

  • Fixed strip_path support. When this setting is set to a path, it
    will be stripped from urls. Given,

    Router.strip_path = ‘/nitro-apps’

when the dispatcher gets a url like /nitro-apps/blog it will strip out
/nitro-apps and resolve to the controller for /blog.

  • Wee helper is removed.

  • Updated Nitro start page with links to the examples.

== Glue ==

Bugfixes. Refactored taggable.rb and removed attribute in favor of
Facets’s cattr which was then replaced with settings.

** Contributors
Andrew T.
Bill K.
Fabian Buch
Fang Sun
Felix Wittmann
Gabriele Renzi
Guillaume Pierronnet
James B.
Jan A. Lambert
Matt Moriarity
Michael F.

** Get it by running

gem update -y nitro

or

gem install -y nitro

Archives for manual installations and example apps (examples, spark
and flare) are also available for download from

http://rubyforge.org/frs/?group_id=418

Suggestion: If an announcement like this contained
a sentence or two telling me what nitro is, I’d
have some idea whether I wanted to google it or
traverse the rubyforge link in hopes of finding some
documentation.

Eric A. wrote:

Suggestion: If an announcement like this contained
a sentence or two telling me what nitro is, I’d
have some idea whether I wanted to google it or
traverse the rubyforge link in hopes of finding some
documentation.

From the rubyforge summary:
Nitro is an efficient, yet simple engine for developing professional Web
Applications using the Ruby language.

Guess it is a rails wannabe.

jp

Jeff P. wrote:

From the rubyforge summary:
Nitro is an efficient, yet simple engine for developing professional Web
Applications using the Ruby language.

Guess it is a rails wannabe.

I personally have not used Nitro, and I have no idea how many hours the
Nitro team has spent working on the project, however, I am pretty sure
that the amount of work put into Nitro warrants that it deserves to be
referred to as something more than “a Rails wannabe”.

I don’t mean to come across as critical of your statement; I just felt
like this should be said.

Jamey C.

Jamey C. wrote:

Nitro team has spent working on the project, however, I am pretty sure
that the amount of work put into Nitro warrants that it deserves to be
referred to as something more than “a Rails wannabe”.

I don’t mean to come across as critical of your statement; I just felt
like this should be said.

I’ve built applications in both Rails and Nitro. They’re different
enough that both are worth knowing.

I believe that Nitro was underway at the same time as Rails was getting
going; both are frameworks extracted from actual applications built to
solve real-world problems. The projects may or may not have copied
ideas from one another (though I assume all good projects steal from
everything they can), but neither is a wannabe.

I find that Nitro lends itself to a different way of thinking about Web
and application development than Rails, and Og (the O/R part of Nitro)
is better suited for certain data and object persistence needs than
ActiveRecord.

The best part, of course, is that it’s not an either/or choice, and if
you’re serious about Web development in Ruby you owe it to yourself to
spend some time with Nitro, IOWA, Rails, and Wee, for starters.

Ruby gives you choices. Pick the best tool for the job.


James B.

http://www.ruby-doc.org - Ruby Help & Documentation
http://www.artima.com/rubycs/ - The Journal By & For Rubyists
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://refreshingcities.org - Design, technology, usability

Hi Bill,

On 7/26/06, Bill K. [email protected] wrote:

(P.S. if anyone can find the Nitro screencast showing
the evolution from simple Hello World “one liner” to a
gradually more complex app, I’d appreciate a link, as I
seem to have lost it. Thx.)

Is this the screencast you meant?

http://www.nitroproject.org/videos/nitro.html

  • Dimitri

From: “Jamey C.” [email protected]

that the amount of work put into Nitro warrants that it deserves to be
referred to as something more than “a Rails wannabe”.

I don’t mean to come across as critical of your statement; I just felt
like this should be said.

I’d like to add that I’m not affiliated with the Nitro project itself,
but I’m using Nitro to develop a commercial web application.

I think Nitro has been around about as long as Rails. Certainly
Nitro and Rails were both around before either one became
popular. :slight_smile:

On my current project, I started out in Rails, and bought the
excellent PragProg Agile Development w/ Rails book, and also
the superlative Rails Recipes book… Personally, (and this is
100% PERSONAL OPINION) Nitro ended up fitting the
contours of my skull better than Rails, so I switched to Nitro.
And I’m happy.

… I was going to write more, but I just refreshed the unread
messages, and I see James B. has already said the rest.


After some deliberation, I’d like to share a paragraph I
wrote to the Nitro mailing list, circa my decision to switch
from Rails to Nitro. . . . I am hoping this is acknowledged
as personal opinion, and is recognized to be just my
personal impressions:

2006-05-07
“(One of the things I loved about Nitro vs. Rails, is
how Hello World in Nitro can be literally one .rb file and
maybe five simple lines of code. And how that Hello World
can be morphed steadily–as in the screencast–into a more
complex project piece by piece incrementally. Contrast
this with Rails, which generates a skeleton project of
44 files and 31 directories - just for Hello World. I’m
sure the argument is that for a large project one will
eventually need all this structure; but I much prefer
the way Nitro gives me the opportunity to build incrementally
with just the structure I want.)”

Again, Nitro just meshed with my brain better - just a
personal opinion, and I respect others who may feel
differently.

Regards,

Bill

(P.S. if anyone can find the Nitro screencast showing
the evolution from simple Hello World “one liner” to a
gradually more complex app, I’d appreciate a link, as I
seem to have lost it. Thx.)

From: “Dimitri A.” [email protected]

On 7/26/06, Bill K. [email protected] wrote:

(P.S. if anyone can find the Nitro screencast showing
the evolution from simple Hello World “one liner” to a
gradually more complex app, I’d appreciate a link, as I
seem to have lost it. Thx.)

Is this the screencast you meant?

http://www.nitroproject.org/videos/nitro.html

Yes!! Thanks, that was it.

$ cat demo.rb
require ‘nitro’

class Hello
def index
‘hello world’
end
end

Nitro.start Hello

…That was something I could really latch onto, because
the complexity builds from there. But what a nice starting
point. Elegant. :slight_smile:

Regards,

Bill

Let me present another more elegant example of Nitro:

require ‘nitro_and_og’

class Content
attr_accessor :title, :body, String
attr_accessor :hits, Fixnum

def initialize(title)
@title = title
end
end

class Category < Content
attr_accessor :wow, String
has_many :posts
end

class Post < Content
belongs_to :category
end

class Demo
def categories(oid)
category = Category[oid]
print “


    for post in category.posts
    print “
  • {post}

  • end
    print "

end

def init_db
c1 = Category.create(‘Hello’)
c2 = Categroy.create(‘World’)
post = Post.new(‘Hello world’)
post.category = c1
post.save
end
end

Og.start
Nitro.start Demo

hit http://localhost:9999/init_db to put dummy data in the database
(sqlite used by default)
hit http://localhost:9999/categories/1 to view the posts in category 1.

Notice how nitro automatically handles nice urls. Also note that you
could (and should) use a separate xhtml template (view) to handle the
page rendering instead of using print statements (or the programmatic
builder).

But you really have to experiment with Nitro, there are so many
features/options.

regards,
George.

Jamey C. wrote:

Jeff P. wrote:

From the rubyforge summary:
Nitro is an efficient, yet simple engine for developing professional Web
Applications using the Ruby language.

Guess it is a rails wannabe.

I personally have not used Nitro, and I have no idea how many hours the
Nitro team has spent working on the project, however, I am pretty sure
that the amount of work put into Nitro warrants that it deserves to be
referred to as something more than “a Rails wannabe”.

I don’t mean to come across as critical of your statement; I just felt
like this should be said.

Jamey C.

Mea Culpa. My appologies to the Nitro team. Poor choice of words on my
part.

best,
jp

I was impressed with nitro and dislike rails for that exact reason:
Just one file and I got a redirect in nitro, whereas rails has millions
of files.

Unfortunately, nitro does not get the attention rails got, and so there
may not be
the code streamlining, code cleaning, that may come when many look at a
same code, and there are no books out there on how to use it.

On Wed, 26 Jul 2006, Jeff P. wrote:

Nitro is an efficient, yet simple engine for developing professional Web
Applications using the Ruby language.

Guess it is a rails wannabe.

Nitro and Rails are similar in age, and similar in origins, as both were
extracted from work on a real world project. Both are web development
frameworks. And that’s where the similarity ends.

They take different, but, IMHO, equally effective approaches to the
problem of making web development more efficient, as do each of several
other Ruby web development frameworks, none of which are Rails wannabes.

Kirk H.

On 26 Jul 2006, at 15:15, Dimitri A. wrote:

Is this the screencast you meant?

http://www.nitroproject.org/videos/nitro.html

I’m just running through this now (having installed Nitro through
Gems - I love it!).

I’m liking things so far. In my copying parrot style though, I was
restarting the server each time I made a change (which doesn’t
actually happen in this screen cast). I just forgot to do that, and
after making a change to my source, went directly over to my browser
and hit refresh… And the page changed! How does that work then?!
That’s not normal Ruby behaviour, that’s not. But I like it a lot :slight_smile:

Phil T. wrote:

I get the following error message when I try to run this:
nitro_demo.rb:5:in `attr_accessor’: String is not a symbol (TypeError)
from nitro_demo.rb:5

…and it does seem to make sense, String is not a symbol…

George may be using the Nitro Glycerin code base, not the current
released version.


James B.

“Take eloquence and wring its neck.”

  • Paul Verlaine

…and it does seem to make sense, String is not a symbol…

Sorry, I forgot to mention that this example works with the repository
version (nitro/og 0.40.0). To make this work with the released
version, replace attr_accessor with property.
ie,

class Content
property :title, String
end

using attr_accessor is one of the many cool changes of the new version
:wink:

regards,
George.

PS: please notice that og automatically generates the schema for you,
you dont have to initialize the database with sql code.

On 7/29/06, George M. [email protected] wrote:

Let me present another more elegant example of Nitro:

require ‘nitro_and_og’

class Content
attr_accessor :title, :body, String

I get the following error message when I try to run this:
nitro_demo.rb:5:in `attr_accessor’: String is not a symbol (TypeError)
from nitro_demo.rb:5

…and it does seem to make sense, String is not a symbol…

Phil

Benjohn B. ha scritto:

I’m liking things so far. In my copying parrot style though, I was
restarting the server each time I made a change (which doesn’t actually
happen in this screen cast). I just forgot to do that, and after making
a change to my source, went directly over to my browser and hit
refresh… And the page changed! How does that work then?! That’s not
normal Ruby behaviour, that’s not. But I like it a lot :slight_smile:

That’s somthing you can find in facets, the method Kernel#autoreload
http://facets.rubyforge.org/api/core/classes/Kernel.html#M000450

Wow. First time I have seen the screencast. Very impressive.

I just did a workshop a few days ago on Rails here in Vancouver, and it
was
nice that the generators created a bunch of useless things for you just
to
show you, but truth be told, you really don’t need most of it until you
decide. The plugin generator is the that brought this up for me. When in
fact you only need one file to be created with the directories the way
that
they are.

After looking at the Nitro video, the structure is very loose, which I
appreciate and somewhat dislike at the same time. Having default
organization is nice, but at the same having useless organization is
just
that - pointless.

Would be nice to see a Rails version of Nitro, with the directories
already
there for you, with the auto-loaders present for things such as Models.

On that same note, I noticed during the screencast, you had to directly
require the Model. In Rails it has the auto-loading mechanism which will
attempt to locate the model in specific directories which are based on
the
load path. I am under the impression nothing like this exists in Nitro?

-NSHB

On 7/30/06, gabriele renzi [email protected] wrote:

I’m just running through this now (having installed Nitro through Gems
That’s somthing you can find in facets, the method Kernel#autoreload
http://facets.rubyforge.org/api/core/classes/Kernel.html#M000450


Kind regards,

Nathaniel B.
President & CEO
Inimit Innovations Inc. - http://inimit.com

Would be nice to see a Rails version of Nitro, with the directories already
there for you, with the auto-loaders present for things such as Models.

load path. I am under the impression nothing like this exists in Nitro?

some ‘conventions’ also exist in nitro. In a future version we plan to
add more conventions to allow the engine to automatically require
models, mount controllers at the correct path and stuff like that.
This is extremely easy to do, we are simply not 100% sure which are
the best ‘conventions’ at the moment.

I would suggest that you register with nitroproject.org and especially
the mailing list to stay up-to-date with this project which is
improving every single day.

regards,
George.

George may be using the Nitro Glycerin code base, not the current
released version.

indeed, I am using the repository version.

-g.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs