lunedì 29 gennaio 2007

google ci vuole bene?

Mentre il mio amico Adso da Melk si dispera cercando di capire come mai Google lo schifi in questo periodo [travagliato], oggi mi sveglio con una bella sorpresa:
Da stamattina il pagerank della mia modestissima bacheca segna un 2

In questo periodo, come si legge su qualche blog serio, le serp ballano più del solito e chiunque può accorgersene con un minimo di attenzione; e sono convinto che questa ondata di benevolenza nei miei confronti durerà molto poco :D

Finché la barca va... io non remo ;)

giovedì 25 gennaio 2007

mercoledì 24 gennaio 2007

XMLHTTPRequest Same Origin Policy

AJAX{
Asynchronous Javascript And XML


C'ho un post-it su Netvibes da parecchio tempo, ma non ho mai avuto tempo di applicarmici.
Negli ultimi mesi ho passato in rassegna parecchie cosette interessanti, collezionando e catalogando script e link interessanti

oggi ho avuto modo di realizzare la mia prima applicazione sfruttando ajax: niente di ché, una paginetta che richiama il contenuto di un'altra.

Prima applicazione, prima difficoltà: neanche il tempo di iniziare e già ho incontrato il primo problema :D

Per questioni di sicurezza (?) l'oggetto XmlHttpRequest non può andare a richiamare una pagina esterna (su un server remoto) al dominio (o sito...boh) :
in pratica non si può richiamare pagine su altri siti esterni al proprio

è un problema!

Niente paura a tutto c'è soluzione ;)

Vediamo di partire da zero: voglio che la mia paginetta test_ajax.htm carichi il contenuto della home page di google.it (come una qualsiasi altra pagina)

utilizzeremo per far questo una pagina intermedia: getHttp.asp
in questa pagina non faccio altro che utilizzare il componente MSXML2.XMLHTTP per fare quello che avrei voluto fare con javascript (e che mi è stato impedito): gli passo l'url di una *qualsiasi* pagina sul web, lui se la legge e me la ritorna paro-paro (certo i css e le immagini con url relativi vanno a farsi friggere, ma si può rimediare volendo ;) )

il codice semplicissimo della pagina getHttp.asp:

<%
'### si prende l'url da un parametro
strURL = request("url")

Set objXMLHTTP = Server.CreateObject("MSXML2.XMLHTTP")

objXMLHTTP.Open "GET", StrURL, false
objXMLHTTP.Send

'### carico il contenuto (sotto forma di testo) della pagina
'### che ho scaricato nella variabile risultato Risultato
Risultato = objXMLHTTP.responseText

'### importante: lo stampo, così l'oggetto XmlHttpRequest della pagina
'### test_ajax.htm lo vedrà come il risultato della sua chiamata
response.write Risultato
%>


e ora il codice della pagina test_ajax.htm:

<html>


<body>


<script type="text/javascript">

function ajaxFunction(url)

{

var xmlHttp;

try

{

// Firefox, Opera 8.0+, Safari

xmlHttp=new XMLHttpRequest();

}

catch (e)

{

// Internet Explorer

try

{

xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

}

catch (e)

{

try

{

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

}

catch (e)

{

alert("Your browser does not support AJAX!");

return false;

}

}

}

xmlHttp.onreadystatechange=function()

{

if(xmlHttp.readyState==4)

{

document.getElementById("risultato").innerHTML=xmlHttp.responseText ;

}

}

xmlHttp.open("GET","getHttp.asp?url="+url ,true);



xmlHttp.send(null);

}

</script>


Name: <input type="text" id="url" /> <input type="button"

onclick="ajaxFunction(document.getElementById('url').value);" value="Get">


<div id="risultato" style="border: 1px dashed orange"></div>


</body>

</html>


Ci sarebbe da fare una piccola precisazione: l'url passato come parametro andrebbe per sicurezza encodato, per evitare che caratteri speciali come "?" "&" eccetera possano interferire.

ma il mio è solo un concetto, gli aggiustamenti li potete fare da soli :P


Concl
Mi chiedo: a che serve inibire la possibilità di richiamare una pagina remota, se poi la cosa è facilmente aggirabile? Ignoro

}

in tante le lingue del mondo

San Marino
voi ci siete mai andati su www.google.sm?

martedì 23 gennaio 2007

Jeff Han Multi Touch Interaction Research

È un po' old, ma non l'avevo ancora visto: Jeff Han, un ricercatore della New York University ha realizzato quella che sicuramente diventerà una delle interfacce per computer del futuro:

è una sorta di evoluzione del touch screen, somiglia molto all'interfaccia che usa Tom Cruise in Minority Report

Un piccolo assaggio delle potenzialità di questo strumento

giovedì 18 gennaio 2007

Case Sensitive SQL Server 2005 Collation

Mi è capitato di recente di dover creare e gestire un database su Microsoft SQL Server 2005 Express Edition, la versione gratuita di MS SQL Server (libera da ogni costo anche per utilizzi commerciali)

L'idea non è malvagia, visto la potenza che ti mette a sisposizione gratuitamente: serve comunque un server e un bel po' di spazio su disco

Da niubbo, quando ho creato il database invece di lasciare la proprietà "collation" impostata come "default" ho specificato "Latin1_General_BIN"

«Chissà a che serve?» ho pensato, ma tutto funzionava e non c'ho fatto caso

Dopo un po' mi accorgo di una cosa: quando eseguo una query (una SELECT su alcuni campi di testo) noto con dispiacere che esegue una ricerca CASE SENSITIVE, cosa strana per SQL Server

Panico :|
Che succede ?_?

Ma niente paura, a tutto c'è rimedio, e Google ci aiuta sempre: basta saper usare un motore di ricerca e stabilire quali sono le parole chiave da cercare :D

In SQL Server 2005 (anche nei precedenti probabilmente) la clausola COLLATE che permette di stabilire come verranno trattate le stringhe: quello di default in genere comprende due impostazioni (oltre al charset):
CI: Case Insensitive (Ignora la differenza tra caratteri maiuscoli o minuscoli, il contrario è CS)
AS: Accents Sensitive (Fa differenza tra una "a" e una "à", il contrario è AI)
Girando questi due parametri si può impostare a proprio piacimento l'esecuzione delel query

In caso sia necessaria una query particolare (per esempio una query "case sensitive" su un db/tabella/campo che non lo è) è possibile specificare la clausola direttamente nella query

SELECT * FROM nome_tabella WHERE nome_colonna = 'fuFFa' COLLATE SQL_Latin1_General_CP1_CS_AS

La modifica di questa clausola si può fare tranquillamente dalle impostazioni relative al database, tramite l'interfaccia si SQL Server

Purtroppo una volta create le tabelle anche cambiando il tipo di collation al database, i campi già esistenti rimangono con le impostazioni precendenti

È necessario quindi reimpostare tutte i campi delle varie tabelle già esistenti, o tramite l'interfaccia, o tramite un comando SQL:

ALTER TABLE nome_tabella
ALTER COLUMN nome_colonna varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS

Buon divertimento :)

domenica 7 gennaio 2007

Olio Extravergine di oliva Toscano DOP: Frantoio del Colle

Marketta #3b

Olio Extravergine d'oliva Toscano DOP: Frantoio del colle

Frantoio del Colle

Il Frantoio del Colle nasce nelle terre scansanesi della Maremma toscana. Con il passare degli anni l'azienda si è collocata fra i leader del settore olivicolo per l'alta qualità dell'olio.
I vari istituti in materia a livello mondiale hanno certificato la genuinità dei prodotti. L'estrazione dell'olio avviene attraverso spremitura a freddo e mediante processi meccanici di nuovissima concezione tecnologica.
Ogni fase lavorativa viene controllata da personale specializzato, affinché il prodotto possa conservare le proprietà organolettiche tipiche dell'olio.
Frantoio del Colle - Della Gatta Alessandro e Roberto
L'azienda Frantoio del Colle, inoltre, si impegna a garantire la qualità dell'olio frangendo solo olive autoctone, precedentemente selezionate, ottenendo la fragranza tipica della Toscana.

venerdì 5 gennaio 2007

Pesa più un litro d'acqua o un litro d'olio? ™

La domanda è semplice, e la risposta pure.
Ma non sarò io a darvela: io sono quello che fa la domanda, a rispondere dovete pensarci voi :)

Pesa più un litro d'acqua o un litro d'olio?



PS: qua il ™ ci sta tutto, sono io il promotore del giochetto, da secoli ormai

giovedì 4 gennaio 2007

Radio.Blog Mp3 Music sul mio blog

vediamo se funza, ho provato ad aggiungerlo al blog

Una delle colonne sonore più belle in assoluto, creata dal Maestro per eccellenza:

Il mio nome è Nessuno - Il mucchio selvaggio - Ennio Morricone
(My Name is Nobody - The Wild Bunch)

buon ascolto


PS: il box a destra non so se posso lasciarlo :asd: vediamo quanto resiste

Internet Explorer 7 - Windows Update

L'apocalisse è vicina (e questo si sa) ma quello di oggi è un segno importante:

oggi accendo il pc... "Aggiornamenti disponibili per il computer" la solita scritta insomma.

ma la sorpresina è in agguato: l'aggiornamento di oggi è Internet Explorer 7 per Windows XP

so già che molti lo installeranno :|
(che in teoria non è un male, essendo IE7 un passo "avanti"; quello che mi preoccupa è l'impatto che avrà sui siti... ClearType ti ricorda qualcosa? ecc...)

e gg a Interdet Explorer

la fine è vicina

mercoledì 3 gennaio 2007

Progettare un pezzo meccanico complesso e realizzarlo?


L'ho scoperto l'anno scorso :D girovagando qua e , e mi è subito sembrata una gallata:
quante volte nella vita uno ha bisogno di creare un pezzo meccanico ad hoc (certo, riferito a chi come me ha la passione per tutto quello che è il lavoro "pratico") e deve rinunciare perché non c'è modo, con i propri mezzi, di realizzare un determinato pezzo...
un po' come quando da piccolo giocavo con i lego e mi mancava sempre "un pezzo così" per dare sfogo alla mia fantasia

a quanto pare c'è la soluzione: eMachineShop

  1. ti scarichi il programma CAD gratuito
  2. ti disegni/progetti il tuo pezzo con le relative lavorazioni da effettuare e i materiali
  3. invii la richiesta, loro analizzano la fattibilità e ti rispondono con un preventivo
se accetti, lo costruiscono per te e te lo spediscono a casa

non gratis, naturalmente :)

ma quanto costa la realizzazione di un sogno?

lunedì 1 gennaio 2007

chi ben comincia

in genere, nonostante i buoni propositi, va sempre peggio

sarò pessimista...

o realista?