Archivi compressi autoestraenti in Windows

Esiste un’interessante utility nascosta in Windows Vista (ma funziona anche su Xp) che consente di creare archivi compressi autoestraenti senza bisogno di utilizzare alcun programma esterno, un piccolo programmino in inglese, chiamato IExpress, che può sempre tornare utile.

Vediamo adesso come avviarlo e come usarlo in pochissimi passaggi:

  • Per prima cosa è necessario avviare la finestra Esegui premendo contemporaneamente i tasti Win+R, quindi digitare il comando iexpress;
  • si aprirà la finestra iniziale del programma che ci chiederà se vogliamo creare un nuovo file autoestraente o se aprire un file già esistente. Selezioniamo la prima opzione e confermiamo per andare alla successiva schermata ci propone tre opzioni tra le quali scegliere il tipo di file da creare;

In arrivo il Java Store: Vector

Dal blog ufficiale il Ceo di Sun annuncia in anteprima gli obiettivi del progetto nome in codice Vector: realizzare un App Store per mettere in contatto gli infiniti programmatori Java con il pubblico ancora più vasto degli utenti. Il modello di Apple applicato su scala infinitamente più grande e per gli applicativi su desktop.
Ha tutte le carte in regola per diventare l’App Store definitivo, il negozio online più vasto e in grado di coinvolgere un numero esteso di programmatori, per non parlare di un pubblico potenziale di oltre 1 miliardo di utenti, questa la popolazione stimata. Si tratta del progetto con il nome in codiceVector, rivelato direttamente da Jonathan Schwartz in un post sul blog ufficiale di Sun.

Nel corposo messaggio il Ceo della società svela in anteprima i piani in corso di sviluppo: creare un mercato online sullo stile di App Store che permetterà agli infiniti programmatori Java di pubblicare i loro software e di raggiungere in un colpo solo un mercato potenziale stimato in oltre un miliardo di utenti. Come gli “altri” app store esistenti anche Sun vaglierà i programmi che potranno essere ammessi alla vendita o alla distribuzione gratuita, ancora Sun richiederà una percentuale per la gestione della distribuzione. Pur non riportando mai direttamente il nome App Store il Ceo di Sun si riferisce in più punti allo store di Apple, sottolineando il grande divario nelle dimensioni tra la realtà di Cupertino e il progetto in corso di Sun. Milioni o al massimo decine di milioni di utenti per il negozio della Mela, oltre un miliardo di utenti per Java.

Il progetto Vector sarà molto probabilmente rinominato Java Store e, sottolinea Scwhartz, non si rivolgerà alla nicchia mobile del mondo IT bensì ad applicativi scritti in uno dei linguaggi più diffusi e utilizzati dagli sviluppatori e per software che funzioneranno su computer. E’ molto probabile che presto sentiremo ancora parlare di Vector o meglio di Java Store: JavaOne, la conferenza più importante del mondo Java inizia i lavori il primo di giugno.
Il progetto Vector di Sun: presto in arrivo il Java Store

Wolfram Alpha è online

E’ online da oggi Wolfram Alpha, il motore di ricerca che promette di rivoluzionare il Web e di dare battaglia ai big del settore come Google, Yahoo! e Microsoft.

Il motore, ideato dal matematico Stephen Wolfram, unisce, grazie a un algoritmo, il linguaggio naturale con quello informatico per visualizzare i link pertinenti in risposta alle richieste degli utenti.

La novita’ sta nell’utilizzo della semantica applicata alle macchine al fine di creare codici comunicativi simili a quelli umani che rendano la Rete capace di comprendere il significato delle ”interrogazioni” fatte online.

Ma è davvero così potente? Andiamo a conoscerlo meglio.

Wolfram|Alpha, un’anteprima per lo sviluppatore – Programmazione.it

Per quanto riguarda la programmazione, esistono due tipi di funzioni, le Query API e le Data API; le seconde sono però menzionate solo nell’ultima pagina e vengono usate solo su insiemi di dati altamente specifici.

Le Query API constano di due funzioni: query e parse. Un esempio della prima è il seguente: se vogliamo informazioni statistiche riguardanti la città di Chicago, la chiamata RESTful userà il seguente suffisso:

http://api.wolframalpha.com/v1/query?input=chicago&appid=myappid

che restituirà dati XML-tagged, senza dettagli di presentazione. Per avere formattazioni HTML e JavaSscript bisognerà usare

http://api.wolframalpha.com/v1/query?input=chicago&output=html&appid=myappid

Le query possono avere circa 10 parametri in ingresso, tra i quali timelimit (tempo di attesa per i risultati), allowedcached (permesso di prelevare i dati dalla cache), async (utile per le pagine dinamiche in stile AJAX). I risultati sono impaccati nel tag queryresult, contenente svariati attributi. La funzione parse esegue un esame preliminare, per determinare se Wolfram|Alpha può conferire senso a un determinato input, evitando così l’analisi dettagliata, che impiega più tempo.

Le novità di Java Micro Edition SDK 3.0

Gli strumenti di sviluppo per l’edizione Micro di Java arrivano a una nuova versione, che sostituisce il Java Wireless Toolkit 2.5.2, a sua volta comprensivo anche di Java Toolkit 1.0 per CDC. Il nuovo toolbox per applicazioni mobili integra, come da tradizione, le tecnologie CLDC (Connected Device Limited Configuration) e CDC (Connected Device Configuration), dispositivi con capacità di calcolo superiore e più memoria rispetto ai dispositivi mobili tradizionali, di cui si occupano invece le specifiche CLDC, e questa volta anche Blu-ray Disc Java (BD-J), cercando così di andare incontro a sviluppi futuri.

Come già accadeva in precedenza, gli strumenti di sviluppo possono funzionare in modo autonomo, essendo dotati di ambiente di sviluppo ed emulatore integrati insieme ad alcune utilità, oppure all’interno di altri ambienti, primo fra tutti NetBeans. Tra le novità messe in risalto dal sito dedicato a Java Mobile troviamo l’integrazione con Windows Mobile, semplificazione di debug e deploy on-device, profiler basato su quello di NetBeans, integrazione con Lightweight UI Toolkit (LWUIT), database integrato per la ricerca di dispositivi ed emulatore JavaFX integrato.

I requisiti di sistema non sono inarrivabili: per quanto riguarda l’hardware servono circa 350 MB di spazio su disco, 1 GB di memoria RAM e processore Pentium da 1 GHz, mentre i sistemi operativi supportati sono soltanto due, Windows XP e Windows Vista, a 32 bit, da aggiornare con i rispettivi service pack. Dev’essere installato il JDK versione 6, mentre possono servire eventualmente un player Blu-ray per lo sviluppo di applicazioni BD-J, e ActiveSync 4.5 per Windows per il debug sul dispositivo Windows Mobile.

Punto di partenza obbligato per il download è la relativa pagina del sito ufficiale Sun Microsystems; il processo di installazione è molto semplice, mentre esiste una guida in formato PDF per illustrare l’integrazione tra Java ME e i dispositivi Windows Mobile.

Java Micro Edition SDK 3.0, le principali novità

Star Droid, una nuova applicazione Google per iPhone

Google si sta preparando a lanciare una nuova applicazione per iPhone ed Android chiamata Star Droid. Sarà sicuramente d’aiuto agli astronomi o agli amatori delle stelle e dei pianeti.

L’applicazione utilizzerà il GPS per mostrare la corrispondente mappa nel cielo e dello spazio. Tutte le stelle ed i pianeti saranno taggati in maniera tale da riconoscerli velocemente e muoverci con più facilità. Il risultato di questo nuovo progetto può essere considerato come una sorta di fusione tra i servizi Google Sky, Google Earth e Google Street View. Non sono disponibili altri dettagli. Il lancio su AppStore è previsto in queste settimane.

Star Droid: La prossima applicazione di Google

Star Droid, ancora Google su iPhone

Aggiornata la codifica UTF-8 in Java

Da un articolo di Xueming Shen, si parla della modifica che ha interessato la codifica UTF-8 in JAVA.

Tale modifica riguarda in particolare il rifiuto della non-shortest-form. Infatti l’interpretazione di questa forma particolare di rappresentazione può essere utilizzata da exploit di vario tipo per ottenere dati sensibili. I dettagli inerenti questa problematica sono ben descritti in un corrigendum, ma vediamo molto brevemente cosa significa.

UTF-8 (Unicode Transformation Format, 8 bit) è una codifica dei caratteri Unicode in sequenze di lunghezza variabile di byte, creata da Rob Pike e Ken Thompson. UTF-8 usa gruppi di byte per rappresentare i caratteri Unicode, ed è particolarmente utile per il trasferimento tramite sistemi di posta elettronica a 8-bit.

UTF-8 usa da 1 a 4 byte per rappresentare un carattere Unicode. Per esempio un solo byte è necessario per rappresentare i 128 caratteri dell’alfabeto ASCII, corrispondenti alle posizioni Unicode da U+0000 a U+007F. Facciamo un esempio per capire meglio. Ecco, la rappresentazione della stringa ABC utilizzando un solo byte:

0×41 0×42 0×43

e utilizzandone due:

0xc1 0×81 0xc1 0×82 0xc1 0×83

Quest’ultimo è proprio un caso di non-shortest-form, poiché rappresentiamo con una sequenza ridondante un carattere Unicode che andrebbe bene anche usando la sua forma più breve. Per avere altri esempi riportiamo il seguente stralcio di codice in grado di mettere a confronto la non-shortest-form con due byte e il carattere rappresentato.

  1. byte[] bb = new byte[2];
  2.     for (int b1 = 0xc0; b1 < 0xc2; b1++) {
  3.         for (int b2 = 0x80; b2 < 0xc0; b2++) {
  4.             bb[0] = (byte)b1;
  5.             bb[1] = (byte)b2;
  6.             String cstr = new String(bb, "UTF-8");
  7.             char c = cstr.toCharArray()[0];
  8.             System.out.printf("[%02x, %02x] -> U+%04x [%s]%n",
  9.                               b1, b2, c & 0xffff, (c>=0x20)?cstr:"ctrl");
  10.         }
  11.     }

Il corrigendum citato evita il crearsi di questa situazione, specificando qual è la shortest form da usare e impedendo il verificarsi di più non-shortest-form. Ciò previene possibili vulnerabilità dovute a questa differente codifica. Tale nuova interpretazione della codifica UTF-8 è compatibile con le ultime versioni Java: JDK7, Open JDK 6, JDK 6 update 11 e successive, JDK5.0u17 e 1.4.2_19. Chi fosse invece curioso di vedere la sua interpretazione in codice, ecco un confronto tra la nuova e la vecchia versione della classe UTF_8.

Modifiche nella codifica UTF-8 in Java

Ubuntu 9.04

La più recente distribuzione Linux “per esseri umani” Ubuntu 9.04, è finalmente arrivata, pronta per essere scaricata dal grande pubblico.

Sviluppando Jaunty Jackalope, i programmatori si sono concentrati sulla creazione di un sistema stabile e più veloce dei predecessori introducendo novità che, anche se non estremamente appariscenti, dovrebbero essere apprezzati dagli utenti che si lamentavano di alcuni comportamenti poco coerenti della versione 8.10.

Il processo di installazione è il primo componente ad aver subito qualche ritocco: è stato reso ancora più semplice e rapido; su un sistema non troppo datato è sufficiente un quarto d’ora (o anche meno) per essere accolti da un desktop perfettamente funzionante.

Subito si nota l’introduzione di un nuovo tema (anche se il marrone ancora non è stato abbandonato) chiamato New Wave che dà al sistema un aspetto più professionale ed elegante.

La maggiore novità dell’interfaccia consiste tuttavia nell’adozione di un rinnovato sistema di notifica che, se per certi versi richiama Growl di Mac OS X, per ammissione dello stesso Shuttleworth forse non piacerà a tutti gli utenti; inoltre, non tutte le applicazioni sono già state adeguate per il suo uso.

L’idea è di far apparire le notifiche in maniera consequenziale, non contemporaneamente, dotandole tutte di un aspetto simile: nelle intenzioni degli sviluppatori il sistema ne guadagnerà in leggibilità e coerenza, permettendo all’utente di prestare attenzioni ai messaggi inviati dai software senza venire da questi soverchiato.

Sotto il cofano, Ubuntu 9.04 mostra la presenza del kernel Linux 2.6.28, in cui è presente un maggior numero di driver (specialmente per quanto riguarda il supporto alle schede Wi-Fi) e il filesystem precedentemente considerato sperimentale Ext4 (successore del diffuso Ext3) è stato promosso stabile.

Ext4 – che promette maggiore efficienza, velocità e un supporto a volumi più grandi – non è però il filesystem di default di Jaunty Jackalope: chi non lo selezionerà manualmente continuerà a usare Ext3. Gli utenti delle versioni di test di Ubuntu 9.04 che l’hanno già sperimentato in qualche raro caso hanno segnalato perdite di dati.

Gnome, l’ambiente desktop prescelto da Canonical, giunge alla versione 2.26: introduce il protocollo Universal Plug and Play in Totem, il lettore multimediale, che ora supporta meglio lo streaming, e vari miglioramenti al client di posta Evolution, ora più efficiente nel connettersi ai mail server dotati di Microsoft Exchange e in grado di importare con più facilità i dati di Outlook.

La serializzazione Java

Il meccanismo della serializzazione consente di salvare oggetti Java all’interno di file (File di tipo ByteCode) oppure di trasmetterli in rete come informazioni a se stanti.

L’utilità di questo meccanismo è ovvia: poter salvare lo stato interno degli oggetti in un file per poterlo recuperare in un secondo momento, oppure poter trasmettere informazioni aggregate nella rete in un solo colpo senza doversi preoccupare di scinderle in informazioni primitive da trasmettere separatamente.

Cerchiamo di capire come può tornarci utile la serializzazione: supponiamo di avere una classe chiamata Record che rappresenta l’informazione di un dipendente. La struttura di questa classe, potrebbe essere la seguente:

public class Record {
private String nome;
private String cognome;
private Date dataNascita;
private int livello;
public Record(String nome, String cognome, Date dataNascita) {
this.nome = nome;
this.cognome = cognome;
this.dataNaschta = dataNascita;
livello = 0;
}
... // Altri metodi per recupero e
... // settaggio informazioni
}

Durante l’esecuzione del nostro programma potremmo avere una lista (un ArrayList, un Vector o quant’altro) che viene popolata mano a mano che vengono aggiunte le informazioni sui dipendenti. Questa lista, quindi, conterrà tante istanze della classe Record quanti sono i dipendenti che sono stati codificati. Sarebbe opportuno che, alla fine della giornata, quando l’applicazione viene chiusa non venissero perse tutte queste informazioni. Sarebbe ancora più bello non dover salvare queste informazioni all’interno di semplici file di testo (o file XML), che chiunque può andare liberamente a modificare.

Entra in gioco, quindi, la serializzazione: possiamo dire al nostro programma di andare a salvare in un file particolare, tutte le istanze della classe Record che sono state create. Questo file non sarà leggibile all’occhio umano, ma sarà codificato in ByteCode. Per fare questo, è sufficiente modificare leggermente l’intestazione della classe Record affinchè essa implementi l’interfaccia Serializable:

public class Record implements Serializable {

L’interfaccia Serializable, come si può vedere dalla documentazione, non prevede alcun metodo. E’, quindi, un’interfaccia vuota, che serve solo al compilatore per capire che quell’oggetto va trattato in modo particolare. Quello che viene fatto al bytecode della classe esula dagli scopi di questo articolo, ma in buona sostanza si può dire che viene aggiunto un campo nascosto chiamato “serialVersionUid“, che serve a contraddistinguere la versione della classe e a marcarne la serializzabilità.

Oracle acquisisce Sun Microsystem

Tutti si aspettavano la riapertura della trattativa con IBM, e invece ecco il blitz di Oracle. Sun Microsystems sarà infatti acquisita dalla società di Larry Ellison: l’accordo è stato firmato per 9,5 dollari per azione, ovvero 7,4 miliardi di dollari in totale, equivalenti a 5,6 miliardi netti più la cassa di Sun e il ripianamento dei suoi debiti.

Si tratta di una mossa clamorosa per molti aspetti: uno è il fatto di aver colto di sorpresa i media, il mercato finanziario e il settore dell’IT, che come detto si aspettava una riapertura della trattativa tra Sun e IBM, iniziata esattamente un mese fa (anche se mai confermata ufficialmente), e interrottasi bruscamente due settimane fa.

Un altro è che questa acquisizione è l’ennesima di Oracle, dopo la ‘conquista’ di realtà come PeopleSoft, Siebel e BEA (guarda l’elenco delle ultime più grandi acquisizioni): una campagna che in quattro anni ha registrato circa quaranta operazioni per una spesa totale di quasi 40 miliardi (comprendendo anche Sun). Ma è anche una pietra miliare per il colosso del software di Larry Ellison, perché segna la sua entrata nell’hardware.

Oracle infatti non ha mai avuto prima d’ora un’attività nell’hardware o nei sistemi operativi server, due tra i mercati principali per Sun. Tuttavia il sistema Solaris di Sun è da molto una piattaforma di grande successo per i database Oracle.

Inoltre le due hanno altre aree di comune interesse, a partire dal supporto a Java. Sun ha un app server Java open source chiamato Glassfish, che probabilmente Oracle manterrà, mentre è meno chiaro il destino dell’altra offerta commerciale Java di Sun, il Java Enterprise System (JES).

Oracle ha già dovuto gestire una sovrapposizione in questo campo quando ha acquisito BEA, ma BEA WebLogic ha una base installata molto maggiore di JES; e quindi Oracle l’ha mantenuto.

Nel comunicato dell’acquisizione, Oracle spiega di attendersi da Sun un contributo di 1,5 miliardi di dollari nel profitto operativo non GAAP già nel primo anno: cifra che salirà a due miliardi nel secondo anno.

Per Sun, questa operazione rappresenta la fine degli sforzi del CEO Jonathan Schwartz di riportare all’utile una società da tempo in difficoltà finanziarie. Sun infatti è in declino da molti anni rispetto ai picchi di fatturato e utili registrati durante la famosa ‘bolla dot-com’ intorno al 2000.

Con il tempo le aziende hanno preferito passare dai suoi costosi server Unix alle macchine x86. Il grande impegno su Java e sull’open source non sono mai stati sufficienti a tornare agli antichi fasti.

Quanto a Oracle, ora dovrà gestire l’attività in settori – hardware e sistemi operativi server – mai coperti in precedenza. Oltre a supportare Solaris per molti anni, Oracle supporta anche tutta la propria offerta su piattaforma Linux. Benché Sun non abbia l’ampiezza d’offerta di IBM, l’accordo dà a Oracle un modello di business combinato hardware-software più simile a IBM, già suo concorrente nel mercato dei database.

Fonte: Oracle scippa Sun a IBM

Ibm vuole Sun Microsystems

La Ibm sta trattando per acquisire Sun Microsystems con una maxi-aggregazione che permetterebbe al colosso di Armonk di rafforzarsi anche nel comparto dei server internet mettendo sotto pressione la rivale Cisco. Lo rivela stamane il Wall Street Journal online citando fonti vicine al dossier secondo le quali l’esito della trattativa, già avviata, non è scontato. Le due società hanno un denominatore comune: entrambe producono sistemi informatici per clienti aziendali che non si basano sul software di Microsoft, possiedono linee di prodotto che sono meno dipendenti rispetto a quelle dei rivali dai processori Intel e sono forti sostenitrici dei software open source Linux e Java.

Se l’operazione dovesse andare in porto (potrebbe avvenire la prossima settimana, ma le aziende non hanno confermato) Ibm dovrebbe pagare almeno 6,5 miliardi di dollari in contanti con un premio di oltre il 100% rispetto al prezzo di chiusura della società di martedì. Un’aggregazione dei due colossi informatici richiederebbe un’attenta opera di amalgama di due culture aziendali molto diverse. Ibm, la società che, dalla costa Est degli Usa, ha contribuito a inventare l’informatica, è cresciuta con una filosofia gestionale mirata ad assecondare le esigenze della clientela con uno stile formale. Sun per converso, è nata nella Silicon Valley negli anni ‘80 spinta dalla creatività dei suoi ingegneri: ha esordito costruendo workstations per poi concentrarsi sui server quando è decollato il mondo internet.

Ma la società fondata da Scott McNealy, dopo lo scoppio della bolla internet ha faticato sul mercato, arrivando in ritardo nella nicchia dei server a basso costo, quelli che impiegano processori Intel e Amd. E il successore di McNealy, Jonathan Schwartz, ha portato l’azienda a concentrarsi sulle innovazioni nel software e nell’immagazzinamento dei dati. Una strategia che lo scorso anno dal punto di vista borsistico non ha pagato, con il titolo Sun a picco, anche a causa della dipendenza della società dai server di fascia alta e dai prodotti per il mercato finanziario, colpito duramente dalla crisi.

Secondo fonti del settore, prima di Ibm la Sun aveva avvicinato la rivale Hp nella speranza di essere acquisita ma l’offerta era stata declinata. Per Ibm l’operazione-Sun significherebbe la maggiore acquisizione di sempre e una rottura con il recente passato nel quale era sempre stata acquirente di piccole società di software e di servizi. Ibm, soprannominata «Big Blue» si trova relativamente in buona salute rispetto a concorrenti come Hp anche se l’acquisizione di Sun – che nel secondo trimestre conclusosi a dicembre ha perso 209 milioni di dollari – inevitabilmente intaccherebbe la sua redditività. Ma l’operazione metterebbe comunque sotto pressione il colosso statunitense dei server, Cisco, il cui amministratore delegato, John Chambers, solo lunedì scorso aveva dichiarato che la sua società continuerà a colaborare con Ibm anche se è una concorrente proprio nel comparto dei server.

L’operazione Ibm-Sun rafforzerebbe il primato globale di Ibm nei server che lo scorso anno, secondo i dati Idc, la vedeva al 31,4% del mercato mondiale, seguita da Hp (29,5%), da Dell (11,6%) e da Sun (10,6%).

IBM vuole Sun Microsystem – Maxi fusione da 6,5 miliardi di $

Subscribe to RSS Feed Follow me on Twitter!