[Nitro] Development version / Request for help
Michael Fellinger
m.fellinger at gmail.com
Fri Oct 14 04:50:29 EDT 2005
Hi george,
Let me be the first to welcome our new nitro-using-dev-overlords (ok,
i read too much slashdot)
I'm sorry i cannot start using the new version atm (and i'm one of the
people who waited a long time to see it done)
i might do this in the next few hours when i get my laptop working
again - until then
THIS IS TOTALLY AWESOME
you even have read my mind about CSS... i wanted to write you about
doing a dynamic css-generation yesterday - and today i see that you
have done that... i'm overwhelmed :)
the features sound like a really huge improvment to me, and i guess
the one thing left is the documentation ;)
i really hope that the problem with inheritance (will be/is) solved
until the final version so we can get serious about rdog and finally
get the documentation done.
oh man, i cannot wait to see the new spark in action (with KirbyBase!)
i hope we will get the problems done in a hurry and the 0.24 out the
door - i'm trying to help where i can, but i haven't got all my stuff
here in munich to become really productive (hell, not even irc...)
however, keep up the good work - this goes out to everyone who helped
in the development of nitro/og/nano/mega/glue/facets and whatever gen
might be.
i am in love with your work :)
now i hurry up to get the suse i just got at a magazine-store on my
laptop and ruby/gems whatever running and dive into the world of nitro
:)
btw, george i guess you won't be able to come to the EuRuKo? I really
hoped you will be there - but nobody could tell it to me for sure.
so long...
manveru
2005/10/14, George Moschovitis <george.moschovitis at gmail.com>:
> Dear devs,
>
> As this version of Nitro is taking a lot of time to complete, I
> decided to release
> a snapshot of the development version in the hope that I 'll get some help from
> the community. You can find the distribution here:
>
> http://www.joy.gr/dist.tgz
>
> WARNING: This distribution is for experienced devs and contains bugs!
>
> To install this, unzip the .tgz and setup the gems in the following
> order:
>
> facets,
> glue
> og
> nitro
> gen
>
> then extract the examples/spark tarballs.
>
> And now about helping:
>
> - I would like to ask Chris to investigate and fix any pending bugs
> in the admin / scaffolding system.
>
> - I would like to ask Tom to have a look at how annotations are used
> in Og so we can nail down the problems with the latest facets gem.
>
> - If you want to try KirbyBase support, uncomment the correct line in
> the Spark example. There is one problem though: If you restart
> the application the database gets corrupted. If anyone can help me
> find the problem I would appreciate it.
>
> - You can play with the experimental SCGI support. In the spark
> directory issue:
>
> lighttpd -f conf/lhttpd.conf (update the conf for your system)
> ./script/scgi_ctl start.
>
> - If you find incompatibilities with the old version, let me know
> so I can write them down in the MIGRATION text file.
>
> - If you find more problems, let me know.
>
>
> To wet your appetite, here are some of the new additions:
>
>
> * Totally recoded annotation / property system. The property
> system is now based on Facet annotations and inheritors.
> You can now annotate every object, attribute or method
> in Nitro. For example you can annotate your actions with
> routing rules or site map strings etc, etc. One unified
> system for annotations and meta data is used throughout
> the whole Framework.
>
> * Implemented one of the most requested features. An Og
> frontend for KirbyBase. The KirbyBase store does not yet
> support all features, but is really useful. For example
> it can power the Spark wiki example. Switching between
> KirbyBase, Mysql, Postgres, Sqlite, etc by changing
> one line of code is really cool ;-)
>
> * Better Separation of Concerns for Og managed classes. Og
> can now annotate and handle classes from other libraries.
> Lets say you have the following class:
>
> class User
> attr_accessor :name
> attr_accessor :body
> end
>
> Using Ruby's open classes and Nitro's advanced annotation
> system you can easily prepare this class for Og management
>
> class User
> ann :user, :klass => String
> ann :body, :klass => String
> end
>
> or even better:
>
> class User
> property :user, String
> property :body, String
> end
>
> This style promotes SOC: You define your classes in one
> place and annotate them for Og in another place.
>
> * Introduced a simple code generation framework. Two example
> generators are included:
>
> * app: generates the directory structure for a new
> nitro application.
>
> * form: generates an xhtml form for a Ruby class.
> This generator leverages the annotations of the
> object class.
>
> * Improved scaffolding code and django style auto
> administration system. The new scaffolder supports all
> Og relation types and provides an intuitive DHTML
> interface for editing.
>
> * SCGI (http://python.ca/nas/scgi/protocol.txt) support.
> Thanks to a refactoring of Nitro's cgi code this
> version integrates with Zed Shaw's SCGI adapter. This
> provides FastCGI's performance with an easy
> installation.
>
> * Experimental HTTP streaming support. Here is a
> simple example:
>
> def index
> response.content_type = "text/plain"
> stream do
> 5.times do |i|
> print "#{i}"*10000 + "\n"
> sleep 1
> end
> end
> end
>
> * Simple Og automatic evolution system. Lets say you have a class Article
>
> class Article
> property :title, String
> property :nbody, String
> property :dumy, Fixnum
> end
>
> lets you want to change your
> class to this one:
>
> class NewArticle
> property :ntitle, String
> property :nbody, String
> property :new, Float
> end
>
> First you export the database:
>
> og.export
>
> Then you import the database. Some rules
> are needed when renaming classes or properties.
> New properties or deleted properties are handled
> automatically.
>
> rules = {
> :Article => {
> :self => :NewArticle, # rename the class
> :title => :ntitle,
> :body => :nbody
> }
> }
> og.import :evolution => rules
>
> Thats all. The database schema and data are automatically updated
> for you. In a future version this will be integrated into
> the default runner scripts.
>
> * Og helpers to create simple rdbms management scripts. Here
> is an example:
>
> mysql "-u root -p", <<-END
> drop database if exists weblog_development;
> create database weblog_development;
> grant all on weblog_development.* to #{`id -un`.strip}@localhost;
> END
>
> At the moment this is only available for Mysql.
>
> * Added support for dynamic CSS using Nitro's advanced templating
> system. Create the dynamic CSS file with an .csst extension in
> your template root.
>
> <?r
> green = '#79b500'
> background = '#fff'
> ?>
>
> .page {
> background: #{green}
>
> <?r 10.times do ?>
> padding: 5px;
> <?r end ?>
>
> // or even
>
> <% 3.times do %>
> margin: 5px;
> <% end %>
> }
> ..
>
> then, add this line in run.rb:
>
> Compiler.precompile 'style.css'
>
> The CSS file will be regenerated automatically whenever the
> template changes...
>
> * Cleaned up Og implementation.
>
> * Fixed minor Ruby 1.8.3 compatibility issues.
>
> * Even better integration with Ruby Facets.
>
> * Tons of bug fixes and small but useful features.
>
>
>
> Please report any problems you have if you try to install this
> development version.
>
>
> thanks in advance,
> George.
>
>
> --
> http://www.gmosx.com
> http://www.navel.gr
> http://www.nitrohq.com
>
> _______________________________________________
> Nitro-general mailing list
> Nitro-general at rubyforge.org
> http://rubyforge.org/mailman/listinfo/nitro-general
>
More information about the Nitro-general
mailing list