mercoledì 24 novembre 2010

Il futuro di Mono è al sicuro ...


Me l'ha detto De Icaza di persona ;)

Venti di guerra...

Adesso è il turno della Corea del Nord. Come sempre uno staterello che dichiara guerra praticamente al mondo (Sud Corea, Usa e poi... Nato), sparando lei i primi colpi.

Ma c'è qualcuno che ci crede ancora ?  (Aihmè , credo di si!)

Mi domando quali siano i reali interessi in questo nuovo futuro conflitto...

martedì 23 novembre 2010

Attachmate si compra Novell...

... e Microsoft si compra 800 brevetti di Novell, quali non si sa (per affrondire il tema...clicca qui).
Ora, a me, la cosa che importa è che il lavoro su Mono vada avanti visto che ci sto spendendo tempo e risorse nello studio di GTK# e dell'ambiente stesso (MonoDevelop), che mi sta dando grosse soddisfazioni.
Guarda caso l'acquisto avviene ora che il progetto è davvero maturo, con le applicazioni .NET che girano davvero bene sotto Linux, Mac etc. Per fortuna c'è la GPL che è in se più forte di qualsiasi takeover aziendale, infatti anche se il progetto venisse interrotto dai nuovi proprietari, potrà sempre esserci qualcun'altro che lo continui, essendoci comunque buoni margini di guadagno !
Intanto, Miguel De Icaza, ha fatto sentir la sua voce su twitter, con un rassicurante
After the Novell acquisition, Mono continues as-is, but our paychecks will come from Attachmate instead of Novell.
Speriamo, anche se dopo il takeover di Oracle su Sun (e le note vicende legate a Java, i suoi ingegneri, OpenOffice etc.) c'è poco da stare allegri !

domenica 21 novembre 2010

Desktop War: la guerra è persa ?

Girovagando, mi sono imbattuto sul blog di James Gosling (e chi cazz'è ?) cioè il creatore da Java, licenziatosi qualche mese fa, dopo l'acquisto di Sun da Oracle. Mi ha colpito il suo post "Desktop Linux: the dream is dead", ossia Gosling si trova d'accordo ad un blogger di Pc World, che sostiene che la famosa guerra dei desktop per Linux è persa, e che, se doveva essere vinta, sarebbe dovuto accadere nel 2008, l'anno dei netbook.
Credo che il punto di maggior interesse nel post di Gosling sia il seguente
For desktop software, the service-and-support model doesn't work. To be successful, desktop software has to "just work". Some folks do shareware or donateware, but it's not very successful: such models rarely generate enough money to keep the developers fed. And the packaging model of most of the distributions discourages economic models: they slurp up the source and compile it themselves, holding on to the relationship with the user. Money isn't evil: it's just a way of keeping score in a barter economy. I'm happy to trade code for food. And it doesn't take much money to make things work: look at the iPhone app store. If the Gimp cost a few dollars, the development team could put a lot more energy into the Gimp and it would be hugely better for it. Developers follow the money. They aren't evil, they just need to be fed and housed
Come dargli torto, ad esempio quando dice Sono felice di scambiare codice per cibo o quando sottolinea Gli sviluppatori cercano soldi, non sono il diavolo, semplicemente ne hanno bisogno per vivere ? Io sono il primo a voler essere pagato se lavoro 8 ore per scrivere ... codice, e d'altronde... non ci trovo niente di male, anzi !
Già, eppure Linux esiste, è un sistema bellissimo, iperstabile, veloce e ci sono già tanti software. Com'è possibile che siamo arrivati a questo punto, se gli sviluppatori cercano soldi  ?
E' il fenomeno dell'Open Source, una sorta di comunismo informatico, e nell'informatica ... funziona. 
Certo, è lento, qualsiasi progetto parte piano. Lo sviluppatore che ci si dedica lo fa per hobby inizialmente, lavorandoci magari nei week end piovosi... però intando scrive codice, risolve problemi, ed il codice resta li e non si deteriora. Poi piano pian la cosa diventa grande, fino, come spesso accade, a superare gli equivalenti commerciali, o almeno ad avvicinarsene !
E allora è li che uno si chiede: com'è possibile ? Semplicemente perchè il codice rimane... non va a male,  non si deteriora. E' come la Divina Commedia.
Ecco perchè il futuro nell'informatica sarà sempre più Open Source, software libero ed aperto, e la stessa informatica e la stessa rete Internet saranno sempre più sentiti come dei servizi di base o sociali come l'acqua che beviamo o l'aria che respiriamo.
Il codice aperto c'è. Rimane li. Svolge dei lavori a noi utili (il browser, la posta ... etc.) e alla fine diventa patrimonio di tutti, proprio come la Divina Commedia.
Ecco perchè non credo proprio che Linux sia destinato a morire col tempo... anzi, il suo destino è semplicemente quello di crescere, lentamente certo, ma ... crescere !

sabato 20 novembre 2010

Riflessione

Cos'è la felicità ? 


Felicità è realizzare quel che desideri in quell'istante. Ne prima, ne dopo. Ora.
Non ha senso avere o fare oggi quella cosa che volevi da bambino. Questo è ... rimpianto.
E non ha senso avere o fare oggi quella cosa che pensi che ti servirà più avanti. Questa è ... previdenza.

venerdì 19 novembre 2010

Skipping to.. Java !

Ok, Gtk# è ancora in alto mare. O meglio, la sua documentazione ! Basti pensare che alle mie domande su StackOverflow, non ottengo risposta ! Quindi direi di lasciarlo perdere (per ora) e concentrarci su qualcosa di leggermente più documentato !

Passiamo a Java, che tanto la sintassi la conosco (le Api un po' meno, ma mi pare l'occasione giusta per impararlo).
Cercando su SourceForge un qualche punto di partenza,  mi imbatto in 2 prodotti in particolare: jStock ed Eclipse Trader.
Il primo sviluppato da un ragazzo malese, e quest'ultimo, da un italiano (i miei complimenti Marco, se leggerai questo blog ;) !
Entrambi i prodotti (open source) sembrano ottimi e secondo me l'unione dei due... darebbe un prodotto completo ;)
In particolare è impressionante il lavoro fatto dal malese riguardo allo svisceramento di Yahoo Finance e dei vari server: ho visto i sorgenti e c'è una gestione ad hoc per ogni server conosciuto, nonchè un database online con tutti i ticker di yahoo finance (sta cosa non ho capito come l'ha fatto !!!).

Per la parte di charting usa la classica jfreechart; infine mi sembra di aver capito che gli autori si sono concentrati sulla parte di scanning delle azioni, rispetto alla parte di charting (analisi tecnica grafica).
Al contrario, per Eclipse Trader, ho visto che la parte di charting è stata fatta in toto da zero ! E complimenti (ancora) perchè ... dev'esser stato un gran lavoraccio !

Da questi due progetti vorrei partire con il mio (ancora senza nome), prendendo però spunto dal mio software di analisi tecnica preferito, ossia ... Amibroker.


Una cosa sola mi spiace nel passaggio a Java: l'impossibilità di usare quella bella libreria .Net per la gestione di Yahoo Finance! Mi avrebbe evitato un sacco di lavoro!


Concludo con una riflessione: c'è una costante in tutti questi software open (e non solo), ossia il download gratuito e libero, da Yahoo Finance delle quotazioni ! Mi auguro che non chiudano mai i rubinetti, sennò a quel punto sarebbe la fine per tutti noi... trader low cost !

martedì 16 novembre 2010

Scaricare le quotazioni da Yahoo Finance


Yahoo mette a disposizione un ottimo servizio di quotazioni dei mercati finanziari.
La cosa migliore però, è la possibilità di scaricare lo storico end of day di una caterva di mercati e securities. Utilizzo questo servizio gratuito ad esempio con AmiBroker ed il suo plugin AmiQuote.

Volendo implementare i grafici nella mia prima applicazione GTK# volevo saltare il passaggio del download delle quotazioni con relativo parsing, poichè l'avevo già affrontato in un mio vecchio programma scritto purtroppo in Vb6, quindi con il codice non riutilizzabile.

Googolando, ecco che mi son trovato una signora libreria scritta in Vb.Net ossia tal  Yahoo Finance Managed ben spiegata su Code Project e ospitata su Google Code.

Il lavoro fatto da questo tedesco, tale Maas (con cui ho chattato oggi per segnalarli che la sua libreria funzionava bene anche con Mono su una macchina Linux, nonostante fosse stata aperta una bug-note) è davvero notevole, perchè come egli stesso scrive nella home page del progetto, la libreria è
Easy and fast usability of Yahoo! Finance API for .NET developers
Strong typed code handling
Complete documentation and big repertoire of code examples

In particolare, il fatto che sia fortemente tipizzata permette  di scaricare e salvare ogni singolo valore recuperabile da Yahoo Finance nel modo più agevole possibile, permettendo di fatto la costruzione di un software finanziario concentrandosi quasi esclusivamente sulla GUI e poc'altro.
Voglio dire, in buona sostanza, che l'interfaccia con le API di Yahoo Finance è fatta, funzionante, in codice gestito .Net, e rilasciata con licenza Open Apache.

Linux Mint 10: ma che spettacolo !

Ho appena installato la versione 10 di Linux Mint, rilasciata 3 giorni fa, previa prova via Usb Live.

Ma che spettacolo ! A parte il tema di Gnome vagamente ispirato a Mac Osx che farà impazzire i tanti che vedono nel Mac il punto d'arrivo (anche se io preferisco il vecchio tema sul nero, mi pare si chiamasse carbon): ma stavolta si sono tutti superati. Il sistema è una scheggia, reattività massima, tempi di attesa (che già erano pochissimi) ridotti a quasi zero.
Devo solo verificare un paio di cose (in particolare come si comporta la mia maledetta Radeon X1300), ma fino ad ora posso solo dare un responso: magnifica.

domenica 14 novembre 2010

L'intervista


Settimana scorsa il mantainer del progetto C# Sdl.Net, tal Stefan Ekman, svedese come Ibra, mi ha chiesto se potevo ... essere intervistato :-)!
Volevo concludere con un "Picchio De Sisti" ed invece il risultato è stato questo!

Gtk#, primi esperimenti ...

Gtk# mi piace, è reattivo, bello da vedersi (anche se le QT lo superano) ma.. un po' incasinato.
La cosa peggiore di Gtk# è la mancanza di documentazione. Per Gtk+ c'è n'è a iosa, ma per il suo binding in C#, non ci siamo, mancano libri ed i tutorial scarseggiano.

Nel mio esperimento quotidiano ho realizzato questo scheletro per un software di analisi tecnica sotto Linux (anzi, cross platform) con, appunto C# e Gtk#, e ovviamente l'ottimo MonoDevelop.
Ecco la prima immagine...


Ok, non è niente di che, è vero, infatti parlavo di.. scheletro ;)

Sulla sinistra c'è una Treeview (che in Gtk# è gestita con l'efficiente modello MVC) con l'elenco dei mercati finanziari e l'elenco delle azioni (poche, ma per ora è solo un esempio).
La parte centrale, gestita coi Notebook (ossia le Tab), e una DrawingArea ossia un Widget GTK ove è possibile disegnare.
Qui verrà visualizzato il grafico dell'azione, e si potranno tracciare trendline, fibonacci etc.
Infine sulla destra ho una toolbar di pulsanti, che conterranno tutti gli strumenti utilizzabili.

Una cosa ostica, almeno inizialmente, è stato capire il sistema del packing che viene utilizzato in Gnome, ostico soprattutto per chi proviene dal classico sviluppo sotto Windows.
In pratica con le Gtk non si arrangiano i controlli sulle form nel classico stile Windows ossia: Textbox nella posizione X,Y (10,20), e dimensioni (40,120).
Invece in Gtk si usa il packing, ossia, il controllo viene inserito in una griglia o box, e automaticamente si ridimensiona a seconda della dimensione del proprio contenitore. Ok l'ho spiegato un po' da cani, ma il concetto è che prima si inseriscono i contenitori (hBox, vBox, hPaned, vPaned o Table), quindi all'interno di essi, vanno i vari controlli come i button, label, treeview etc. etc.
All'inizio mi sembrava un sistema del ca**o, invece no, mi son ricreduto... è davvero efficiente perchè tutto il lavoro di resizing e di adattamento a seconda dello schermo (che sia quello di un Pda, di un cellulare o un widescreen da 30") viene automaticamente gestito da Gtk.
Inoltre, se proprio non si vuole imparare questo sistema si può usare sempre un contenitore Fixed che permette di inserire i widget (altro nome per controllo) con una posizione fissa nel controllo stesso.. cioè come nella gestione standard delle winforms.

A questo punto viene lecito domandarsi quale possa essere il Gui Toolkit migliore tra le Gtk e le Winforms. Mi trovo d'accordo con chi ha risposto a questa domanda su StackOverflow.

E ora, guardiamoci il derby.

venerdì 12 novembre 2010

Luttazzi copia ! Ecco perchè non mi faceva neanche sorridere...


Oggi ho visto un servizio delle Iene (credo l'unica trasmissione di Mediaset che meriti d'esser vista oltre alla Gialappa ormai oscurata) che mi ha "svelato" che Luttazzi ... copia le sue battute da comici americani.
Bisogna cercare sul tubo "Il meglio non è di Daniele Luttazzi". Un video che viene sempre rimosso (da una srl di Luttazzi stesso), ma che ricompare ciclicamente, fatto da qualche "nemico" del comico, che svela come la maggior parte delle sue battute, siano state coniate 5,10,15 anni prima da famosi comici americani!
Ora ho capito da dove arrivavano quelle sue battute scadenti ... Più scadenti della scusa che s'è inventato per uscire dall'imbarazzo: in buona sostanza dice di copiarle apposta e poi di "lanciare" qua e la qualche indizio ai fan, stile caccia al tesoro!

A me i comici americani, per quel poco che ho visto, non mi hanno mai fatto ridere. Là, se li scordano gente come Grillo e Benigni (o Benigni e Grillo, fate voi). E la satira di Fantozzi ? Ed il Banfi di Vieni avanti cretino ? Pozzetto nel ragazzo di Campagna ?
E quanti ancora...

Credo che l'unica cosa da ringraziare a Luttazzi sia l'immagine qua sopra.

Dalla Cina...

Dopo 2 mesi, eccomi giungere i miei due ultimi acquisti presso un eBayer cinese.
Sono due semplici torce, una molto bella, che replica quelle in dotazione della polizia. Cosa ne me faccio ? Un cazzo, però sono 2 euro spesi bene...
Police Torch Lamp

Ormai comprare dalla Cina è diventato sempre di più un terno al lotto. Quasi tutti i venditori cinesi non vendono più in Italia... il motivo ? Sembra che alla dogana si inculino la roba !!!
Riporto un semplice post di un venditore cinese, che spedisce da 8 anni in tutto il mondo 


ITALY: Worst country in the world to ship to? We think so....
Feb 23, 2007 7:12 AM
Been selling full time on ebay for 8 years. We package securely and strongly, cover over labels with tape to prevent dislodging/rain smearing etc. Our expertise in packaging is muchly appreciated as evidenced by our feedback profile. We ship to 89 countries and counting. Our 8 year delivery success rate in 88 of the countries is 100% - our delivery success rate to ITALY?....47%!! What gives??? Why do packages continue to lose their way in the BLACK HOLE of ITALY? We are getting sick and tired of chargebacks solely from Italy. We are seriously considering changing our listing format to reflect we will ship to every country EXCEPT Italy....any thoughts or suggestions?


E come questo post, ce ne sono tanti altri su eBay. La dicitura "We ships worldwide EXCEPT Italy" (and Afghanistan, Iraq, Nigeria) è diventata di prassi presso i sellers cinesi ! E' pazzesco, il sistema postale e doganale è pari a quello dell'Afghanistan :-O !
In pratica, secondo le stime di quel venditore, il nostro paese vanta il 47% di spedizioni giunte a destinazione. Mentre l'altro 53% finisce in quello che lui definisce "black hole". 
Comunque la destinazione si sa: 
a) Alcuni pacchi vengono fermati e "requisiti" in dogana
b) Essendo il popolo dei furbetti, in tanti dichiareranno al venditore che non hanno ricevuto l'oggetto, ed il venditore (in buona fede) lo rispedisce

E a prendersela nel black hole è come sempre la gente onesta!


martedì 9 novembre 2010

Quale "GUI toolkit" usare ma che sia anche cross platform ?


Da quando mi sono ri-addentrato in Linux mi son trovato davanti ad un bel dilemma: i miei prossimi software client dovranno essere cross platform "nativamente", si, ma cosa usare ?

Ci sono alcune opzioni.

Grazie a Mono oggi posso sviluppare in C# ed essere sicuro che il mio software girerà su Win, Linux e osX, cosa già provata sul campo con il mio "giochino" e con altre semplici applicazioni Winform.

Ok, ma se scelgo .NET, quale GUI usare ? Anche qui ho varie scelte:
- Le classiche e standard (ma bruttine) WinForms (da disegnare però con Visual Studio)
- Le GTK che mi piacciono molto ma a cui mancano ancora un po' di controlli (oops, widget) 'gestionali-oriented' per essere al pari delle WinForms
- Le QT che per molti (leggendo i guru di StackOverflow) saranno il futuro nelle applicazioni desktop

Ok, ma come posso tralasciare Windows Presentation Foundation ?

E poi c'è il linguaggio cross-platform per eccellenza e cioè Java.
Proprio oggi mi sono imbattuto su una demo con i nuovi controlli Swing: davvero notevoli pure loro, soprattutto perchè l'ho provato sia sotto Win che sotto Linux e non ho avuto alcun problema in entrambe le piattaforme.

Conclusione: e se invece mi limitassi a sviluppare applicazioni Web ?

Sulla crisi economica

Riporto questo mio post di Gennaio 2010 sul vecchio blog andato perduto ;)



Ho appena terminato una delle tante discussioni, a tavola con la famiglia. Tema del giorno: la crisi economica.
Capirne l’origine, capire se era evitabile, intuirne la durata… non è semplice. Vorrei solo limitarmi a porre l’accento su qualche aspetto, come semplice riflessione, senza aver la pretesa di “sviscerare” l’argomento.
L’economia si basa sul lavoro, finalizzato alla produzione di beni (e servizi) e sul consumo dei beni e dei servizi prodotti. L’equilibrio perfetto si ottiene quando tutti i soggetti coinvolti (le persone) hanno un’occupazione (cioè producono beni) e tutta la merce (o servizi) prodotta, viene consumata (in un lasso di tempo ragionevolmente breve).
Quando non vi è più richiesta di prodotti, ecco che inizia la recessione, la crisi. L’azienda che non produce deve (o vuole?) licenziare la forza lavoro in eccesso; questa forza lavoro si ritrova senza denaro per acquistare e consumare; le aziende che vendono si ritrovano meno consumatori … e quindi con meno domanda, e meno bisogno di produrre… E il ciclo continua; il solito gatto che si morde la coda.
Bene, oltre a questa fase, che può essere definita di “recessione” normale, da cui si esce dopo qualche anno (vedere “ciclo economico” http://it.wikipedia.org/wiki/Ciclo_economico), nel mondo, questa crisi è stata determinata dai famosi “sub-prime”, o meglio, da una crisi del settore creditizio bancario.
In sostanza si è prestato denaro, tanto denaro, facilmente, a soggetti che non potevano permettersi di ripagarlo. La forte presenza di denaro ( che ricordo, essere regolato dalle banche centrali mondiali, FED, BCE, Banca di Inghilterra, Banca del Giappone, e le banche nazionali asiatiche ) ha determinato un’impennata forte dei prezzi dell’investimento per eccellenza, gli immobili, le case.
Bene, esposti questi 2 fatti (e non opinioni) mi permetto di fare alcune considerazioni.
1. Una causa principale della scarsità di lavoro in Europa è dovuto principalmente alla forte delocalizzazione della manodopera dal proprio paese verso qualche “paradiso del lavoro” (per l’imprenditore)… Cina ed India in primis, quindi est europa.
Infatti, le stime economiche relative al Pil del 2010 per Cina ed India sono rispettivamente: +10% e +8%.
Cioè questi 2 colossi viaggiano a Pil a 2 cifre, cioè produrranno una “caterva” di beni, cioè… forte presenza di lavoro.
La delocalizzazione del lavoro dai nostri paesi verso quelli è dovuto alle seguenti cause:
a) Sia in Cina che in India la popolazione si è “livellata” in quanto ad istruzione e non solo. Molto del lavoro di concetto è stato delocalizzato li, perchè la popolazione ora, è istruita.
b) Ben più importante: un lavoratore cinese o indiano costa dai 100 ai 300 dollari al mese. Capirete dunque che un imprenditore non vede l’ora di andare a produrre la; la bilancia del ricavo – spese (compreso il costo per spedire la merce, di qua) sarà sempre positivo.
c) Nei paesi asiatici non si sono ancora “esportati” i diritti per il lavoratore. Molte volte un cinese o un indiano lavorano al limite dello schiavismo… creando un ovvia distorsione del mercato, della competitività delle aziende che non sfruttano etc.
2. Un’altra causa (ovvia) del calo dei consumi sui generi non di prima necessità, è ovviamente dovuto all’impennata del costo della vita di “base”. Dai generi di prima necessità, cibo etc, al costo degli immobili (affitti o vendita).
Bene, ora, senza voler rientrare in un discorso di “protezionismo”, il concetto di base è che finchè ci saranno paesi da “sfruttare”, finchè ci saranno valori “assoluti” differenti del costo della vita, finchè non si vigilerà in un certo qual modo sui prezzi, finchè esisteranno le speculazioni di qualsiasi sorta… finchè non si sistemeranno tutti questi problemi, i popoli, i poveracci (i manager no, ovviamente) passeranno attraverso queste crisi economiche.

domenica 7 novembre 2010

Funny moment...

Scena epica dal centesimo episodio!

CodingAce.it : uno StackOverflow all'italiana !


Tra i miei progetti dell'ultimo anno, quel che piu' mi ha appassionato è stato la realizzazione di una piattaforma stile l'ottimo StackOverflow.
Personalmente non mi sono mai piaciuti i forum tradizionali, o meglio, la modalità con cui vengono presentati. Li trovo dispersivi... c'è troppa roba sullo schermo, dopo un po' ti ci perdi, per non parlar poi del sistema gerarchico con cui vengono organizzati.
Per carità, sintatticamente è tutto corretto, ma c'è ben poco di usabile in tutto ciò ! ;)

E allora, rapito dall'idea di StackOverflow, ho deciso di copiarlo (ebbene si, diciamo le cose come stanno ;) ) nelle funzionalità ed è nato CodingAce.it.
L'obiettivo era ed è quello di creare un sito di "domande & risposte" rigorosamente in Italiano sullo sviluppo software.

Come sempre, mi scontro con il problema della pubblicità. O si è ben finanziati, oppure ci si affida alla speranza che Google ti indicizzi per bene, e ti porti visite ... "gratis".
Ad oggi, aihmè, sono fermo a meno di 10-15 visite al giorno.

Sdl.NET: sviluppare giochi in C#


Sdl.Net è un wrapper per C# (e Vb.Net) sulle Simple DirectMedia Layer (SDL), ossia un (a sua volta) layer cross platform verso le DirectX e OpenGL.
Questo significa che è possibile sviluppare un gioco e farlo girare su qualsiasi sistema desktop senza praticamente cambiare una virgola di codice.
Il mio primo gioco con questa libreria si chiama... TankAttack!

Posto qui un primo screenshot... che grafica stellare eh ? A me la Xbox mi fa una pippa... ;)