Archivio Mensile di
Ottobre 2005
Music 18 Ottobre 2005, 15:41:11, 137 parole
Concerto SubsOnica a Torino
Con qualche giorno di ritardo spendo un paio di paroline sul concerto dei Subsonica al MazdaPalace di Torino al quale sono andato sabato sera. Bello, veramente bello. D’altra parte le premesse c’erano tutte, ultima data del tour e per di più giocando in casa. Il fatto di averli già visti a Castagnole mi ha permesso di limitare l’attenzione e di godermi un po’ di più l’atmosfera generale dell’ambiente, perchè lo show è stato identico a quello dell’altra volta. Unica novità la presenza di un grosso braccio con attaccata una telecamera mobile a centro-pista con la quale effettuavano le riprese per un nuovo DVD che hanno in progetto. Unica imperfezione, peraltro non percepita da me, nella canzone “l’odore” che dopo qualche altro pezzo è stata rifatta senza errori. Cose che capitano e che a fine tour si perdonano.
Web e dintorni - Web Tecnica 14 Ottobre 2005, 00:26:57, 277 parole
Usare PHP-STATS con EasyPHP
PHP-STATS ormai si conosce e lo usano in molti. Riguardo a EasyPHP vediamo brevemente cos’è e a cosa serve. EasyPHP è un pacchetto che include server Apache, database MySQL e il supporto per PHP, permettendo quindi di provare pagine web o applicazioni basate su esso. Io ci tengo su il mio blog tramite Apache e il servizio DynDNS.it.
Vediamo come installarci PHP-STATS.
Si scarica il pacchetto e lo si estrae nella cartella www di EasyPHP nella posizione desiderata, ad esempio
C:\Programmi\EasyPHP1-8\www\sito
estraendo l’archivio si ottiene la cartella stats
C:\Programmi\EasyPHP1-8\www\sito\stats
Ora andiamo nella cartella mysql e poi data sempre all’interno di EasyPHP
C:\Programmi\EasyPHP1-8\mysql\data
e creiamo una cartella vuota che sarà quella che conterrà il nostro database ad esempio stat;
C:\Programmi\EasyPHP1-8\mysql\data\stat
Ora torniamo nella directory dove abbiamo scompattato l’archivio di PHP-STATS ed editiamo il file config.php e andiamo ad impostare i corretti valori di configurazione. Come host mettiamo localhost visto che il database lo hostiamo noi, il nome del database è il nome della cartella vuota che abbiamo creato prima in ..\mysql\data quindi, nel nostro esempio, stat; come user mettiamo root e la password la lasciamo vuota; script url è l’indirizzo della cartella stats ad esempio http://www.nomedelsito.it/stats
Salviamo il tutto e chiudiamo.
Ora nel browser mettiamo l’indirizzo del sito fino a stats seguito da setup.php (http://www.nomedelsito.it/stats/setup.php) e seguiamo i 5 passi dell’installazione. Inseriamo il codice che ci dice di inserire all’interno delle nostre pagine; io usando wordpress l’ho messo solo in header.php che viene poi richiamato da tutte le altre pagine. Nelle pagine php il codice da inserire dovrebbe essere così:
<?php
define('__PHP_STATS_PATH__',’http://www.nomedelsito.it/stats);
include(__PHP_STATS_PATH__.'php-stats.redir.php');
?>
All’indirizzo http://www.nomedelsito.it/stats/admin.php si accede alla console di amministrazione per gestire i settaggi. Si mette il link alla pagina delle statistiche, ad esempio nella homepage, e il gioco è fatto.
Music 13 Ottobre 2005, 19:01:04, 45 parole
Più vedo…
…il video di Fix You e più mi piacerebbe andare al concerto dei Coldplay a Milano il 14 novembre. Eh Ene, che ne dici?! Anche se ormai mi sa che siamo fuori tempo massimo per i biglietti. E poi c’è sempre il solito problema purtroppo.
Programmazione 11 Ottobre 2005, 23:37:59, 525 parole
OCaml: le funzioni
Per definire una funzione la sintassi prevede il costrutto ‘let’ seguito dal nome della funzione, dai parametri indicati nel modo (nome:tipo) e, dopo il segno di uguaglianza il body della funzione e i soliti ;; finali.
Esempio:
# let areaRett (base:int) (altezza:int) = base*altezza;;
val areaRett : int -> int -> int = fun
# areaRett 4 7;;
- : int = 28
#
la riga
val areaRett : int -> int -> int = fun
indica che la funzione areaRett deve essere chiamata con 2 argomenti, entrambi interi e che il valore che essa restituisce è ancora un valore intero. L’esempio qui sopra si dice che è una applicazione della funzione areaRett agli argomenti 4 e 7. Come si vede gli argomenti possono essere passati direttamente senza essere racchiusi ad esempio tra parentesi, anche se il mettere le parentesi non è errore. Infatti
# areaRett (4) (7);;
- : int = 28
In realtà nella definizione della funzione non è necessario indicare in modo esplicito il tipo di parametri in quanto OCaml è in grado di determinarlo in base all’operatore che gli viene applicato o da cui sono legati. Ad esempio:
# let areaRett (base) (altezza) = base * altezza;;
val areaRett : int -> int -> int = fun
# areaRett 10 3;;
- : int = 30
# let areaRett (base) (altezza) = base *. altezza;;
val areaRett : float -> float -> float = fun
# areaRett 2.3 2.0;;
- : float = 4.6
L’operatore *. (asterisco punto) è l’operatore per la moltiplicazione di dati di tipo float che quindi è diverso dal normale operatore di moltiplicazione di interi *
Se provo ad usarlo con degli interi ovviamente mi viene segnalato un errore
# areaRett 5 4;;
Characters 9-10:
areaRett 5 4;;
^
This expression has type int but is here used with type float
Quindi a seconda dell’operatore indicato OCaml è in grado di stabilire di che tipo devono essere i parametri e quindi se accettare o meno quelli inseriti dall’utente. Questo potente meccanismo prende il nome di inferenza di tipo.
In realtà le parentesi si possono omettere e quindi la definizione finale sara’
# let areaRett base altezza = base * altezza;;
val areaRett : int -> int -> int = fun
# areaRett 3 5;;
- : int = 15
Esiste poi un altro metodo di definire una funzione del genere che consiste nel passargli una tupla (approfondirò il discorso tupla) di argomenti invece che i vari argomenti separatamente.
# let areaRett (base,altezza) = base * altezza;;
val areaRett : int * int -> int = fun
# areaRett (4,6);;
- : int = 24
La notazione int * int indica una tupla composta da 2 campi di valore intero. In questo caso la sintassi deve essere esattamente questa, con i parametri racchiusi tra parentesi tonde e separati tra loro da una virgola. Non è possibile passarli in modo diretto e neanche, ad esempio, separati da virgola ma senza parentesi.
# areaRett 4 6;;
Characters 0-8:
areaRett 4 6;;
^^^^^^^^
This function is applied to too many arguments,
maybe you forgot a `;'
# areaRett 4,6;;
Characters 9-10:
areaRett 4,6;;
^
This expression has type int but is here used with type int * int
Attualità - Cazzate 11 Ottobre 2005, 21:06:08, 14 parole
Non riesco a darmi pace
Non è possibile che uno possa passare da Martina Stella a Pino/Patrizia. Non esiste.
Attualità 10 Ottobre 2005, 18:45:34, 95 parole
E bravo il nostro Lapo
Lapo Elkan è stato ricoverato in ospedale per overdose di cocaina. Tutti gridano allo scandalo. Io grido a quanto sia scandaloso il fatto che qualcuno si scandalizzi ad una notizia del genere. Sembra sia la cosa più strana del mondo mentre in realtà in quegli ambienti rappresenta qualcosa di abbastanza normale e le prove le forniscono gli stessi casi Moss, Calissano, Elkann usciti nel giro di quanto, un mese? Non sono nè i primi nè gli ultimi.
Adesso però inizio a capire perchè voleva vendere Del Piero per risparmiare sul suo ingaggio che era troppo elevato.
Altro - Cazzate 10 Ottobre 2005, 13:59:09, 169 parole
Inizio a pensare sia colpa della Arcuri
Francesco Coco era una giovane promessa del calcio italiano, arrivato fino alla nazionale. Poi si è messo con la Arcuri e non ha più giocato una partita rimbalzando sempre tra un infortunio e l’altro. Però in compenso è diventato campione del mondo di feste e sfilate di moda. Adesso è toccato ad Aldo Montano. Nessuno se lo cagava e sapeva chi era fino a quando ha vinto la medaglia d’oro olimpica nella sciabola ad Atene 2004. Li l’ha notato la Arcuri che se lo è subito accalappiato, ed anche lui ha iniziato a infighettirsi, partecipare a feste, trasmissioni e set fotografici quà e là. Da poco hanno iniziato a convivere e anche i suoi risultati sportivi, come già quelli di Coco, sono precipitati. Ai mondiali che si stanno disputando in questi giorni, ai quali arrivava appunto da campione olimpico, è stato eliminato ai quarti di finale. Una bella involuzione.
Ma cosa fa agli uomini Manuelina Arcuri?
Così alla veloce mi vengono in mente due ipotesi, o li sboffa o porta sfiga.
Programmazione 07 Ottobre 2005, 20:14:51, 389 parole
OCaml: top-level e assegnazioni ‘let’
OCaml ha un top-level interattivo che offre all’utente la possibilità di interagire con il sistema attraverso un ciclo di lettura dell’input, interpretazione, esecuzione e stampa del risultato. Quindi quello che facciamo è inserire una serie di espressioni, OCaml le valuta ‘on the fly’ e mostra il risultato ed i loro tipi. In questa interazione le linee che iniziano con # sono input e le linee che inizano con - sono gli output forniti dal sistema. Le espressioni di input possono occupare più righe e, per poter essere valutate, devono terminare con ;; (2 punti e virgola consecutivi). Ovviamente c’è anche la possibilità di compilare un intero script OCaml. Per quanto riguarda l’ambiente Windows una volta scaricato e installato Ocaml si può lanciare il top-level sia in modalità solo-testo che in modalità di interfaccia grafica utente. Per lanciarlo in modalità testuale si apre un prompt e si digita il comando ocaml (da qualunque posizione tanto la variabile di percorso viene automaticamente settata) mentre per aprire l’interfaccia grafica c’è l’iconcina (troppo figa, con un cammello con gli occhiali da sole e un filo d’erba in bocca!)
Lancio OCaml e inizio a dargli in pasto delle semplici espressioni di esempio
Objective Caml version 3.08.3
# 2+3;;
- : int = 5
# 3+10*2;;
- : int = 23
Assegnazioni
Per dare un nome ad una variabile o al risultato di un’espressione in modo da poterla utilizzare in seguito si usa il costrutto let
Esempi:
# let