<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6039682899028390012</id><updated>2012-02-01T06:49:02.231+01:00</updated><category term='activewarehouse'/><category term='ruby on rails'/><category term='CMapTolls Ubuntu installazione'/><category term='ldap'/><category term='Git'/><category term='taps'/><category term='mysql'/><category term='Ruby'/><category term='devise_ldap_authenticable'/><category term='tutorial'/><category term='etl'/><category term='action mailer'/><category term='devise'/><category term='rdoc'/><category term='groups'/><category term='migration'/><category term='Gedit'/><category term='graph'/><category term='datawarehouse'/><category term='gmail'/><category term='OFC'/><category term='sqlite3'/><category term='db'/><category term='activewarehouse-etl'/><title type='text'>InGiroInGiro</title><subtitle type='html'>(qualcosina in Ruby e forse in seguito qualcos'altro..)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-7722480679069350348</id><published>2011-11-21T15:30:00.002+01:00</published><updated>2011-11-21T15:37:02.429+01:00</updated><title type='text'>Rvm &amp; git info in console</title><content type='html'>&lt;div&gt;due semplici istruzioni per ridursi il lavoro&lt;/div&gt;&lt;code&gt;&lt;br /&gt;export PS1="\[\033[01;34m\]\$(~/.rvm/bin/rvm-prompt) \[\033[01;32m\]\w\[\033[00;33m\]\$(__git_ps1 \" (%s)\") \[\033[01;36m\]\$\[\033[00m\] "&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;in questo modo viene sempre visualizzato il prompt della console in questo modo&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ruby-1.9.2-p0@d7track ~/myapp (master) $&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;specificando sempre&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ruby@gemset indirizzo (branch) $&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;a href="http://collectiveidea.com/blog/archives/2011/08/02/command-line-feedback-from-rvm-and-git/"&gt;guida originale&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-7722480679069350348?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/7722480679069350348/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2011/11/rvm-git-info-in-console.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/7722480679069350348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/7722480679069350348'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2011/11/rvm-git-info-in-console.html' title='Rvm &amp; git info in console'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-5963948064648741968</id><published>2011-07-12T12:51:00.003+02:00</published><updated>2011-07-12T14:06:57.586+02:00</updated><title type='text'>Rails 3 jquery tabs cookie memories</title><content type='html'>Usando &lt;a href="http://http:/http://jqueryui.com/demos/tabs//jqueryui.com/demos/tabs/"&gt;JQuery ui tabs&lt;/a&gt; volevo mantenere la tab selezionata di volta in volta usando i cookie come mostrato &lt;a href="http://jqueryui.com/demos/tabs/#cookie"&gt;qui&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Per farlo ho incluso il plugin &lt;a href="https://github.com/carhartl/jquery-cookie"&gt;jquery.cookie.js&lt;/a&gt;, ma per non perdere gli indirizzi completi ho dovuto passare in application.js il path che altrimenti risultava troncato nel cookie&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$(function() {&lt;br /&gt;  $( ".tabs" ).tabs({ cookie: { &lt;br /&gt;      expires: 1,&lt;br /&gt;      path:  window.location.pathname&lt;br /&gt;      } });&lt;br /&gt; });&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-5963948064648741968?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/5963948064648741968/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2011/07/rails-3-jquery-tabs-cookie-memories.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5963948064648741968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5963948064648741968'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2011/07/rails-3-jquery-tabs-cookie-memories.html' title='Rails 3 jquery tabs cookie memories'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-4357939347492947945</id><published>2011-05-10T11:13:00.002+02:00</published><updated>2011-05-10T11:17:19.323+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='groups'/><category scheme='http://www.blogger.com/atom/ns#' term='devise_ldap_authenticable'/><category scheme='http://www.blogger.com/atom/ns#' term='devise'/><category scheme='http://www.blogger.com/atom/ns#' term='ldap'/><title type='text'></title><content type='html'>If i use a ldap configuration with&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# config/ldap.yml&lt;br /&gt;development:&lt;br /&gt;  base: ou=people,dc=test,dc=com &lt;br /&gt;  attribute: uid&lt;br /&gt;  group_base: ou=groups,dc=test,dc=com&lt;br /&gt;  required_groups:    &lt;br /&gt;    - ["moreMembers", "cn=users,ou=groups,dc=test,dc=com"]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and I have my dn like&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; uid=gmgp,ou=developpers,ou=people,dc=test,dc=com &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;in the log the LDAPLogger write&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  LDAP: LDAP search: uid=gmgp&lt;br /&gt;  LDAP: Authorizing user uid=gmgp,ou=developpers,ou=people,dc=test,dc=com&lt;br /&gt;  LDAP: LDAP search: uid=gmgp&lt;br /&gt;  LDAP: LDAP search: uid=gmgp&lt;br /&gt;  LDAP: LDAP search: uid=gmgp&lt;br /&gt;  LDAP: User uid=gmgp,ou=people,dc=test,dc=com is not in group: cn=users,ou=groups,dc=test,dc=com&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;my simple workaround is to create a local attribute&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#devise_ldap_authenticatable-0.4.6/lib/devise_ldap_authenticatable/ldap_adapter.rb&lt;br /&gt;&lt;br /&gt;27  class LdapConnect&lt;br /&gt;28  &lt;br /&gt;29        attr_reader :ldap, :login, :login_dn&lt;br /&gt;&lt;br /&gt;54      def dn&lt;br /&gt;55        DeviseLdapAuthenticatable::Logger.send("LDAP search: #{@attribute}=#{@login}")&lt;br /&gt;56        filter = Net::LDAP::Filter.eq(@attribute.to_s, @login.to_s)&lt;br /&gt;57        ldap_entry = nil&lt;br /&gt;58        @ldap.search(:filter =&gt; filter) {|entry| ldap_entry = entry}&lt;br /&gt;59        if ldap_entry.nil?&lt;br /&gt;60          @ldap_auth_username_builder.call(@attribute,@login,@ldap)&lt;br /&gt;61        else       &lt;br /&gt;62          @login_dn = ldap_entry.dn&lt;br /&gt;63        end&lt;br /&gt;64      end&lt;br /&gt;&lt;br /&gt;84      def in_required_groups?     &lt;br /&gt;85        return true unless ::Devise.ldap_check_group_membership&lt;br /&gt;86        &lt;br /&gt;      ... &lt;br /&gt; 99         admin_ldap.search(:base =&gt; group_name, :scope =&gt; Net::LDAP::SearchScope_BaseObject) do |entry|&lt;br /&gt;100            unless entry[group_attribute].include? @login_dn&lt;br /&gt;101              DeviseLdapAuthenticatable::Logger.send("User #{@login_dn} is not in group: #{group_name }")&lt;br /&gt;102              return false&lt;br /&gt;103            end&lt;br /&gt;104          end&lt;br /&gt;105        end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This workaround works even if it does not solve the underlying problem&lt;br /&gt;I prepare a commit as it should if I find a moment of time&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-4357939347492947945?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/4357939347492947945/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2011/05/if-i-use-ldap-configuration-with.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/4357939347492947945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/4357939347492947945'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2011/05/if-i-use-ldap-configuration-with.html' title=''/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-1443437049210027215</id><published>2011-05-03T09:59:00.003+02:00</published><updated>2011-05-03T10:18:00.770+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqlite3'/><category scheme='http://www.blogger.com/atom/ns#' term='migration'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='taps'/><category scheme='http://www.blogger.com/atom/ns#' term='db'/><title type='text'>Taps per migrazioni tra db (ex: sqlite3 to mysql)</title><content type='html'>Con la gemma Taps la migrazione dati da un db ad un altro è veramente semplice&lt;br /&gt;&lt;a href="http://adam.heroku.com/past/2009/2/11/taps_for_easy_database_transfers/"&gt;Qui&lt;/a&gt; la guida base da cui sono partito&lt;br /&gt;&lt;br /&gt;1) istallare taps sulle due macchine&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ [sudo] gem install taps &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;sembra che possa servire in alcuni casi anche&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ [sudo] gem install hoptoad_notifier&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2) lanciare il server taps (che sfrutta sinatra) con il comando&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ taps server [OPTIONS] local_database_url login password&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;per esempio: (utente e password non presenti nel db sono aggiunti posticci in quanto richiesti)&lt;br /&gt;&lt;br /&gt;&lt;code&gt; $ taps server sqlite://development.sqlite3 pippo pippo&lt;br /&gt;== Sinatra/1.0 has taken the stage on 5000 for production with backup from Mongrel&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3) creare se non esistente il db di destinazione&lt;br /&gt;&lt;br /&gt;4) lanciare taps per ricevere i dati&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ taps pull [OPTIONS] local_database_url remote_url&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ taps pull mysql://root@localhost/nome_db_destinazione http://pippo:pippo@localhost:5000&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;ed è tutto fatto!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-1443437049210027215?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/1443437049210027215/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2011/05/taps-per-migrazioni-tra-db-ex-sqlite3.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/1443437049210027215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/1443437049210027215'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2011/05/taps-per-migrazioni-tra-db-ex-sqlite3.html' title='Taps per migrazioni tra db (ex: sqlite3 to mysql)'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-9124653205569349941</id><published>2010-11-05T12:01:00.005+01:00</published><updated>2010-11-05T16:25:33.035+01:00</updated><title type='text'>RVM passo passo</title><content type='html'>Seguendo le istruzioni &lt;a href="http://rvm.beginrescueend.com/rvm/install/"&gt;qui&lt;/a&gt; sono riuscito ad avere diversi ambienti ruby coesistenti&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Istallazione&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1) &lt;code&gt;$ bash &lt; &lt;( curl http://rvm.beginrescueend.com/releases/rvm-install-head )&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Operazioni post installazione&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) Check librerie necessarie come da messaggio presentato&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# For RVM&lt;br /&gt;  rvm: bash curl git&lt;br /&gt;&lt;br /&gt;# For JRuby (if you wish to use it) you will need:&lt;br /&gt;  jruby: aptitude install curl sun-java6-bin sun-java6-jre sun-java6-jdk&lt;br /&gt;&lt;br /&gt;# For Ruby (MRI &amp; ree)  you should install the following OS dependencies:&lt;br /&gt;  ruby: aptitude install build-essential bison openssl libreadline5 libreadline5-dev curl git zlib1g zlib1g-dev libssl-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev&lt;br /&gt;&lt;br /&gt;  ruby-head: git subversion autoconf&lt;br /&gt;&lt;br /&gt;# For IronRuby (if you wish to use it) you will need:&lt;br /&gt;  ironruby: aptitude install curl mono-2.0-devel&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3) Modifiche .bashrc&lt;br /&gt;&lt;br /&gt;a fine file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[[ -s "$HOME/.rvm/scripts/rvm" ]] &amp;&amp; . "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;e modificato dove si trovasse la forma &lt;code&gt;'&amp;&amp; return'&lt;/code&gt; come da istruzioni modifcanso come &lt;br /&gt;&lt;code&gt;if [...] then ;&lt;br /&gt;  code&lt;br /&gt;fi&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4) chiusura console&lt;br /&gt;&lt;br /&gt;5) prova con &lt;br /&gt;&lt;code&gt;$ type rvm | head -n1&lt;br /&gt;rvm è una funzione&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Utilizzo&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;rvm install 1.9.2&lt;br /&gt;rvm 1.9.2 --default # per rendere definitivo il cambio&lt;br /&gt;rvm info&lt;br /&gt;rvm system --default # per tornare a ruby standard&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UPDATE&lt;br /&gt;&lt;br /&gt;per alcune librerie può essere che serva una ricompilazione sotto ubuntu per ogni ambiente come riportato &lt;a href="http://cjohansen.no/en/ruby/ruby_version_manager_ubuntu_and_openssl"&gt;qui&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-9124653205569349941?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/9124653205569349941/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2010/11/rvm-passo-passo.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/9124653205569349941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/9124653205569349941'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2010/11/rvm-passo-passo.html' title='RVM passo passo'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-5605235428879155633</id><published>2010-07-23T12:45:00.008+02:00</published><updated>2010-07-26T10:13:58.755+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='action mailer'/><category scheme='http://www.blogger.com/atom/ns#' term='ruby on rails'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><title type='text'>Rails + Gmail con ruby 1.8.7</title><content type='html'>Un semplice How-to per fornire un applicazione Rails (2.3.x) del servizio di invio di mail&lt;br /&gt;In particolare si suppone che esistano degli utenti User con attibuto User.username per testare l'interazione con l'applicazione&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) il mailer model&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; "notifier"&lt;/span&gt;&lt;br /&gt;Il primo passo è la creazione di un controller per l'invio delle mail&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ script/generate mailer Notifier&lt;br /&gt;exists  app/models/&lt;br /&gt;create  app/views/notifier&lt;br /&gt;exists  test/unit/&lt;br /&gt;create  test/fixtures/notifier&lt;br /&gt;create  app/models/notifier.rb&lt;br /&gt;create  test/unit/notifier_test.rb&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;crea il model notifier.rb e la cartella nelle viste notifier che conterrà le viste ovvero i modelli dei testi delle mail che manderemo&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2)Il metodo"notification"&lt;/span&gt;&lt;br /&gt;Bisogna quindi creare il metodo in /models/notifier.rb&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;class Notifier &lt; user =""&gt; user)&lt;br /&gt;  def notification(user)&lt;br /&gt;    recipients "myname@gmail.com"#user.email&lt;br /&gt;    from       "myname@gmail.com"&lt;br /&gt;    subject    "New account information"&lt;br /&gt;    body       (:user =&gt; user)#    "account" =&gt; recipient&lt;br /&gt;    content_type "text/html"&lt;br /&gt;  end&lt;br /&gt;end&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;:user passato nel body rende disponibile la variabile @user nella vista che andremo a creare per il testo della mail&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) Il testo della mail&lt;/span&gt;&lt;br /&gt;creiamo il file /views/notifier/notification.html.erb&lt;br /&gt;&lt;br /&gt;&lt;code&gt; Hi &lt;%= @user.username %&gt;,&lt;br /&gt;Thanks for joining our service! Please check back often.&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;in cui @user è l'utente che abbiamo passato per argomento precedentemente&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4) Modifichiamo le impostazioni di invio&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;modifichiamo il file /config/environments/developments.rb&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ActionMailer::Base.smtp_settings = {&lt;br /&gt;:enable_starttls_auto =&gt; true,&lt;br /&gt;:address =&gt; "smtp.gmail.com",&lt;br /&gt;:port =&gt; 587,&lt;br /&gt;:authentication =&gt; :plain,&lt;br /&gt;:domain =&gt; "myname@gmail.com",&lt;br /&gt;:user_name =&gt; "myname@gmail.com",&lt;br /&gt;:password =&gt; "mynamepassword",&lt;br /&gt;}&lt;br /&gt;config.action_mailer.raise_delivery_errors = true&lt;br /&gt;config.action_mailer.delivery_method = :smtp&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;abbiamo completato le modifiche per testarle lanciamo la console con&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;&lt;/span&gt;script/console&lt;br /&gt;Loading development environment (Rails 2.3.5)&lt;br /&gt;&gt;&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Quindi utilizziamo il methodo deliver per inviare la mail&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&gt;&gt; Notifier.deliver_notification User.first&lt;br /&gt;&gt;&gt; #TMail::Mail port=#TMail::StringPort:id=0x..fdb3d0cc4&gt;&lt;br /&gt; bodyport= #TMail::StringPort:id=0x..fdb3cf9d2&lt;br /&gt;&gt;&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Mail inviata e ricevuta&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-5605235428879155633?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/5605235428879155633/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2010/07/rails-gmail-con-ruby-187.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5605235428879155633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5605235428879155633'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2010/07/rails-gmail-con-ruby-187.html' title='Rails + Gmail con ruby 1.8.7'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-9212782924947132180</id><published>2010-07-13T10:31:00.003+02:00</published><updated>2010-07-15T17:25:15.262+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMapTolls Ubuntu installazione'/><title type='text'>Istallazione CMapTools in Ubuntu</title><content type='html'>Due dritte per l'installazione di &lt;a href="http://cmap.ihmc.us/"&gt;CMapTolls&lt;/a&gt; in ubuntu&lt;br /&gt;&lt;ul&gt;&lt;li&gt;registrarsi con una mail&lt;br /&gt;&lt;/li&gt;&lt;li&gt;scaricare il file bin&lt;/li&gt;&lt;/ul&gt;creare la cartella radice in /opt/&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;pre&gt;sudo mkdir  IHMC_CmapTools&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;rendere il file bin scaricato eseguibile&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   &lt;pre&gt;chmod +x LinuxCmapTools_v5.03_04-07-09.bin&lt;/pre&gt; &lt;/li&gt;&lt;/ul&gt;Installare il programma&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   &lt;pre&gt;sudo ./LinuxCmapTools_v5.03_04-07-09.bin&lt;br /&gt;&lt;br /&gt;Preparing to install...&lt;br /&gt;Extracting the JRE from the installer archive...&lt;br /&gt;Unpacking the JRE...&lt;br /&gt;Extracting the installation resources from the installer archive...&lt;br /&gt;Configuring the installer for this system's environment...&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;utilizzando il tool di installazione avanzata è possibile personalizzare le opzioni in particolare specificare come directory radice  /opt/&lt;span style="font-style: italic;"&gt;IHMC_CmapTools&lt;/span&gt; precedentemente creata.&lt;br /&gt;&lt;br /&gt;Se si vuole avere il link al programma basta creare un lanciatore che faccia riferimento al file&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style: italic;"&gt;/opt/IHMC_CmapTools/bin/CmapTools&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Una icona adatta la si può trovare &lt;a href="http://www.iescopernic.com/moodle/file.php/1/fitxers/www/cmap/Instalar_Cmaptools_files/CmapTools48px.gif"&gt;a questo indirizzo &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Scaricata l'icona per avere il lanciatore basta seguire le semplici istruzioni ipotizzando di trovarsi con il terminale nella cartella dove si è scaricata l'icona:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;pre&gt;sudo cp CmapTolls48px.gif /usr/share/pixmaps/&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;cd /usr/share/pixmaps/&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;sudo chown root:root CmapTools48px.gif&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;sudo chmod u+rw CmapTools48px.gif&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;cd /usr/share/applications/&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;sudo touch cmaptools.desktop&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre&gt;sudo gedit cmaptools.desktop&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;aggiungendo il seguente contenuto&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[Desktop Entry]&lt;br /&gt;Version=1.0&lt;br /&gt;Name=CMapTools&lt;br /&gt;Name[it]=CMapTools&lt;br /&gt;Comment=Conceptual maps&lt;br /&gt;Comment[it]=Mappe concettualil&lt;br /&gt;GenericName=CMapTools&lt;br /&gt;GenericName[ca]=CMapTools&lt;br /&gt;Encoding=UTF-8&lt;br /&gt;Exec=/opt/&lt;span style="font-style: italic;"&gt;IHMC_CmapTools&lt;/span&gt;/CmapTools&lt;br /&gt;Terminal=false&lt;br /&gt;Icon=/usr/share/pixmaps/CmapTools48px.gif&lt;br /&gt;Type=Application&lt;br /&gt;MimeType=application/x-cmaptools&lt;br /&gt;Categories=Application;Office;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Si ha così il lanciatore disponibile all'uso&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-9212782924947132180?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/9212782924947132180/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2010/07/istallazione-cmaptools-in-ubuntu.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/9212782924947132180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/9212782924947132180'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2010/07/istallazione-cmaptools-in-ubuntu.html' title='Istallazione CMapTools in Ubuntu'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-5519264150902264336</id><published>2009-06-19T11:35:00.000+02:00</published><updated>2009-06-19T12:37:42.560+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Git'/><category scheme='http://www.blogger.com/atom/ns#' term='Gedit'/><title type='text'>Git in Gedit</title><content type='html'>Uno stumento veramente comodo ed efficace per il versionamento è l'ormai famoso e diffuso &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Utilizzando come IDE Gedit adeguatamente potenziato (qualche plugin qua e là, nulla di che) mi trovo veramente bene e l'unica mancanza finora era la possibilità di una integrazione con Git.&lt;br /&gt;Partendo da questo &lt;a href="http://mavimo.org/varie/git_gedit"&gt;post&lt;/a&gt; ho scelto di crearmi alcuni semplici script da utilizzare con il &lt;a href="http://live.gnome.org/Gedit/ToolLauncherPlugin"&gt;plugin&lt;span style="font-weight: bold;"&gt; Tools Extension&lt;/span&gt;&lt;/a&gt;, già ampiamente sfruttato.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Premessa&lt;/span&gt;&lt;br /&gt;tutti questi comandi fanno riferimento al file attivo in gedit al momento del loro invio quindi bisogna prestare attenzione al file aperto al momento del loro utilizzo. L'istallazione del plugin è facilmente recuperabile in rete, per esempio &lt;a href="http://sp2hari.com/2007/11/06/external-tools/"&gt;qui&lt;/a&gt;, quindi la considero già fatta.&lt;br /&gt;Per quanto riguarda Git presuppongo che sia già istallato e il repository inizializzato.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gnome.org/%7Epborelli/tools-manager.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 375px; height: 246px;" src="http://www.gnome.org/%7Epborelli/tools-manager.png" alt="" border="0" /&gt;&lt;/a&gt;Questa è l'interfaccia del plugin richiamabile da:&lt;br /&gt;&lt;br /&gt;Strumenti&gt;Strumenti esterni...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creazione procedura&lt;/span&gt;&lt;br /&gt;Clicchiamo su &lt;span style="font-style: italic;"&gt;New&lt;/span&gt; specificando il nome (a volte non lo prende, non preoccupatevi basta tornare successivamente a personalizzarlo)&lt;br /&gt;&lt;br /&gt;Aggiungiamo una descrizione che ci aiuti in &lt;span style="font-style: italic;"&gt;Description&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;In &lt;span style="font-style: italic;"&gt;Accelerator&lt;/span&gt; indichiamo il tasto scorciatoia (tutti i comandi saranno disponibili nel menu Strumenti)&lt;br /&gt;&lt;br /&gt;In &lt;span style="font-style: italic;"&gt;Commands&lt;/span&gt; incolliamo lo script che ci interessa&lt;br /&gt;&lt;br /&gt;In &lt;span style="font-style: italic;"&gt;Inputs&lt;/span&gt; scegliamo Nothing&lt;br /&gt;In &lt;span style="font-style: italic;"&gt;Output&lt;/span&gt; scegliamo 'Display in bottom panel'&lt;br /&gt;In &lt;span style="font-style: italic;"&gt;Applicability &lt;/span&gt;scegliamo 'All Documents'&lt;br /&gt;&lt;br /&gt;L'output dell'esecuzione dei comandi viene visualizzato nella finestra inferiore "Output della shell" visualizzabile con Ctrl+F9&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SCRIPT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Commit del file nel branch attivo&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Ask message for commit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;COMMIT_MESSAGE=`zenity --text-info --editable --width=500 --title="Commit message - gedit" --text="Insert commit message for this file"`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# add current file into repository&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git add "$GEDIT_CURRENT_DOCUMENT_NAME"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Commit current file with previous message&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git commit -m "$COMMIT_MESSAGE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Print git status&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git status&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Commit di tutti i file modificati nel branch attivo&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Ask message for commit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;COMMIT_MESSAGE=`zenity --text-info --editable --width=500 --title="Commit message - gedit" --text="Insert commit message"`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# add all files into repository&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git add .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Commit current file with previous message&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git commit -m "$COMMIT_MESSAGE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Print git status&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git status&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Cambio branch&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Ask name of branch to change&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NEW_BRANCH=`zenity --text-info --editable --width=500 --title="New branch - gedit" --text="Insert the name of new current branch"`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# change branch&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git checkout "$NEW_BRANCH"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Print git status&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git status&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Caricamento branch"sviluppo" sul master&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Ask name of branch to add to master&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NEW_BRANCH=`zenity --text-info --editable --width=500 --title="Branch to add - gedit" --text="Insert the name of branch to add"`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# change branch&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git checkout master&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git merge "$NEW_BRANCH"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Print git status&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;git status&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ovviamente ogni  script ha bisogno di una sua procedura :-)&lt;br /&gt;Buon versionamento!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-5519264150902264336?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/5519264150902264336/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2009/06/git-in-gedit.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5519264150902264336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5519264150902264336'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2009/06/git-in-gedit.html' title='Git in Gedit'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-5382136685122349547</id><published>2009-05-22T11:34:00.000+02:00</published><updated>2009-05-22T11:45:24.193+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='activewarehouse'/><category scheme='http://www.blogger.com/atom/ns#' term='rdoc'/><category scheme='http://www.blogger.com/atom/ns#' term='activewarehouse-etl'/><title type='text'>A rdoc collection auto-updated</title><content type='html'>Ever more applications hosted by git hub without documentation updated on-line !&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rdoc.info/"&gt;http://rdoc.info/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A simple and really useful service that allows you to always have updated the documentation without having to regenerate every time.&lt;br /&gt;&lt;br /&gt;Just click on the update button at the top to make sure that the documentation is up to date and a link back to the corresponding page github&lt;br /&gt;&lt;br /&gt;doc of &lt;a href="http://rdoc.info/projects/aeden/activewarehouse"&gt;ActiveWarehouse&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;doc of &lt;a href="http://rdoc.info/projects/aeden/activewarehouse-etl/blob/29a1344398fadb4e3373ac210ff2f7bb6f50239e"&gt;ActiveWarehouse-etl&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-5382136685122349547?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/5382136685122349547/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2009/05/rdoc-collection-auto-updated.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5382136685122349547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5382136685122349547'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2009/05/rdoc-collection-auto-updated.html' title='A rdoc collection auto-updated'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-4024173085368767367</id><published>2009-05-22T10:51:00.000+02:00</published><updated>2009-05-22T11:21:47.579+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='activewarehouse'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>A little step by step building AW</title><content type='html'>A very simple guide to bild a basic RoR application with ActiveWarehouse e ActiveWarehouse-etl&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/Liases/etltest/tree/master"&gt;the application&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/Liases/etltest/raw/8e824fd4fa2ea89241549220eb34a116c1492372/guida%20activewarehouse.pdf"&gt;a simple italian guide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-4024173085368767367?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/4024173085368767367/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2009/05/little-step-by-step-building-aw.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/4024173085368767367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/4024173085368767367'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2009/05/little-step-by-step-building-aw.html' title='A little step by step building AW'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-6234104259799666101</id><published>2009-02-20T10:50:00.000+01:00</published><updated>2009-02-24T14:46:36.883+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='activewarehouse'/><category scheme='http://www.blogger.com/atom/ns#' term='etl'/><category scheme='http://www.blogger.com/atom/ns#' term='ruby on rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='datawarehouse'/><title type='text'>Getting started with Activewarehouse: documentation and examples</title><content type='html'>I began to discover these gems&lt;br /&gt;&lt;a href="http://activewarehouse.rubyforge.org/"&gt;ActiveWarehouse&lt;/a&gt;&lt;br /&gt;&lt;a href="http://activewarehouse.rubyforge.org/etl/"&gt;ActiveWarehouse-etl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and the first problem was to put together some documentation and examples&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.logeek.fr/2008/1/19/a-beginner-s-guide-to-datawarehouse"&gt;an important introduction&lt;/a&gt;&lt;br /&gt;&lt;a href="http://activewarehouse.rubyforge.org/svn/presentations/trunk/activewarehouse.ppt"&gt;a presentation&lt;/a&gt; and &lt;a href="http://activewarehouse.rubyforge.org/svn/presentations/trunk/"&gt;the code&lt;/a&gt;&lt;br /&gt;&lt;a href="http://martyhaught.com/downloads/ActiveWarehouse.pdf"&gt;another presentation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;activewarehouse:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://activewarehouse.rubyforge.org/rdoc/"&gt;rdoc&lt;/a&gt; (documentation dated, regenerate it locally&lt;span style="font-family:courier new;"&gt; rake doc:plugin&lt;/span&gt;)&lt;br /&gt;&lt;a href="http://github.com/aeden/activewarehouse/blob/7f5dc44194bbe4b5272043c21b62dcfe78681cff/README"&gt;readme&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/bcotton/activewarehouse-demo/tree/master"&gt;a demo application&lt;/a&gt; (github rails 1.1.6) (&lt;a href="http://activewarehouse.rubyforge.org/svn/demo/trunk/"&gt;svn link&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://web.archive.org/web/20070103003836/anthonyeden.com/2006/12/20/activewarehouse-example-with-rails-svn-logs"&gt;tutorial&lt;/a&gt; (via web archive)&lt;br /&gt;&lt;a href="http://martyhaught.com/articles/2008/02/04/latest-activewarehouse-changes/"&gt;a important change &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;activewarehouse-etl:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://activewarehouse.rubyforge.org/docs/activewarehouse-etl.html"&gt;the first&lt;/a&gt;&lt;br /&gt;ctl examples: &lt;a href="http://activewarehouse.rubyforge.org/svn/presentations/trunk/etl/pos_line_item_facts.ctl"&gt;1&lt;/a&gt;, &lt;a href="http://activewarehouse.rubyforge.org/svn/presentations/trunk/etl/products.ctl"&gt;2&lt;/a&gt;, &lt;a href="http://activewarehouse.rubyforge.org/svn/presentations/trunk/etl/stores.ctl"&gt;3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;the 2 blog of developpers:&lt;br /&gt;&lt;a href="http://blog.anthonyeden.com/"&gt;http://blog.anthonyeden.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://martyhaught.com/"&gt;http://martyhaught.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;" id="result_box" dir="ltr"&gt;This is only a first collection and I hope to update it thanks to feedback&lt;br /&gt;Will soon try to write a brief account of my step-by-step experiments&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-6234104259799666101?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/6234104259799666101/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2009/02/getting-started-with-activewarehouse.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/6234104259799666101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/6234104259799666101'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2009/02/getting-started-with-activewarehouse.html' title='Getting started with Activewarehouse: documentation and examples'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-632650481356244006</id><published>2008-12-17T10:00:00.000+01:00</published><updated>2009-02-20T10:41:07.979+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby on rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='OFC'/><category scheme='http://www.blogger.com/atom/ns#' term='graph'/><title type='text'>Line graph with error band</title><content type='html'>Example of line graph with error band.&lt;br /&gt;&lt;div style="text-align: left;" id="result_box" dir="ltr"&gt; The function draws a series of quadrilaterals whose vertices matched pairs of the two series data_up and data_down  then inserting a line is the average values.&lt;br /&gt;To actually use series with variable error just simply change the code by passing the three sets as parameters instead generate randomly.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;test_it_controller.rb&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;class TestItController &lt; ApplicationController&lt;br /&gt;def index&lt;br /&gt; @graph1 = open_flash_chart_object(600,300,"/test_it/graph1_code")&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def graph1_code&lt;br /&gt;&lt;br /&gt; title = Title.new("a Graph")&lt;br /&gt;&lt;br /&gt; chart = OpenFlashChart.new&lt;br /&gt; chart.set_title(title)&lt;br /&gt;&lt;br /&gt; @data_up = [1]&lt;br /&gt; @data_down = [-1]&lt;br /&gt;&lt;br /&gt; 0.step(30, 1) {|i|&lt;br /&gt;     @data_up &lt;&lt; @data_up[i] +rand - 0.5&lt;br /&gt;     @data_down &lt;&lt; @data_down[i] + rand - 0.5&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt; def draw_quadri(i)&lt;br /&gt;   q = Shape.new( '#80B11A' )                        &lt;br /&gt;   q.append_value(ShapePoint.new(i,@data_up[i]))&lt;br /&gt;   q.append_value(ShapePoint.new(i,@data_down[i]))&lt;br /&gt;   q.append_value(ShapePoint.new(i+1,@data_down[i+1]))&lt;br /&gt;   q.append_value(ShapePoint.new(i+1,@data_up[i+1])) &lt;br /&gt;   return q&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt; flux = []&lt;br /&gt; (@data_up.length-1).times do |h|&lt;br /&gt;   flux &lt;&lt; draw_quadri(h)&lt;br /&gt;   end&lt;br /&gt;&lt;br /&gt; flux.each do  |shape|&lt;br /&gt;    chart.add_element(shape)&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt; scatter_line = ScatterLine.new( '#FF0000', 5 )&lt;br /&gt; scatter_line_u = ScatterLine.new( '#FF0000', 3 )&lt;br /&gt; scatter_line_d = ScatterLine.new( '#FF0000', 3 )&lt;br /&gt; data = []&lt;br /&gt; data_u = []&lt;br /&gt; data_d = []&lt;br /&gt;&lt;br /&gt; x=0&lt;br /&gt; (@data_up.length).times do |h|&lt;br /&gt;   data   &lt;&lt; (ScatterValue.new(x,(@data_up[h] + @data_down[h])/ 2))&lt;br /&gt;   data_u &lt;&lt; (ScatterValue.new(x,@data_up[h]))&lt;br /&gt;   data_d &lt;&lt; (ScatterValue.new(x,@data_down[h]))&lt;br /&gt;   x+=1&lt;br /&gt;   end&lt;br /&gt;&lt;br /&gt; scatter_line.set_values(data);         chart.add_element(scatter_line)&lt;br /&gt; scatter_line_u.set_values(data_u);     chart.add_element(scatter_line_u)&lt;br /&gt; scatter_line_d.set_values(data_d);     chart.add_element(scatter_line_d)&lt;br /&gt;&lt;br /&gt; x = XAxis.new&lt;br /&gt; x.set_range(0,32,5)&lt;br /&gt; x.set_offset(false)&lt;br /&gt; chart.set_x_axis(x)&lt;br /&gt;&lt;br /&gt; y = YAxis.new&lt;br /&gt; y.set_range(-5,5,1)&lt;br /&gt; y.set_offset(true)&lt;br /&gt; chart.set_y_axis(y)&lt;br /&gt;&lt;br /&gt; render :text =&gt; chart.to_s&lt;br /&gt;end&lt;br /&gt;end&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-632650481356244006?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/632650481356244006/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2008/12/grafico-con-banda-derrore.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/632650481356244006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/632650481356244006'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2008/12/grafico-con-banda-derrore.html' title='Line graph with error band'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6039682899028390012.post-5677989602834210436</id><published>2008-12-11T17:38:00.000+01:00</published><updated>2009-02-20T10:23:41.700+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby on rails'/><category scheme='http://www.blogger.com/atom/ns#' term='OFC'/><title type='text'>Radar chart lines</title><content type='html'>First attempt to offer something to my referring to the excellent tutorial by &lt;a href="http://pullmonkey.com/"&gt;pullmonkey.com&lt;/a&gt; and &lt;a href="http://harryseldon.thinkosphere.com/"&gt;harryseldon&lt;/a&gt;&lt;br /&gt;here is the ruby in transposition of the third example of radar chart&lt;br /&gt;&lt;a href="http://teethgrinder.co.uk/open-flash-chart-2/radar-chart-steps.php"&gt;radar chart lines&lt;/a&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;test_it_controller.rb&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;class TestItController &lt; ApplicationController&lt;br /&gt; def index&lt;br /&gt;   @graph1 = open_flash_chart_object(600,300,"/test_it/graph1_code")&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt; def graph_code&lt;br /&gt;   chart = OpenFlashChart.new&lt;br /&gt;   chart.set_title(Title.new('Radar Chart'))&lt;br /&gt;&lt;br /&gt;   values = [30,50,60,70,80,90,100,115,130,115,100,90,80,70,60,50]&lt;br /&gt;   spokes = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p']&lt;br /&gt;   vals = []&lt;br /&gt;&lt;br /&gt;   values.each_with_index do |value, i|&lt;br /&gt;     tmp = DotValue.new( value, '#D41E47' )&lt;br /&gt;     tmp.set_tooltip("#val#&amp;amp;ltbr%rtSpoke: #{spokes[i]}")&lt;br /&gt;     vals.push(tmp)&lt;br /&gt;     end&lt;br /&gt;  &lt;br /&gt;   line = LineHollow.new()&lt;br /&gt;   line.set_values( vals )&lt;br /&gt;   line.set_halo_size( 0 )&lt;br /&gt;   line.set_width( 2 )&lt;br /&gt;   line.set_dot_size( 6 )&lt;br /&gt;   line.set_colour( '#FBB829' )&lt;br /&gt;   line.set_key( 'Hearts', 10 )&lt;br /&gt;   line.loop()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   # add the area object to the chart:&lt;br /&gt;   chart.add_element(line)&lt;br /&gt;&lt;br /&gt;   r = RadarAxis.new( 150 )&lt;br /&gt;   r.set_steps(10)&lt;br /&gt;   r.set_colour( '#DAD5E0' )&lt;br /&gt;   r.set_grid_colour( '#EFEFEF' )&lt;br /&gt;   chart.set_radar_axis( r )&lt;br /&gt;&lt;br /&gt;   tooltip = Tooltip.new()&lt;br /&gt;   tooltip.set_proximity()&lt;br /&gt;   chart.set_tooltip( tooltip )&lt;br /&gt;&lt;br /&gt;   chart.set_bg_colour( '#ffffff' )&lt;br /&gt;&lt;br /&gt;   render :text =&gt; chart.to_s&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6039682899028390012-5677989602834210436?l=ingiroingiro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingiroingiro.blogspot.com/feeds/5677989602834210436/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://ingiroingiro.blogspot.com/2008/12/radar-chart-lines.html#comment-form' title='6 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5677989602834210436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6039682899028390012/posts/default/5677989602834210436'/><link rel='alternate' type='text/html' href='http://ingiroingiro.blogspot.com/2008/12/radar-chart-lines.html' title='Radar chart lines'/><author><name>Giovanni</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry></feed>
