Feeds:
Posts
Comments

Posts Tagged ‘web’

Riusciremmo un giorno a realizzare la vision di TBL?

The entertainment system was belting out the Beatles’ “We Can Work It Out” when the phone rang. When Pete answered, his phone turned the sound down by sending a message to all the other local devices that had a volume control. His sister, Lucy, was on the line from the doctor’s office: “Mom needs to see a specialist and then has to have a series of physical therapy sessions. Biweekly or something. I’m going to have my agent set up the appointments.” Pete immediately agreed to share the chauffeuring. At the doctor’s office, Lucy instructed her Semantic Web agent through her handheld Web browser. The agent promptly retrieved information about Mom’s prescribed treatment from the doctor’s agent, looked up several lists of providers, and checked for the ones in-plan for Mom’s insurance  within a 20-mile radius of her home and with a rating of excellent or very good on trusted rating services. It then began trying to find a match between available appointment times (supplied by the agents of individual providers through their Web sites) and Pete’s and Lucy’s busy schedules. (The emphasized keywords indicate terms whose semantics, or meaning, were defined for the agent through the
Semantic Web.)

In a few minutes the agent presented them with a plan. Pete didn’t like it—University Hospital was all the way across town from Mom’s place, and he’d be driving back in the middle of rush hour. He set his own agent to redo the search with stricter preferences about location and time. Lucy’s agent, having complete trust in Pete’s agent in the context of the present task, automatically assisted by supplying access certificates and shortcuts to the data it had already sorted through.

Almost instantly the new plan was presented: a much closer clinic and earlier times—but there were two warning notes. First, Pete would have to reschedule a couple of his less important appointments. He checked what they were—not a problem. The other was something about the insurance company’s list failing to include this provider under physical therapists: “Service type and insurance plan status securely verified by other means,”the agent reassured him. “(Details?)”

Lucy registered her assent at about the same moment Pete was muttering, “Spare me the details,” and it was all set. (Of course, Pete couldn’t resist the details and later that night had his agent explain how it had found that provider even though it wasn’t on the proper list.)

(dall’articolo The Semantic Web, Scientific American, 2001 (PDF))

Read Full Post »

Arduino Web server

Finalmente questa mattina ho avuto un po’ di tempo ed ho fatto il circuito che avevo in mente ormai da qualche giorno, e che potete vedere nel video qui sopra (e sentirne la descrizione live).

Il progettino è un semplice Web server, ed è servito a mettere assieme lo shield Ethernet con uno degli LCD che ho acquistato qualche settimana fa: nella MicroSD si trovano le pagine Web autogenerate dai tool integrati in Erlang, si tratta semplicemente dell’equivalente della Javadoc per quel linguaggio, è la documentazione di un progetto. Ho rinominato i file in modo tale che rispettassero il formato 8.3 richiesto dalla libreria SD, modificando quindi anche tutti i link interni alle pagine stesse, per il resto è un insieme di file html, fogli di stile ed immagini (più un paio di documenti testuali).

Lo sketch caricato sull’Arduino Uno è un remix di diversi esempi trovati in giro, e ciò che fa è avviare un server Web all’IP specificato (l’idea iniziale era di ricevere l’IP via DHCP, ma questo implicava agganciarsi al router via cavo ed era scomodo), attendere le singole connessioni e restituire i file richiesti, cercando di indovinare il mimetype corretto (a partire dall’estensione), così che i browser interpretino le pagine e le immagini correttamente. Nel contempo, sullo schermo LCD viene mostrata la richiesta HTTP, e due led indicano se gli hit sono positivi (200, led verde) o negativi (404, led rosso).

La vera sfida è stata trovare posto per tutte le connessioni, non solo perchè la mia breadboard è decisamente piccolina per farci stare tutto, ma soprattutto perchè lo shield richiede 5 pin (4, 10, 11, 12, 13) e l’LCD 6, e dei rimanenti tre, i primi due sono collegati anche alla seriale; alla fine ho risolto collegando uno dei due led nell’ultimo pin veramente libero, e l’altro nel pin RX: questo comporta il fatto che durante il caricamento dello sketch questo led si accende, ma durante il funzionamento dell’applicazione esso risponde correttamente ai digitalWrite (non faccio uso della seriale, eventuale debugging avviene sullo schermo LCD).

Ora ho in mente un altro progettino, che applicherò sul Duemilanove ma per il quale ho bisogno di un paio di componenti; vi dico solo che il tutto comporterà l’interfacciamento con Processing e CSound

Read Full Post »

Come si può facilmente notare, ormai il passaggio a WordPress.com è stato completato e tutto sembra funzionare come si deve; scrivo queste due righe giusto per spiegare il perchè di questa scelta, e già che ci sono ripercorro brevemente la storia di questo blog.

L’evoluzione del qui presente sito inizia diversi anni fa, su Libero.it (Digilander!), con un blog scritto in HTML+CSS puro e semplice, con lo stile scopiazzato da una delle riviste sullo sviluppo Web (comprata nel periodo in cui ne prendevo 3/4 al mese), ed ecco com’era:

Prima versione

Prima versione

Il titolo, “Chimera e Bellerofonte” (con varianti latine e/o inglesi), è nato dal fatto che il film “Mission: Impossible 2” mi era piaciuto veramente molto, e quindi ecco la citazione direttamente in homepage.

All’inizio della mia carriera seria da programmatore, ovvero all’epoca della mia prima “chiamata” all’ufficio Web, la necessità di imparare PHP ha portato alla creazione della seconda versione del sito, con annesso passaggio ad Aruba (Digilander supportava solo file statici):

Seconda versione

Seconda versione

L’impostazione del layout rimane la stessa, ma lo schema di colori cambia (con l’aiuto di Angelica, naturalmente!) ed il sito stesso diventa dinamico.

Dopo la mia prima infarinatura di sicurezza informatica, scopro che il mio sito può tranquillamente essere “sfondato” solo guardandolo, e anzichè star lì a rifarlo completamente per renderlo sicuro, decido di passare a WordPress (tanto comunque l’ho sempre usato come blog e pochissimo altro):

Terza versione

Terza versione

Questa versione è quella che ben conoscete tutti; nel tempo è stata migrata da Aruba in un server (quasi) dedicato su OVH, e tutto andava per il meglio.

Se non che il detto server è stato dismesso dai miei “soci”, ed io ho deciso, anzichè tornare su Aruba, di passare su WordPress.com: uso il mio spazio Web veramente solo come blog, ed è inutile, almeno per ora, avere una piattaforma differente. E’ vero che perdo alcune cose, come la personalizzazione grafica o alcuni plugin che usavo (nessuno strettamente necessario, peraltro), ma ne guadagno altre, come il costo (zero!) e la facilità di reblogging, scoperta giusto l’altro giorno. Non solo, ma era decisamente ora di abbandonare un dominio acquistato in un momento di esaltazione adolescenziale per il “filmone” di cui sopra.

Quindi, ecco spiegato il cambiamento, ed ecco la quarta revisione del sito:

Quarta versione

Quarta versione

Read Full Post »

Dopo aver letto l’ultima weekly di Distrowatch, e dopo aver apprezzato il passaggio al font di Ubuntu per il loro sito, ho deciso di provarlo anch’io, ammetto principalmente attirato dal fatto di usare un font nato per Linux e non per un OS diverso.

Il download dovrebbe avvenire automaticamente per chi non lo ha già installato nel sistema, in caso di problemi dovrebbe fare fallback sul Verdana standard. Se ci sono osservazioni di qualche tipo, fate un fischio!

(qui l’ultima weekly, qui le istruzioni per mettere il font in un sito (Google Translator is your friend))

Read Full Post »

C’è un nuovo arrivato nel mio PPA: si tratta di Tsung, uno strumento per eseguire test di carico verso server Web ma non solo; è scritto in Erlang, e ne sfrutta tutte le caratteristiche di distribuzione tra i processi per un’esecuzione rapida ed indolore (per il PC da cui viene lanciato), e può essere configurato per lanciare richieste utilizzando HTTP, WebDAV, Jabber, [My|Postgre]SQL ed LDAP.

La configurazione avviene tramite un file XML, che può essere parzialmente generato tramite una sorta di “registrazione” delle proprie azioni: il programma infatti può installare un proxy tramite cui è in grado di salvare tutte le richieste effettuate in remoto, sia http che https, e successivamente si può partire da questo e personalizzarne solamente la configurazione dei client e la tempistica delle richieste stesse.

Offre inoltre la possibilità di effettuare un parsing della risposta del server, per confrontarla con quanto ci si aspetta di ricevere, o di inserire dinamicamente dei parametri ricavati ad esempio da funzioni sviluppate ad hoc in Erlang.

Le statistiche prodotte vengono ricavate tramite diversi agenti in grado di monitorare la rete: il primo è nativo del linguaggio ma richiede configurazioni particolari di ssh; il secondo è SNMP ed il terzo è Munin: entrambi devono essere presenti lato client, sono installabili facilmente sulle distribuzioni più diffuse, ed io personalmente ho puntato sul secondo dato che la configurazione base del nodo è sufficiente allo scopo (si tratta solamente di modificare l’IP in ingresso, da loopback a quello del PC da cui lanciate i client simulati).

Insomma, dateci un’occhiata: i sorgenti del pacchetto Debian erano già presenti sul sito dell’applicativo, quindi il passo verso la pubblicazione nel PPA è stata piuttosto breve, ed i miei test hanno dato esito positivo; in caso di problemi, fatemi sapere!

Edit: ho appena scoperto che esiste un tool secondario installato con il programma, chiamato tsplot, che è in grado di produrre grafici di confronto, mettendo assieme fonti differenti e permettendo così di individuare facilmente variazioni a fronte di diverse configurazioni passate al sistema. Risultati spettacolari…

Read Full Post »

CMS - Creare con il Web

CMS - Creare con il Web

Giovedì 28 ottobre, presso l’aula CE1 del Politecnico di Milano, il POuL ha organizzato la conferenza “CMS – Creare con il Web”, di cui potete trovare il programma qui.

Giro la notizia anche qui non solo perchè è una conferenza POuL, ma anche perchè il sottoscritto è stato coinvolto come relatore: il mio talk, il terzo della giornata, si concentrerà su WordPress, noto CMS per blog (e non solo!) che ad esempio sostiene questo stesso sito; la presentazione è in realtà una collaborazione con Massimo, che purtroppo non potrà essere presente giovedì stesso ma che sta curando i contenuti, essendo un esperto della suddetta piattaforma.

In ogni caso: accorrete numerosi, il posto non manca e gli altri relatori sono persone che discuteranno altri CMS ed altre esperienze molto interessanti (Alessandro Colleoni parlerà infatti dello sviluppo di siti Web con strumenti Open Source del Politecnico di Milano, mentre Marco Moscaritolo è un esponente della community italiana di Drupal e introdurrà questo CMS ai presenti). Non solo, al termine dei tre interventi potrebbe esserci una discussione “improvvisata” di alcuni altri framework per lo sviluppo di siti, quindi un aspetto un po’ più tecnico ma sicuramente altrettanto interessante del mondo dello sviluppo Web.

Read Full Post »

E’ uscita la versione 3.0 di WordPress, e scrivo queste due righe solo per dire che sono ammirato della velocità dell’upgrade… memore di altri passaggi tra minor version della 2.x, ero pronto ad aspettare anche qualche minuto, ed invece in qualcosa come 15 secondi l’upgrade è stato fatto!

Spettacolo… ribadisco che WordPress è il miglior gestore di siti esistente, quantomeno ad oggi.

Read Full Post »

Negli ultimi due giorni mi sono sparato i primi 14 capitoli di “Agile Web development with Rails“, arrivato mercoledì a tempo di record dall’Inghilterra (con Amazon, naturalmente), e dopo aver ricostruito (sì: copiato riga per riga) l’applicazione di esempio (una semplice libreria online), posso dare un primissimo giudizio al tutto, anche se sto ancora rileggendo il codice scritto di corsa in due pomeriggi, principalmente blind write, per capire che cosa è successo.

Direi, comunque, che l’impressione è finora positiva: da un punto di vista di ingegneria del software, sono estremamente felice della forzata separazione MVC, così come delle facilitazioni per il testing: le user stories, in particolare, sono veramente spettacolari (lo unit test o il functional test non è così diverso da JUnit (ovviamente, essendo la base di partenza la stessa), quindi cose che avevo già visto (ed accuratamente evitato) fino ad oggi); la possibilità infatti di definire un percorso di navigazione di test, per verificare se effettivamente questo viene rispettato, è sicuramente molto utile, specie tenendo conto che siamo in un contesto Agile, quindi se non si scrivono test sicuramente si rischia di rendere il tutto immanutenibile (neologismo?).

Per il resto, non posso che confrontarlo con PHP, unico altro linguaggio con cui ho scritto siti Web (se escludiamo una breve parentesi con J2EE, ma troppo breve per essere rilevante): alcune cose sono secondo me più semplici, mi vien da dire la funzione h() per fare escaping di schifo, in PHP non mi ricordo mai quale delle due/tre funzioni serve allo scopo; anche la scrittura di XML (RSS) è decisamente carina, così come altri particolari che non sono comunque mai troppo lontani da PHP stesso (in cui non ho mai usato un framework, peraltro, quindi…).

Sicuramente una killer feature è la possibilità di ottenere un form AJAX con cinque righe di codice, ed io avevo finora solo visto applicazioni AJAX e temevo vivamente il momento in cui avrei dovuto tentare di scrivere io del codice, ma mi devo ricredere. In particolare, la possibilità di scrivere un Javascript in Ruby è magnifica (oltre che un po’ un ossimoro)…

Ora devo tornare ai miei esami, finita la sessione dovrei scrivere un sito in autonomia, per mettere effettivamente le mani nel framework come si deve; per il momento, comunque, direi che lo promuovo a pieni voti.

Read Full Post »