
Salvatore ‘Antirez’ Sanfilippo, l’autore di Redis, ha rilasciato una libreria alternativa, linenoise, e sotto licenza BSD a readline e libedit.
Durante lo sviluppo di redis-cli, Salvatore ha ritenuto inaccettabile l’attuale situazione di queste libreria che richiedono troppa memoria e sono troppo complicate da integrare in altri progetti.
Linenoise è sviluppata in C, è composta da circa 400 linee di codice ed è molto semplice da utilizzare. I progetti più piccoli non avranno più scuse per non offrire questo genere di funzionalità, mentre quelli più grandi potrebbero utilizzarla come fallback in caso di assenza di readline.
Supporta VT100 e per ora è stata testata solo in ambiente Linux e Mac Os X, quindi se disponete di configurazioni alternative potete collaborare con lo sviluppo.
Via | Linenoise

Google ha rilasciato RE2, una libreria per espressioni regolari scritta in C++ e basata sul concetto di automa.
Le principali caratteristiche di questa libreria sono la garanzia della ricerca in tempo lineare, un uso limitato dello stack ed un’alta velocità. Questi risultati sono stati raggiunti eliminando la possibilità di utilizzare backreference e tornando alle origini delle espressioni regolari. Per capire le implicazioni di questa scelta potete leggere il paper Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, …) di Russ Cox.
RE2 viene utilizzata all’interno di prodotti dell’azienda come Code Search, Sawzall e BigTable ed è stata rilasciata con una licenza di tipo BSD e con un’interfaccia di programmazione simile a quella di PCRE.

DragonEgg è un plugin che consente di usare LLVM come backend per Gcc.
In pratica vengono rimpiazzati l’ottimizzatore ed il generatore di codice con quelli del progetto LLVM grazie all’architettura a plugin di Gcc 4.5 (non ancora rilasciato ufficialmente) ed è una riscrittura del vecchio llvm-gcc che consisteva in una versione “patchata” di gcc.
Per provarlo sarà sufficiente aggiungere alla linea di comando -fplugin=path/dragonegg.so. Al momento il codice non è ancora pronto per un utilizzo professionale, ma chi ha voglia di provare e/o contribuire al progetto può già iniziare a lavorarci sopra.

LLVM, Low Level Virtual Machine, è una serie compilatore multilinguaggio diviso in una parte backend comune ed una parte frontend diverse per ogni linguaggio di programmazione.
Ieri è arrivata la notizia che la versione Clang (c, c++ ed objective c) è in grado finalmente di compilarsi da sola. Questo rappresenta un grosso traguardo per tutti i compilatori e significa che finalmente il progetto è diventato auto sufficiente.
I binari creati sono riusciti a passare tutti i test e sono riusciti anche a ripetere il processo di compilazione creando un compilatore anch’esso in grado di passare tutti i test. Un traguardo raggiunto con oltre mezzo milione di linee di codice e che da risalto all’ottimo lavoro svolto finora dal team di sviluppo.
Via | LLVM

Strophe è una libreria per scrivere client per il protocollo XMPP che ha raggiunto la versione 1.0 con l’arrivo del nuovo anno.
È composta da una versione scritta in C ed una in javascript che grazie al supporto per BOSH, Bidirectional-streams Over Synchronous HTTP (XEP 124), non fa troppo sentire le limitazioni del browser.
La libreria è conforme allo standard XMPP, supporta tutti i maggiori browser, può lavorare con canali TLS e può effettuare autenticazioni ANONYMOUS, DIGEST-MD5 o PLAIN. Se siete interessati potete sfogliare la lista dei siti che stanno utilizzando il progetto.
Via | Stranziq
Qualche giorno fa si è parlato di Google Go, il nuovo linguaggio di programmazione in sviluppo da Google — che integra la semplicità di Python alla potenza di C/C++. Potrebbero già esserci dei problemi di diritto per il colosso di Mountain View.
A segnalarlo è Lorenzo Sfarra che – con un intervento sul suo blog – sottolinea la rimostranza di Francis McCabe, uno degli sviluppatori di Go! (un linguaggio di programmazione risalente a 10 anni fa).
Il caso d’omonimia è palese, benché faccia fatica a biasimare Google per l’utilizzo del nome di un linguaggio che risiede soltanto su un repository ospitato sull’account invididuale Apple di McCabe, e probabilmente la scelta più conveniente è quella di cambiare denominazione al progetto appena nato.
Via | Lorenzo Sfarra

I database relazionali non sono sempre e certamente il sistema migliore dove immagazzinare i dati.
Negli ultimi mesi si stanno affermando database non relazionali per la gestione di dati o di interi documenti. Uno di questi è MongoDB che è sviluppato in c++ e prende il suo nome dal termine humongous.
I dati vengono salvati in formato Bson, in pratica un documento Json con una rappresentazione binaria efficiente. Grazie all’assenza di uno schema ed al supporto per strutture, liste, array associativi e blob binari potete inserire direttamente i dati dei vostri oggetti all’interno del database.

Una feature dei CSS3 che sta prendendo piede è quella dei font incorporati, che riducono la necessità di ricorrere a immagini che inficiano parzialmente l’accessibilità del web e aumentano i tempi di caricamento delle singole pagine: abbiamo già visto come esistano degli archivi online per evitare il sovraccarico dello spazio sul proprio server/hosting, ma anche questi hanno dei limiti.
Essi dipendono dall’ostinazione di Microsoft nell’utilizzo del solo formato EOT per i font remoti su Internet Explorer — causando il ricorso a una sintassi non-standard per @font-face: esistono 2 alternative per ottenere il formato compatibile, che andrà aggiunto alle dichiarazioni già previste per OTF o, TTF.
La prima alternativa riguarda il metodo suggerito dalla stessa Microsoft e si attua scaricando e installando il software ufficiale per la conversione – chiamato WETF – che è proprietario e disponibile soltanto per Windows. Eventualmente, può essere fatto “girare” su Wine.
Continua a leggere: TTF2EOT converte i font TrueType per Internet Explorer

La prossima versione dello standard C++, chiamata C++0x, non sarà pronta prima del 2010.
Il problema che ha rallentato i lavoro è il sistema dei “Concept” che avrebbero aiutato la manutenzione di codice che fa largo uso di template, ma la proposta presentata non è stata valuta sufficientemente matura per essere inclusa.
In ogni caso la futura versione del linguaggio avrà molte nuove frecce al suo arco. Se già utilizzate boost ne conoscerete già molte, altrimenti potete consultare la lista delle novità.
Via | DJJ