venerdì 3 febbraio 2012

JavaScript: Inserire codice in una pagina web

Vediamo come inserire del codice JavaScript direttamente in una pagina web.
Ad esempio facciamo comparire un messaggio in una dialog (di tipo alert).


Codice inline.

 <html>
<head>
<title>Prova 01</title>
</head>
<body>

</body>
</html>
In questo caso il codice viene eseguito contestualmente alla renderizzazione della pagina nel browser.


Codice associato ad un elemento html.

 <html>
<head>
<title>Prova 02</title>
</head>
<body>
Clicca qui
</body>
</html>
Nella pagina comparirà un link il cui testo recita "Clicca qui"; cliccando vedremo comparire la dialog che abbiamo definito.


Codice definito nell'head.

 <html>
<head>
<title>Prova 02</title>

</head>
<body>
Clicca qui

</body>
</html>
Sia il link che il bottone fanno riferimento alla funzione JavaScript definita all'interno dell'head della pagina.

SharePoint: copiare una DLL nella GAC e farla funzionare

Supponiamo di aver creato, sviluppato e compilato con Visual Studio 2008 un nostro progetto per SharePoint 2007 che fa qualcosa (ovviamente non importa cosa).
Distribuendo la nostra soluzione (ad esempio usando WSPBuilder) andiamo a testare il nostro codice e otteniamo un messaggio di errore simile a questo:
  Unable to load type 'MyProject.MyCode.MyType'
Il problema è che il codice da voi scritto, e quindi la classe MyType sopra citata, non risulta raggiungibile: in effetti non c'è niente di strano, avete solo compilato un progetto Visual Studio quindi la DLL risultante dalla compilazione è visibile solo a Visual Studio.
Per rendere visibile la DLL a SharePoint ci sono due strade:
  1. copiare la DLL nella cartella BIN della Web Application associata al sito su cui volete deployare il vostro progetto;
  2. copiare la DLL nella GAC (Global Assembly Cache), ovvero nella cartella 'C:\Windows\assembly'.

Io preferisco la prima soluzione, la trovo più elegante e più pulita; molti libri, testi, articoli suggeriscono questa pratica per i motivi sopracitati e perché sembra essere una buona pratica rendere disponibile del codice soltanto a chi effetivamente ne ha bisogno (in questo caso alla web application di destinazione).
La maggior parte dei professionisti che lavorano con SharePoint sembrano invece preferire la copia della DLL nella GAC, per diverse ragioni di cui spero di riuscire a trattare in un altro post.
Vediamo allora come procedere. La copia della DLL nella GAC, di per sè, non da molti problemi, è infatti sufficiente prendere la DLL generata dal nostro progetto VS2008 e copiarla nella cartella 'C:\Windows\assembly'. Fermandoci qui però potremmo avere qualche problema, infatti, testando di nuovo la nostra applicazione ci troveremo di nuovo di fronte allo stesso errore:
  Unable to load type 'MyProject.MyCode.MyType'

Per risolvere dobbiamo aprire il file web.config della nostra web application ed aggiungere la seguente riga:
  
nella sezione
    /configuration/system.web/compilation/assemblies
insererndo come valore dell'attributo assembly lo strong name della vostra DLL.

martedì 3 gennaio 2012

GOOGLE: cercare una parola all'interno di un sito

Supponiamo di voler cercare una parola all'interno di uno specifico sito che non fornisca una tale funzionalità o, nel caso in cui la fornisca, che questa non soddisfi le nostre esigenze. Possiamo usare Google.

Io per esempio voglio cercare tutte le pagine che trattano di KDE nel sito it.opensuse.org:
  1. visitare il sito www.google.it o www.google.com;

  2. ricercare la stringa
        site:"it.opensuse.org" "kde"
Il gioco è fatto.

venerdì 30 dicembre 2011

CSS3: angoli arrotondati senza programmi di fotoritocco

Nel web sono sempre più frequentemente utilizzate immagini di sfondo (per sezioni, div, titoli, ecc.) con gli angoli arrotondati. Anche il titolo di questo blog è stato inserito (da me) in un riquadro nero con angoli arrotondati realizzato con GIMP (da me).
Con CSS3 non c'è più bisogno di imparare ad usare GIMP (o addirittura Photoshop) per realizzare qualcosa del genere: è sufficiente utilizzare la proprietà border-radius e le sue varianti. Vediamo qualche esempio.

Impostiamo tutti gli angoli in un sol colpo.

border-radius:6px


Solo il bordo in alto a sinistra.

border-top-left-radius:6px


Solo in alto a destra.

border-top-right-radius:6px


Solo in basso a sinistra.

border-bottom-left-radius:6px


Solo in basso a destra.

border-bottom-right-radius:6px


Impostiamo un raggio asimmetrico (angolo ellittico invece che circolare), ma non è ancora correttamente supportato dai browser quindi non è possibile visualizzare il risultato corretto (quello che prevede due raggi distinti, uno orizzontale e uno verticale, per ciascun angolo), comunque potrebbe risultare utile.

border-radius:3px 10px


Possiamo anche realizzare un div circolare, lascio al lettore scoprire come.

domenica 23 ottobre 2011

Formattare il codice all'interno del proprio sito/blog

Per formattare il codice in questo blog utilizzo il codice (combinazione di JavaScript e CSS) Syntax Highlighter di Alex Gorbatchev.

Copiare questo codice

<script language='javascript'
src='http://syntaxhighlighter.googlecode.com/svn-history/r57/trunk/Scripts/shCore.js'/>
<script language='javascript'
src='http://syntaxhighlighter.googlecode.com/svn-history/r57/trunk/Scripts/shBrushJScript.js'/>
<script language='javascript'
src='http://syntaxhighlighter.googlecode.com/svn-history/r57/trunk/Scripts/shBrushPython.js'/>
<script language='javascript'
src='http://syntaxhighlighter.googlecode.com/svn-history/r57/trunk/Scripts/shBrushXml.js'/>
<script language='javascript'>
dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');
</script>
e incollarlo all'interno del proprio sito, tra </body> e </html>, così
</body>
<!--INSERISCI IL CODICE QUI--!>
</html>

Adesso si può inserire codice che verrà automaticamente formattato, in questo modo
<pre class="brush:c">printf("Valore: \n",valore);</pre>
l'effetto sarà il seguente
printf("Valore: \n",valore);

I valori supportati per l'attributo class sono:
  1. cpp, c++
  2. c
  3. csharp
  4. java
  5. delphi
  6. pascal
  7. php
  8. python
  9. vb
  10. vb.net
  11. sql
  12. rb, ruby, rails, ror
  13. sql
  14. html, xml, xhtml, xslt
  15. css
  16. javascript


NOTA: nel caso si voglia accedere al codice per la formattazione direttamente sul proprio sito (invece che fare riferimento al sito del suo ideatore), si può scaricare tutto il codice dal link all'inizio di questo post, caricare i file corrispondenti sul proprio sito e modificare il codice fornito in modo che si faccia riferimento ai file locali invece che a quelli remoti.

LibreOffice Calc: riferimento a cella di altro file


  1. Selezionare la cella di interesse, ad esempio la cella A1 del Foglio1 (Sheet1 nella versione inglese) del file1.ods, da collegare al contenuto della cella in un file distinto, ad esempio C4 nel Folgio2 (Sheet2 nella versione inglese) del file2.ods;

  2. in file1.ods, premere il pulsante = nella Barra della formula;

  3. nella Riga di digitazione inserire la stringa
    'file2.ods'#Foglio2.C4
    oppure
    'file2.ods'#Sheet2.C4
    nella versione inglese;

  4. cliccare sul segno di spunta blu a sinistra della Riga di digitazione.


Il gioco è fatto.

Per ottenere lo stesso effetto su Microsoft Office vedi qui.

MSOffice Excel: riferimento a cella di altro file


  1. Selezionare la cella di interesse, ad esempio la cella A1 del Foglio1 (Sheet1 nella versione inglese) del file1.xlsx, da collegare al contenuto della cella in un file distinto, ad esempio C4 nel Folgio2 (Sheet2 nella versione inglese) del file2.xlsx;

  2. in file1.xlsx, cliccare sulla Barra della formula in corrispondenza del campo di digitazione e inserire la stringa
    ='percorso_completo\[file2.xlsx]Foglio2'!C4
    oppure
    ='percorso_completo\[file2.xlsx]Sheet2'!C4
    nella versione inglese;

  3. cliccare sul segno di spunta a sinistra del campo di digitazione.


Il gioco è fatto.

Per ottenere lo stesso effetto su LibreOffice (o OpenOffice) vedi qui.