<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Esbudellant estàndards</title>
  <generator uri="http://effectif.com/nesta">Nesta</generator>
  <id>tag:blog.esbudellat.net,2009:/</id>
  <link href="http://blog.esbudellat.net/feed" rel="self" />
  <link href="http://blog.esbudellat.net" rel="alternate" />
  <updated>2011-12-06</updated>
  <author>
    <name>Arnau Siches</name>
    <uri>http://esbudellat.net</uri>
  </author>
  <entry>
    <title>Personalització de NERD Commenter</title>
    <link href="http://blog.esbudellat.net/2011/nerdcommenter-personalitzat" rel="alternate" type="text/html" />
    <id>tag:blog.esbudellat.net,2011-12-06:/2011/nerdcommenter-personalitzat</id>
    <content type="html">
            &lt;p&gt;&lt;a href=&quot;https://github.com/scrooloose/nerdcommenter&quot;&gt;NERD Commenter&lt;/a&gt; és un &lt;em&gt;plug-in&lt;/em&gt; per Vim que ofereix una sèrie de comandes per facilitar el comentar/descomentar codi.&lt;/p&gt;
            
            &lt;p&gt;Tot i que de sèrie reconeix desenes de sintàxis habituals (i.e. Ruby, Vim, Perl, etc) no cobreix tots els casos. Per exemple, no cobreix el cas de &lt;a href=&quot;http://www.w3.org/TR/turtle/&quot;&gt;Turtle&lt;/a&gt;.&lt;/p&gt;
            
            &lt;p&gt;Per aprofitar NERD Commenter a l'editar Turtle cal usar &lt;code&gt;g:NERDCustomDelimiters&lt;/code&gt; el qual contindrà un diccionari o &lt;em&gt;hash&lt;/em&gt; amb els delimitadors personalitzats.&lt;/p&gt;
            
            &lt;p&gt;Afegir la declaració al &lt;code&gt;.vimrc&lt;/code&gt; és suficient, per exemple seguit de la definició de la sintaxi:&lt;/p&gt;
            
            &lt;pre&gt;&lt;code&gt;&amp;quot; .vimrc&amp;#x000A;au BufNewFile, BufRead *.n3,*.ttl  setfiletype n3&amp;#x000A;let g:NERDCustomDelimiters = {&amp;#x000A;  \ 'n3': { 'left': '# ' }&amp;#x000A;\ }&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
          </content>
    <published>2011-12-06</published>
    <updated>2011-12-06</updated>
  </entry>
  <entry>
    <title>Referències de caràcter en HTML5</title>
    <link href="http://blog.esbudellat.net/2011/referencies-caracter-html5" rel="alternate" type="text/html" />
    <id>tag:blog.esbudellat.net,2011-11-27:/2011/referencies-caracter-html5</id>
    <content type="html">
              &lt;p&gt;Hi ha tres tipus de referències de caràcter en HTML, &lt;em&gt;Named character references&lt;/em&gt; (p.ex. &lt;code&gt;&amp;amp;apos;&lt;/code&gt;), &lt;em&gt;Decimal numeric character references&lt;/em&gt; (p.ex. &lt;code&gt;&amp;amp;#39;&lt;/code&gt;) i &lt;em&gt;Hexadecimal numeric character references&lt;/em&gt; (p.ex. &lt;code&gt;&amp;amp;#x27;&lt;/code&gt;). Es pot expressar qualsevol de les possibilitats amb la següent expressió regular:&lt;/p&gt;
              
              &lt;pre&gt;&lt;code&gt;&amp;amp;( names | #x?[0-9a-zA-Z]+; )&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
              
              &lt;p&gt;On &lt;code&gt;names&lt;/code&gt; és alguna de les possibilitats del llistat de &lt;a href=&quot;http://www.w3.org/TR/html5/named-character-references.html#named-character-references&quot;&gt;noms reservats&lt;/a&gt;. Interessant destacar que en aquest llistat es permeten casos com &lt;code&gt;&amp;amp;AMP&lt;/code&gt; o &lt;code&gt;&amp;amp;amp&lt;/code&gt; sense punt i coma (&lt;code&gt;;&lt;/code&gt;) final.&lt;/p&gt;
              
              &lt;p&gt;Les referències numèriques no permeten U+0000, U+000D, cap caràcter Unicode no definit ni cap caràcter de control excepte espais.&lt;/p&gt;
              
              &lt;p&gt;Una &lt;em&gt;ampersand&lt;/em&gt; és ambigu i per tant prohibit si &lt;em&gt;no coincideix&lt;/em&gt; amb cap dels anteriors casos i coincideix amb l'expressió regular:&lt;/p&gt;
              
              &lt;pre&gt;&lt;code&gt;&amp;amp;[0-9a-zA-Z]+;&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
              
              &lt;p&gt;Això deixa un seguit de casos com a &lt;em&gt;ampersand&lt;/em&gt; legals tot i no ser referències de caràcter. Per exemple:&lt;/p&gt;
              
              &lt;pre&gt;&lt;code&gt;Alpha &amp;amp; Omega&amp;#x000A;Lorem ipsum dolor &amp;amp;&amp;lt;span&amp;gt;sit&amp;lt;/span&amp;gt; amet.&amp;#x000A;(foo &amp;amp;&amp;amp; bar)&amp;#x000A;http://example.org/?x=1&amp;amp;y=2&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
            </content>
    <published>2011-11-27</published>
    <updated>2011-11-27</updated>
  </entry>
  <entry>
    <title>Limitacions d'estils en enllaços visitats</title>
    <link href="http://blog.esbudellat.net/2011/limitacions-estils-enllacos-visitats" rel="alternate" type="text/html" />
    <id>tag:blog.esbudellat.net,2011-11-07:/2011/limitacions-estils-enllacos-visitats</id>
    <content type="html">
                &lt;p&gt;Les versions de navegador més recents han capat les possibilitats d'estilat d'un enllaç visitat. Firefox 4, Safari 5 i Chrome 15. Opera 11.5 encara hi dóna suport total.&lt;/p&gt;
                
                &lt;h2&gt;Limitacions&lt;/h2&gt;
                
                &lt;p&gt;Els enllaços visitats, &lt;code&gt;a:visited&lt;/code&gt;, es limiten a les propietats relacionades amb el color, és a dir:&lt;/p&gt;
                
                &lt;ul&gt;
                &lt;li&gt;&lt;code&gt;color&lt;/code&gt;&lt;/li&gt;
                &lt;li&gt;&lt;code&gt;background-color&lt;/code&gt;&lt;/li&gt;
                &lt;li&gt;&lt;code&gt;border-color&lt;/code&gt;, &lt;code&gt;border-top-color&lt;/code&gt;, &lt;code&gt;border-right-color&lt;/code&gt;, &lt;code&gt;border-bottom-color&lt;/code&gt;, &lt;code&gt;border-left-color&lt;/code&gt;&lt;/li&gt;
                &lt;li&gt;&lt;code&gt;outline-color&lt;/code&gt;&lt;/li&gt;
                &lt;/ul&gt;
                
                &lt;p&gt;Qualsevol altre propietat aplica si està definida com a enllaç no visitat &lt;code&gt;a:link&lt;/code&gt;.&lt;/p&gt;
                
                &lt;p&gt;A més a més no es pot usar &lt;code&gt;rgba()&lt;/code&gt;, &lt;code&gt;hsla()&lt;/code&gt;, ni transparència.&lt;/p&gt;
                
                &lt;p&gt;En matèria de selectors, apliquen sense tenir en compte la pseudo-classe &lt;code&gt;:visited&lt;/code&gt;.&lt;/p&gt;
                
                &lt;h2&gt;I perquè?&lt;/h2&gt;
                
                &lt;p&gt;A principis del 2010 &lt;a href=&quot;http://saizai.livejournal.com/960791.html&quot;&gt;van trobar&lt;/a&gt; que explotant &lt;code&gt;getComputedStyle()&lt;/code&gt; combinat amb la pseudo-classe &lt;code&gt;:visited&lt;/code&gt; es podia obtenir tot l'historial de navegació i d'aquí, a força bruta, desanonimitzar la persona. Un atac a la privacitat.&lt;/p&gt;
                
                &lt;p&gt;De les idees proposades Firefox, Safari i Chrome han tirat per limitar les possibilitats de la pseudo-classe &lt;code&gt;:visited&lt;/code&gt; alhora que falsejen les respostes de funcions tipus &lt;code&gt;getComputedStyle()&lt;/code&gt; o &lt;code&gt;querySelector()&lt;/code&gt;.&lt;/p&gt;
                
                &lt;h2&gt;Què fer?&lt;/h2&gt;
                
                &lt;p&gt;La meva solució ara per ara és deixar d'usar el concepte d'enllaç visitat. Cada vegada em semblava més prescindible, això només accelera el procés.&lt;/p&gt;
              </content>
    <published>2011-11-07</published>
    <updated>2011-11-07</updated>
  </entry>
  <entry>
    <title>Passenger, Apache i Ubuntu</title>
    <link href="http://blog.esbudellat.net/2011/passenger" rel="alternate" type="text/html" />
    <id>tag:blog.esbudellat.net,2011-11-02:/2011/passenger</id>
    <content type="html">
                  &lt;p&gt;Tot i que la &lt;a href=&quot;http://www.modrails.com/documentation/Users%20guide%20Apache.html&quot;&gt;documentació de passenger&lt;/a&gt; és molt clara, el problema que m'he trobat és que la versió de RubyGems a Ubuntu no m'ha funcionat bé.&lt;/p&gt;
                  
                  &lt;h2&gt;Actualització de RubyGems&lt;/h2&gt;
                  
                  &lt;p&gt;Tot i no ser el recomanat, per tirar endavant he instal·lat RubyGems 1.8 directament de tarball o sigui:&lt;/p&gt;
                  
                  &lt;pre&gt;&lt;code&gt;$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.10.tgz&amp;#x000A;$ tar xvfz rubygems-1.8.10.tgz&amp;#x000A;$ cd rubygems-1.8.10&amp;#x000A;$ mv /usr/bin/gem /usr/bin/gem-ubuntu&amp;#x000A;$ ruby setup.rb&amp;#x000A;$ ln -s /usr/bin/gem1.8 /usr/bin/gem&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
                  
                  &lt;p&gt;Nota: cal usar &lt;code&gt;sudo&lt;/code&gt; en funció de l'entorn.&lt;/p&gt;
                  
                  &lt;h2&gt;Instal·lació de Passenger en Apache&lt;/h2&gt;
                  
                  &lt;p&gt;A partir d'aquí és instal·lar la gemma i executar l'instal·lador tal com explica la documentació de Passenger:&lt;/p&gt;
                  
                  &lt;pre&gt;&lt;code&gt;$ gem install passenger&amp;#x000A;$ passenger-install-apache2-module&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
                  
                  &lt;p&gt;La resta l'explica l'instal·lador pas a pas.&lt;/p&gt;
                </content>
    <published>2011-11-02</published>
    <updated>2011-11-02</updated>
  </entry>
  <entry>
    <title>Comandes Vim usuals</title>
    <link href="http://blog.esbudellat.net/cheatsheets/vim" rel="alternate" type="text/html" />
    <id>tag:blog.esbudellat.net,2011-10-28:/cheatsheets/vim</id>
    <content type="html">
                    &lt;h2&gt;Cerca&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;/foo&lt;/code&gt; cerca &lt;em&gt;foo&lt;/em&gt; de dalt a baix.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;?foo&lt;/code&gt; cerca &lt;em&gt;foo&lt;/em&gt; de baix a dalt.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;/\&amp;lt;foo\&amp;gt;&lt;/code&gt; cerca &lt;em&gt;foo&lt;/em&gt; (similar a &lt;code&gt;\bfoo\b&lt;/code&gt; en Perl).&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;/^\n{3}&lt;/code&gt; cerca tres línies buides.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:bufdo /foo/&lt;/code&gt; cerca &lt;em&gt;foo&lt;/em&gt; a tots els &lt;em&gt;buffers&lt;/em&gt; oberts.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;n&lt;/code&gt; mou el cursor a la següent coincidència.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;h2&gt;Reemplaçament&lt;/h2&gt;
                    
                    &lt;pre&gt;&lt;code&gt;:[rang]s[ubstitute]/{patró}/{reemplaçament}/{cgiI}&amp;#x000A;&lt;/code&gt;&lt;/pre&gt;
                    
                    &lt;p&gt;Modificadors:&lt;/p&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;c&lt;/code&gt; confirma cada reemplaçament.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;g&lt;/code&gt; reemplaça totes les coincidències.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;i&lt;/code&gt; ignora la majúscules i minúscules.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;I&lt;/code&gt; invers d'&lt;code&gt;i&lt;/code&gt;.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;p&gt;Per cada línia a &lt;code&gt;[rang]&lt;/code&gt; reemplaça la coincidència del &lt;code&gt;{patró}&lt;/code&gt; pel &lt;code&gt;{reemplaçament}&lt;/code&gt; el qual és una cadena que pot dur referències de grups capturats al &lt;code&gt;{patró}&lt;/code&gt;.
                    Els grups capturats es referencien mitjançant l'índex precedit per &lt;code&gt;\&lt;/code&gt;; per exemple &lt;code&gt;\1&lt;/code&gt;.&lt;/p&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;:%s/foo/bar/g&lt;/code&gt; reemplaça totes les coincidències de “foo” per “bar”.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:s/foo/bar/g&lt;/code&gt; reemplaça totes les coincidències de “foo” per “bar” de la línia sota el cursor.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:2,40s/foo/bar/g&lt;/code&gt; reemplaça totes les coincidències de “foo” per “bar” entre les línies 2 i 40.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:g/foo/d&lt;/code&gt; elimina totes les línies que contenen “foo”.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:v/foo/d&lt;/code&gt; elimina totes les línies que no contenen “foo”.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-a&lt;/code&gt; incrementa el valor numèric sota el cursor.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-x&lt;/code&gt; decrementa el valor numèric sota el cursor.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;p&gt;Per reemplaçar en múltiples es pot fer el següent:&lt;/p&gt;
                    
                    &lt;ol&gt;
                    &lt;li&gt;Obrir-los tots: &lt;code&gt;:args my/files/*/*&lt;/code&gt;&lt;/li&gt;
                    &lt;li&gt;Aplicar la cerca i reemplaçament a tots els &lt;em&gt;buffers&lt;/em&gt; oberts: &lt;code&gt;:argdo %s/foo/bar/gec | update&lt;/code&gt;&lt;/li&gt;
                    &lt;/ol&gt;
                    
                    &lt;h2&gt;Majúscules i minúscules&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;Vu&lt;/code&gt; passa la línia a minúscules.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;VU&lt;/code&gt; passa la línia a majúscules.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;vEu&lt;/code&gt; passa la paraula a minúscules.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;vEU&lt;/code&gt; passa la paraula a majúscules.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;g~~&lt;/code&gt; inverteix majúscules i minúscules de la línia.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;vE~&lt;/code&gt; inverteix majúscules i minúscules de la paraula.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;h2&gt;Colorejat de sintàxi&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;:syntax on&lt;/code&gt; activa el colorejat de sintàxi.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:set syntax=ruby&lt;/code&gt; força el colorejat del fitxer al tipus especificat.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;h2&gt;Sagnat&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; sagna.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt; desagna.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-t&lt;/code&gt; sagna en mode &lt;em&gt;insert&lt;/em&gt;.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-d&lt;/code&gt; desagna en mode &lt;em&gt;insert&lt;/em&gt;.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;h2&gt;Navegació de fitxers&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;:e .&lt;/code&gt; obre l'explorador de fitxers integrat.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:Sex&lt;/code&gt; obre l'explorador de fitxers integrat en una finestra apart.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:browse e&lt;/code&gt; obre l'explorador de fitxers gràfic (GUI).&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:ls&lt;/code&gt; llista els &lt;em&gt;buffer&lt;/em&gt; oberts.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:bd 1&lt;/code&gt; elimina el &lt;em&gt;buffer&lt;/em&gt; número 1.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:b 1&lt;/code&gt; edita el &lt;em&gt;buffer&lt;/em&gt; número 1.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:cd ..&lt;/code&gt; es posiciona al directori pare.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;gf&lt;/code&gt; obre el nom de fitxer sota el cursor.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;h2&gt;Accés a Unix&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;:!pwd&lt;/code&gt; executa la comanda &lt;code&gt;pwd&lt;/code&gt; i retorna a Vim.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:r!pwd&lt;/code&gt; executa la comanda &lt;code&gt;pwd&lt;/code&gt; i inserta el resultat a Vim.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:sh&lt;/code&gt; retorna temporalment a Unix (per tornar a Vim: &lt;code&gt;exit&lt;/code&gt;).&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;h2&gt;Pestanyes&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;:tabe filename&lt;/code&gt; obre el fitxer en una nova pestanya.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:tabnew&lt;/code&gt; obre una nova pestanya.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:tabclose&lt;/code&gt; tanca la pestanya.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:tabfirst&lt;/code&gt; mostra la primera pestanya.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:tablast&lt;/code&gt; mostra la darrera pestanya.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;gt&lt;/code&gt; mostra la pestanya següent.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;gT&lt;/code&gt; mostra la pestanya anterior.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:tabdo {comanda}&lt;/code&gt; executa la comanda a totes les pestanyes.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:tab ball&lt;/code&gt; reubica els &lt;em&gt;buffers&lt;/em&gt; en pestanyes.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:tabs&lt;/code&gt; llista totes les pestanyes obertes.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;h2&gt;Finestres&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;H&lt;/code&gt; deixa el cursor al principi de la finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;M&lt;/code&gt; deixa el cursor al mig de la finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;L&lt;/code&gt; deixa el cursor al final de la finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:split filename&lt;/code&gt; separa la finestra en dos i obre el fitxer (horitzontal).&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;:vsplit filename&lt;/code&gt; separa la finestra en dos i obre el fitxer (vertical).&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-w &amp;lt;fletxa amunt&amp;gt;&lt;/code&gt; Deixa el cursor a la finestra superior.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-w CTRL-w&lt;/code&gt; Deixa el cursor a la finestra següent.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-w _&lt;/code&gt; Maximitza la finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-w =&lt;/code&gt; Iguala les finestres.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;10 CTRL-w +&lt;/code&gt; Afegeix 10 línies a la finestra.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;h2&gt;Scroll&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-y&lt;/code&gt; fa scroll amunt.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-e&lt;/code&gt; fa scroll avall.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-u&lt;/code&gt; fa scroll amunt mitja finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-d&lt;/code&gt; fa scroll avall mitja finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-b&lt;/code&gt; fa scroll amunt d'una finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-f&lt;/code&gt; fa scroll avall d'una finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;zt&lt;/code&gt; fa scroll posicionant el cursor al principi de la finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;zz&lt;/code&gt; fa scroll posicionant el cursor al mig de la finestra.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;zb&lt;/code&gt; fa scroll posicionant el cursor al final de la finestra.&lt;/li&gt;
                    &lt;/ul&gt;
                    
                    &lt;h2&gt;Completat&lt;/h2&gt;
                    
                    &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-n&lt;/code&gt; completat de paraula en mode &lt;em&gt;insert&lt;/em&gt;.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-p&lt;/code&gt; completat de paraula en mode &lt;em&gt;insert&lt;/em&gt;.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-x&lt;/code&gt; completat de línia en mode &lt;em&gt;insert&lt;/em&gt;.&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;CTRL-l&lt;/code&gt; completat de línia en mode &lt;em&gt;insert&lt;/em&gt;.&lt;/li&gt;
                    &lt;/ul&gt;
                  </content>
    <published>2011-10-28</published>
    <updated>2011-10-28</updated>
  </entry>
  <entry>
    <title>L'Apòstrof</title>
    <link href="http://blog.esbudellat.net/2009/apostrof" rel="alternate" type="text/html" />
    <id>tag:blog.esbudellat.net,2009-05-01:/2009/apostrof</id>
    <content type="html">
                      &lt;p&gt;L'apòstrof (&lt;code&gt;'&lt;/code&gt;) està codificat per Unicode com a &lt;code&gt;U+0027&lt;/code&gt;, per ISO-8859-1 com a &lt;code&gt;Ox27&lt;/code&gt;, com a NCR &lt;code&gt;&amp;amp;#39;&lt;/code&gt; (en XML i HTML també s'accepta &lt;code&gt;&amp;amp;apos;&lt;/code&gt;).&lt;/p&gt;
                      
                      &lt;p&gt;Aquest caràcter normalment té un &lt;em&gt;glyph&lt;/em&gt; vertical que el diferencia del &lt;em&gt;glyph&lt;/em&gt; de la cometa simple de tancament (codificada per Unicode com a &lt;code&gt;U+2019&lt;/code&gt; i com a entitat HTML &lt;code&gt;&amp;amp;#8217;&lt;/code&gt; o &lt;code&gt;&amp;amp;rsquo;&lt;/code&gt;).&lt;/p&gt;
                      
                      &lt;p&gt;Aquí precisament comença un dels primers problemes: En ISO-8859-1 només existeix una posició per ambdós caràcters; el &lt;code&gt;0x27&lt;/code&gt;, heredat de l'ASCII.&lt;/p&gt;
                      
                      &lt;p&gt;Per tant, per aconseguir cometes simples assimètriques s'usen els caràcters d'accent obert (&lt;code&gt;U+0060&lt;/code&gt;, &lt;code&gt;0x60&lt;/code&gt;, &lt;code&gt;&amp;amp;#96;&lt;/code&gt;, &lt;code&gt;&amp;amp;grave;&lt;/code&gt;) i tancat (&lt;code&gt;U+00B4&lt;/code&gt;, &lt;code&gt;0xB4&lt;/code&gt;, &lt;code&gt;&amp;amp;#180;&lt;/code&gt;, &lt;code&gt;&amp;amp;acute;&lt;/code&gt;). Al fer-ho poden apareixer problemes amb tipografies de sistemes &lt;em&gt;X Window&lt;/em&gt; que codifiquin l'accent obert com a &lt;code&gt;0x27&lt;/code&gt; (igual que l'apòstrof).&lt;/p&gt;
                      
                      &lt;p&gt;Amb codificacions més complertes com UTF-8 on cada caràcter té una posició, l'apòstrof manté el &lt;em&gt;glyph&lt;/em&gt; vertical que tenia en ASCII i ISO-8859-1 mentre que la cometa simple de tancament passa a tenir un estil “arrissat”.&lt;/p&gt;
                      
                      &lt;p&gt;Això fa que aparegui un nou problema: en tipografies classiques (impressió de textos, llibres, etc.) l'apòstrof sempre ha tingut un aspecte &amp;quot;arrissat&amp;quot;, amb la qual cosa hi ha gent que prefereix usar una cometa simple de tancament en comptes d'un apòstrof perquè la troba més adequada (a nivell purament d'aspecte).&lt;/p&gt;
                      
                      &lt;p&gt;Com a darrer problema, en &lt;em&gt;eines&lt;/em&gt; de Microsoft tals com MS Word a l'escriure un apòstrof el converteix en un altre caràcter corresponent a una extensió de ISO-8859-1 —que comprèn l'interval &lt;code&gt;0x82-0x95&lt;/code&gt;— que aconsegueix &lt;strong&gt;ser incompatible amb ISO-8859-1 i amb Unicode&lt;/strong&gt;.&lt;/p&gt;
                      
                      &lt;p&gt;Això fa que quan es copia un text des de MS Word a un formulari HTML el contingut guardat sigui erroni ja que té inconsistències de codificació. Per subsanar aquest problema cal, o prohibir l'ús d'aquest processador de textos a qui hagi d'usar aquest formulari o validar el contingut que envia el camp de formulari detectant aquestes inconsistències i substituint-les pels caràcters correctes.&lt;/p&gt;
                    </content>
    <published>2009-05-01</published>
    <updated>2009-05-01</updated>
  </entry>
</feed>

<!-- page cached: 2012-19-05 16:28:32 -->


