<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Altura Labs &#187; Ruby</title>
	<atom:link href="http://www.alturalabs.com/blog/tag/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alturalabs.com/blog</link>
	<description></description>
	<lastBuildDate>Tue, 08 Jun 2010 13:15:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dietro le quinte del sito di Altura Labs</title>
		<link>http://www.alturalabs.com/blog/2009/06/16/dietro-le-quinte-del-sito-di-altura-labs/</link>
		<comments>http://www.alturalabs.com/blog/2009/06/16/dietro-le-quinte-del-sito-di-altura-labs/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 09:35:41 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Altura Labs]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[mod_rails]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.alturalabs.com/blog/?p=763</guid>
		<description><![CDATA[Curiosità tecniche sul dietro le quinte del nostro sito e del nostro blog: dettagli su Ruby, Rails, database e server.]]></description>
			<content:encoded><![CDATA[<p>Dalla scorsa settimana è disponibile online il nuovo sito di Altura Labs. Come Claudia ha avuto modo di sottolineare nel <a title="Online il nuovo sito di Altura Labs «  Altura Labs" href="http://www.alturalabs.com/blog/2009/06/05/online-il-nuovo-sito-di-altura-labs/">post di presentazione</a>, il nuovo sito dà ampio spazio ai <a title="I nostri progetti - Altura Labs" href="http://www.alturalabs.com/projects">progetti made in Altura Labs</a> così come alle tecnologie utilizzate. E proprio di tecnologie vorrei parlare in questo mio primo post, rivelando qualche <strong>curiosità tecnica sul dietro le quinte</strong> del nostro sito e del nostro blog.</p>
<h2>Two is meglio che One</h2>
<p>Così come il Maxibon, anche il progetto Alturalabs è composto da due anime: <strong>il sito</strong> ed <strong>il blog</strong>. A voi la scelta su quale corrisponda alla granella e quale al biscotto.</p>
<p>Il sito di Altura Labs è completamente scritto in <strong>Ruby</strong>, basato sul <strong>framework Ruby on Rails</strong>. Al contrario, il blog gira su piattaforma <strong>WordPress</strong> e <strong>PHP 5</strong>. Ebbene sì, se non lo sapevate, è possibile far convivere in modo del tutto trasparente anche su uno stesso server.</p>
<p>Ma vediamo qualche dettaglio in più.</p>
<h2>Sito di Altura Labs</h2>
<p><img class="aligncenter size-medium wp-image-765" title="alturalabs-site" src="http://www.alturalabs.com/blog/wp-content/uploads/2009/06/alturalabs-site-400x259.png" alt="alturalabs-site" width="400" height="259" /></p>
<h3>Linguaggio</h3>
<p>Come anticipato, il sito di Altura Labs si basa si basa sul framework <strong>Ruby on Rails</strong>, versione 2.3.2. L&#8217;ambiente di <strong>production</strong> utilizza una versione speciale di <a title="Welcome — Ruby Enterprise Edition" href="http://www.rubyenterpriseedition.com/">Ruby, Ruby Enterprise Edition</a>, per sfruttare a pieno le potenzialità del linguaggio in combinazione con <a title="Overview — Phusion Passenger™ (a.k.a. mod_rails / mod_rack)" href="http://www.modrails.com/">mod_rails</a>.</p>
<p>Personalmente sono molto curioso di provare <strong>Ruby 1.9.1</strong>. Le performance sono eccellenti e la nuova versione si sta comportando decisamente molto bene. Purtroppo, il processo di integrazione di una versione di un linguaggio così profondamente modificata in uno stack di produzione non è attività immediata.</p>
<p>Alturalabs utilizza alcune <strong>GEM</strong> liberamente disponibili. Il nostro <code>environment.rb</code> contiene più o meno le seguenti istruzioni</p>
<pre>config.gem "chrislloyd-gravtastic", :lib =&gt; "gravtastic", :source =&gt; 'http://gems.github.com'
config.gem "lukeredpath-simpleconfig", :lib =&gt; "simple_config", :source =&gt; 'http://gems.github.com'
config.gem "mislav-will_paginate", :lib =&gt; "will_paginate", :source =&gt; 'http://gems.github.com', :version =&gt; '&gt;= 2.3.0'
config.gem "RedCloth", :lib =&gt; 'redcloth', :version =&gt; '&gt;= 4.0'
config.gem "thoughtbot-paperclip", :lib =&gt; "paperclip", :source =&gt; 'http://gems.github.com', :version =&gt; '&gt;= 2.2'
config.gem "thoughtbot-shoulda", :lib =&gt; "shoulda", :source =&gt; 'http://gems.github.com'
config.gem "weppos-helperful", :lib =&gt; "helperful", :source =&gt; 'http://gems.github.com', :version =&gt; '~&gt; 0.3.1'
config.gem "weppos-tabs_on_rails", :lib =&gt; "tabs_on_rails", :source =&gt; 'http://gems.github.com', :version =&gt; '~&gt; 0.3'</pre>
<p>Per i meno tecnici, ecco una breve panoramica.</p>
<ul>
<li><a href="http://github.com/chrislloyd/gravtastic/">chrislloyd-gravtastic</a> è una delle GEM ufficiali l&#8217;integrazione su Rails di <a href="http://gravatar.com/">Gravatar</a>, il servizio che usiamo per mostrarvi le nostre (belle?) facce sia sul blog sia sul sito</li>
<li><a href="http://github.com/lukeredpath/simpleconfig/">lukeredpath-simpleconfig</a> è oramai uno standard de-facto di ogni nostro progetto. Consente la gestione di un sistema di configurazioni globali in modo flessibile, elegante, per environment e con una speciale DSL per la definizione delle variabili.</li>
<li><a href="http://github.com/mislav/will_paginate/">mislav-will_paginate</a> non ha bisogno di presentazioni dato che è lo standard de-facto per la paginazione dei record per ActiveRecord.</li>
<li><a title="RedCloth - Textile for Ruby" href="http://redcloth.org/">RedCloth</a> è un parser Textile per Ruby.</li>
<li><a href="http://github.com/thoughtbot/paperclip">thoughtbot-paperclip</a> è un plugin per l&#8217;upload in Rails. Normalmente la preferiamo ad altre alternative altrettanto note come attachment_fu.</li>
<li><a href="http://github.com/thoughtbot/shoulda">thoughtbot-shoulda</a> è un plugin per semplificare la creazione di unit, functional ed integrational test in Ruby e Rails.</li>
<li><a href="http://github.com/weppos/helperful">weppos-helperful</a> è un plugin Rails che contiene una lista di helper più o meno utili che utilizziamo in molti progetti Rails.</li>
<li><a href="http://github.com/weppos/tabs_on_rails">weppos-tabs_on_rails</a> è un plugin Rails per la creazione gestione di tab e menu di navigazione in Rails.</li>
</ul>
<p>Come avrete senz&#8217;altro notato, diverse di queste GEM sono in realtà plugin per Ruby on Rails. Infatti, normalmente preferiamo utilizzare le GEM quando disponibili. La cartella plugin contiene ugualmente un paio di prodotti interessanti:</p>
<ul>
<li><a href="http://ennerchi.com/projects/jrails">jrails</a> per <a href="http://www.simonecarletti.it/blog/2009/05/rails-e-jquery/">integrare jQuery in Rails</a> come alternativa a Prototype.</li>
<li><a href="http://github.com/rpheath/google_ajax_libraries_api/">Google AJAX Libraries API</a> per sfruttare la versione di jQuery ospitata da Google, traendo così vantaggio dal loro sistema di Content Delivery Network.</li>
</ul>
<h3>Database</h3>
<p>Il database di riferimento per questo e per la maggior parte dei nostri progetti è <strong>PostgreSQL</strong>. Tutte le nostre applicazioni Rails utilizzano PostgreSQL in production ed in staging, mentre normalmente preferiamo <strong>SQLite 3</strong> in fase di test e sviluppo.</p>
<p>PostgreSQL è uno degli ingredienti base delle nostre ricette. Da quest&#8217;anno, Altura Labs è anche <a title="Partner pubblicitari e sponsor del PGDay 2008" href="http://www.pgday.org/it/sponsor">sponsor ufficiale del PGDay</a>. Credo che ci sarà senz&#8217;altro occasione di approfondire l&#8217;argomento in futuro su questo blog.</p>
<h2>Blog di Altura Labs</h2>
<p><img class="aligncenter size-medium wp-image-766" title="alturalabs-blog" src="http://www.alturalabs.com/blog/wp-content/uploads/2009/06/alturalabs-blog-400x186.png" alt="alturalabs-blog" width="400" height="186" /></p>
<p>Quanto si è trattato di scegliere quale piattaforma adottare per il blog di Altura Labs non l&#8217;abbiamo tirata troppo per le lunghe. Il blog precedente era ospitato su piattaforma <strong>WordPress</strong> così la scelta è stata abbastanza naturale.</p>
<p>Altra piattaforma altro database. Purtroppo WordPress supporta solo <strong>MySQL</strong> dunque anche in questo caso la scelta è stata obbligata.</p>
<h2>Frontend e Backend Server</h2>
<p>La struttura di frontend e backend dei nostri progetti è mediamente complessa e, da sola, merita un post dedicato.</p>
<p>Senza entrare troppo nei dettagli, sia il sito di Altura sia il blog utilizzano Apache come web server. Nel primo caso si tratta di un&#8217;<strong>installazione multi-thread</strong> con <a title="Overview — Phusion Passenger™ (a.k.a. mod_rails / mod_rack)" href="http://www.modrails.com/">mod_rails</a>, nel secondo di un&#8217;<strong>installazione classica per PHP 5</strong>. Come avrete capito, le due applicazioni girano su due <strong>server differenti.</strong></p>
<p>A gestire le danze ed il traffico ci pensa un frontend server che si occupa delle <strong>operazioni di proxy</strong>. In questo caso il compito è egregiamente assolto dal russo <a title="nginx" href="http://nginx.net/">Nginx</a>.</p>
<h2>E i test?</h2>
<p>Non potevo concludere l&#8217;articolo senza un accenno all&#8217;argomento <strong>test</strong>. Credo che il team di sviluppo non me l&#8217;avrebbe mai perdonato, considerato quanto io sia particolarmente stressante sull&#8217;argomento (ebbene sì, lo ammetto!).</p>
<p>Il sito di Altura è un progetto relativamente semplice ma, nella sua semplicità, comporta comunque un certo grado di complessità. Così come ogni nostro progetto, anche questo comprende unit, functional ed integrational test.</p>
<p><a href="http://www.alturalabs.com/blog/wp-content/uploads/2009/06/code-coverage.png"><img class="aligncenter size-medium wp-image-764" title="Code Coverage" src="http://www.alturalabs.com/blog/wp-content/uploads/2009/06/code-coverage-400x337.png" alt="Code Coverage" width="400" height="337" /></a></p>
<p>Il <strong>code coverage</strong> di questo progetto è del <strong>73.4%</strong>. Tipicamente ad abbassare la media sono le funzionalità di caching che, in Rails, sono particolarmente complesse e macchinose da verificare in modo automatico.</p>
<p>Numeri a parte, i test sono un aspetto fondamentale del nostro processo di sviluppo, supporto fondamentale alle periodiche attività di refactoring e manutenzione del codice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alturalabs.com/blog/2009/06/16/dietro-le-quinte-del-sito-di-altura-labs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AAA Sviluppatore web cercasi&#8230;</title>
		<link>http://www.alturalabs.com/blog/2007/11/08/aaa-sviluppatore-web-cercasi/</link>
		<comments>http://www.alturalabs.com/blog/2007/11/08/aaa-sviluppatore-web-cercasi/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 16:03:26 +0000</pubDate>
		<dc:creator>Claudia Lanza</dc:creator>
				<category><![CDATA[Altura Labs]]></category>
		<category><![CDATA[annunci]]></category>
		<category><![CDATA[lavoro]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP5]]></category>
		<category><![CDATA[Programmatore]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.alturawmc.it/blog/2007/11/08/aaa-sviluppatore-web-cercasi/</guid>
		<description><![CDATA[Siamo alla ricerca di uno sviluppatore web da inserire nel nostro team tecnico.]]></description>
			<content:encoded><![CDATA[<p>Se siete degli habitué del nostro blog saprete già di cosa ci occupiamo o almeno, questo è quello che speriamo! Ad ogni modo che voi lo siate o meno, penso possa interessarvi sapere che siamo alla ricerca di uno sviluppatore web da inserire nel nostro team tecnico.</p>
<p><a href="http://www.alturalabs.com/">Altura Labs</a> credo possa definirsi, senza abusare troppo del termine, una società dinamica nel senso più autentico, direi addirittura &#8220;fisico&#8221;. Siamo in corsa, continuamente, non inseguiti inseguiamo e fondiamo il nostro lavoro su quei fattori in grado di produrre alterazione, cambiamento reale, innovazione.</p>
<p>Ciò che conosciamo lo capitalizziamo, ciò che non conosciamo tentiamo di apprenderlo il più rapidamente possibile, la nostra è semplicemente una grande passione, che negli anni si è trasformata in un&#8217;azienda solida,  mai ingessata, seria ma mai seriosa&#8230;il nostro lavoro ancora ci diverte!<br />
Il trascorrere del tempo non ci ha fatto mai perdere la freschezza e l&#8217;entusiasmo di condividere idee, progetti e di ragionare su questi e la loro fattibilità come un team compatto.</p>
<p>La concretizzazione di un&#8217;idea e la realizzazione di un progetto in Altura sono sempre il successo di un team mai di una singola persona.</p>
<p>Se pensi che un&#8217;ambiente di lavoro di questo tipo possa stimolare la tua curiosità o interessare qualcuno che conosci, dai un&#8217;occhiata di seguito a quelli che sono i requisiti che stiamo cercando:</p>
<blockquote><p>Altura Labs è alla ricerca, per la sede di Roma, di uno sviluppatore web.</p>
<p>Il candidato si occuperà della progettazione, sviluppo e manutenzione in team di applicativi software orientati al web ad alto contenuto innovativo e tecnologico.<br />
Ogni candidato avrò modo di partecipare alla fase produttiva del prodotto ed alla sua promozione online, comprese attività di marketing ed ottimizzazione per i motori di ricerca.</p>
<h2>Qualifiche:</h2>
<ul>
<li>Conoscenza avanzata di PHP 5 (programmazione object oriented)</li>
<li>Conoscenza di SQL ed interazione con database MySQL</li>
<li>Ottima conoscenza di HTML, xHTML, MySQL, CSS &amp; Javascript</li>
<li>Capacità di scrittura del codice senza l&#8217;ausilio di editor WYSIWYG</li>
<li>Familiarità con le principali dinamiche alla base di un progetto di content management system (CMS)</li>
</ul>
<h2>Non richiesto</h2>
<ul>
<li>Anni di esperienza nella programmazione o sviluppo di applicativi. Un candidato che rispecchia i requisiti e le qualifiche, con sufficiente propensione all&#8217;aggiornamento, sarà in grado di svolgere al meglio gli impegni anche senza un approfondito background alle spalle.</li>
</ul>
<h2>Requisiti preferenziali (sarebbe bello se&#8230;)</h2>
<ul>
<li>Competenze di sviluppo in Ruby</li>
<li>Familiarità con framework MVC (es. Symfony, CakePHP&#8230;)</li>
<li>Familiarità con standard XML/RSS e Web Service</li>
<li>Esperienza nello sviluppo di applicativi web</li>
<li>Esperienza di progettazione ed ottimizzazione database</li>
</ul>
<h2>Completano il profilo le seguenti attitudini:</h2>
<ul>
<li>Propensione al problem solving</li>
<li>Propensione al lavoro in team</li>
<li>Capacità di lavorare in autonomia sotto eventuale supervisione</li>
<li>Capacità di seguire linee guida per progetto e rispettare le tempistiche</li>
</ul>
<p>La ricerca si intende rivolta ad ambo i sessi (L. 125/91, art. 4 comma 3).<br />
Gli interessati sono pregati di inviare un&#8217;email all&#8217;indirizzo job-dev@alturalabs.com allegando il proprio CV (in formato .doc, .txt, .pdf o .html) con espressa autorizzazione al trattamento dei dati personali, accompagnato da una breve lettera di presentazione.</p>
<p>Includere nell&#8217;oggetto dell&#8217;email il riferimento  Rif. DEV01-05.<br />
Il termine per l&#8217;invio della propria candidatura è il 26 Novembre.</p>
<p>Il candidato è invitato a citare:</p>
<ul>
<li>riferimento all&#8217;annuncio</li>
<li>giorni di preavviso</li>
</ul>
<p>Il contratto previsto è a tempo indeterminato.<br />
La sede di lavoro è Roma, non è consentita l&#8217;opportunità di telelavoro.</p>
<p>Non verranno prese in considerazione le candidature incomplete o che non forniscono le informazioni sopra richieste.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.alturalabs.com/blog/2007/11/08/aaa-sviluppatore-web-cercasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
