flatlandia
Rantoli su sviluppo web (e non web) Open Source

git-submodule

Posted In: . By vad

Una delle particolarità che più apprezzo di git è l'implementazione dei submodule (che credo non esistano né in svn né in mercurial).

I submodule servono per importare un altro repository git all'interno del proprio. Sono utilissimi quando si utilizzano librerie che usano git o che hanno un mirror git. I submodule infatti sono visti come repository separati, quindi si può cambiare branch, tag o vedere la history del repository incluso indipendentemente dal nostro progetto.

Per creare un nuovo submodule è sufficiente dare:


git submodule add git://github.com/USER/REPO.git mysubmodule
git submodule init


Il primo comando non fa altro che aggiungere il submodule ai file di configurazione del repository locale principale, il secondo lo scarica. E' poi necessario fare un commit, come si può vedere con un git-status

Il repository importato sarà allineato a master, ma possiamo cambiare semplicemente così:

cd mysubmodule
git co v3.1.0
cd ..
git add mysubmodule
git commit


Ancora sporca invece la cancellazione di un submodule: si deve fare a mano cancellando i riferimenti al repository in .gitmodules e .git/config e poi forzando la cancellazione:

git rm --cached mysubmodule

 

Il 19 febbraio sono uscite (abbastanza silenziosamente a mio parere) le YUI 2.7.0.

Trovo molto interessante la stylesheet utility:

The YUI StyleSheet Utility, developed by YUI engineer Luke Smith, provides a means to optimize the application of a style or changes to existing styles across multiple elements without incurring the cost of a page reflow for each element. Using the benefits of dynamic CSS, the StyleSheet Utility allows the creation of new stylesheets and changes to existing stylesheets that can be applied to multiple elements without the need to loop through the elements in the DOM, thus maintaining an optimal experience for the end user of the page.
Nella pagina di presentazione ci sono, come ormai Yahoo ha ben abituato, tonnellate di ottima documentazione. Alcuni esempi di quel che ci si può fare:
//create a new style sheet
var css = ".moduleX .alert { background: #fcc; font-weight: bold; } " + 
    ".moduleX .warn  { background: #eec; } " + 
    ".hide_messages .moduleX .alert, " + 
    ".hide_messages .moduleX .warn { display: none; }"; 

sheet = new YAHOO.util.StyleSheet(css);
//...
sheet.disable();
//...
sheet.enable();

//set some properties
YAHOO.util.StyleSheet('MyApp').set( 
    "q.uoted select.or[str=ing]", { 
        fontSize   : "150%",         // note the camel casing 
        background : "#030 url(/images/bg_image.png) scroll repeat-y top left", 
        cssFloat   : "left", 
        opacity    : 0.5 
}); 
In particolare l'ultimo metodo (set) è di un'utilità mostruosa, con extjs ho dovuto scrivere del codice tremendo e quindi difficilmente mantenibile per fare qualcosa di simile cross browser.

Allo stesso modo della set viene fornita anche una unset() per togliere un attributo al selettore CSS. Comodissimo anche il chaining:
YAHOO.util.StyleSheet(styleNode).
    disable().
    set('.foo', { backgroundColor: '#900', color: '#fff' }).
    set('.bar', { borderBottomColor: '#369' }).
    unset('.baz').
    enable();

 

Rilasciate Qt 4.5 LGPL

Posted In: , , , . By vad

Riporto da dot.kde.org:

Qt Software has made Qt 4.5 and the Qt Creator 1.0 IDE available for download. For the first time, Qt SDK is available, a convenient bundle of the two. Qt Software will be opening up their development process by making it easier for people to contribute patches and add-ons in the forthcoming weeks. Both Qt and Creator now come with the an LGPL licensing option along with the current GPL and commercial licenses.
Qt 4.5 brings many new features such as a new pluggable graphics system, ODF support and an updated WebKit component which features HTML 5, Netscape-Plugin (e.g. Flash) support and the SquirrelFish JavaScript engine. Find out more in the Qt release blog, the Qt Creator release blog and feel free to join the new #qt-labs IRC channel on Freenode.
Le nuove funzionalità sono veramente moltissime e pazzesche. Sicuramente SquirrelFish e QtSDK sono tra quelle di maggior interesse. Personalmente non vedo l'ora di usare il supporto ODF in lector. Ecco un video di QtCreator, parte di QtSDK:

 

CakePHP?

Posted In: , , . By vad

Il blogger di cakebaker negli ultimi 7 post non ha mai trattato esplicitamente CakePHP, ma solo usato come esempio o come "altro" framework rispetto a Rails.

Uno di questi post, un po' filosofico, dice infine:

... there is one point which is even more important than what I listed above: you must like the framework. It’s that simple. The best framework is worthless if you don’t like it. Or do you really want to spend much time with something you don’t like?
Cos'ha CakePHP che può piacere?

Comodità d'uso? Hey, questo è PHP, non è comodo per definizione! (vedi assenza di namespace, quante funzioni esistono che iniziano con "a"?, o mancanza di un comodo ambiente tipo shell in cui poter sperimentare senza dover ricaricare continuamente)

Flessibilità? Assolutamente no, django è un altro pianeta! La struttura fissa Model/View/Controller è semplice da usare, ma un po' troppo statica in cake.

Velocità di scrittura? Per scrivere cose semplici sì, ma poi la carenza di esempi e, appunto, la mancanza di flessibilità del framework diventano frustranti.

Performance eccezzionali? Basta fare piccoli benchmark, o osservare le moltissime query che cake fa (alzando il livello di debug) per capire che non c'è storia.

Sviluppo rapido e continue nuove funzionalità? Purtroppo no, il framework è abbastanza maturo ma non ha le "batterie incluse". Sarebbe molto bello veder emergere progetti come SASS, ma evidentemente la comunità non è abbastanza grande.

L'unico motivo che vedo per l'uso di Cake è PHP, e che quindi sia facilmente "hostabile". Ma questo non rende piacevole passarci sopra del tempo...

 

Designing Web Interfaces Book

Posted In: , , , , . By vad

Slide decisamente interessanti sul design di interfacce web: usabilità, accessibilità e velocità d'uso, tra gli argomenti trattati.Designing Web Interfaces Book - O'Reilly Webcast
View more presentations from Bill Scott. (tags: rich ajax)

 

Code completion in vim

Posted In: , . By vad

Tempo fa scrissi di un tentativo di passare ad Eclipse. E' stato davvero misero. Probabilmente per chi ha la sfortuna di programmare in Java è uno strumento indispensabile, ma sicuramente si può farne a meno se si sviluppa per il web in php/python/javascript.

Lato php/javascript Aptana (plugin per Eclipse per sviluppo web) si propone come la soluzione definitiva. Per me l'unica cosa definitiva è stato il suo felice l'abbandono. Il completamento in Extjs non funziona o funziona male, il componente PHP non apre file con estensione diversa di .php, come ad esempio di .ctp delle view di CakePHP. Dopo un po' a Marco (che lavora con me) non lasciava nemmeno più aprirli con l'editor di testo di Eclipse, ma doveva aprirli con editor esterni.

Sto così provando qualche funzionalità "avanzata" di vim. Ciò che più mi ha incuriosito sono stati:

  • finestre multiple (sottocomandi di Ctrl-w)
  • autocompletamento con Ctrl-x Ctrl-o (che ho rimappato come "\")
  • code folding basato sull'indentazione (con "za"), ovvero si possono "piegare" (automaticamente o manualmente) delle parti del codice, per avere ad esempio una miglior visione di insieme
  • per file configuration: si possono aggiungere dei commenti ad inizio o fine file, così da modificare le impostazioni di vim solo su quel file. Utilissimo ad esempio se si lavora dalla stessa macchina a più progetti, con gente diversa che usa convenzioni diverse per l'indentazione (ma non solo!)

From flatlandia

Devo ancora migliorare qualcosa nella scelta dei colori ;-), ma vim si sta rivelando estremamente flessibile e pratico.

La mia configurazione di vim (comprendente l'attivazione delle feature appena nominate) si trova su http://code.google.com/p/vadconf/ .

 

Save water - flush less

Posted In: , . By vad