giovedì 10 dicembre 2009

Tech 2010

On a previous post, I wrote about what I was goint to expect this yeas, "from an IT (strictly personal and professional) point of view": well, did a good job on that, as most of my expectations were accomplished. So let's start talking about what 2010 is going to be starting from what we've seen in 2009: activity under Linux has increased, and the latest Ubuntu/Kubuntu release is impressive. Karmic is mature, stable, fast, and the latest KDE 4.3.3 has drammatically improved responsiveness and performance, becoming, from my point of view, one of the best overall desktop environment - well, it still needs some strengthening, but it's going to become as good as OS X. In my previous post I wrote about my intention of going for an iMac "but I'm waiting for Snow Leopard to see if it's worth the price"... well: it's worth the price: my new 27" iMac is simply impressive, Mac OS X is absolutely great, and prices are affordable enough (here in Italy, Macs are much more expensive than is the US... 1500€ vs 1598$, which is something like 50% more!!) to compete with the windows world.
Well, actually now I would not buy a new PC with Windows, as I would choose a Mac for a high grade or professional machine and Linux for anything else.
In my personal hit parade, windows is in the last place.
So, what is going to happen next year? Windows Vista is most likely the worst OS in the MS history (evening the score with ME), so Seven will easily be a better overall system. From now on, 4 Gb of RAM will be the minimum wage, and XP is out of the game; new systems will be loaded with 64bit OSes.
Of course, except for netbooks. Netbooks are going to be the trend, next year, and I expect Apple to enter the netbook arena soon. I am not going to use a netbook, as I need more power when I work with PC class software, and more portability when I need a PIM. My notebook is powerful and portable enough for serious stuff, and my smartphone is smaller than a netbook and runs all the PIM stuff I need.
But anyway, netbooks are going to be a very big affair: and Chrome OS is going to be a main actor, along with Ubuntu in its netbook edition. Google's OS is more innovative, but a lot of people still want to use its portable PC during the home-work-home bus trip, not necessarily paying an UMTS connection. So there is still place for traditional OSes; and probably a lot of users will chose some stripped version of seven.
C++0x hasn't been released yet, let's hope next year will be the One. But now that Nokia has acquired it, the Qt framework is getting really really hot: I await a lot of new applications running under different OSes builded with Qt.
The new CPUs are all heavily multicore, so software will become more multithreaded, and tecnologies such as Apple's Grand Central Dispatch will help a lot. Anyway, nothing new under the hood.
My word for 2010? "Mac".

domenica 15 novembre 2009

iMac 27"


Sun catame il nuovo iMac con il fantastico display da 27".
Che macchina favolosa...
Il display è veramente strepitoso, mi ha lasciato senza parole. La tastiera wireless appena tirata fuori dalla scatola mi ha fatto una pessima impressione, ma in realtà è eccellente pure lei. Il magic mouse ha veramente un che di magico: strepitoso.
Metto la spina, accendo. Parte tutto al primo colpo, funziona tutto, è tutto velocissimo. E' tutto eccellente.
La differenza con i sistemi windows è veramente, incolmabilmente abissale. Non ce n'è.
Solo una bella macchina con Linux o BSD può rivaleggiare, ma il tempo da dedicare alla scelta dei componenti può essere tanto, mentre il Mac è lì bello pronto.
Per chi stesse pensando di acquistare un nuovo computer, passando dal vecchio XP ad un nuovo sistema 7... bhè: 10 è > di 7. PUNTO.

lunedì 5 ottobre 2009

sabato 5 settembre 2009

Open source data modeling tool

Per un nuovo progetto su cui sto lavorando, ho iniziato ad utilizzare Power*Architect, un tool per il disegno dei database. Scritto in Java, si connette via jdbc al target db (e quindi anche a Postgres)... per questi primi giorni di utilizzo ho individuato un paio di problemini, ma probabilmente li risolveremo mettendo mano al codice open. Problema ben più grosso il fatto di non poter introdurre, in un unico diagramma, relazioni appartenenti a più schemi (problema risolto con un workaround, ma radicato nell'architettura del sw).
Appena Ubik tornerà dalle ferie, valuteremo con lui la possibilità di partecipare attivamente allo sviluppo, e dare una mano ai ragazzi canadesi ;)

sabato 18 luglio 2009

Disk Image in OS X

Attraverso la command line di OS X è possibile creare dei .dmg contenenti le immagini di interi dischi (come ad esempio il volume di sistema).
Ho trovato questa fantastica app, Cabon Copy Cloner, che wrappa in una splendida GUI le operazioni di ci sopra, e sto proprio ora facendo un backup del disco di sistema.

venerdì 17 luglio 2009

sabato 27 giugno 2009

Real men...

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies.

Linus Torvalds

domenica 24 maggio 2009

(SDL) Banned Function Calls

http://msdn.microsoft.com/en-us/library/bb288454.aspx

In pratica stanno dicendo a quelli che sviluppano in C sotto winzozz che non sono capaci... oppure è un ulteriore tentativo di deviare dagli standard?

mercoledì 29 aprile 2009

DbVisualizer 6.5.5

Utile! Connesso a un db Postgress permette estrarne il diagramma er!

mercoledì 8 aprile 2009

NeoOffice 3

E' stata rilascia la versione 3 di NeoOffice: http://www.neooffice.org/, la suite da ufficio per Mac Os X basata su OpenOffice. E dopo 10 ore a lavorare sotto Winzozz basta un giretto sul Mac per rimettermi di medio-umore.

domenica 5 aprile 2009

Ubuntu 9.04

giovedì 19 marzo 2009

Subversion e la gestione del ciclo di sviluppo di un progetto

Utilizzare e strutturare il repository di subversion è un requisito fondamentale per supportare correttamente il ciclo di sviluppo di un progetto software. Qui di seguito alcuni appunti che sintetizzano l'uso del repository.

Struttura del repository

Il repository è suddiviso nelle seguenti cartelle:

  • Progetto 1
    • trunk
    • branches
    • tags
  • Progetto 2
    • trunk
    • branches
    • tags
La cartella trunk è la cartella di lavoro principale, contiene i sorgenti nella versione attualmente in lavorazione (next release). La cartella branches contiene delle sottocartelle dei vari branches anche loro in fase di sviluppo: il nome delle cartelle è significativo (ad esempio, per lo sviluppo alla risoluzione di un bug, viene creata una cartella BUG-xxx). La cartella tags contiene invece le versioni alpha, beta, RC o final del progetto; qui i nomi sono nella forma [VER].[REL]-[alpha, beta, RCx].

Branching e merging

Il branching viene effettuato per creare una copia di lavoro per la risoluzione di un BUG o per l'implementazione di una nuova feature in prova senza intaccare il trunk principale: utilizzando i front end grafici di svn oppure il comando svn copy, è sufficiente creare una copia dal trunk nella cartella branches e nominarla in modo appropriato; occorre quindi (utilizzando svn switch) passare alla copia di lavoro il nuovo repository ed effettuare le modifiche. Al termine del ciclo di vita del branch, occorre fare un merge con il trunk principale (utilizzando svn merge) ed eventualmente cancellare il branch.

Rilascio di una versione (alpha, beta, RC, final)

Per rilasciare una versione, occorre effettuare una copia di trunk (si suppone ovviamente che la versione venga fatta sul trunk principale e non su un branch) con il comando svn copy o tramite il frontend grafico. A questo punto, per fare il building della versione occorre fare un checkout (svn co) dalla cartella tags di riferimento (ad es. svn co svn://server_svn/Progetto/tags/1.5-RC2)

martedì 3 marzo 2009

Primi passi con Glade e gtkmm

Oggi ho cominciato a fare qualche piccolo esperimento con Anjuta, Glade e GTKmm.
Dopo aver creato una form con due pulsanti, ho creato un gestore di eventi minimale:

struct Gestore
{


Gestore(Glib::RefPtr<Gnome::Glade::Xml> &the_xml)
{

dynamic_cast
<Gtk::Button*>(the_xml->get_widget("button_due"))->signal_clicked().connect( sigc::mem_fun(*this, &Gestore::on_click_due) );

dynamic_cast
<Gtk::Button*>(the_xml->get_widget("button_uno"))->signal_clicked().connect( sigc::mem_fun(*this, &Gestore::on_click_uno) );
}


void
on_click_due()
{

cout << "Click sul bottone DUE!!!" << endl;
}


void
on_click_uno()
{

cout << "Click sul bottone UNO!!!" << endl;
}
};


A questo punto, ecco il main (generato da Anjuta) con l'aggiunta del mio gestore:


int
main (int argc, char *argv[])
{


Gtk::Main kit(argc, argv);
Gestore *gestore;

//Load the Glade file and instiate its widgets:
Glib::RefPtr<Gnome::Glade::Xml> refXml;
try


{

refXml = Gnome::Glade::Xml::create(GLADE_FILE);

gestore = new Gestore(refXml);
}

catch
(const Gnome::Glade::XmlError& ex)
{


std::cerr << ex.what() << std::endl;
return
1;
}


Gtk::Window* main_win = 0;
refXml->get_widget("main_window", main_win);

if
(main_win)
{

kit.run(*main_win);
}

delete
gestore;

return
0;
}

C++ to HTML

http://www.bedaux.net/cpp2html/

Molto utile, complimenti Jasper!

giovedì 22 gennaio 2009

Svn integration on nautilus

http://naughtysvn.tigris.org/ should be something like TortoiseSVN, but integrates with Nautilus!
It's just version 0.0.1,and I didn't see any new release in the past year... I hope the project is still alive!

Have a look at this post about using subversion not only for source code.

martedì 13 gennaio 2009

Tech 2009

I'm writing down a couple of notes about what I'm going to expect this year from an IT (strictly personal and professional) point of view. Two years ago I wrote about multicore processors and new operating systems, I was expecting RIA application to be the main trend on the web side (google stuff, facebook, linked-in...), while I've mistaken about Vista... I was expecting a huge interest and a great leap foreward, with new .NET based application, but Vista has been quite a flop.
Actually in these years I worked mainly on the old WinXP, and did something interesting under Linux.
In 2009 I will sure increase my activity under Linux and I hope to start studing Mac OS X; I think that the new releases of the Linux kernel with ext4 will renew the interest on file systems, and the "Btrfs vs Zfs" affair will be the major topic on the server side.
Again on the server side, I will sure broaden my knowledge of PostgreSQL (impressive... a really impressive dbms!): this year I will try to develop the project of my object oriented repository based on a relational dbms, hoping to see soon some innovative OS based on a OODB instead of a file system.
C++09 (or 0x)? Let's see, but I'm quite excited about that! Hope compilers will appear as soon as possible!
What else? Of course, more processing power, new cpus, bigger storages, both hd and ssd... I am also thinking about replacing one of my old desktops with a iMac, but I'm waiting for Snow Leopard to see if it's worth the price.
Summarizing: because of The Economic Crisis, there won't be great revolutions; Win7 will be what Vista should have been 2 years ago, Os X will gain more and more users, like GNU/Linux.
So my keyword for 2009 is "consolidation".

mercoledì 7 gennaio 2009

S.M.A.R.T. Monitor per OS X

Un'utility open source per monitorare i dischi:
http://www.corecode.at/smartreporter/index.html
salvare i dati in tempo non ha prezzo...