Quanto poteva metterci Cesare a Raggiungere la Gallia Cisalpina? O la sua amata Cleopatra in Egitto?
Lo possiamo sapere con precisione da videogioco con questo webgis ideato dall'università di Standford chiamato "Orbis". Nella mappa troviamo le principali città dell'impero. Il progetto nasce dallo storico, Walter Scheidel, che ha individuato ricostruito tutte le rotte marittime e terrestri dell'impero, e
Elia Meeks, sviluppatore tecnico di GIS. L'interfaccia è quella di Openlayers, ma arricchita di strumenti e opzioni davvero interessanti e il risultato è ottimo. Possiamo cercare la via da Roma a Costantinopoli scegliendo tra le varie opzioni di viaggio, a piedi, con l'esercito, in nave ecc.
Ci viene rstituito il costo in denarii differenziato per il peso di merci che vogliamo trasportare, oltre che la distanza, il grafico altimetrico e al rotta su mappa. Chiaramente anche i tempi che sono epici, anzi, realistici.
Non resta che esplorarlo a questo indirizzo: http://orbis.stanford.edu/
mercoledì 20 giugno 2012
martedì 5 giugno 2012
Theme Hospital su Ubuntu
Facciamo un tuffo nel passato e grazie a CorsixTH.
CorsixTH è un clone del famosissimo e (forse) immortale Theme Hospital. Possiamo installarlo e giocarci senza problemi su Ubuntu in maniera davvero semplice. Ci basta scaricare il clone dalla CDN di Google:
http://code.google.com/p/corsix-th/
e installarlo seguendo le banali istruzioni.
Chiaramente ci serve il gioco originale che dobbiamo copiare in una cartella del nostro hard disk e segnalare a CorsiTH al momento dell'installazione.
Davvero semplice e funzionante.
CorsixTH è un clone del famosissimo e (forse) immortale Theme Hospital. Possiamo installarlo e giocarci senza problemi su Ubuntu in maniera davvero semplice. Ci basta scaricare il clone dalla CDN di Google:
http://code.google.com/p/corsix-th/
e installarlo seguendo le banali istruzioni.
Chiaramente ci serve il gioco originale che dobbiamo copiare in una cartella del nostro hard disk e segnalare a CorsiTH al momento dell'installazione.
Davvero semplice e funzionante.
venerdì 11 maggio 2012
Adipoli, effetti sulle immagini con javascript
Nell'infinita nuvola di plugin per jQuery che la rete ci offre, a volte capita di trovarne di sorprendenti.
Adipoli sorprende per semplicità ed efficacia. Si tratta di un plugin per dare alle immagini effetti animati al passaggio del mouse, dunque con l'evento 'hover'.
L'attuale versione del plugin dispone di 15 effetti hover e 5 start, ovvero che si avviano al caricamento dell'immagine. Sono presenti anche altre opzioni per la personalizzazione.
La documentazione all'interno del sito è ben curata e semplice.
Adipoli sorprende per semplicità ed efficacia. Si tratta di un plugin per dare alle immagini effetti animati al passaggio del mouse, dunque con l'evento 'hover'.
L'attuale versione del plugin dispone di 15 effetti hover e 5 start, ovvero che si avviano al caricamento dell'immagine. Sono presenti anche altre opzioni per la personalizzazione.
La documentazione all'interno del sito è ben curata e semplice.
sabato 28 aprile 2012
Una bussola con javascript
Partendo dalla libreria Highstock o Highcharts (http://www.highcharts.com/) è possibile realizzare una semplice ma funzionale bussola in Javascript che indichi i punti cardinali e una direzione.
Come detto sopra occorre la libreria Highstock, la cui licenza è a pagamento ma è possibile scaricarla gratuitamente dal sito per provarla. Ritengo questa forma di vendita davvero intelligente in quanto permette agli sviluppatori di provare il prodotto prima di comprarlo.
Per far funzionare la nostra bussola sarà necessario includere la libreria nel nostro sito. Ci basterà aggiungerla nell'header con questo codice
Passiamo quindi alla creazione di un DIV con un ID specifico all'interno della pagina.
A questo punto non dobbiamo fare altro che creare un grafico di tipo "gauge". Ovvero i grafici che indicano un valore con la lancetta. In rete si trovano esempi di come creare gauge a 180° ovvero π, ma noi dovremmo crearlo a 360° o meglio a 2π.
Nel codice soprastante la variabile "mis" è utilizzata per stabilire la grandezza della nostra bussola. Assegnandole valori più grandi si ingrandirà anche la bussola. Dobbiamo però prestare attenzione anche ai parametri della variabile "render" che vanno a stabilire larghezza e lunghezza del div su cui la bussola viene rappresentata.
Per direzionare l'ago della bussola non dobbiamo fare altro che cambiare il valore del parametro "value" nella variabile dial, che è quella che costruisce il grafico. Il valore è espresso in gradi, perciò se vogliamo indicare il Nord il valore da assegnare sarà 0 (o 360), per l'Est sarà 90, per il Sud 180, per l'Ovest 270. Ovviamente possiamo assegnare un qualsiasi valore intermedio.
Come detto sopra occorre la libreria Highstock, la cui licenza è a pagamento ma è possibile scaricarla gratuitamente dal sito per provarla. Ritengo questa forma di vendita davvero intelligente in quanto permette agli sviluppatori di provare il prodotto prima di comprarlo.
Per far funzionare la nostra bussola sarà necessario includere la libreria nel nostro sito. Ci basterà aggiungerla nell'header con questo codice
<script src="http://www.agriculturalsupport.it/wp-content/themes/provisionpress/js/highstock.js" type="text/javascript">
</script>
Passiamo quindi alla creazione di un DIV con un ID specifico all'interno della pagina.
<div id="chart"></div>
A questo punto non dobbiamo fare altro che creare un grafico di tipo "gauge". Ovvero i grafici che indicano un valore con la lancetta. In rete si trovano esempi di come creare gauge a 180° ovvero π, ma noi dovremmo crearlo a 360° o meglio a 2π.
function drawDial(options) {
var mis= 90;
var renderTo = options.renderTo,
value = options.value,
centerX = options.centerX,
centerY = options.centerY,
min = options.min,
max = options.max,
minAngle = options.minAngle,
maxAngle = options.maxAngle,
tickInterval = options.tickInterval,
ranges = options.ranges;
var renderer = new Highcharts.Renderer(
document.getElementById(renderTo),
240,
240
);
// internals
var angle,
pivot;
function valueToAngle(value) {
return (maxAngle - minAngle) / (max - min) * value-Math.PI/2 + minAngle;
}
function setValue(value) {
// the pivot
angle = valueToAngle(value);
var path = [
'M',
centerX, centerY,
'L',
centerX + mis * Math.cos(angle), centerY + mis * Math.sin(angle)
];
if (!pivot) {
pivot = renderer.path(path)
.attr({
stroke: 'black',
'stroke-width': 3
})
.add();
} else {
pivot.attr({
d: path
});
}
}
// background area
renderer.arc(centerX, centerY, mis+5, 0, minAngle, maxAngle)
.attr({
fill: {
linearGradient: [0, 0, 0, 200],
stops: [
[0, '#FFF'],
[1, '#DDD']
]
},
stroke: 'silver',
'stroke-width': 1
})
.add();
// ranges
$.each(ranges, function(i, rangesOptions) {
renderer.arc(
centerX,
centerY,
mis,
mis-5,
valueToAngle(rangesOptions.from),
valueToAngle(rangesOptions.to)
)
.attr({
fill: rangesOptions.color
})
.add();
});
// ticks
var dir;
for (var i = min; i <= max; i += tickInterval) {
dir=''
if (i==0){dir='N'}
if (i==90){dir='E'}
if (i==180){dir='S'}
if (i==270){dir='W'}
if (i==360){dir='N'}
angle = valueToAngle(i);
// draw the tick marker
renderer.path([
'M',
centerX + 90 * Math.cos(angle), centerY + 90 * Math.sin(angle),
'L',
centerX + 70 * Math.cos(angle), centerY + 70 * Math.sin(angle)
])
.attr({
stroke: 'silver',
'stroke-width': 2
})
.add();
// draw the text
renderer.text(
dir,
centerX + 90 * Math.cos(angle),
centerY + 90 * Math.sin(angle)
)
.attr({
align: 'center'
})
.add();
}
// the initial value
setValue(value);
// center disc
renderer.circle(centerX, centerY, 20)
.attr({
fill: '#4572A7',
stroke: 'black',
'stroke-width': 1
})
.add();
return {
setValue: setValue
};
}
// Build the dial
var dial = drawDial({
renderTo: 'statsframe',
value: 250, //<-- questo valore espresso in gradi indica la direzione
centerX: 120,
centerY: 120,
min: 0,
max: 360,
minAngle: 0,
maxAngle: 2*Math.PI,
tickInterval: 45,
ranges: [{
from: 0,
to: 45,
color: '#D3fd53'
}, {
from: 45,
to: 90,
color: 'transparent'
}, {
from: 90,
to: 135,
color: '#D3fd53'
}, {
from: 135,
to: 180,
color: 'transparent'
}, {
from: 180,
to: 225,
color: '#D3fd53'
}, {
from: 225,
to: 270,
color: 'transparent'
}, {
from: 270,
to: 315,
color: '#D3fd53'
}, {
from: 315,
to: 360,
color: 'transparent'
}]
});
Nel codice soprastante la variabile "mis" è utilizzata per stabilire la grandezza della nostra bussola. Assegnandole valori più grandi si ingrandirà anche la bussola. Dobbiamo però prestare attenzione anche ai parametri della variabile "render" che vanno a stabilire larghezza e lunghezza del div su cui la bussola viene rappresentata.
Per direzionare l'ago della bussola non dobbiamo fare altro che cambiare il valore del parametro "value" nella variabile dial, che è quella che costruisce il grafico. Il valore è espresso in gradi, perciò se vogliamo indicare il Nord il valore da assegnare sarà 0 (o 360), per l'Est sarà 90, per il Sud 180, per l'Ovest 270. Ovviamente possiamo assegnare un qualsiasi valore intermedio.
giovedì 12 aprile 2012
Google Current, ogni blog un'app
È sbarcato in Italia Google Current. Ottimo strumento pensato dalla casa di Mountain View. Cosa fa?
Potremmo definirlo un aggregatore di notizie, ma sarebbe un doppione di Google News se fosse così semplice; con questo strumento le notizie pubblicate non sono scelte da Google, ma dai lettori e dai publishers. Per diventare publisher e iniziare a pubblicare le proprie notizie è sufficiente avere un feed RSS che le raccolga e iscriversi a Current andando su https://www.google.com/producer/home (attenzione è necessario usare Google Chrome).
Il pannello di controllo ci consente di creare la nostra App personalizzata (nulla di straordinario, ma ci sono date delle buone possibilità preimpostate) in cui raccogliere gli articoli del nostro blog. Possiamo creare sezioni personalizzate della nostra applicazione corrispondenti a diversi feed o al canale Youtube. Il nostro lettore, dopo aver scaricato Google Current sul proprio tablet o smartphone (Android o iOS) potrà decidere di seguire il blog da noi pubblicato. Tra le opportunità di Google Current la possibilità di decidere la lingua predefinita, la traduzione automatica, i Paesi da escludere o includere nella pubblicazione.
Davvero un ottimo strumento per la diffusione dei nostri contenuti. Sicuramente Current si colloca nella via scelta da Google di premiare i produttori di contenuti interessanti per gli utenti della rete.
Potremmo definirlo un aggregatore di notizie, ma sarebbe un doppione di Google News se fosse così semplice; con questo strumento le notizie pubblicate non sono scelte da Google, ma dai lettori e dai publishers. Per diventare publisher e iniziare a pubblicare le proprie notizie è sufficiente avere un feed RSS che le raccolga e iscriversi a Current andando su https://www.google.com/producer/home (attenzione è necessario usare Google Chrome).
Il pannello di controllo ci consente di creare la nostra App personalizzata (nulla di straordinario, ma ci sono date delle buone possibilità preimpostate) in cui raccogliere gli articoli del nostro blog. Possiamo creare sezioni personalizzate della nostra applicazione corrispondenti a diversi feed o al canale Youtube. Il nostro lettore, dopo aver scaricato Google Current sul proprio tablet o smartphone (Android o iOS) potrà decidere di seguire il blog da noi pubblicato. Tra le opportunità di Google Current la possibilità di decidere la lingua predefinita, la traduzione automatica, i Paesi da escludere o includere nella pubblicazione.
Davvero un ottimo strumento per la diffusione dei nostri contenuti. Sicuramente Current si colloca nella via scelta da Google di premiare i produttori di contenuti interessanti per gli utenti della rete.
sabato 7 aprile 2012
La Regenbogenfabrik di Kreuzberg, Berlino
Trovandomi a Berlino non ho potuto non acquistare una bicicletta, ovviamente usata, ovviamente al Mauerpark.
Ma come ognuno di noi sa, ogni bici usata necessita di revisioni, stringimenti di bulloni, oliate e una serie di altre operazioni che possono rendere il nostro economico acquisto qualcosa di cui andare fieri, aggiungendo con il nostro lavoro quel valore che abbiamo risparmiato nell'acquisto.
Per fare questo però necessitiamo di parecchi strumenti, che se andassimo ad acquistare rischierebbero di farci perdere quel poco che abbiamo risparmiato con la scelta dell'usato. Per questo ho scoperto che qui a Berlino esiste la Regenbogenfabrik che oltre ad essere ostello, centro culturale, cinema, bar ecc. è anche un'officina per la riparazione delle biciclette. Con 3€ l'ora posso riparare la mia bici utilizzando i loro ottimi strumenti. L'ambiente è amichevole e i meccanici sono sempre disposti a dare una mano; è piuttosto frequentata per cui occorre scegliere le ore giuste.
Il loro sito nel quale reperire le informazioni sulle loro attività e sugli orari: http://www.regenbogenfabrik.de.
Ma come ognuno di noi sa, ogni bici usata necessita di revisioni, stringimenti di bulloni, oliate e una serie di altre operazioni che possono rendere il nostro economico acquisto qualcosa di cui andare fieri, aggiungendo con il nostro lavoro quel valore che abbiamo risparmiato nell'acquisto.
Per fare questo però necessitiamo di parecchi strumenti, che se andassimo ad acquistare rischierebbero di farci perdere quel poco che abbiamo risparmiato con la scelta dell'usato. Per questo ho scoperto che qui a Berlino esiste la Regenbogenfabrik che oltre ad essere ostello, centro culturale, cinema, bar ecc. è anche un'officina per la riparazione delle biciclette. Con 3€ l'ora posso riparare la mia bici utilizzando i loro ottimi strumenti. L'ambiente è amichevole e i meccanici sono sempre disposti a dare una mano; è piuttosto frequentata per cui occorre scegliere le ore giuste.
Il loro sito nel quale reperire le informazioni sulle loro attività e sugli orari: http://www.regenbogenfabrik.de.
Google Art Project: che museo vuoi visitare oggi?
Un anno fa Google ha creato uno strumento potentissimo per avvicinare gli utenti all'arte: Google Art project. Ha reso possibile che stando seduti davanti al pc si possa entrare virtualmente nei musei e vedere le opere nel dettaglio. Un po' di numeri: il progetto originale contava 17 musei in nove paesi e 1.000 immagini, quasi tutti dipinti di maestri occidentali, oggi l'Art Project include più di 30.000 opere d'arte ad alta risoluzione (di cui 46 con "gigapixel"), con immagini di Street View per 46 musei. Quindi non solo dipinti, ma anche scultura, street art e fotografie provenienti da 151 musei di 40 paesi.
Alcuni giorni fa è stato potenziato, sono state introdotte: nuove funzioni di ricerca (per periodo, artista o il tipo di opere d'arte), l'integrazione con Google+ e Google Maps e uno speciale Street View "trolley" a 360 gradi. Come gli stessi autori affermano è uno strumento ideale per gli studenti (e io aggiungo anche per gli insegnanti!) perchè si può costruire la propria galleria personalizzata, aggiungere commenti ad ogni dipinto e condividere l'intera collezione con amici e familiari.
Alcuni giorni fa è stato potenziato, sono state introdotte: nuove funzioni di ricerca (per periodo, artista o il tipo di opere d'arte), l'integrazione con Google+ e Google Maps e uno speciale Street View "trolley" a 360 gradi. Come gli stessi autori affermano è uno strumento ideale per gli studenti (e io aggiungo anche per gli insegnanti!) perchè si può costruire la propria galleria personalizzata, aggiungere commenti ad ogni dipinto e condividere l'intera collezione con amici e familiari.
Iscriviti a:
Post (Atom)






