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

Tutorial Java: copiare un array/vettore in Java

Il vettore o array in informatica o matematica si può immaginare come una sorta di casellario, le cui caselle sono dette celle dell’array stesso, clicca qui per leggere l’intera voce su wikipedia.

Questo tutorial in Java mostrerà come usare il metodo System.arraycopy() per copiare un vettore/array in java. Il metoto System.arraycopy() permette di copiare un intero vettore oppure una parte di esso.

Naturalmente per copiare l’array, l’array di destinazione deve avere la stessa grandezza (lo stesso numero di caselle) dell’array sorgente.

Ecco un esempio con del codice Java:

String[] sorgente = { “gatto”, “cane”, “uccello” }; // Definisco l’array sorgente con 3 caselle di tipo stringa cioè variabili con del testo

String[] destinazione = new String[sorgente.length]; // Definisco l’array di destinazione vuoto e con lunghezza uguale all’array sorgente ricorda devono avere la stessa lunghezza sorgente e destinatario

System.arraycopy(sorgente , 0, destinazione , 0, sorgente.length); // Infine utilizzo il metodo System.arracopy dando come parametri l’array sorgente, la posizione in cui iniziare a copiare, l’array di destinazione, la posizione in cui devo mettere la copia e la lunghezza

Articolo correlato: java: convertire una variabile di tipo String in Date

Abbonati ai miei feed RSS: http://www.marcobruni.info/it/feed

Python: come trasformare la rubrica di thunderbird in un semplice elenco di indirizzi mail

Python è un linguaggio di programmazione ad alto livello interpretato, orientato agli oggetti, adatto, tra gli altri usi, per sviluppare applicazioni distribuite, scripting e computazione numerica.

Considero python un linguaggio di programmazione molto potente e versatile ed è per questo che l’ho usato per trasformare la rubrica degli indirizzi di posta elettronica di mozilla thunderbird in un elenco usabile in una newsletter.

Ecco il mio primo screencast del mio blog così puoi capire meglio di cosa parlo, cliccate sul bottone a forma di quadrato in basso a destra del video a sinistra del volume per vederlo a tutto schermo…Buona Visione e dimmi cosa ne pensi.

Get the Flash Player to see this content.

Codice:

 
from string import *

def findrev(stro,strf,pos):
    i = pos
    while stro[i]!=strf:
        i = i - 1
    return i

fn = open("rubrica.csv")
fm = open("NewsLetter.txt","w")

while 1:
    line = fn.readline()
    if not line:
            break
    else:
            posc = find(line,"@",0)
            posv1 = find(line,",",posc)
            posv = findrev(line,",",posc)

            fm.writelines(line[posv+1:posv1]+','+'\n')

pass # do something

fm.writelines("bruni.marco@gmail.com")
fm.close()
fn.close()

print "Finito, ho creato la NewsLetter"

Java: convertire una variabile di tipo String in Date

Da stamattina inizio una rubrica sulla programmazione sul linguaggio java.

Questo articolo mostra come convertire una variabile di tipo String rappresentante una data in un oggetto di tipo Date.

Per convertire una String rappresentante una data, useremo la classe SimpleDateFormat (java.text package). La classe SimpleDateFormat ci consentirà di specificare il formato della stringa che verrà convertito.

Per questo esempio, il formato usato sarà “dd/MM/yyyy”. Questo specifica 2 cifre per il giorno, 2 cifre per il mese e 4 cifre per l’anno. Clicca qui per la lista completa di tutti i tipi di formattazione della classe SimpleDateFormat.

Infinte per convertire la Stringa in Data passiamo la variabile Stringa al metodo parse() della Classe SimpleDateFormat. Questo metodo convertirà la Stringa in una Data fornita al costruttore di SimpleDateFormat.


import java.util.Date;
import java.text.SimpleDateFormat;
...

String dateStr = "30/05/2009";

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

Date date = dateFormat.parse(dateStr);

Ogni sabato mattina pubblicherò una nuova puntata della rubrica Programmare in Java.
Se non avete capito qualcosa oppure avete dei suggerimenti da fornirmi scrivetemi un commento.