Eclipse 3.7 (Indigo) è disponibile

In perfetto orario, L’Eclipse Foundation ha rilasciato Eclipse 3.7 (Indigo). In realtà, Indigo è una versione che contiene decine di progetti tra cui la piattaforma Eclipse, Java tool di sviluppo, strumenti di controllo del codice sorgente, GUI designers, e altro ancora. Questo è l’ottavo anno consecutivo in cui la comunità Eclipse rilasica una versione di Eclipse nei tempi previsti.

Statistiche di Indigo:

  • 62 team di progetto hanno partecipato
  • 46 milioni di righe di codice
  • 408 sviluppatori hanno contribuito al codice
  • 49 organizzazioni hanno collaborato al rilascio di questa versione
  • 10 pacchetti predefiniti che permettono semplice il download e l’uso

Indigo include importanti nuove funzionalità per gli sviluppatori Java, innovazioni nella tecnologia di modellazione, e avanzamenti nella tecnologia Eclipse runtime.

Le principali nuove funzionalità per gli sviluppatori Java:

  • EGit release 1.0 offre supporto di prima classe per gli sviluppatori Java con Git per la gestione del codice sorgente
  • WindowBuilder, una classe Eclipse-based GUI builder, è ora disponibile come progetto open source Eclipse.
  • Test automatizzati con GUI per le applicazioni Java e HTML incluse in Jubula.
  • m2eclipse crea stretta integrazione con Maven e lo spazio di lavoro Eclipse, consentendo agli sviluppatori di lavorare con progetti Maven direttamente da Eclipse.
  • Mylyn 3.6 supporta Hudson build monitoring direttamente dall’area di lavoro Eclipse.
  • Eclipse Marketplace Client supporta ora l’installazione drag and drop di soluzioni basate su Eclipse direttamente in Eclipse rendendo molto più facil installare nuove soluzioni.
  • Supporto preliminare per Java 7 (a breve).

Altri cambiamenti importanti della piattaforma:

  • Attuazione del prossimo OSGi R4.3 Core Specification.
  • Multi-touch.
  • Supporto per WebKit su tutte le piattaforme (Windows, Linux e OS X).
  • Numerosi miglioramenti a Cacao per OS X.

Indigo è disponibile per il download immediato dal www.eclipse.org/downloads . Oltre alla piattaforma Eclipse 3.7 di produzione, il rilascio Indigo include anche una anteprima della prossima generazione, versione 4.1, disponibile dalla pagina di download 4.x.

Per maggiori informazioni:

Eclipse Indigo – Nuovo e Degno di nota
I Numeri di Indigo
Eclipse Java 7 Beta istruzioni di installazione (attualmente non disponibile – Riprova più tardi)

Fonte: zdnet.com

6 Librerie Java per risparmiare tempo

1. Joda-Time :- una classe migliore di quella ufficiale Java date/time. Questa libreria permette di risolvere tutti i problemi dei dati date/time affrontato dallo sviluppatore java. http://joda-time.sourceforge.net/

2. Apache-Commons:- Un estensione delle funzionalità principali di Java. http://commons.apache.org/

  • BeanUtils:- Fornisce metodi per gestire i Beans. Ad esempio: BeanUtils.copyProperties (targetBean, sourceBean), per copiare i valori delle proprietà simili.
  • Lang :- Fornisce funzionalità extra per gestire le classi java.lang.ad esempio: StringUtils.isEmpty(str);

3. Google Guava :- Qualcosa di simile ad Apache Commons. http://code.google.com/p/guava-libraries/

4. Apache Lucene (http://lucene.apache.org/) : Un libreria che devi avere per l’indicizzazione. Aggiungi Lucene per velocizzare le ricerche. http://lucene.apache.org/java/docs/index.html

5. iText :- destinati alla trasformazione in formato PDF. http://www.itextpdf.com/

6. Apache POI :- destinati alla trasformazione vari formati di file come Word, foglio di calcolo, gli standard Open XML ecc.. http://poi.apache.org/

Fonte: http://semanticjava.wordpress.com

Biliardo fatto col nuovissimo HTML5

Agente 008 Ball è un gioco di biliardo di Pixel Lab in cui si gioca insieme all’agente 008 e avete il compito di impedire all’organizzazione terroristica GESSO di vincere il Torneo Internazionale di Biliardo.

Il gioco è stato commissionato da Microsoft come uno dei siti vetrina per il lancio di Internet Explorer 9 (in verità Google Chrome supporta html5 da almeno 1 anno), chiedendo a Pixel Lab un app che fosse stata come una applicazione nativa installata. Agente 008 Ball utilizza gli HTML5 Canvas e funzionalità audio e un motore fisico JavaScript per un risultato finale che si sente come qualcosa di scritto in Flash o per i desktop.

Occhio perché da dipendenza 🙂

Il Javaday cambia e diviene Codemotion: il 5 Marzo a Roma IO CI SARO’

Codemotion

Segnaliamo questo evento che è un occasione per studenti e non per approfondire tematiche legate all’ITC e poter presentare il proprio CV alle aziende sponsor dello stesso.

Per quattro anni il Javaday Roma ha offerto un evento unico in Italia per contenuti, affluenza e spirito. L’atmosfera trascinante del Javaday ha saputo conquistare e coinvolgere i partecipanti e gli sponsor. Per continuare ad essere la manifestazione di riferimento degli sviluppatori, il Javaday si evolve e diviene Codemotion.

Codemotion compie un grande salto rispetto al Javaday: apre a tutti i linguaggi e tecnologie, catalizzando ancora di più sorgenti di creatività e opportunità di lavoro. Infine, sposta l’attenzione da un prodotto (Java, a suo tempo di Sun, ora di Oracle) ad una disciplina: la programmazione, a vantaggio di tutti.

Il Codemotion si terrà a Roma il 5 marzo 2011. L’ingresso all’evento è come sempre gratuito.

Leggi tutto “Il Javaday cambia e diviene Codemotion: il 5 Marzo a Roma IO CI SARO’”

[Video] Impara a programmare in C#: 1 Lezione – Come Iniziare ?

Con questo ScreenCast che è una registrazione digitale dell’output dello schermo (Come uno screenshot è un’istantanea del monitor dell’utente, lo screencast è un insieme di fotogrammi, registrato in un video, di ciò che l’utente visualizza sul proprio monitor…Fonte: WikiPedia) inizia il corso per imparare a programmare in C#.

Pubblicherò ogni nuova lezione a metà settimana (con questa lezione sono andato lungo perchè ho avuto problemi tecnici di pubblicazione del video ed un virus intestinale che mi ha messo KO) in cui affronterò un passo per volta tutte le tappe per imparare a programmare in Visual Studio C#. Dopo il salto troverete i Video/ScreenCast della prima lezione.

Leggi tutto “[Video] Impara a programmare in C#: 1 Lezione – Come Iniziare ?”

Linux: rendiamolo più sicuro con il cacciatore di Rootkit

RootkitHunter

Rootkit Hunter è un applicazione per sistemi di tipo Unix (come Linux, FreeBSD) che esegue la scansione del sistema a caccia di rootkit , backdoor e possibili exploit locale.

Lo fa mettendo a confronto le firme hash SHA-1 dei files vitali con quelle dei software originali nei database online dei rispettivi progetti, ricerca di directory predefinite (di rootkit), di autorizzazioni non corrette, dati nascosti, stringhe sospette nei moduli del kernel e test specifici per Linux o FreeBSD. Nella maggior parte dei casi i rootkit si nascondono per tenere lontano l’attenzione dell’amministratore di sistema.

Leggi tutto “Linux: rendiamolo più sicuro con il cacciatore di Rootkit”

LINQ to SQL: Disegnare gli oggetti in C#, prima di creare il DB

Non sto dicendo che si dovrebbe eliminare la pianificazione del database dai documenti di progettazione di un nuovo applicativo. Niente affatto. La progettazione del database è una parte importante della processo di sviluppo e non dovrebbe mai essere trascurato, se necessario. Allo stesso tempo, a volte è più facile iniziare il processo di progettazione in un altro modo – la meno comune.

Dalla mia esperienza, nella progettazione di un database fin dall’inizio si dà una struttura piuttosto rigida. Dopo aver definito le tabelle e creato alcune stored procedure, gli sviluppatori iniziano a lavorare sulle loro applicazioni cercando di adattare l’applicazione alle condizioni esistenti del DB e spesso essi devono raggiungere compromessi perché una piccola modifica a una tabella di DB può rovinare tutta una catena di relazioni tra tabelle.

Leggi tutto “LINQ to SQL: Disegnare gli oggetti in C#, prima di creare il DB”

Come creare in PHP una tabella in un database MySQL

In questo articolo vedremo come in Php si può creare una tabella di un database MySQL. Prima affronteremo il file config.php in cui ci sono i parametri di connessione al server MySQL e la funzione di php per la connessione e poi affronteremo il file per la creazione della tabella, alla fine del post troverai lo zip con all’interno i 2 file php che puoi scaricare per fare tutte le prove che vuoi.

Leggi tutto “Come creare in PHP una tabella in un database MySQL”

[Sondaggio] Se dovessi imparare 3 linguaggi di programmazione quale sceglieresti?

Dopo circa 3 settimane il sito dzone.com ,che si occupa di programmazione e che frequento tutti i giorni, ha raccolto 2300 risposte per il suo sondaggio. Mi stupisce il fatto che Php sia solo al 9 posto con il 15% e invece colpisce il 3 posto di python che si prefigura sempre di più come il linguaggio di programmazione del futuro.

Io per fortuna sono messo bene perchè conosco e continuo a studiare parecchi di questi linguaggi come: Java, Python, C# e Php.

Ecco i risultati:

dzone.com risultato sondaggio scelta linguaggi di programmazione

Programmazione in Php: 7 funzioni che probabilmente non hai mai usato

Quando programmiamo in PHP, spesso ci limitiamo ad un numero limitato di funzioni API: quelli comuni, come il print (), header (), definire (), isset (), htmlspecialchars (), ecc Se alcune funzionalità necessarie non esistono, spesso ne scriviamo delle nuove facendo uso di questi componenti di base che conosciamo. Le API di PHP in realtà offrono un sacco di funzionalità, alcune inutili e qualcuna utile, che vengono usate raramente. Ho cercato tra le funzioni disponibili e mi sono interessato a trovarne qualcuna di cui davvero ho bisogno. Ecco, condivido con voi le mie scoperte.

1. sys_getloadavg ()
sys_getloadvg () è una funzione che restituisce tre misure del “carico” su un sistema. Il carico è il numero di processi in coda di esecuzione del sistema. I 3 elementi della matrice sono il carico medio per gli ultimi 1, 5 e 15 minuti.

$carico = sys_getloadavg(),
se ($carico[0] > 80) {
    header('HTTP/1.1 503 Troppo occupato, riprovare più tardi');
    die('Il server è occupato più tardi. Riprova.');
}

Piuttosto che avere il servizio Web non più disponibile (offline) semplicemente perché è crollato tutto dopo aver ricevute troppe richieste, questo codice permetterà in maniera preventiva di accettare alcune richieste e di negarsi ad altre. Questo codice però non funziona su Windows.

2. cal_days_in_month ()
cal_days_in_month () restituisce il numero di giorni in un dato mese:

$giorni = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y")); / / 31
echo($giorni - data("d") + 1 )."giorni fino a quando".date("F", mktime(0, 0, 0, data("m") + 1, 1, 1970));

3. get_browser ()
Non sarebbe bello scoprire che cosa può fare il browser di un utente prima di inviare la pagina? Beh, si può con get_browser (). Avrete bisogno di php_browscap.ini prima, e il punto di direttiva browscap al file. Si potrebbe avere qualcosa di simile a questa:

$browser = get_browser(null, true);
if(!$browser["frames"] | | !$ browser["cookies"])
      echo "Si prega di aggiornare il browser o usare un browser più moderno ed attivare i cookies perchè alcune sezioni di questo sito potrebbero essere inaccessibili";

Questo non è in grado di rilevare le singole configurazioni di browser, tuttavia, non può essere utilizzato per rilevare se è abilitato JavaScript, per esempio. Questa funzione può essere utile per sapere quale browser si usa e quale piattaforma viene utilizzata.

4. debug_print_backtrace ()
Può essere molto difficile da rintracciare un errore nel codice in particolare quando si cerca un errore logico, invece grazie a debug_print_backtrace() potrebbe essere molto più facile. Come ad esempio:

$a = 0; 

function iterate() 
{ 
      global $a; 
      if( $a < 10 ) recur(); 
      echo $a.", "; 
} 

function recur() 
{ 
     global $a; 
     $a++; 
     // how did I get here? 
     echo " \n \n \n "; 
    debug_print_backtrace(); 
    if ( $a < 10 ) iterate (); 
}   

iterate (); 
# OUTPUT: #0 recur() called at [C:\htdocs\php_stuff\index.php:8] #1 iterate() called at [C:\htdocs\php_stuff\index.php:25] #0 recur() called at [C:\htdocs\php_stuff\index.php:8] #1 iterate() called at [C:\htdocs\php_stuff\index.php:21] #2 recur() called at [C:\htdocs\php_stuff\index.php:8] #3 iterate() called at [C:\htdocs\php_stuff\index.php:25] #0 recur() called at [C:\htdocs\php_stuff\index.php:8] #1 iterate() called at [C:\htdocs\php_stuff\index.php:21] #2 recur() called at [C:\htdocs\php_stuff\index.php:8] #3 iterate() called at [C:\htdocs\php_stuff\index.php:21] #4 recur() called at [C:\htdocs\php_stuff\index.php:8] #5 iterate() called at [C:\htdocs\php_stuff\index.php:25] [ ... ]

5. natsort()
natsort() è una funzione che ordina elementi di una matrice in maniera naturale (cioè, in un ordine che sembra logico a una persona), piuttosto che un ordine di tipo alfabetico. Prendete, per esempio:

$items = array("100 mele", "5 mele", "110 mele", "55 mele");
 
/ / normale ordinamento:
sort($items);
print_r($items);

# Il risultato:
Array #
# (
# [0] => 100 mele
# [1] => 110 mele
# [2] => 5 mele
# [3] => 55 mele
#)

natsort($items);
print_r($items);

# Il risultato:
# Array
# (
# [2] => 5 mele
# [3] => 55 mele
# [0] => 100 mele
# [1] => 110 mele
#)

6. Levenshtein()
Levenshtein() è una funzione che aiuta a trovare la miglior somiglianza tra 2 parole. Prendiamo, per esempio, il codice seguente:

$dictionary = array( "php" , "javascript" , "css" ); 
$word = "japhp"; 
$best_match = $dictionary[0]; 
$match_value = levenshtein ($dictionary[0] , $word); 

foreach($dictionary as $w) 
{ 
     $value = levenshtein($word , $w); 
     if( $value < $match_value) 
     { 
          $best_match = $w; 
          $match_value = $value; 
     } 
} 

echo "Forse cercavi la categoria ' $best_match ' ?";

In questo caso, l'utente è stato chiesto di fornire un nome di categoria. Ha scritto "japhp", che non è valido. Poiché questo è probabile che sia un errore di digitazione, grazie a questa funzione riusciamo a trovare la categoria più somigliante ("Forse cercavi categoria 'php'?").

7. glob()
glob() , vi farà sentire stupidi dopo l'uso di opendir(), readdir() e closedir() per cercare un file. La procedura è semplicissima:

foreach (glob("*. php") as $file)
    echo "$ file\ n";

Di Più?
Ci sono un sacco di funzioni utili e sconosciute là fuori come http_build_query(), register_shutdown_function() e pspell_suggest, quali sono le vostre preferite?

Fonte: infinity-infinity.com

Visual Studio.NET e C#: come gestire le eccezioni e il numero di riga dell’errore

Le funzionalità di gestione delle eccezioni del linguaggio C# consentono di gestire situazioni impreviste o eccezionali che si verificano durante l’esecuzione di un programma. Nella gestione delle eccezioni vengono utilizzate le parole chiave try, catch e finally per tentare di eseguire azioni che potrebbero non riuscire, per gestire gli errori e per pulire successivamente le risorse. Le eccezioni possono essere generate da Common Language Runtime (CLR), da librerie di terze parti o dal codice dell’applicazione mediante la parola chiave throw.

In questo esempio un metodo verifica la presenza di una divisione per zero e rileva l’errore. Senza la gestione delle eccezioni, il programma verrebbe chiuso con un errore simile al seguente: DivideByZeroException non è stata gestita.

int DivisioneSicura(int x, int y)
{
    try
    {
        return (x / y);
    }
    catch (System.DivideByZeroException dbz)
    {
        System.Console.WriteLine("Attenzione divisione per zero!!!");
        
        // Stampo il messaggio di errore
        System.Console.WriteLine(dbz.Message);

        // Stampo il numero di riga del sorgente dove si trova l'errore
        System.Console.WriteLine(dbz.StackTrace);

        return 0;
    }
}

Cenni preliminari sulle eccezioni

Le eccezioni dispongono delle seguenti proprietà:

  • Quando nell’applicazione si verifica una circostanza eccezionale, ad esempio una divisione per zero o un problema di memoria insufficiente, viene generata un’eccezione.
  • Utilizzare un blocco try intorno alle istruzioni che potrebbero generare eccezioni.
  • Quando si verifica un’eccezione all’interno del blocco try, il flusso di controllo passa immediatamente a un gestore eccezioni associato, se presente.
  • Se per una determinata eccezione non sono presenti gestori, l’esecuzione del programma verrà interrotta con un messaggio di errore.
  • Se un blocco catch definisce una variabile dell’eccezione, è possibile utilizzarlo per ottenere ulteriori informazioni sul tipo di eccezione che si è verificata.
  • Le azioni che possono generare un’eccezione vengono eseguite con la parola chiave try.
  • Un gestore eccezioni è un blocco di codice che viene eseguito quando si verifica un’eccezione. Per la definizione di un gestore eccezioni, in C# viene utilizzata la parola chiave catch.
  • Le eccezioni possono essere generate in modo esplicito da un programma mediante la parola chiave throw.
  • Gli oggetti eccezione contengono informazioni dettagliate sull’errore, tra cui lo stato dello stack di chiamate e una descrizione dell’errore, quindi per stampare la descrizione dell’errore uso l’istruzione System.Console.WriteLine(dbz.Message); infine per stampare il numero di riga dove si trova l’errore System.Console.WriteLine(dbz.StackTrace);

Fonte: msdn.microsoft.com