NetBeans 6.5, per tutti voi

Java, Open Source

In quest’ultimo anno la Sun ha preso seriamente a cuore le necessità di noi poveri sviluppatori che ci barcameniamo senza un attimo di pace tra tanti IDE e altrettanti sistemi operativi, senza mai concederci quella tranquillità d’animo di sviluppare in un unico ambiente. Le versioni di NetBeans si sono succedute a ritmo davvero incalzante, regalandoci dapprima Matisse, ossia l’estensione di NetBeans per sviluppare applicazioni Java per i nostri Desktop, in grado, più o meno, di competere con gli editor di Microsoft e Borland. Poi hanno arricchito l’ambiente per supportare altri linguaggi: e così ora anche Ruby, Groovy, Javascript, Python, PHP, C/C++, oltre che Java, cosi come altri tool di gestione di Database, source control, Profiler e così via trovano tutti posto nell’unica applicazione che prende il nome di NetBeans.

Il merito di questa escalation è da attribuire alla Rich Client Platform su cui si basa NetBeans stesso: ossia un’infrastruttura di servizi e librerie, ottimamente bilanciate per consentirvi di scrivere le vostre applicazioni in modo organizzato e con moduli separati ma ben collegati tra di loro. E NetBeans ci viene incontro in questo sviluppo consentendo di creare lo scheletro di un’applicazione, ma anche di uno dei suoi moduli (eventualmente utilizzabili dentro NetBeans stesso) con dei facili wizard.

L’impareggiabile GeertJan Wielenga, sul suo ottimo blog, ci illustra molti dei segreti della NetBeans RCP e come essa possa essere sfruttata anche per integrare tool Java già esistenti all’interno di NetBeans o in uno dei suoi moduli. Inoltre su DZone, ha pubblicato una serie di video in cui spiega l’architettura RCP con dei facili esempi (vi consiglio, laddove disponibile, il link alla versione originale, con video di dimensioni maggiori e, quindi, più facili da seguire).

In conclusione, un’ottima opportunità di dare uno sguardo a questa validissima alternativa ad Eclipse. E poi è Open Source!

Zac

No Comments

Gaaahhh…altro che maritozzi

VideoGames

La notizia non è di primo pelo, ma ho aspettato a darvela perché non mi chiamo Steve Jobs e quindi non mi piace torturarvi con attese spasmodiche, ne tantomeno sono un giornalista che deve battere sul tempo altre testate giornalistiche o stimolare l’hype sotto pagamento.

Si tratta di un’ennesima idea geniale e succulenta che John Carmack e soci hanno tirato fuori dal cilindro: Quake Live. Nessuna novità nelle modalità di gioco, nessuna grafica particolarmente sofisticata ma….ma si gioca in un browser, senza bisogno, spero, di molto altro se non quel filo di sete di sangue virtuale che scorre nei palati dei veri blasterizzatori.

Quindi affilate i pulsanti del vostro mouse, lucidate i tasti WASD della vostra tastiera che ha breve torneremo a gioire col nostro bravo BFG9000 in mano e soprattutto iscrivetevi al beta program per essere tra i primi ad impugnare le armi in questa nuova, colossale arena (scusate l’entusiasmo ma l’idea è davvero avvincente)!

Sappiamo tutti che la pausa pranzo è fatta per la blasterizzatina quotidiana e per cause di forza maggiore avevo mestamente sostituito con gli “Aggiornamenti in tempo reale” di facebook…ma non c’è davvero storia. Le “due da 10″ stanno per tornare BD…preparatevi a sentir dire che “Mi basta un pixel has taken the lead”!


Zac

No Comments

Dynamic, Dynamic, Dynamic

.Net

Riprendo alcune informazioni diffuse attraverso i talk del PDC2008 che la Microsoft ha furbescamente distribuito gratuitamente al popolo di internet. Ho trovato molto interessanti quelli relativi alla programmazione dinamica in C#4 (che debutterà ufficialmente nel 2010 ma che è disponibile in CTP - come immagine Virtual PC - già adesso) ma sono rimasto deluso per non aver trovato (almeno, io non l’ho ancora trovato) il giusto approfondimento sui costrutti per la programmazione parallela.

Per quelli che avessero difficoltà a seguirmi riepilogo brevemente gli argomenti di cui sto parlando:

  • Programmazione dinamica: si tratta di un costrutto con cui possiamo dichiarare una variabile di tipo dynamic: fatto questo possiamo chiamare metodi e attributi di questa variabile anche se a compile-time questi non erano presenti;
  • Programmazione parallela: il nuovo C# introdurrà dei costrutti per semplificare la scrittura di algoritmi paralleli.

Sulla programmazione dinamica, nel talk di Jim Hugunin (TL10) ed in quello del mitico Anders Hejlsberg (TL16), si è fatto la dovuta distinzione che un oggetto dynamic non è un object ma una variabile su cui si possono effettuare chiamate di tipo dinamico su cui, cioè, il compilatore non effettuerà controlli sull’esistenza di metodi e attributi. Il tutto può essere utile laddove vogliamo avere la massima flessibilità nel funzionamento delle nostre classi: metodi ed attributi possono essere creati e chiamati dinamicamente in funzione di input esterni al software ed adattarsi in funzione di queste esigenze.

Per far questo possiamo utilizzare diverse strade. La più semplice è quella di poter accedere a variabili dinamiche richiamando i loro metodi senza passare dai metodi Invoke (che voi che smanazzate con la reflection conoscete a memoria).

La seconda è quella di crearsi una classe derivata da IDynamicObject che consente l’aggiunta di metodi ed attributi a run-time. Il tutto viene ottenuto sovrascrivendo i metodi GetMember, SetMember ed InvokeMember:

  • GetMember: indicherà cosa fare quando richiediamo un membro di una classe (che ovviamente potrebbe non esistere);
  • SetMember: indicherà cosa fare quando aggiungiamo un membro ad una classe;
  • InvokeMember: indicherà cosa fare quando richiamiamo un membro con un certo set di parametri.

Quindi, in realtà il dinamismo visto nelle presentazioni, è leggermente meno flessibile di quello visto in Python o in Ruby in cui, qualsiasi object è anche dynamic. Qui si è fatto il tentativo di portare il dinamismo all’interno di un linguaggio essenzialmente statico senza stravolgerne l’architettura. In realtà anche così il sistema offre le stesse potenzialità all’utente ma, soprattutto, consente una migliore integrazione con IronPython ed IronRuby che, a partire da questo PDC diventano fratelli di latte con C#, Visual Basic e C++. Ora classi python, ruby e .net vengono eseguite nello stesso spazio e, quindi, accedono le une alle altre senza alcun limite.

Supponiamo di avere il seguente file Calculator.py

def GetCalculator():
    return Calculator()
	
class Calculator(object):
    def Add(self,x,y)
        return x+y

ed ora scriviamo il nostro codice C#:

using System;
using IronPython.Hosting;
	
class Program
{
    static void Main(string[] args)
    {
        dynamic python = Python.CreateRuntime().UseFile("Calculator.py");
        dynamic calc = python.GetCalculator();
        calc.Add(100,5);
    }
}

L’esempio ci fa capire che l’embedding ora avviene in modo molto semplice rispetto a prima ed il suo utilizzo risultà molto più intuitivo ed efficace.
Il sistema di chiamate dinamiche consentirà inoltre di avere un dialogo più immediato con i Web Service (un pò come vedemmo in Groovy tempo fa): avendo una variabile di tipo dynamic che punta all’istanza di un web service, potremo chiamare un suo metodo senza costrutti strani ma semplicemente considerando la variabile come istanza di un oggetto che quei metodi ce li ha già.
Vedremo cosa sapremo tirar fuori da C# con queste nuove possibilità.

Zac

No Comments

Mono e PDC2008

.Net, Mono

La scorsa settimana si è tenuta a Los Angeles la Professional Developer Conference di Microsoft, conferenza dedicata interamente ai tool di sviluppo per Windows o di tecnologie ad esso riconducibili. Una delle novità è stata la presenza di Miguel de Icaza che ha tenuto una presentazione sullo “Stato della Nazione” di Mono e dei progetti ad esso affini.

La novità è di rilievo se si pensa che Mono è il presunto cavallo di troia all’interno dei nostri PC con GNU/Linux installato sopra, ma anche che Microsoft presenta al suo pubblico di sviluppatori un progetto Open Source che rende libero ed accessibile il codice relativo a .Net e potenzialmente li spinge pensare alle loro applicazioni anche su sistemi non-Windows come Linux e Mac OS X. Tenuto conto che Mono è ormai compatibile al 100% con le WinForms 2.0 e con LinQ e che presenta dei tool che .Net ancora non ha, il keynote di Miguel è stato un fatto che mi ha piacevolmente sorpreso.

Tra le novità presentate in questo keynote citiamo:

  • Mono è l’ambiente di riferimento per chi voglia portare applicazioni .Net su piattaforme non Windows
  • Mono supporta pienamente i maggiori standard legati a .Net
  • Mono è calibrato per essere portato anche su dispotivi embedded (Console come Wii e iPhone ad esempio) e a tale scopo si può sfruttare l’ottimo Mono Linker che consente di estrarre da librerie esistenti solo il minimo indispensabile per quello che ci serve, senza portarci appresso codice inutile
  • Mono ora supporta una procedura di SIMD (Single Instruction Multiple Data) che consente di velocizzare di molto i calcoli matriciali e, di fatto, rende Mono adatto anche per lo sviluppo di video games
  • per la prima volta si introduce gsharp, una shell per C# che, al pari di quelle esistenti per Python e Ruby, consente di eseguire codice .Net al volo con tanto di output grafico. Ha inoltre la capacità di agganciarsi ad un processo Mono in esecuzione e di variarne il comportamento a Run-Time
  • non ci ho capito molto ma mi è sembrato di capire che ora Mono presenta anche un compilatore AOT: non vorrei sbagliare ma, al pari dell’analogo per Java non presenta una migliore efficienza nell’esecuzione del codice
  • viene introdotto il Mono Debugger, che fino ad ora mancava all’intera suite.

Le novità sono davvero tante e, per quanto gli “You Know” di Miguel non diventeranno mai famosi come le triplette di un certo Steve o come gli “huuuge” di un altro Steve, vale la pena guardare anche il video (wmv) del keynote per imparare a conoscere un personaggio che già fa, e in futuro lo farà ancora di più, parlare di se.

Al solito non vedo di buon occhio il fatto che Mig indichi Visual Studio come ambiente di sviluppo per Mono e ancor meno capisco la necessità di scrivere MonoDevelop quando si poteva scrivere un plugin per Eclipse/Netbeans. Ma fino a che le buone idee dietro la piattaforma .Net si diffonderanno come Open Source ben venga Miguel e tutto il suo entourage, ma state attenti che la Microsoft è sempre in agguato dietro le sue spalle ed il rischio di avere un Linux che gira alla velocità di Windows Vista è qualcosa da evitare come la peste.

Zac

No Comments

Passate all’azione! Scaricate OpenOffice 3.0

Open Source

Non perché ve lo dico, ma al più perché ve lo sto ricordando. Una comunità che lavora con sforzi senza pari ha portato ad una versione che presenta moltissime novità, tra cui anche un porting nativo per Mac OS X (ancora non tradotta in italiano).

I server sono, ovviamente, sovraffolati ma voi non lasciatevi intimorire. Andate sul sito http://www.openoffice.org/, scaricate la vostra copia gratuita di OpenOffice 3, installatelo e godetene. Inoltre vi consiglio di copiarlo su una pennina e di portarlo ai vostri amici. Diamo un segno che non siamo utenti che si bevono tutte le banfe di Microsoft e facciamo capire che vogliamo che i nostri documenti siamo fruibili senza dover pagare un’ingiusta tassa ad una multinazionale americana.

Augh…Io ho parlato.

Zac

No Comments

Java ti presento Antlr, Antlr questo è Java

Java

Poche righe per descrivervi un’interessante progetto di cui vengo a conoscenza solo adesso. Per quanto Java sia ormai un prodotto Open Source, un gruppo di volenterosi ha implementato la grammatica del linguaggio Java (versione 1.5) per l’ormai arcinoto lexer Antlr (di cui abbiamo parlato qualche volta su KIT). Il tutto porta a crearsi, con questa piattaforma, il proprio compilatore Java.

Perché tutto questo spreco di tempo? Semplicemente perché Antlr è uno dei lexer più diffusi e semplici da utilizzare e, come tale, può essere comodo utilizzare la JavaC Grammar per testare nuove funzionalità da inserire in Java, senza mettere mani al codice sorgente di OpenJDK (per ora il codice compilato ha prestazioni inferiori a quelle di javac). Vedendo i tempi biblici con cui Java si aggiorna rispetto ai nuovi linguaggi, potrebbe essere davvero utile la diffusione di questa grammatica

Zac

No Comments

Scartato per voi il nuovo Samsung Omnia

Creative Corner

Un video vale più di mille parole…ma scordatevi il minimalismo di quell’antiquato iPhone, che per giocare a Monkey Island con la ScummVM lo dovete sproteggere. Il Samsung Omnia è un vero cellulare all-in-one e lo si capisce già dall’unboxing :D


2 Comments

Oktapodi

Creative Corner

Divertente questo video realizzato in grafica 3D e con una atmosfera davvero originale

No Comments

Buon Compleanno The Games Machine!!!

Eventi

Tanti auguri per i tuoi 20 anni da uno dei tuoi fan accaniti, cresciuto, informaticamente parlando, con voi, ZZap!, K, MC Microcomputer. E’ incredibile pensare che tante generazioni, da 20 anni a questa parte, vi seguono affezionati e che voi stessi, nonostante siate cresciuti, abbiate mantenuto la passione ed i numeri laddove molti altri (i nomi su citati) siano periti molto prima. Ma la qualità del vostro lavoro (e di quello degli altri) rimane anche nei ricordi accorati dei molti fans.

Non posso non ricordarvi con un video che ha fatto la storia della rivista e ricordando che, quando YouTube non c’era, ci allietavamo con la cartella “Facce da TGM” del Silver Disk.


Zac

P.S.: ma davvero dalle vostre parti circolavano gli MP3 dei GBOP?

2 Comments

Per me deve mancare?

Idee, WEB 2.0

Tutto il web ne parla, addirittura i TG ne parlavano contemporaneamente al web…Google Chrome è la prima delle novità di questo 09/08 (Vedremo Apple e Microsoft cosa risponderanno sui loro rispettivi territori).

Ve ne parlo illustrando la mia umile opinione in merito, ma vi dico già da ora che non l’ho provato e non lo proverò (per ora). La vespa che mi ronza in testa è ovviamente la domanda del millennio: perché Google ha realizzato un suo browser? Sponsorizza Firefox, finanzia Firefox ed ora gli fa uno sgambetto del genere?

Penso di capire il perché, dopo aver analizzato il fumetto che lo riguarda; dal fumetto si evince che i punti chiave del browser sono stabilità, velocità e sicurezza. Tra le novità c’è inoltre la virtual machine in grado di far girare codice virtuale a partire da JavaScript. Nella mia mente, lo scenario che ho intravisto è quello che Google non ha intenzione di dominare il settore del web browsing nella sua totalità ma, soprattutto, quello delle (chiamiamole così) Desktop Web Application (meglio note come RIA, fino ad ora). Per la navigazione sul web a Chrome mancano tutti i gingilli a cui il Panda Rosso ci ha abituato inoltre, la scusa di rendere più sicure le web application attraverso la suddivisione in processi del browser, non mi ha convinto più di tanto. Ma se la suddivisione in processi la vediamo come feature necessaria a portare le web applications sul Desktop, ed eseguirle in tutta stabilità, tutto sembra più chiaro e coerente. Ed in effetti nei video si vede che è possibile salvare un link di una pagina web per riaprirlo successivamente come se fosse un’applicazione classica.

Questo gioverà non solo a Google, che delle RIA ha fatto uno dei suoi cavalli di battaglia, ma porterà molti sviluppatori a consigliare Chrome per eseguire le loro Web Application in funzione di una maggiore velocità di esecuzione del codice. In breve tutte le RIA potrebbero girare su un browser marchiato Google a tutto vantaggio della consolidazione di un marchio leader nel web.

Ed ora passiamo a V8. Inserire una VM nel browser aprirà la strada ad altri linguaggi all’interno del browser. Per ora abbiamo solo JavaScript ma in futuro nulla vieterà a Google di inserire altri linguaggi (Python su tutti) e di aggiungere altre librerie a supporto degli sviluppatori (sulla scia di Google Gears). Se Google facesse una mossa del genere, ovviamente si attirerebbe le ire del W3C e degli altri produttori di browser visto che, utilizzare un linguaggio di scripting diverso da JS, renderebbe il sito compatibile solo con Chrome; ma visto che il codice di Chrome è open source, Google potrebbe tranquillamente rispondere di prenderlo così com’è ed utilizzarlo.
Tenuto conto delle ultime tendenze in fatto di framework (flex ed air, java e javafx, internet explorer e silverlight) non stupirebbe se Google proponesse la sua G-Way di fare applicazioni web.

Come al solito, attendiamo ulteriori sviluppi.

Zac

3 Comments
« Older Posts
Newer Posts »


  • Google Adsense

  • MiniBlog

    Banner Javaday Roma III Edizione >>

    Adobe ha appena sfornato il Flash player nella versione 10, stavolta anche per Linux da subito! Incredibile >>

    When the source code to Quake was leaked and circulated among the Quake community underground in 1996, a programmer unaffiliated with id Software used it to port Quake to Linux, and subsequently sent the patches to Carmack. Instead of pursuing legal action, id Software, at Carmack’s behest, used the patches as the foundation for a company-sanctioned Linux port. id Software has since publicly released the source code to Quake, Quake 2 and most recently Quake 3, all under the GNU General Public License (GPL). >>

    Ganymede Donate, please ;) >>

    Download Day 2008 >>

    Scusa Ameri, Sun s’è comprata MySQL e Oracle s’è pappata BEA. >>

    Chi ha bisogno di un Mac quando con Linux abbiamo Compiz, Open Office, Inkscape, Scribus, Eclipse, Tracker, ed ora anche una Time Machine per recuperare al volo vecchi backup? Per ora manca lo sberluccichio di casa Apple ma il funzionamento è analogo: si chiama FlyBack! >>

    Giusto per ricordarvi che una delle distribuzioni Linux più diffuse sta per raggiungere le nostre scrivanie :D

    >>

    Anche se me ne vergogno come un ladro non posso esimermi dal pubblico ludibrio consentendovi di ritrovare tracce di me nella storia di Internet: era il 6 Ottobre 1995 ed il 4 Novembre 1995. E come non ricordare la mia prima Home Page>>

    Assegnati gli Ig Nobel per la ricerca improbabile qui e, appena possibile, qui. >>

  • Categories