<?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>Francesco Corsentino .net &#187; framework</title> <atom:link href="http://corsentino.net/tag/framework/feed/" rel="self" type="application/rss+xml" /><link>http://corsentino.net</link> <description>blogger // writer // student</description> <lastBuildDate>Sat, 04 Feb 2012 08:44:11 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>Il punto della settimana #51</title><link>http://corsentino.net/2011/07/il-punto-della-settimana-51/</link> <comments>http://corsentino.net/2011/07/il-punto-della-settimana-51/#comments</comments> <pubDate>Sun, 03 Jul 2011 08:46:34 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Il punto della settimana]]></category> <category><![CDATA[blogging]]></category> <category><![CDATA[css]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[links]]></category> <category><![CDATA[php]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[seo]]></category> <category><![CDATA[xss]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=1571</guid> <description><![CDATA[Fra un po&#8217; si avvicina l&#8217;estate e Internet sarà solo un miraggio. E quindi ci sarà bisogno di studiare, ancora una volta, le migliori offerte per il mobile, argomento di un prossimo articolo. Su questo blog: 5 Rich Javascript Framework 5 Best Web Code Editor Per HTML.it: XSS e PHP: teoria e pratica SEOmoz svela...]]></description> <content:encoded><![CDATA[<p>Fra un po&#8217; si avvicina l&#8217;estate e Internet sarà solo un miraggio. E quindi ci sarà bisogno di studiare, ancora una volta, le <a
href="http://corsentino.net/2009/11/mobile-internet-tariffe-ed-opportunita/">migliori offerte per il mobile</a>, argomento di un prossimo articolo.</p><p>Su questo blog:</p><ol><li><a
href="http://corsentino.net/2011/06/5-rich-javascript-framework/">5 Rich Javascript Framework</a></li><li><a
href="http://corsentino.net/2011/06/5-best-web-code-editor/">5 Best Web Code Editor</a></li></ol><p>Per <a
href="http://blog.html.it/author/fracors/" target="_blank">HTML.it</a>:</p><ol><li><a
href="http://blog.html.it/20/06/2011/xss-e-php-teoria-e-pratica/" target="_blank">XSS e PHP: teoria e pratica</a></li><li><a
href="http://blog.html.it/22/06/2011/seomoz-svela-i-fattori-di-posizionamento-nel-2011/" target="_blank">SEOmoz svela i fattori di posizionamento nel 2011</a></li><li><a
href="http://blog.html.it/24/06/2011/debugging-avanzato-consigli-per-luso/" target="_blank">Debugging avanzato: consigli per l’uso</a></li><li><a
href="http://blog.html.it/01/07/2011/sviluppo-web-framework-o-micro-framework/" target="_blank">Sviluppo Web: framework o micro framework?</a></li></ol><p>Buona domenica a tutti i lettori!</p><h3>Blogging</h3><ol><li><a
href="http://www.dailyblogtips.com/when-it%E2%80%99s-time-to-kill-your-blog/" target="_blank">When it’s Time to Kill Your Blog?</a></li><li><a
href="http://sixrevisions.com/web-development/how-being-a-coder-can-make-you-a-better-blogger/" target="_blank">How Being a Coder Can Make You a Better Blogger</a></li></ol><h3>Freelancing</h3><ol><li><a
href="http://www.fucinaweb.com/fw/lagile-non-e-affatto-semplice/" target="_blank">L’agile non è affatto semplice</a></li><li><a
href="http://outspokenmedia.com/online-marketing/increase-your-productivity-through-crowdsourcing/" target="_blank">Increase Your Productivity through Crowdsourcing</a></li></ol><h3>Tools</h3><ol><li><a
href="http://csswizardry.com/inuitcss/" target="_blank">InuitCSS</a></li></ol> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2011/07/il-punto-della-settimana-51/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>5 Rich Javascript Framework</title><link>http://corsentino.net/2011/06/5-rich-javascript-framework/</link> <comments>http://corsentino.net/2011/06/5-rich-javascript-framework/#comments</comments> <pubDate>Mon, 20 Jun 2011 06:30:01 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Resources]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[javascript]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=1560</guid> <description><![CDATA[It is high the number of javascript framework available to developers. For example jQuery or YUI Library or Mootools and so on. But, these are very useful to create simple web effect and basic manipulation or animation. To make very rich web interface I suggest to use one of these five great frameworks. ExtJS Ext...]]></description> <content:encoded><![CDATA[<p>It is high the number of javascript framework available to developers. For example jQuery or YUI Library or Mootools and so on. But, these are very useful to create simple web effect and basic manipulation or animation. To make very rich web interface I suggest to use one of these five great frameworks.</p><h3><a
href="http://www.sencha.com/products/">ExtJS</a></h3><p><a
href="http://corsentino.net/wp-content/uploads/extjs.png"><img
class="aligncenter size-full wp-image-1561" title="extjs" src="http://corsentino.net/wp-content/uploads/extjs.png" alt="" width="500" height="350" /></a></p><p>Ext JS 4 is a major step forward for web frameworks. Building on Ext JS 3.3, our latest release adds over 350 new APIs, 50 new classes, and 65% more documentation. Ext JS 4 also brings an entirely new data package that enables developers to use a model-view-controller architecture when building their app. The new MVC enables apps to leverage features like Infinite Scrolling a Grid to build an entirely new level of interactivity in to web apps.</p><h3><a
href="http://cappuccino.org/">Cappuccino</a></h3><p><a
href="http://corsentino.net/wp-content/uploads/cappuccino.png"><img
class="aligncenter size-full wp-image-1562" title="cappuccino" src="http://corsentino.net/wp-content/uploads/cappuccino.png" alt="" width="500" height="273" /></a></p><p>Cappuccino is an open source application framework for developing applications that look and feel like the desktop software users are familiar with.</p><p>Cappuccino is built on top of standard web technologies like JavaScript, and it implements most of the familiar APIs from GNUstep and Apple&#8217;s Cocoa frameworks. When you program in Cappuccino, you don&#8217;t need to concern yourself with the complexities of traditional web technologies like HTML, CSS, or even the DOM. The unpleasantries of building complex cross browser applications are abstracted away for you.</p><p>Cappuccino was implemented using a new programming language called Objective-J, which is modelled after Objective-C and built entirely on top of JavaScript. Programs written in Objective-J are interpreted in the client, so no compilation or plugins are required. Objective-J is released alongside Cappuccino in this project and under the LGPL.</p><h3><a
href="http://qooxdoo.org/">Qooxdoo</a></h3><p><a
href="http://corsentino.net/wp-content/uploads/qooxdoo.jpeg"><img
class="aligncenter size-full wp-image-1563" title="qooxdoo" src="http://corsentino.net/wp-content/uploads/qooxdoo.jpeg" alt="" width="500" height="251" /></a></p><p>qooxdoo is a universal JavaScript framework that enables you to create applications for a wide range of platforms. With its object-oriented programming model you build rich, interactive applications (RIAs),    native-like apps for mobile devices, traditional web applications or even applications to run outside the browser.</p><p>You leverage its integrated tool chain to develop and deploy applications of any scale, while taking advantage of a comprehensive feature set and a state-of-the-art GUI toolkit. qooxdoo is open source under liberal licenses, led by the world&#8217;s largest web host 1&amp;1, with a vibrant community.</p><h3><a
href="http://wijmo.com/">Wijmo</a></h3><p><a
href="http://corsentino.net/wp-content/uploads/wijmo.png"><img
class="aligncenter size-full wp-image-1564" title="wijmo" src="http://corsentino.net/wp-content/uploads/wijmo.png" alt="" width="500" height="316" /></a></p><p>Wijmo is a complete kit of over 30 UI widgets with everything from interactive menus to rich charts. If you know jQuery, you know Wijmo. Complete with documentation and professional support, every widget is hand-crafted and includes premium themes.</p><h3><a
href="http://dojotoolkit.org/">Dojo</a></h3><p><a
href="http://corsentino.net/wp-content/uploads/dojo.png"><img
class="aligncenter size-full wp-image-1565" title="dojo" src="http://corsentino.net/wp-content/uploads/dojo.png" alt="" width="500" height="288" /></a></p><p>Dojo saves you time, delivers powerful performance, and scales with your development process. It’s the toolkit experienced developers turn to for building superior desktop and mobile web experiences.</p> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2011/06/5-rich-javascript-framework/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>WordPress: i migliori framework</title><link>http://corsentino.net/2011/05/wordpress-i-migliori-framework/</link> <comments>http://corsentino.net/2011/05/wordpress-i-migliori-framework/#comments</comments> <pubDate>Mon, 16 May 2011 13:22:53 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Sideblog]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[genesis]]></category> <category><![CDATA[hybrid]]></category> <category><![CDATA[thematic]]></category> <category><![CDATA[thesis]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[xtreme]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=1490</guid> <description><![CDATA[Stamattina ho pubblicato per il blog di HTML.it un interessante articolo. Si tratta di una lista ragionata dei migliori framework per la piattaforma WordPress. Nell&#8217;ordine, dopo una breve introduzione all&#8217;argomento, ho proposto questi titoli: Genesis, Thesis, Thematic, Hybrid, Xtreme. Probabilmente i migliori sulla piazza sono i primi due, ma c&#8217;è l&#8217;inconveniente del costo della licenza....]]></description> <content:encoded><![CDATA[<p>Stamattina ho pubblicato per il <a
href="http://blog.html.it/16/05/2011/i-migliori-framework-per-temi-wordpress/" target="_blank">blog di HTML.it un interessante articolo</a>. Si tratta di una lista ragionata dei migliori framework per la piattaforma WordPress. Nell&#8217;ordine, dopo una breve introduzione all&#8217;argomento, ho proposto questi titoli: <a
href="http://www.studiopress.com/themes/genesis" target="_blank">Genesis</a>, <a
href="http://diythemes.com/thesis/" target="_blank">Thesis</a>, <a
href="http://themeshaper.com/" target="_blank">Thematic</a>, <a
href="http://themehybrid.com/" target="_blank">Hybrid</a>, <a
href="http://xtreme-theme.com/2010/12/release-xtreme-one-wordpress-framework/" target="_blank">Xtreme</a>.</p><p>Probabilmente i migliori sulla piazza sono i primi due, ma c&#8217;è l&#8217;inconveniente del costo della licenza. Viceversa, e basta fare una ricerca su Google, potete trovare innumerevoli framework gratuiti, magari buoni per studiarne il codice e l&#8217;architettura, spunto per costruirne uno di tasca propria. Buona lettura.</p><p><span
style="font-size: x-small; color: #808080;">Approfondimento: I<a
href="http://blog.html.it/16/05/2011/i-migliori-framework-per-temi-wordpress/" target="_blank"> migliori framework per temi WordPress</a></span></p> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2011/05/wordpress-i-migliori-framework/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Il punto della settimana #42</title><link>http://corsentino.net/2011/02/il-punto-della-settimana-42/</link> <comments>http://corsentino.net/2011/02/il-punto-della-settimana-42/#comments</comments> <pubDate>Sun, 20 Feb 2011 07:30:00 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Il punto della settimana]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[html5]]></category> <category><![CDATA[jquery]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=1348</guid> <description><![CDATA[Sempre meno tempo per la cura dei propri interessi. C&#8217;è da sudare e sudo difatti. In questo blog una piccola review di TuoGuru, con una piccola intervista al suo creatore. Ho poi postato su un esperimento in jQuery per ricreare sul web una macchina da scrivere e su LimeJS, un framework HTML5 per lo sviluppo...]]></description> <content:encoded><![CDATA[<p>Sempre meno tempo per la cura dei propri interessi. C&#8217;è da sudare e sudo difatti.</p><p>In questo blog una <a
href="http://corsentino.net/2011/02/julius-ci-spiega-cosa-e-tuoguru/">piccola review di TuoGuru</a>, con una p<a
href="http://corsentino.net/2011/02/julius-ci-spiega-cosa-e-tuoguru/">iccola intervista al suo creatore</a>. Ho poi postato su un esperimento in <a
href="http://corsentino.net/tag/jquery/">jQuery</a> per <a
href="http://blog.html.it/16/02/2011/una-macchina-da-scrivere-con-jquery/" target="_blank">ricreare sul web una macchina da scrivere</a> e su <a
href="http://www.limejs.com/" target="_blank">LimeJS</a>, un f<a
href="http://blog.html.it/18/02/2011/creare-giochi-in-html5-con-il-framework-limejs/" target="_blank">ramework HTML5 per lo sviluppo di piccoli giochi</a>.</p><p>Buon fine settimana e buona lettura.</p><h3>Blogging</h3><ol><li><span
style="font-size: medium;"><span
style="line-height: 27px;"><a
href="http://www.dailyblogtips.com/the-10-commandments-to-successful-blogging/" target="_blank">The 10 Commandments to Successful Blogging</a></span></span></li></ol><h3>Web Design &amp; Development</h3><ol><li><span
style="font-size: medium;"><span
style="line-height: 27px;"><a
href="http://www.bestfreewebresources.com/2011/02/30-impressive-examples-of-blog-header-designs.html" target="_blank">30+ Impressive Examples Of Blog Header Designs</a></span></span></li><li><a
href="http://visualwebsiteoptimizer.com/split-testing-blog/landing-page-best-practices/" target="_blank">Landing Page Best Practices: the definitive guide (with infographics)</a></li></ol><h3>Freelancing</h3><ol><li><a
href="http://spyrestudios.com/10-reasons-why-you-need-a-mobile-office/" target="_blank">10 Reasons Why You Need a Mobile Office</a></li><li><a
href="http://www.webdesignerdepot.com/2009/02/14-applications-for-project-management-and-collaboration/" target="_blank">14 Applications for Project Management and Collaboration</a></li></ol><h3>News</h3><ol><li><a
href="http://www.readwriteweb.com/hack/2011/02/nosql-benchmark-open-sourced.php?utm_source=feedburner" target="_blank">NoSQL Benchmark Open-Sourced</a></li><li><a
href="http://linux.html.it/articoli/leggi/3625/debian-6-le-novita-in-10-immagini/" target="_blank">Debian 6: le novità in 10 immagini</a></li><li><a
href="http://www.ilpost.it/2011/02/17/costo-pubblicare-kindle/" target="_blank">Quanto costa pubblicare per Kindle</a></li></ol> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2011/02/il-punto-della-settimana-42/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Il punto della settimana #41</title><link>http://corsentino.net/2011/02/il-punto-della-settimana-41/</link> <comments>http://corsentino.net/2011/02/il-punto-della-settimana-41/#comments</comments> <pubDate>Sun, 13 Feb 2011 14:30:21 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Il punto della settimana]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[html5]]></category> <category><![CDATA[news]]></category> <category><![CDATA[php]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=1338</guid> <description><![CDATA[Settimana in cui internet e computer hanno avuto la peggio rispetto a libri, appunti e vita offline. E ogni tanto servono come il pane sette giorni così vissuti! Ho pubblicato un mini-recensione di M Project (un framework per applicazioni mobile) e di Yii (un framework PHP veloce e potente). Buon fine settimana e buona lettura....]]></description> <content:encoded><![CDATA[<p>Settimana in cui internet e computer hanno avuto la peggio rispetto a libri, appunti e vita offline. E ogni tanto servono come il pane sette giorni così vissuti!</p><p>Ho pubblicato un mini-recensione di <a
href="http://the-m-project.net/" target="_blank">M Project</a> (un <a
href="http://blog.html.it/08/02/2011/m-project-framework-html5-per-applicazioni-mobile/" target="_blank">framework per applicazioni mobile</a>) e di <a
href="http://www.yiiframework.com/" target="_blank">Yii</a> (un f<a
href="http://blog.html.it/09/02/2011/applicazioni-php-performanti-con-yii-framework/" target="_blank">ramework PHP veloce e potent</a>e).</p><p>Buon fine settimana e buona lettura.</p><h3>Web Design &amp; Development</h3><ol><li><a
href="http://www.alistapart.com/articles/designing-web-registration-forms-for-kids/" target="_blank">Designing Web Registration Processes for Kids</a></li><li><a
href="http://webdesigneraid.com/top-35-google-chrome-extensions-and-web-apps-for-bloggers-web-designers-and-developers/" target="_blank">Top 35 Google Chrome Extensions and Web Apps For Bloggers, Web Designers and Developers</a></li></ol><h3>Blogging</h3><ol><li><a
href="http://www.famousbloggers.net/why-you-should-socially-promote-articles-you-comment-on.html" target="_blank">Why You Should Socially Promote Articles You Comment On</a></li><li><a
href="http://www.problogger.net/archives/2011/02/07/how-your-about-page-can-make-or-break-your-blog/" target="_blank">How Your About Page Can Make or Break Your Blog</a></li><li><a
href="http://www.problogger.net/archives/2011/02/11/don%E2%80%99t-go-it-alone-relationship-building-for-bloggers/" target="_blank">Don’t Go It Alone: Relationship-building for Bloggers</a></li></ol><h3>Freelancing</h3><ol><li><a
href="http://freelanceswitch.com/productivity/useful-resources-and-tips-for-managing-your-virtual-staff/" target="_blank">Useful Resources and Tips for Managing Your Virtual Staff</a></li></ol><h3>Tools</h3><ol><li><a
href="http://www.limejs.com/" target="_blank">LimeJS</a> (HTML5 game framework)</li><li><a
href="http://nanoc.stoneship.org/" target="_blank">nanoc</a> (Ruby web publishing system)</li><li><a
href="http://isotope.metafizzy.co/docs/introduction.html" target="_blank">Isotope</a> (An exquisite jQuery plugin for magical layouts)</li></ol> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2011/02/il-punto-della-settimana-41/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Grid layout framework: perchè e quale?</title><link>http://corsentino.net/2010/12/grid-layout-framework-perche-e-quale/</link> <comments>http://corsentino.net/2010/12/grid-layout-framework-perche-e-quale/#comments</comments> <pubDate>Wed, 08 Dec 2010 06:30:06 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Sideblog]]></category> <category><![CDATA[css]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[layout]]></category> <category><![CDATA[webdesign]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=749</guid> <description><![CDATA[Esistono diversi framework che permettono di lavorare con le griglie. Ognuno ha proprie caratteristiche e supporta diverse funzionalità. Variano per le dimensioni proposte e il numero di colonne permesse. Costruire layout con una griglia permette di ottenere un ordine più strutturato e un posizionamento degli elementi preciso. Da Blueprint CSS a 960, passando per 1kb,...]]></description> <content:encoded><![CDATA[<p>Esistono diversi framework che permettono di lavorare con le griglie. Ognuno ha proprie caratteristiche e supporta diverse funzionalità. Variano per le dimensioni proposte e il numero di colonne permesse. Costruire layout con una <a
title="Grid layout on Wikipedia" href="http://en.wikipedia.org/wiki/Grid_(page_layout)">griglia</a> permette di ottenere un ordine più strutturato e un posizionamento degli elementi preciso.</p><p>Da <a
title="Blueprint CSS" href="http://www.blueprintcss.org/">Blueprint CSS</a> a <a
title="960gs" href="http://960.gs/">960</a>, passando per <a
title="1kb Grid" href="http://www.1kbgrid.com/">1kb</a>, il designer ha a disposizione framework molto interessanti e largamente usati. Molti designer comunque preferiscono costruire griglie apposite in base al progetto da realizzare, e faccio riferimento a <a
title="An appropriate use of frameworks" href="http://stuffandnonsense.co.uk/blog/about/an_appropriate_use_for_css_frameworks/">Andy Clarke</a> per esempio.</p><p>Secondo altri il codice risultante, con l&#8217;utilizzo dei framework prima menzionati, risulta  complesso, spesso anche confusionario e significativamente pesante rispetto ad una soluzione fatta ad hoc, oltre che semanticamente discutibile.</p><p>Quindi la domanda è: usare o non usare uno dei framework sopra menzionati? E se sì, quale e perchè?</p> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2010/12/grid-layout-framework-perche-e-quale/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>CakePHP: Less Configuration More Convention</title><link>http://corsentino.net/2010/12/cakephp-less-configuration-more-convention/</link> <comments>http://corsentino.net/2010/12/cakephp-less-configuration-more-convention/#comments</comments> <pubDate>Mon, 06 Dec 2010 14:36:52 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Sideblog]]></category> <category><![CDATA[cakephp]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[php]]></category> <category><![CDATA[symfony]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=1112</guid> <description><![CDATA[Dopo un paio di giorni di studio posso con certezza affermare che il meccanismo &#8220;Less Configuration More Convention&#8221; mi piace. E mi piace parecchio. Preferisco tenere sotto controllo il codice PHP piuttosto che file yaml o ini o altro ancora. Ma cosa significa in CakePHP? A una prima rapidissima lettura non avevo ben capito tutto...]]></description> <content:encoded><![CDATA[<p>Dopo un paio di giorni di studio posso con certezza affermare che il meccanismo &#8220;<em>Less Configuration More Convention</em>&#8221; mi piace. E mi piace parecchio. Preferisco tenere sotto controllo il codice PHP piuttosto che file <em>yaml</em> o <em>ini</em> o altro ancora. Ma cosa significa in <a
href="http://cakephp.org/" target="_blank">CakePHP</a>?</p><p>A una prima rapidissima lettura non avevo ben capito tutto quel parlare di<strong> convenzione sui nomi da utilizzare per file e classi</strong>. Ma è bastato un attimo per capire che proprio in quella lista di convenzioni è nascosta tutta la potenza di <a
href="http://corsentino.net/tag/cakephp/">CakePHP</a>.</p><p>A parte due file che racchiudono la configurazione globale dell&#8217;applicazione, <a
href="http://corsentino.net/tag/cakephp/">CakePHP</a> delega tutto al programmatore cui chiede soltanto di rispettare poche, semplici (e per quanto mi riguarda ottime) regole sui nomi da utilizzare. Tipo i controllers e i modelli riferiti al database, senza la necessità di scrivere un file di configurazione a parte. Tipo i nomi delle viste e dei template da usare. Il tutto è un&#8217;armonia generale che per il programmatore si trasforma in due vantaggi:</p><ol><li>il fatto di dover rispettare le regole sui nomi ti obbliga, a te programmatore, a un <strong>ordine</strong> che è poi decisivo nel contesto globale del codice; più scrivi più ti entra in testa la struttura del programma e ho avuto l&#8217;impressione di scrivere anche più velocemente rispetto a <a
href="http://corsentino.net/tag/symfony/">Symfony</a>;</li><li>non c&#8217;è il problema di dover mettere mano alla configurazione o di dover fare il <em>sync</em> fra tali file di configurazione e il database; tabelle e classi vivono senza file di terze parti da editare per far combaciare nomi e funzioni e classi. Questo, per un discorso di <strong>manuntenibilità</strong> nel tempo, credo si possa rivelare estremamente positivo.</li></ol> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2010/12/cakephp-less-configuration-more-convention/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Un framework PHP dal gusto dolce: CakePHP</title><link>http://corsentino.net/2010/12/un-framework-php-dal-gusto-dolce-cakephp/</link> <comments>http://corsentino.net/2010/12/un-framework-php-dal-gusto-dolce-cakephp/#comments</comments> <pubDate>Fri, 03 Dec 2010 06:30:10 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Resources]]></category> <category><![CDATA[cakephp]]></category> <category><![CDATA[django]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[php]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[ruby]]></category> <category><![CDATA[ruby-on-rails]]></category> <category><![CDATA[symfony]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=1100</guid> <description><![CDATA[Per progetti di una certa complessità l&#8217;uso di Symfony può aiutare, e non poco, uno sviluppatore PHP. Ho studiato Symfony circa un anno fa, ma già da un po&#8217; di tempo soffrivo l&#8217;eccessivo uso della console e il fastidio di dover mettere mano più a file yaml che a codice PHP. Mi sono guardato attorno,...]]></description> <content:encoded><![CDATA[<p>Per progetti di una certa complessità l&#8217;uso di <a
href="http://www.symfony-project.org/" target="_blank">Symfony</a> può aiutare, e non poco, uno sviluppatore PHP. Ho studiato Symfony circa un anno fa, ma già da un po&#8217; di tempo soffrivo l&#8217;eccessivo uso della console e il fastidio di dover mettere mano più a file <a
href="http://www.yaml.org/" target="_blank">yaml</a> che a codice <a
href="http://corsentino.net/tag/php/">PHP</a>. Mi sono guardato attorno, mi sono messo a smanettare su progetti personali, sono passato a <a
href="http://www.djangoproject.com/" target="_blank">Django</a> e infine ho ceduto al consiglio di un amico <a
href="http://ruby-lang.org/" target="_blank">rubysta</a> che mi consigliava <a
href="http://cakephp.org/" target="_blank">CakePHP</a>.</p><p>La <em>learning curve</em> di questo simpatico <a
href="http://corsentino.net/tag/framework/">framework</a> è eccezionale. In un paio di giorni si riesce a padroneggiarlo in modo da poter mettere su una piccola applicazione dotata di tutti i meccanismi necessari per essere rilasciato in ambiente di produzione. <strong>Le performance mi sembrano buone</strong>, ma non ho avuto modo di testarle a fondo. A occhio comunque dovrebbe risultare più leggero di Symfony e più scattante. Assomiglia a <a
href="http://corsentino.net/tag/django/">Django</a> e, fidandomi del rubysta, linguaggio che non conosco, assomiglia parecchio a <a
href="http://rubyonrails.org/" target="_blank">Rails</a>.</p><p>In questi giorni ho avuto modo di apprezzare che <strong>i tempi di sviluppo sono più corti rispetto al corrispettivo in Symfony</strong>. E, parere del tutto personale, mi diverto di più a smanettare su codice PHP piuttosto che sui file <em>yaml</em> che accompagnano lo sviluppo in Symfony.</p><p>Ho letto diversi pezzi che presentano <a
href="http://cakephp.org/" target="_blank">CakePHP</a> in modo sicuramente superficiale, descrivendolo semplicisticamente. Il che non corrisponde al vero. Almeno nell&#8217;ultima release stabile che ho per le mani posso affermare di non sentire la mancanza di certi meccanismi in Symfony. Certo il numero di plugin di cui dispone quest&#8217;ultimo è incommensurabile rispetto a <a
href="http://cakephp.org/" target="_blank">CakePHP</a>, ma penso si riesca benissimo a supplire con una buona progettazione del codice e magari la scrittura di librerie proprie.</p><p>A primo impatto ho nelle directory solo e soltanto i file che mi servono davvero e riesco ad avere un quadro d&#8217;insieme che in Symfony non era così chiaro.</p><p>Devo ancora approfondire il capitolo sicurezza, ma ho letto buone cose su validazione e <em>sanitization</em> dei dati, su <a
href="http://it.wikipedia.org/wiki/Lista_di_controllo_degli_accessi" target="_blank">ACL</a> e sessioni. <strong>I primi giudizi non possono che essere positivi</strong>, dunque. Ho intenzione di provarlo fra qualche settimana su un mini portale che non richiede uno sviluppo particolarmente complesso. Soprattutto voglio capire se scala bene su una <a
href="http://corsentino.net/tag/vps/">VPS</a> e quanto traffico è in grado di supportare senza risentirne in termini di banda e reattività.</p><p>Non ho ancora preso contatto con la comunità italiana, per cui sono curioso di conoscere le vostre opinioni su questo framework. Le mie impressioni iniziali sono esatte?</p> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2010/12/un-framework-php-dal-gusto-dolce-cakephp/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Jo, un framework HTML5 orientato al mobile</title><link>http://corsentino.net/2010/10/jo-un-framework-html5-orientato-al-mobile/</link> <comments>http://corsentino.net/2010/10/jo-un-framework-html5-orientato-al-mobile/#comments</comments> <pubDate>Tue, 19 Oct 2010 05:30:26 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Resources]]></category> <category><![CDATA[design]]></category> <category><![CDATA[development]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[html5]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[mobile]]></category> <category><![CDATA[web-application]]></category> <category><![CDATA[web-service]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=953</guid> <description><![CDATA[E&#8217; possibile che un framework possa pesare circa 10 KB, essere compatibile con svariate piattaforme mobile quali Android e iOS e Symbian, supportare gran parte dei browser tipo Safari e Chrome, ed essere orientato verso il futuro essendo basato su HTML5? La risposta è sì e sta in due lettere: Jo. Jo è un framework...]]></description> <content:encoded><![CDATA[<p>E&#8217; possibile che un <a
href="http://corsentino.net/tag/framework/">framework</a> possa pesare circa 10 KB, essere compatibile con svariate piattaforme mobile quali Android e iOS e Symbian, supportare gran parte dei browser tipo Safari e Chrome, ed essere orientato verso il futuro essendo basato su HTML5? La risposta è sì e sta in due lettere: <a
href="http://www.joapp.com/" target="_blank">Jo</a>.</p><p><a
href="http://www.joapp.com/" target="_blank">Jo</a> è un framework con le caratteristiche sopra menzionate. Le premesse sembrano davvero buone e il corredo di documentazione pubblicato sul sito ufficiale suggerisce di testare questo strumento.</p><p>In effetti, in simbiosi con la potenza di HTML5, <a
href="http://www.joapp.com/" target="_blank">Jo</a> permette tutta una serie di operazioni in modo relativamente semplice. Un paio di classi si occupano della gestione dei dati, supportando appieno <a
href="http://www.sqlite.org/" target="_blank">SQLite</a>, e c&#8217;è spazio pure per la gestione degli eventi. Il resto è una utile gerarchia di classi per costruire interfacce Web e operare con i dati. Uno sforzo apprezzabile.</p> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2010/10/jo-un-framework-html5-orientato-al-mobile/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Le 5 regole di un buon programmatore</title><link>http://corsentino.net/2010/07/le-5-regole-di-un-buon-programmatore/</link> <comments>http://corsentino.net/2010/07/le-5-regole-di-un-buon-programmatore/#comments</comments> <pubDate>Thu, 15 Jul 2010 15:08:53 +0000</pubDate> <dc:creator>Kiko</dc:creator> <category><![CDATA[Tutorial]]></category> <category><![CDATA[best-practices]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[software]]></category> <guid
isPermaLink="false">http://corsentino.net/?p=920</guid> <description><![CDATA[Mai come in questo periodo mi sono trovato a scrivere codice e leggere codice (il mio e quello degli altri). Ho dovuto rimettere mano a vecchio codice prodotto, a piccole librerie create in passato (che a distanza di anni non valuto certo con voti altissimi). Mi sono ritrovato a confrontare un vecchio lavoro con quelli...]]></description> <content:encoded><![CDATA[<p>Mai come in questo periodo mi sono trovato a scrivere codice e leggere codice (il mio e quello degli altri). Ho dovuto rimettere mano a vecchio codice prodotto, a piccole librerie create in passato (che a distanza di anni non valuto certo con voti altissimi). Mi sono ritrovato a confrontare un vecchio lavoro con quelli attuali, notando incredibili differenze in fatto di qualità del codice, prima ancora delle qualità delle conosocenze. A quel punto è stato facile derivare un paio di fattori chiave che potrebbero distinguere un buon programmatore da un ottimo programmatore, in attesa di capire la categoria nella quale sistemarmi. Sperando di poter regalare al lettore qualche utile consiglio.</p><h2>1. Documentare il codice</h2><p><a
href="http://corsentino.net/wp-content/uploads/comment.jpg"><img
class="alignleft size-medium wp-image-925" title="Documentare il codice" src="http://corsentino.net/wp-content/uploads/comment-300x75.jpg" alt="" width="300" height="75" /></a>Scrivere chiari e precisi commenti è impagabile. Permettono di <strong>leggere più facilmente il codice</strong> senza impazzire dietro ad algoritmi o funzioni o parametri conditi di mistero e di cui se ne disconosce la funzione, il significato e il motivo della loro esistenza. Gli stessi commenti devono essere scritti con coscienza, senza badare troppo alla forma magari, ma senza rinunciare a una certa formalità e un certo stile. Bisogna cercare di essere sempre chiari nelle spiegazioni e di non dare nulla per scontato. Prolissi e completi quando è rischiesto dal contesto, concisi quando è inutile divagare o spiegare cose ovvie e facilmente deducibili. Quando a distanza di tempo ci toccherà rimettere mano a un codice che abbiamo scritto di nostro pugno e di cui non ricordiamo molto, una veloce lettura dei commenti ci permette in pochi secondi di ritornare nella dimensione di quel progetto. Una buona documentazione del codice permette un alto livello di <em><a
href="http://en.wikipedia.org/wiki/Maintainability" target="_blank">maintainability</a> </em>dello stesso. Nel caso, poi, ci fosse la necessità di collaborare con altri sviluppatori, il non dover chiedere costantemente chiarimenti su una funzione o un parametro permette di velocizzare il lavoro e migliorarlo sotto tutti i punti di vista, in quanto troveremo tutte le risposte dentro i commenti.</p><p>E&#8217; possibile, in ultimo, estrarre dal codice sorgente i commenti formattati in un certo modo e produrre così un manuale per gli sviluppatori o una <em>reference</em>. Tutto in modo automatico ed evitando un doppio e tedioso lavoro. Uno strumento molto apprezzato, in tale contesto, è <a
href="http://www.phpdoc.org/" target="_blank">phpDoc</a> (facile immagine per quale linguaggio).</p><p>Ultima raccomandazione, che a molti potrà suonare <em>strana</em> o esagerata. Se pensate che il vostro codice possa essere degno del panorama internazionale, cioè di un pubblico non solo italiano, allora è bene cominciare a prendere confidenza con l&#8217;inglese-scritto e commentare il codice in questa lingua.</p><h2>2. Scrivere buon codice</h2><p>E&#8217; difficile in poche righe capire cosa significa &#8220;scrivere buon codice&#8221;, ma ci provo. Fra l&#8217;altro è una delle prime cose che uno studente si sente dire da un buon professore. Il pieno significato di un simile avvertimento dal sapore di consiglio lo si coglie solo quando si lavora seriamente a qualche progetto. O quando ci si confronterà con altri sviluppatori. Scrivere buon codice significa <strong>scrivere i nomi delle funzioni scegliendo i migliori termini</strong>, i più espressivi in assoluto. Conviene eliminare inutili abbreviazioni, solo per risparmiare qualche carattere e guadagnare qualche decimo di secondo in più sulla digitazione. Significa scrivere un codice la cui sola lettura è bastevole per capirne l&#8217;implementazione. Generalmente una funzione chilometrica è sintomo di scarsa progettazione del codice, il che non vuol dire che poi le cose non funzionano. La migliore palestra, in tal senso, è la lettura di codice dei migliori programmatori che potete trovare in rete e l&#8217;analisi di progetti dal codice aperto.</p><h2>3. Framework e librerie</h2><p><a
href="http://corsentino.net/wp-content/uploads/framework.jpg"><img
class="alignright size-medium wp-image-926" title="Quale framework?" src="http://corsentino.net/wp-content/uploads/framework-300x199.jpg" alt="" width="300" height="199" /></a><strong>Spesso ci si trova a riscrivere del codice che in realtà esiste già</strong> e probabilmente risulta più completo del nostro, oltre che più efficace. Pertanto prima di buttarsi a capofitto nella scrittura di nuove classi occorre capire cosa offre Internet. Esistono diversi utilissimi siti dove poter trovare del buon codice (citiamo su tutti <a
href="http://sourceforge.net/" target="_blank">Sourceforge</a>). Ed esiste Google per cercare eventuali librerie già pronte per essere usate nei nostri progetti. Se nulla ci soddisfa allora non resta che scrivere quanto abbiamo di bisogno. Se abbiamo intrapreso quest&#8217;ultima strada è buona cosa pensare non al progetto in sé, quanto piuttosto ai problemi generali che intendiamo risolvere. E&#8217; questo infatti il caso migliore per pensare a una libreria riutilizzabile pure in altri progetti. Se poi siamo soliti lavorare su applicazioni che in qualche modo hanno molte somiglianze fra di loro, beh allora conviene pensare a qualche <a
href="http://corsentino.net/tag/framework/">framework</a>. Generalmente una grande società di software ne progetta uno e provvede a usarlo nei vari lavori. Uno sviluppatore indipendente può lanciare a se stesso la stuzzicante sfida di costruirne uno nuovo, o studiare per bene un framework esistente.</p><p>In tal senso <strong>un buon framework</strong> (<a
href="http://rubyonrails.org/" target="_blank">Rails</a> per i programmatori Ruby, <a
href="http://framework.zend.com/" target="_blank">Zend</a> o <a
href="http://www.symfony-project.org/" target="_blank">Symfony</a> per i programmatori <a
href="http://corsentino.net/tag/php/">PHP</a>, <a
href="http://www.djangoproject.com/" target="_blank">Django</a> per gli appassionati di <a
href="http://corsentino.net/tag/python/">Python</a>) <strong>potrebbe essere una ottima base per sviluppare una grande applicazione</strong>. Ma occorre valutare per bene ogni fattore. Spesso un framework rischia di appesantire lo sviluppo e se non riusciamo ad ottimizzarne la configurazione rischiamo pure di ottenere un prodotto dalle scarse performance. E&#8217; opportuno inoltre non focalizzarsi soltanto su un prodotto, ma studiarne più di uno per capire realmente benefici e svantaggi di ognuno di loro. A quel punto, e solo a quel punto, conviene sceglierne uno e provare a padroneggiarlo al meglio. In altre parole: non limitarsi a leggere qualche articolo su Internet (raramente ho scovato delle analisi pienamente oggettive sui software e sui framework), ma sperimentare le soluzioni. Quindi specializzarsi su un prodotto.</p><h2>4. Standard e best practices</h2><p>I design pattern vanno studiati, compresi e quindi usati. Spesso ci si accorge che bravi programmatori li disconoscono ed è un male. Pattern quali <a
href="http://it.wikipedia.org/wiki/Model-View-Controller" target="_blank">MVC</a> offrono una potenza incredibile. E numerosi altri pattern offrono una soluzione ottimale a ricorrenti problemi per quanto riguarda la programmazione (che è poi la definizione di <a
href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)" target="_blank">Design Pattern</a>).</p><p>Quando parliamo di <em>best practices</em> ci riferiamo a delle esperienze che altri hanno già maturato in qualche settore professionale e nelle quali hanno raggiunto ottimi risultati. Potete pensare a delle regole generali, più o meno formalizzate, o a degli esempi opportunamente descritti e commentati. Per quanto mi riguarda mi sono stati utilissimi i libri di ingegneria del software che ho letto e sui quali ho trovato diversi riferimenti a ulteriori libri e articoli. Potete recuperare su internet diverse interviste a eminenti sviluppatori che raccontano le loro esperienze e le loro idee.</p><h2>5. Pensare. Poi scrivere codice</h2><p><strong><a
href="http://corsentino.net/wp-content/uploads/thinking.jpg"><img
class="alignleft size-medium wp-image-927" title="Pensare pensare pensare" src="http://corsentino.net/wp-content/uploads/thinking-234x300.jpg" alt="" width="234" height="300" /></a>Lontano da una schermo e una tastiera si riesce meglio a programmare</strong>. Sembra un paradosso, invece è la pura realtà. Provate a pensare alla vostra architettura fuori da una finestra di Mac o di Windows o di Linux. Fogli di carta, penna, matita e idee. Non è tempo sprecato, anzi tutto il contrario. Uno schermo con icone e testo, una tastiera e un mouse possono risultare degli elementi destabilizzanti e di distrazione. Si è tentati di scrivere subito del codice funzionante, salvo poi scoprire che una funzione poteva essere scritta meglio, o un insieme di classi poteva essere progettato in modo più intelligente. A quel punto tornare indietro è complicato. <a
href="http://en.wikipedia.org/wiki/Code_refactoring" target="_blank">Rifattorizzare</a> equivale a partire da zero (e a un livello iniziale non si parla certo di <em>refactoring</em>) e, si realizzerà con estremo rammarico, di aver buttato via preziose ore di lavoro.</p><p><strong>Ponderare bene le scelte</strong>: tracciare diagrammi, appuntare note e idee, provare a scrivere un piano di sviluppo. Anche senza badare alla forma, una sorta di <a
href="http://www.kikoweb.org/blog/100/brainstorming-what-is-it" target="_blank">brainstorming</a> solitario. Fate una lista dei problemi da risolvere, delle possibili soluzioni cui avete pensato e, dopo una pausa lontano da tutti e tutto, rileggete con attenzione quanto avete scritto e cercate di capire se è l&#8217;ora di mettersi a scrivere codice o conviene dedicare ancora qualche minuto a questa meditazione pre-sviluppo.</p><p>Non esiste un libro delle soluzioni in informatica. Esiste però una quantità smisurata di <em>handle</em> di soluzioni. Queste <em>maniglie</em> altro non sono che il codice e gli applicativi che altri programmatori hanno già realizzato e rilasciato. <strong>Dare uno sguardo all&#8217;interno del codice scritto da terzi</strong> (e dovete ovviamente scegliere i migliori terzi, perché conviene imparare soltanto dai migliori) si rivelerà presto preziosa lettura e fonte di soluzioni. Il che non vuol dire che dovete copiare, ma certamente ispirarvi. O, più umilmente, imparare.</p> ]]></content:encoded> <wfw:commentRss>http://corsentino.net/2010/07/le-5-regole-di-un-buon-programmatore/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> </channel> </rss>
