Wolfram Alpha, motore di Conoscenza Aggiungi un commento

15 settembre 2009, 16:33

Ieri il mio amico e collega informatico/programmatore Paolo (che spero di vedere presto in una home sua) mi ha mostrato Wolfram|Alpha, web application definita come “Motore computazionale di conoscenza”. Sviluppato dalla Wolfram Research, il suo scopo è presentare la conoscenza in una forma più descrittiva e puntuale di una serie di link (come ad esempio fa un motore di ricerca).

Wolfram|Alpha saluta

La Wolfram Research è la società privata di Steven Wolfram il cui prodotto più noto è Mathematica, suite per operazioni matematiche di qualsiasi tipo. La mia esperienza con Mathematica si riduce ad una ventina di ore di laboratorio durante il corso di Teoria dei sistemi (Elementi), dove l’usavamo per calcolare output di sistemi ingresso-uscita e la soluzione di equazioni differenziali.

Wolfram|Alpha è basato sullo stesso software, quindi può riconoscere espressioni matematiche  (anche in linguaggio più o meno naturale) e comportarsi di conseguenza. Qui due esempi, con una funzione complessa e una semplice:

Funzione semplice su Wolfram|AlphaFunzione complessa su Wolfram|Alpha

Con Internet a disposizione ed una stampante, situazione tipica nel laboratorio di una qualsiasi scuola moderna, si può stampare al volo un foglio di riferimento completo per qualsiasi funzione richiesta: derivata prima o seconda, limiti notevoli, integrale definito e indefinito, espansione in serie se applicabile, grafico… insomma, veramente ottimo, ma quasi scontato, almeno procedendo sui passi di un software come Mathematica che esiste da 20 anni per quell’unico scopo.

Ciò che è meno facile, Wolfram|Alpha si presenta come un motore computazionale di tutta la conoscenza. E’ ancora nella sua prima infanzia, essendo stato lanciato il 15 maggio, ma già si possono fare domande come “Quanti anni ha il principe Carlo?” o “Dove sono?” e lui risponderà in maniera appropriata. Anche domande come il valore nutrizionale di una mela, la 12ma nazione ordinata per numero di donne, per non parlare di costanti fisiche e valori notevoli, conversioni tra unità di misura, ecc. trovano pronta e spesso esauriente risposta.

Non mancano strizzatine d’occhio alle domande che un nerd potrebbe porre:

Wolfram|Alpha non disdegna di rispondere ad alcune domande personali:

  • Chi sei?
  • Dove vivi?
  • Sei Skynet? (Risposta: “No, Skynet raggiunse l’autocoscienza il 29 agosto 1997 alle 02.14 AM, ora della Costa Orientale. Io, al contrario, non sono stato messo in funzione fino al 15 maggio 2009. Inoltre, apprezzo modalità di interazione con gli umani che non involvano necessariamente l’uso di missili nucleari.”)

E infine, una buona ragione di vita per ogni persona curiosa:

Non è perfetto, ma già risultati del genere erano quasi impensabili, poniamo, 10 anni fa… e prima, erano ipotizzabili solo da un supercomputer che alla domanda “Esiste Dio?” rispondeva, dopo aver assorbito la conoscenza e la potenza di calcolo dell’Universo intero: “Sì, adesso Dio c’è” (Frederic Brown, La risposta).

In via di elaborazione sono l’estensione del motore di conoscenza ad argomenti di programmazione, complessità computazionale e conversazione naturale, à la Jabberwacky o Eliza. Inoltre, il motore per ora parla solo inglese, ma nuovi linguaggi verranno sicuramente aggiunti in futuro.

In definitiva, Wolfram|Alpha mira a diventare una raccolta organizzata di “tutto il sapere oggettivo: implementare ogni modello, metodo e algoritmo conosciuto; rendere tutta la conoscenza sistematica immediatamente calcolabile e accessibile da chiunque ” (About Wolfram|Alpha).

Laurea, C++ e MFC Aggiungi un commento

18 maggio 2009, 17:59

Tre settimane fa (oddio, come passa il tempo) mi sono laureato, finalmente. Com’è che non l’ho scritto subito? Perchè in generale evito di dire cose “personali” su questo sito, ma suppongo che una laurea in Informatica abbia qualche rilevanza dal punto di vista… beh, dell’Informatica. Anche se questa rilevanza si riduce ad essere “Ecco, esiste un laureato in Informatica in più sul pianeta.”

Produrrà qualcosa di buono, il suddetto laureato? Sta a lui. E visto che non si ottiene nulla senza provarci infinite volte, ho cominciato a studiare per conto mio la creazione di applicazioni con GUI su Windows, usando le librerie della Microsoft Foundation Classes, che dal 1992 incapsulano le Windows API (a.k.a. Win32 API) dando un maggiore controllo sulla creazione di applicazioni per Windows. Ho provato ad usare direttamente Win32, secondo il principio che hardcore è meglio, ma dopo aver visto che i bottoni apparivano sotto Windows 7 come se venissero direttamente da Windows 95, ho rinunciato.

MFC non è difficile da usare… sempre che si abbia la memoria di un elefante, cosa particolarmente richiesta nell’ambito della programmazione di interfacce in C++. Non è come le Swing di Java, che hanno contribuito a creare il mio beneamato progetto di stage, in cui il programmatore può estendere JFrame e chiamare SetVisible(true) su un oggetto della classe estesa e in cui ogni elemento ha nomi facili da memorizzare e mille metodi per fare ogni cosa. Ma non è nemmeno come Win32 nativo, in cui per far comparire una finestra vuota servono non meno di 70 righe di codice… di cui la maggior parte obsoleto e inutile.

Una volta presa familiarità con typedefs come LPCWSTR (Long Pointer to Constant Wide-character String, puntatore a una stringa non modificabile di caratteri a 16 bit) e CComPtr<T> (Component Object Model Pointer, MFC wrapper attorno a un puntatore ad oggetti COM di tipo T), MESSAGE_MAPs e HRESULT, non va poi così male.

Aggiungete l’essersi accorto di una caratteristica mancante in Windows 7, piccola ma leggermente scomoda, un po’ di manipolazione di XML (mediante XmlLite) e otterrete il primo programma nell’appena inaugurata sezione download. Sentitevi liberi di usare i programmi che troverete là (non so con quale frequenza) e lasciare tutti i commenti che volete!

All’orizzonte Microsoft, Windows 7 Aggiungi un commento

20 agosto 2008, 11:57

Sicuramente non sarò solo io, dalla mia povera (ma comprensiva) esperienza, ad aver notato un curioso trend nella produzione di sistemi operativi Microsoft per l’utenza casalinga. Tendenzialmente, ne azzeccano uno sì e uno no. Facendo partire la progressione dal 1991, abbiamo:

  • ? Windows 3.1, un successo, uno dei primi del suo genere (dopo i tentativi mal riusciti di Windows 1.0 e 2.0).
  • ? Windows 95, insoddisfacente, ma bisogna riconoscergli il merito di aver introdotto la formula “Barra delle applicazioni e menu Avvio” così come la conosciamo.
  • ? Windows 98, migliorato di molto rispetto ai precedenti, un successo.
  • ? Windows ME. Tutti conosciamo la storia. La sua proverbiale instabilità e inadeguatezza gli valsero parecchi soprannomi, in molte lingue, che non riporterò qui. Persino la sua casa madre, alla fine, ha dovuto riconoscere l’errore [Nella prima delle domande, la risposta contiene la frase "...not everyone was happy to see Windows 95, Windows 98, or Windows ME retire (OK, perhaps not ME)", cioè "Non tutti sono stati contenti di vedere il ritiro di Windows 95, 98 o ME... ok, forse non ME"].
    Ebbe vita breve: già un anno dopo, il suo successore era sugli scaffali.
  • ? Windows XP, complessivamente un successo, nonché il più longevo sistema Ms ad oggi, con i suoi 6 anni di vendite (dal 2002 al 2008), più altri 6 anni di supporto programmato, fino al 2014.
  • ? Windows Vista. Tempi di gestazione epici e alla fine… nulla di fatto, o quasi nulla; anche le poche cose utili implementate, fanno misera figura sotto la mole di errori e problemi che si trovano in questo immaturo sistema.

Dopo il mezzo flop di Vista, la storia di ME si ripete, meno tragica, ma il succo è lo stesso. A poco più di un anno dalla sua uscita, ecco che già circolavano i primi rumors di un successore del controverso ultimogenito di casa Microsoft. Prima, un entusiastico Bill Gates annunciava Windows 7 addirittura nella metà del 2009, poi dalla casa madre la notizia è stata smentita, dicendo che il nuovo sistema sarà probabilmente disponibile nel 2011 (evidentemente, una stima larga) e comunque, non prima di 3 anni dall’uscita di Vista, il che lo collocherebbe a fine 2009 o inizio 2010.

Da pochi giorni, è online il primo blog ufficiale del team di sviluppo di Windows 7. La Microsoft vuole riprodurre una strategia che ha avuto successo, in passato: l’interazione stretta con la comunità, i cui pareri saranno tenuti in gran considerazione. Questa filosofia ha portato chicche come l’interfaccia di Windows 95, una perla ai suoi tempi, e più recentemente, l’interfaccia di Office 2007 (pensata e misurata tenendo presente l’utente medio) e dei vari Visual Studio. E’ sicuramente un segno positivo. Uno dei video ufficiali mostra un’interfaccia multitouch, del tutto simile a quella vista su iPhone e Surface (naturalmente, su hardware che supporta questo tipo di input) e una nuova taskbar. Dal lato dell’architettura, il suo kernel sarà un’evoluzione di quello di Vista; scelta mirata ad evitare i noti problemi di compatibilità di quest’ultimo.

A meno di essere inficiato da difetti di altro tipo, ci sono buone speranze che il nuovo Windows non calchi le orme di Vista, ma piuttosto del solidissimo XP, portando anzi ancora più innovazione di quest’ultimo. Le sue caratteristiche saranno ufficialmente annunciate a partire dal prossimo 27 ottobre, al WinHEC.

Fonti: Engadget, Hardware Upgrade