Riccardo Mastellone

January 11, 2013 at 7:35pm
0 notes

Anche per chi lavora da anni nel mondo del web è spesso vittima di miti e leggende che lo riguardano. Un esempio? Il tag <html> è facoltativo! E non solo lui, anche head e body! E’ totalmente facoltativa anche la chiusura di questi tag! E non è una novità dell’html5: il parser di qualsiasi browser ricrea questi elementi nel DOM senza alcun problema! Se trova un elemento mancante lo ‘falsifica’ (HTMLTreeBuilder.cpp :: processFakeStartTag(), la funzione che svolge questo ruolo in Chromium) inserendolo nel DOM.

Stesso discorso vale anche per i tag com <p>, <li>, <tr>, <td> e così via

<ul>
   <li>elemento uno
   <li>elemento due
   <li>elemento tre
</ul>

oppure

<p>ciao io sono un elemento di testo dentro p

Sono tutti perfettamente leciti! Facciamo un esempio.

<!doctype html>

<meta charset=utf-8>
<title>htmltest</title>

<pre></pre>

<h1>RM Design</h1>

<script>
  document.querySelector('h1').innerHTML += '<em>!!!</em>'
  document.body.firstChild
                 .textContent = document.documentElement.outerHTML
</script>

ESEMPIO

Possiamo fare uso senza problemi di tag non esplicitati (body), e, andando ad inserire dentro il tag <pre> il DOM della pagina stessa (preso con outerHTML) , magicamente vediamo come il browser ha inserito i tag mancanti e chiuso quelli lasciati aperti. Vediamo un’altra cosa:l’attributo id. Che caratteri possiamo usare? Dal punto di vista dello standard HTML (si, anche 4.01), tutti! Il problema si presenta quando, andando a leggere le specifiche del CSS 2.1, leggiamo che devono essere caratteri Unicode. Questo comunque ci lascia una certa libertà! Questi esempi,

<div id="♥">
<p id="☺">
<a id="٩๏̯͡๏)۶">

funzioneranno perfettamente in qualsiasi browser!

Ecco altri esempi

E indovinate cos’altro è totalmente facoltativo? Le virgolette! A patto che nel nome dell’attributo non ci siano caratteri quali ” ’ ` = < >possiamo smettere di usarle in qualunque tag.

<a href=http://riccardomastellone.com>ciao io sono un tag a</a>

  Con l’avvento dell’HTML5 una delle novità più rivoluzionarie è la standardizzazione del parser: questo vuol dire che anche se ci sono errori nel markup, se la pagina viene visualizzata in un certo modo in Chrome, sarà esattamente così anche in Opera, Firefox e…. IE (dalla versione 10)!

Un consiglio: nonostante l’approccio per comprendere il funzionamento dell’HTML sia provare, sbagliare, adattare e riprovare, il W3C ci ha regalato delle specifiche redatte apposta per gli sviluppatori web (quindi senza le specifiche tecniche per i browser) che spiegano chiaramente tutto! http://dev.w3.org/html5/spec-author-view/

7:32pm
0 notes

Quando usi Gmail diventa frustante dover aspettare che si apra ogni volta il client come Outlook o Mail per poi richiuderlo quando si clicca su un link  mailto. Tuttavia, grazie a  navigator.registerProtocolHandler() si può impostare l’apertura automatica di Gmail al posto dei client di default in Chrome e Firefox

Ecco come:

  1. Apri Gmail in un tab.
  2. Apri la console javascript  (cmd-opt-j su Mac, ctrl-shift-j su Windows) e inserisci: navigator.registerProtocolHandler("mailto", "https://mail.google.com/mail/?extsrc=mailto&url=%s", "Gmail");
  3. Accetta la conferma del browser
  4. Fatto! (test: info@rmdesign.it)

Per resettare questa impostazioni basta andare in chrome://settings/handlers su Chrome e Preferenze->Applicationi->mailto in Firefox.

7:27pm
0 notes

Molte persone credono che i dispositivi che montano iOS (iPhone, iPod, iPad) non supportino proxy di tipo SOCKS senza jailbreak.

Questo perché nelle impostazioni della rete wifi, l’inserimento manuale consente solo l’uso di proxy http

In realtà, con un semplice accorgimento, possiamo utilizzare il proxy SOCKS anche sui nostri dispositivi Apple, utile soprattutto per sfruttare l’SSH tunneling.

Basta creare un file di testo contenente il seguente codice (sostituendo a 127.0.0.1 l’ip del proxy e 4445 la porta)

function FindProxyForURL(url, host) {

   return "SOCKS 127.0.0.1:4445";

}

caricarlo online e inserire il link a tale file nella modalità “auto” delle impostazioni wifi

January 11, 2011 at 7:43pm
0 notes

Turbo Pascal 3 per MS-DOS è stato rilasciato nel settembre 1986.

La versione 3 (per la precisione 3.02) rappresenta un’ottima rappresentazione del Turbo Pascal: un compilatore Pascal completo, inclusivo di estensioni che lo rendevano pratico per l’uso commerciale, strettamente legato a un editor.

L’intero pacchetto era incredibilmente veloce: nulla a che vedere con compilare i progetti su Visual Studio oggi.

L’intero eseguibile di Turbo Pascal 3.02, quindi compilatore e IDE, erano 39,731 byte.

Vediamo rispetto a cosa oggi (31 Ottobre 2011), questo è più piccolo:

  •  La versione minified di jQuery 1.6.4 (91,669 byte).
  •  La home page di yahoo.com (219,583 byte).
  •  L’immagine dell’iPhone 4S bianco su apple.com (190,157 byte).
  •  zlib.h presente in MacOS X Lion SDK (80,504 byte).
  •  Il comando touch in OS X Lion (44,016 bytes).
  •  Il manuale in PDF di vim (47,508 bytes.)
  •  La pagina sul C++ di Wikipedia (214,251 bytes).