Logo Blogo

Programmazione

Un ventennio con Vim

pubblicato da Giacomo Picchiarelli in: Open Source Programmazione

Logo VIM Vim vedeva la luce il 2 novembre 1991. Due decadi con l’editor tra i più famosi e rappresentativi del mondo UNIX e del software libero. Compagno fedele di molti programmatori e sistemisti, spesso visti come degli “eletti” per il solo fatto di aver superato quello scoglio iniziale che Vim impone a tutti i neofiti. Prima di poterne anche solo comprendere appieno tutte le funzionalità offerte servono ore. Più un ambiente di lavoro che un banale editor, con le sue logiche e le sue stranezze.

La versione 1.14, la prima ad essere resa pubblica, fece la sua comparsa nel Fish Disk #591 della “Fresh Fish’s Amiga freeware collection”. Bram Moolenaar lo sviluppò per scopi personali con l’intento di renderlo il più possibile simile a vi. Con gli anni, l’aiuto di altri programmatori e una comunità di utenti molto affezionata, è diventato l’emblema degli editor per sistemi UNIX-like. Moltissimi i plugin disponibili e per gli scopi più disparati.

Quello che mi ha sempre affascinato di Vim, pur non essendone un esperto, è la sua portabilità e il suo approccio sofisticato. Utilizzandolo si ha la sensazione di usare uno strumento antico e per certi versi misterioso, ma per molti utenti è insostituibile e soprattutto attuale. Probabilmente è una di quelle “reliquie” dell’informatica che non soffrirà mai del tipico invecchiamento tecnologico.

Via | ars technica

Facebook ha inaugurato un portale per sviluppatori dedicato ad HTML5

pubblicato da Federico Moretti in: Programmazione Webdev

HTML5Facebook manifesta un sincero interesse per lo sviluppo di applicazioni web in HTML5 e JavaScript: a prescindere dall’utilizzo del social network, il nuovo portale dedicato all’argomento offre una panoramica delle risorse più utili. Non soltanto in prospettiva di un’integrazione con Facebook. È il valore aggiunto della piattaforma.

Anzitutto, Facebook propone uno showcase dei progetti in HTML5 di terze parti: troviamo applicazioni, giochi e demo suddivisi per i dispositivi coi quali sono compatibili. I contenuti condivisi da Facebook sono ripartiti in tre sezioni. La prima è dedicata allo sviluppo e include un elenco dei framework per la realizzazione delle interfacce.

La seconda parte è riservata al debugging e suggerisce l’utilizzo di strumenti, tra i quali emerge il JS Test di Google, per provare il funzionamento del codice. L’ultima, quanto alla distribuzione dei progetti, cita le linee guida di altre piattaforme: Chrome Web Store e PhoneGap. È un portale di riferimento da tenere sott’occhio.

Via | Facebook Developers

Programmazione parallela con OpenMP

pubblicato da Giacomo Picchiarelli in: Programmazione C/C++

OpenMPOpenMP è una specifica API che consente l’esecuzione parallela di task secondo il modello a memoria condivisa. Questo consente di creare programmi che implementano la programmazione parallela da poter eseguire sia nei cluster, se usato in combinazione di MPI, sia su normali computer desktop. I linguaggi supportati sono CC++ e Fortran.

In concreto OpenMP è implementata come estensione di un compilatore, quindi è sufficiente aggiungere un opportuno parametro al comando di compilazione: ad esempio, nelle ultime versioni di GCC il parametro è -fopenmp. OpenMP non necessita di librerie esterne, i comandi vengono forniti sotto forma di commenti speciali. Una caratteristica estremamente utile, se si vuole utilizzare lo stesso codice senza imporre un’esecuzione parallela.

Un classico esempio, per questo genere di programmazione, è la parallelizzazione dei cicli: il comando è #pragma omp parallel for. Sono inoltre disponibili diversi metodi di sincronizzazione per sezioni critiche, variabili condivise e race condition: critical, atomic, ordered, barrier e nowait. Inoltre si può specificare il numero di thread da console, in fase di compilazione, con la variabile d’ambiente OMP_NUM_THREADS=n°thread.

OpenMP dispone di una lunga esperienza come standard (la prima versione è del 1998) e di un consorzio composto da nomi di tutto rispetto come Intel, AMD, Fujitsu, Oracle e molti altri. C’è una sola “pecca” degna di nota, a mio parere: non può essere utilizzata per le GPU. Una lacuna che si spera venga colmata presto.

Via | Linux Journal

Rilasciato Apache Subversion 1.7.0

pubblicato da Giacomo Picchiarelli in: Open Source Programmazione Apache

Apache Subversion è un software per il controllo di versione centralizzato, è multipiattaforma e viene utilizzato in molti progetti opensource come strumento per gestire i contributi di ogni elemento del team di sviluppo. SVN rappresenta un buon compromesso, probabilmente il migliore fra i sistemi centralizzati, tra caratteristiche fornite e difficoltà d’utilizzo.

La nuova versione presenta notevoli miglioramenti e correzioni, in particolare è stata migliorata la gestione del protocollo HTTP. Le limitate prestazioni di SVN nella gestione del protocollo erano dovute al fatto che l’intento iniziale degli sviluppatori era di implementare completamente le caratteristiche WebDAV DeltaV; implementazione mai avvenuta completamente e con benefici minimi rispetto al costo pagato in termini di prestazioni. Per rimdediare, SVN ora include una versione semplificata denominata HTTPv2, che comporta un minore overhead nelle comunicazioni tra client e server.

Altra feature degna di nota è svnpatch che consentirà di applicare i file patch, in formato unidiff, ad una working copy. Con questa release molte lacune sono state colmate, anche se personalmente ritengo che il modello centralizzato stia perdendo terreno.

Via | SVN

MonoDevelop si aggiorna alla versione 2.8

pubblicato da Gusions in: C# Programmazione

Il team di MonoDevelop ha recentemente rilasciato la versione 2.8 del famoso IDE per la programmazione in C# e in altri linguaggi .NET. Le principali modifiche di questa versione riguardano l’editor del codice sorgente e l’introduzione di nuove funzioni per la gestione dei progetti. Questa versione introduce tra le altre cose, interessanti cambiamenti per gli user OS X.

MonoDevelop per OS X introduce il supporto a Xcode 4 ed integra anche il servizio “TestFlight” per iOS; ora i di percorsi di MonoTouch e dell’SDK iOS possono essere configurati singolarmente. Troviamo anche nuovi modelli per le applicazioni iPhone e iPad, insieme al supporto ad iOS 5 e Storyboard, successore di Interface Builder.

Le novità non riguardano solamente OS X/iOSX, infatti per i restanti utenti è stato introdotto un nuovo editor per la creazione di schemi di colore per evidenziamento della sintassi, insieme a un nuovo schema di colori applicato di default. Per quel che riguarda la gestione dei progetti, abbiamo una nuova finestra di dialogo per la modifica per le reference e un nuova vista per le classi e per la struttura dei documenti.

Via | Monodevelop

Canonical dopo App Developer Week crea un sito per gli sviluppatori linux

pubblicato da Riccardo Magini in: Programmazione

App Developer Week

Canonical dopo i cinque giorni di App Developer Week organizza un sito per gli sviluppatori esperti e per chi muove i primi passi nella programmazione su linux. Canonical con questo progetto dà l’opportunità agli sviluppatori e alle aziende di proporre e progettare App individualmente o in team. Questo progetto non si rivolge solamente allo sviluppo di applicativi open source free ma anche ai software a pagamento inserendoli all’interno del circuito di Ubuntu Software Center. Ubuntu in questo modo vuole stimolare la realizzazione di programmi competitivi sul mercato creando una vera concorrenza a Windows e Mac OS X in collaborazione con la piattaforma Launchpad per il deposito delle App.

Per i grandi progetti che hanno un team consolidato come LibreOffice o Thunderbird non necessitano di un supporto di questo tipo ma le nuove idee e le nuove proposte hanno la necessità di uno staff e questo progetto di Canonical da la possibilità di trovare al suo interno gli sviluppatori, i traduttori, i designer e anche gli user per testare il software in sviluppo. Così Canonical ha ideato developer.ubuntu.com basato su tre steps: una semplice scelta, un semplice e divertente generatore di applicativi, impacchettamento e condivisione. Con “una semplice scelta” si intende l’utilizzo di Quickly, un programma più tosto difficile d’apprendere ma che aiuta lo sviluppatore nel processo di programmazione.

Un semplice e divertente generatore di applicazioni” è il passo successivo, dopo aver realizzato un App con Quickly è possibile creare my-new-project dandogli il nome del nostro progetto e automaticamente viene realizzata una directory mynewproject/ dove si colloca il nostro lavoro, in seguito bisogna soltanto creare il pacchetto e condividerlo.

Continua a leggere: Canonical dopo App Developer Week crea un sito per gli sviluppatori linux

Bluefish e i tempi di avvio

pubblicato da Gusions in: Programmazione


Sul blog di Olivier Sessink, principale sviluppatore di Bluefish è apparso un interessante post, molto simile a quello pubblicato da Fortin qualche giorno fa, dove vengono riportati i risultati di alcuni test inerenti i tempi di avvio di Bluefish.

Il post fa delle comparazioni principalmente tra due versioni: l’ultima versione stabile, la 2.0.3 e la versione Trunk, tutt’ora in sviluppo e in un momento di passaggio dalle GTK+2 alle GTK+3.

La prova è stata effettuata con un vecchio IBM T43 che monta un processore Pentium M 1.8GHz e un SSD. Come possiamo vedere dal grafico la versione in GTK+2 pare avviarsi in un minor tempo rispetto a quella in GTK+3, nonostante si tratti di un tempo minimo di appena 0.3 secondi, come possiamo vedere dal grafico dopo il salto.

Continua a leggere: Bluefish e i tempi di avvio

Ecco MonoDevelop 2.6, con nuove interessanti features

pubblicato da Gusions in: C# Programmazione


È stata da poco rilasciata la versione 2.6 di MonoDevelop, il famoso IDE per la programmazione in C# e in altri linguaggi .NET. Questa nuova release introduce numerose novità, come il supporto a Git, una versione migliorata del controllo di versione ed una nuova finestra per risolvere rapidamente i conflitti.

Oltre le novità sopracitate, MonoDevelpo 2.6 include inoltre il supporto ai progetti .NET 4.0, una riscrittura in C# del parser basato sul compilatore MCS, e la funzione “Aggiungi Cartella” nelle opzioni del progetto. Utilizzando l’add-in MonoMac, disponibile nel gestore dei componenti aggiuntivi, è possibile creare, testare e pacchettizzare applicazioni Cocoa.

Non solo novità: infatti è stata migliorata compatibilità con i progetti di Visual Studio, è migliorato il supporto a XBuild ed è stata creata una nuova finestra per il gestore dei componenti aggiuntivi.

Le novità da me riportate sono solo alcune, possiamo trovare tutte le altre alla pagina dedicata al rilascio di questa versione oppure nel classico changelog. Alla pagina download del progetto possiamo trovare i pacchetti compilati per le maggiori distro GNU/Linux, ed i file installazione per Windows and Mac OS X. Attualmente però, la versione più recente disponibile per Ubuntu è la 2.4.2, quindi è consigliato clonare il codice da GitHub e compilare manualmente.

Via | Monodevelop

Google Code ha finalmente aggiunto il supporto nativo al DVCS di Git

pubblicato da Federico Moretti in: Programmazione Google

Google CodeGoogle Code ha cominciato a supportare nativamente Git tra i sistemi di Distributed Version Control System (DVCS) disponibili sulla propria piattaforma. L’aveva anticipato Chris Di Bona, parlando di Android e del futuro del desktop di Linux. Non ci sono ancora comunicati ufficiali, però Git è utilizzabile registrando nuovi progetti.

Git s’aggiunge così a Subversion e Mercurial tra le opzioni disponibili su Google Code. Il supporto è già approdato anche su Eclipse Labs, la piattaforma promossa da Google ed Eclipse Foundation per i progetti sviluppati con Eclipse. Nonostante l’assenza d’annunci ufficiali, sono state redatte le domande più frequenti sul supporto.

L’utilizzo di Git prevede 4Gb di spazio come tutti gli altri DVCS, tuttavia il limite per ogni invio di codice è a 500Mb e Google sostiene di volerlo aumentare in futuro. Per sfruttare Git nel proprio repository, occorre installare la versione 1.6.6 o superiore del DVCS. Google Code potrebbe avere scelto Git per contrastare GitHub.

Via | The H Online

Greenfoot, un'applicazione che aiuta a muovere i primi passi su Java

pubblicato da Federico Moretti in: Java Programmazione

GreenfootGreenfoot è un framework per programmare in Java un po’ sui generis. La scrittura dei sorgenti e l’esecuzione del codice avviene in uno degli “scenari” predefiniti (circa una ventina): gli oggetti sono rappresentati da figure che si animano in base alle azioni a esse associabili. È quasi un “ibrido” tra intrattenimento e istruzione.

L’idea d’assegnare una forma illustrata alla programmazione non è nuova, eppure Greenfoot è tutt’altro che un’applicazione per i più piccoli. Disponibile per Linux, OS X e Windows i sorgenti sono distribuiti con licenza GPLv2. Greenfoot è supportato ufficialmente da Google e Oracle: un limite è quello della produzione di risultati.

Non sembra possibile generare delle applicazioni “aliene” a Greenfoot. Insomma, lo scopo educativo del framework riduce l’utilizzo del programma in se stesso: l’obiettivo (unico?) di Greenfoot è quello di realizzare nuovi scenari o modificare quelli esistenti. È utile per acquisire un’idea di massima della programmazione a oggetti.

Via | MakeUseOf