Archivio di settembre 2009

PostHeaderIcon Suonerie mp3 personalizzate sull’iPhone! Si può fare!

1. Utilizza iTunes per selezionare il tuo brano preferito e configurane la durata a 30 secondi max:

Apri iTunes e utilizza la ricerca per isolare il brano che vuoi portare nell’iPhone come suoneria.

Clicca sulla riga del brano con il tasto destro del mouse quindi seleziona la voce Informazioni. Clicca sulla scheda Opzioni e personalizza le impostazioni di inizio e fine del brano.

La durata totale non deve superare i 30 secondi affinchè il risultato sia compatibile con iPhone!

2. Crea un clone AAC del tuo mp3:

Mantenendo selezionato il brano originale utilizza il menu dell’applicazione: Avanzate -> crea versione AAC.

iTunes crea un nuovo file a partire dalla selezione dei tempi precedentemente impostata. Questo è il file da utilizzare come base per la tua nuova suoneria!

3. Esporta il file su desktop:

Trascina il nuovo file sul desktop o in una cartella a piacere per creare una copia estenra ad iTunes. Questa operazione è necessaria in quanto iPhone utilizza l’estensione di file “M4R” per le suonerie mentre il file generato da iTunes utilizza l’estensione “M4A”.

Utilizzando l’opzione rinomina (Windows potrebbe nascondere le estensioni di files, utilizza opzioni cartella per renderle visibili e modificabili) imposta l’estensione “M4R” per rendere il tuo file compatibile come suoneria iPhone.

4. Importa la suoneria in iTunes

Trascina il nuovo file in iTunes e assicurati che venga associato alla tipologia “suoneria” (che trovi nella barra laterale sinistra).

5. Sincronizza il tuo iPhone!

NOTE: eseguendo l’operazione ho notato che l’iPhone non importa suonerie nel cui titolo è presente un apostrofo. Per non incappare in problemi strani consiglio di utilizzare solamente caratteri standard come nome delle suonerie!

PostHeaderIcon iPhone: via i CSS da Safari!

Una delle cose che più mi urtano del mio nuovo iPhone 3Gs è proprio Safari.

Il meraviglioso browser di casa Apple si dimostra eccezionale nel supporto dei javascript più complessi e nel rendering perfettamente corretto delle pagine più articolate.

Purtroppo visualizzare sullo schermo dell’iPhone pagine progettate per uno schermo da 20″ è a dir poco frustrante: senza un microscopio elettronico si fa poco.

E’ comunque possibile zoomare la pagina con le dita… la prima volta è entusiasmante ma poi ci ritroviamo a leggere sullo schermo all’incirca il 4% dell’informazione totale… dov’è finito il resto della pagina? Semplice! E’ tutta attorno a quello che stiamo visualizzando! E’ sufficiente continuare a scrollare come dei forsennati e procurarsi varie fratture all’indice!

La soluzione è fortunatamente molto semplice: salviamo tra i bookmarks di Safari una bookmarlet fatta apposta per disabilitare i CSS della pagina!

La seguente pagina contiene una spiegazione dettagliata del procedimento: http://dorward.me.uk/software/disablecss/.

PostHeaderIcon CakePOWER: url lang request

Ho introdotto in CakePOWER un sistema per gestire la richiesta di un particolare flag di lingua mediante un finto parametro da infilare nell’uri della richiesta.

Spiegazioni dettagliate e documentazione: http://www.cakepower.org/wiki/doku.php?id=lang:index

PostHeaderIcon CakePOWER: il progetto è ufficiale!

Il primo logo ufficiale!

Il primo logo ufficiale!

Ho registrato il dominio www.cakepower.org e sto iniziando a pubblicare una wiki di documentazione ufficiale del progetto CakePOWER.

Il sito sarà per ovvie ragioni completamente in inglese… un inglese che, non ho dubbi, i più troveranno rozzo e scorretto! Col tempo migliorerò!

Ricordo che il progetto è aperto a chiunque desideri collaborare. Sul sito ufficiale sono esposti i link al canale Twitter per gli aggiornamenti veloci e al repository su Google Docs per scaricare tutti gli aggiornamenti che andrò a pubblicare.

Presto verrà aperto il bug traking sul Google Code per raccogliere le segnalazioni di chi vorrà collaborare a testare e debuggare il progetto.

www.cakepower.org

PostHeaderIcon CakePOWER: Progettazione di un Framework

Quest0 articolo segna l’inizio di una serie di considerazioni e analisi il cui obiettivo è la progettazione e costruzione di un framework applicativo web based.

La mia esperienza nello sviluppo di applicazioni web (siti web, gestionali, piccole utility) mi ha portato ad elaborare alcune definizioni che utilizzerò nei successivi articoli di analisi:

  • framework: è l’insieme di strumenti che consentono di enunciare le istruzioni logiche che compongono l’applicazione.
  • applicazione: è l’insieme delle istruzioni necessarie a definire la logica astratta di un software.
  • interfaccia: è lo strumento di comunicazione tra l’applicazione e il suo utente.
  • prodotto: è l’insieme di applicazione e interfaccia cui vengono applicate delle personalizzazioni specifiche per la singola realizzazione.

schema organizzativo delle aree logiche in cui si divide lo sviluppo di un'applicazione web.

Nell’immagine precedente la linea rossa rappresenta la separazione logica tra sviluppo dell’applicazione e lo sviluppo del prodotto.

L’applicazione è costituita di istruzioni logiche generiche che possono descrivere una soluzione software ad un problema collettivo. Lo sviluppo del prodotto si concentra sulla selezione delle applicazioni necessarie e sulla definizione di un insieme di regole di personalizzazione.

Nel momento in cui ci viene richiesto lo sviluppo di un prodotto (es un sito web) dobbiamo soffermarci e ragionare sulle applicazioni che lo compongono: gestione utenti, gestione pagine, gestione news, photo gallery e sulle regole di personalizzazione che lo completano: template grafico, numero di news per pagina, gestione dei menus.

Diventa facile capire che l’obiettivo è spostare la line rossa in modo che l’area di configurazione occupi sempre meno spazio nella costruzione di un prodotto. Il tempo che dedichiamo alla costruzione di un prodotto dev’essere concentrato sulla soddisfazione delle personalizzazioni richieste e non sullo sviluppo delle funzionalità

Il compito del framework:

La realizzazione pratica di quanto illustrato espone alcuni prerequisiti fondamentali che il framework deve soddisfare:

  • Tutte le operazioni di configurazione devono poter essere descritte su files fisicamente distinti dai sorgenti dell’applicazione.
  • I moduli applicativi (plugins) che compongono l’applicazione devono poter interoperare al fine di estendere e/o modificare il comportamento di altri moduli.
  • I moduli applicativi devono essere sensibili ad un sistema di configurazione strutturato e scalabile.
  • I moduli applicativi devono erogare funzionalità logiche “dropIn”. Non deve essere richiesta modifica dei files sorgenti!

CakePOWER: un po’ di pepe a CakePHP!

CakePOWER è il progetto che mira a concretizzare l’area core dell’immagine qui sopra fornendo tutti gli strumenti necessari allo sviluppo di plugins (moduli applicativi) al fine di vendere prodotti (siti web e gestionali applicativi) la cui caratteristica principale è alta qualità a basso costo.

Ho iniziato cercando un framework (PHP) che implementi il paradigma MVC e la scelta è ricaduta su CakePHP in quanto progetto abbastanza maturo e direzionato sulla creazione di automatismi che permettono di sviluppare il più velocemente possibile.

CakePOWER sarà sviluppato come un’estensione di CakePHP la quale integra funzionalità complesse nel framework. Di fatto tutto il sorgente sarà contenuto nella folder cake_power e l’integrazione avverrà mediante poche semplici istruzioni da inserire nei files di configurazione principali dell’applicazione.

CakePOWER è un’estensione, non un fork!

Lo stato attuale del progetto è pressochè nullo: sto scrivendo la documentazione delle prime strutture logiche che comporranno CakePOWER. La scelta di sviluppare prima la documentazione è fondamentale per garantire la qualità del codice prodotto.

A breve i sorgenti saranno disponibili su Google Project (http://code.google.com/p/cakepower/).