Il quesito è: devo mettere in produzione un’applicazione e per motivi di (maniacale) pulizia voglio eliminare tutte le directory del software di controllo versione, tipo CVS o .svn.

Soluzione:
# find -iname CVS -exec rm -rf {} \;

p.s. vedi man find ;)

Tutti (noi programmatori web) ci siamo trovati almeno una volta (io un milione) a dover trattare contenuti codificati in un charset scomodo e allora succede che nella nostra bella schermata compaiono quei caratteri tanto odiati: quadratini, accentate, croci, animali strani, simboli massonici e chi più ne ha più ne metta.

E allora si deve convertire. Un bel problema..

Il php ci mette a disposizione ad esempio le funzioni utf8_encode e utf8_decode che però sono limitate ai charset utf8 e iso-8859-1.
La soluzione migliore che ho trovato ad oggi è libiconv una libreria parte della GNU C Library, nata per risolvere queste problematiche. Per gli utenti linux c’è a disposizione il comando iconv che si interfaccia alla libreria (vedi il man per i dettagli, ma è semplicissimo). Per chi invece non se la cava col terminale o è un utente windows consiglio di andare a vedere iconv.org, un’interfaccia web che ti permette di convertire al volo i documenti!

Per la lista degli encoding disponibili vedi http://www.gnu.org/software/libiconv/

Peter Velichkov ha deciso finalmente di ripetersi e ha pubblicato nel suo blog una versione aggiornata del suo speed test dei più utilizzati framework Javascript. Oltre ai già testati Dojo, Prototype, jQuery e MooTools, ha aggiunto al test il toolkit di Yahoo, YUI. Inoltre sono stati aggiunti test con vari browser e su vari sistemi operativi, come ad esempio Google Chrome e IE8 su Windows 7.

Il test è basato sullo SlickSpeed di MooTools che testa i selettori, la parte essenzionale di ogni framework Javascript, cioè quella che ti permette di recuperare dalla struttura DOM di una pagina un singolo elemento o gruppi di elementi utilizzando i selettori CSS3.

Le versioni dei framework presi in esame non propriamente le ultime in circolazione, ma sono comunque abbastanza aggiornate:

  • Dojo 1.1.1
  • YUI 2.5.2
  • Prototype 1.6.0.2
  • jQuery 1.2.6
  • MooTools 1.2

Dai risultati salta subito all’occhio, primo che i vari IE, dalla versione 6 alla 8, sono sensibilmente più lenti con tutti i frameworks; e poi che MooTools, jQuery e Dojo sono senza dubbio i toolkit più veloci nel recuperare i nodi.

Nell’ottica del sapere e dell’informazione liberi, la piattaforma Wikimedia (e quindi anche la più famosa enciclopedia del web Wikipedia), mette a disposizione un accesso diretto al database tramite un file, api.php per l’appunto, da interrogare via GET.
Abbiamo principalmente tre tipi di interrogazione che possiamo fare: autenticazione, query, editing.
Personalmente ho fatto qualche prova in modalità query… molto divertente.
Funziona così: prova a far puntare il tuo browser preferito a questo indirizzo http://it.wikipedia.org/w/api.php?action=query&titles=World_Wide_Web_Consortium&prop=info. La risposta ottenuta come vedi è un file XML, ma non è il solo metodo di output: abbiamo a disposizione json, yaml, php e altri ancora (vedi qui http://www.mediawiki.org/wiki/API:Data_formats).
Quindi se provi ad aggiungere all’url di prima il parametro format=php ecco che ottieni una stringa serializzata in php del risultato. Molto utile e comodo questo.
Prova così:

<?php
$results = file_get_contents("http://it.wikipedia.org/w/api.php?action=query&titles=World_Wide_Web_Consortium&prop=info&format=php");

echo "<pre>";
print_r(unserialize($results));
echo "</pre>";
?>

Guarda qui per capirne di più: http://www.mediawiki.org/wiki/API:Query

Ah, tra le varie cose che ho scoperto pistolando con Wikimedia è che ci mettono a disposizione il dump sia statico che strutturato dei vari database da scaricare!!! Da Wikipedia a Wikibooks qui li trovi tutti: http://download.wikimedia.org

E’ uscita la nuova versione di python!
Dall’articolo del creatore Guido van Rossum, Py3k

… is the first ever intentionally backwards incompatible Python release

Quindi sarà bene darci un occhio :)

Durante il mio lavoro di tesi “SVG, i vantaggi nelle applicazioni web” affrontai il progetto di creare un semplice strumento di disegno basato su SVG+Javascript. All’indirizzo http://www.gliinsonni.net/webpen/webpen.svg potete vedere il risultato (scarso). Ah, funziona solo con il browser Opera al momento.

Ora spulciando qualche post in rete ho trovato questo interessante progetto: <inputDraw/>. Questo widget ci permette di inserire una “tavola” da disegno nel nostro sito in maniera molto semplice tramite poche chiamate Javascript.
In realtà l’interfaccia del widget è creata in Flash (che sicuramente al momento è molto migliore di SVG per creare GUI); la cosa interessante invece è che l’output del widget è SVG!

Da provare.

Assolutamente da vedere questo
http://www.youtube.com/watch?v=uaGCpGSxGPw
E rendersi conto di cosa le multinazionali dell’informatica stiano
facendo alle nostre spalle.
Grazie a doxaliber.it per la trduzione

Se l’argomento interessa allora andatevi a vedere anche questo (in inglese)
http://www.youtube.com/watch?v=7cG2FzBjimM

Quante volte, scrivendo delle tendine riempite dinamicamente con PHP, ci siamo ritrovati a dover scrivere dei controlli condizionali per decidere quale opzione dovesse essere selezionata

// array degli elementi da mostrare nella tendina select
$options = array('mela', 'pera', 'limone', 'banana');
// elemento da selezionare
$daselezionare = "limone";

echo "<select>\n";
foreach ($options as $option) {
    if ($option == $daselezionare)
        $sel = "selected=\"selected\"";
    else
        $sel = '';
    echo "\t<option>".$option."</option>\n";
}
echo "</select>";

Non che quelle 4 righe per un if rovinino il nostro codice, ma se esiste un modo più elegante per farlo, perchè no?

Per risolvere questo problema di stile ci vengono in aiuto i nomi dinamici delle variabili in php.
Il concetto di base è questo:

$variabile = "cippa";
$$variabile = "lippa";

Anteponendo $$ al nome della variabile si crea *dinamicamente* il nome di una nuova variabile andando a prendere come nome il valore di $variaibile.
Da questo punto in poi quindi avremo una variabile $cippa che contiene la stringa “lippa”.
Per approfondire l’argomento: http://it.php.net/manual/it/language.variables.variable.php

Adesso, applicando questa magia all’esempio di prima, il tutto si ridurrebbe a

// array degli elementi da mostrare nella tendina select
$options = array('mela', 'pera', 'limone', 'banana');
// elemento da selezionare
$daselezionare = "limone";

$$daselezionare = "selected=\"selected\"";

echo "<select>\n";
foreach ($options as $option)
    echo "\t<option ".$$option.">".$option."</option>\n";
echo "</select>";

E in questo modo abbiamo risolto le nostre 4 righe in una sola: questione di stile, pura futilità.

Essendo che se ne sentono di tutti i colori è meglio stare all’occhio. Col mio modem Huawei e220 mi connetto a rete 3 con wdial e ho deciso, per stare dalla parte del grano, come direbbe un mio amico, di stare un po’ più sul sicuro anche se il modem non lo muovo mai.

I° passo
Connettersi al modem con minicom e lanciare il comando at+cops=?
Verranno visualizzate tutti le reti che il modem riesce a intercettare, quindi assicurarsi che ci sia il vostro fornitore.

II° passo
Al file di configurazione di wvdial (solitamente ~/.wvdial.conf) aggiungere una stringa di init con questo comando at+cops=1,0,"3 Italy",2

Sintassi del comando
+cops=[<mode>[,<format>[,<oper>[,<AcT>]]]]

<mode> tra le varie opzione può essere 0 per la selezione automatica dell’operatore, 1 per la selezione manuale
<format> dice in che formato specifichiamo l’operatore. Con 0 lo settiamo a alfanumerico lungo
<oper> stringa che identifica l’operatore
<AcT> 0 per GSM, 1 per GSM compact, 2 UTRAN

Considerati i rischi forse è una cosina da poco che è meglio fare ;)

Ispirazione da http://www.lilik.it/~ste/?idart=94&title=huawei+e220+con+ubuntu+operator#art_2

Per approfondimenti http://www.maxon.com.au/udocuments/MM-62880IND-HSDPA_AT-GUIDE.pdf

Boxfish è un applicativo web-based rilasciato sotto licenza MIT il cui scopo è creare una sorta di documento per alcuni aspetti simile ad un foglio di calcolo ma finalizzato alla creazione di semplici simulazioni numeriche. Ecco spiegata l’astrusa definizione/sottotitolo del software creato alla Seltzlab.

Lo scopo di Boxfish è primo, quello di avere un’organizzazione logica e visuale diversa dalla solita tabella del foglio di calcolo; secondo quello di poter creare, tramite un semplice linguaggio XML appositamente ideato, senza il bisogno della programmazione delle simulazioni.

Il software, di cui già si possono scaricare i sorgenti all’indirizzo http://code.google.com/p/boxfish, è ancora in fase embrionale ma già usabile. Alla root del progetto trovate un file INSTALL con le varie librerie python richieste e le istruzioni per eseguirlo.

Per informazioni scrivete a info@seltzlab.com

Screenshoot di una simulazione creata con Boxfish

Screenshoot di una simulazione creata con Boxfish

Follow

Get every new post delivered to your Inbox.