<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>soledad penadés &#187; firefox</title>
	<atom:link href="http://soledadpenades.com/tag/firefox/feed/" rel="self" type="application/rss+xml" />
	<link>http://soledadpenades.com</link>
	<description>repeat 4[fd 100 rt 90]</description>
	<lastBuildDate>Wed, 25 Apr 2012 21:10:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>C:\fakepath\</title>
		<link>http://soledadpenades.com/2011/10/10/cfakepath/</link>
		<comments>http://soledadpenades.com/2011/10/10/cfakepath/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 19:01:00 +0000</pubDate>
		<dc:creator>sole</dc:creator>
				<category><![CDATA[Silly stuff]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[glitches]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[whatwg]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://soledadpenades.com/?p=3730</guid>
		<description><![CDATA[The things one finds while reading the specs: For historical reasons, the value IDL attribute prefixes the filename with the string &#8220;C:\fakepath\&#8221;. Some legacy user agents actually included the full path (which was a security vulnerability). As a result of this, obtaining the filename from the value IDL attribute in a backwards-compatible way is non-trivial. [...]]]></description>
			<content:encoded><![CDATA[<p>The things one finds while reading the specs:</p>
<blockquote><p>For historical reasons, the value IDL attribute prefixes the filename with the string &#8220;C:\fakepath\&#8221;. Some legacy user agents actually included the full path (which was a security vulnerability). As a result of this, obtaining the filename from the value IDL attribute in a backwards-compatible way is non-trivial. The following function extracts the filename in a suitably compatible manner:</p>
<div class="syhi_block"><code><span style="color: #003366; font-weight: bold;">function</span> extractFilename<span style="color: #009900;">&#40;</span>path<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>path.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">12</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;C:<span style="color: #000099; font-weight: bold;">\\</span>fakepath<span style="color: #000099; font-weight: bold;">\\</span>&quot;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> path.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">12</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// modern browser</span><br />
&nbsp; <span style="color: #003366; font-weight: bold;">var</span> x<span style="color: #339933;">;</span><br />
&nbsp; x <span style="color: #339933;">=</span> path.<span style="color: #660066;">lastIndexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>x <span style="color: #339933;">&gt;=</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #006600; font-style: italic;">// Unix-based path</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> path.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span>x<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; x <span style="color: #339933;">=</span> path.<span style="color: #660066;">lastIndexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\\</span>'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>x <span style="color: #339933;">&gt;=</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #006600; font-style: italic;">// Windows-based path</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> path.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span>x<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> path<span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// just the filename</span><br />
<span style="color: #009900;">&#125;</span></code></div>
</blockquote>
<p><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/number-state.html#fakepath-srsly">(source, please look at the URL)</a></p>
<p><strong>WHAT We Guck!!?</strong></p>
<p>At the same time, Firefox seems to be interpreting the title of this post <em>literally</em>, and instead of <q>C:\fakepath\</q>, I see <q>C:akepath</q> in the tab title&#8211;because it is showing the escaped f (i.e. \f). A nifty square with (0 0 0 C) shows in the browser window title area instead of the \f&#8230;</p>
<p><ins datetime="2011-10-10T19:01:23+00:00">Update, later</ins>: Chrome does it too, as well as Chromium, and Opera.</p>
<p><ins datetime="2011-10-10T19:19:55+00:00">Another update</ins>: maybe it&#8217;s a WordPress thing? I just wrote a test html file with backslash on its title and it&#8217;s shown properly on the tab title. Hum ho.</p>
<p>Glitches, glitches&#8211;they are everywhere!</p>
 <p><a href="http://soledadpenades.com/?flattrss_redirect&amp;id=3730&amp;md5=6f8304617f5bc7a4e05215b13374a247" title="Flattr" target="_blank"><img src="http://soledadpenades.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://soledadpenades.com/2011/10/10/cfakepath/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=8399&amp;amp;url=http%3A%2F%2Fsoledadpenades.com%2F2011%2F10%2F10%2Fcfakepath%2F&amp;amp;language=en_GB&amp;amp;category=text&amp;amp;title=C%3A%5Cfakepath%5C&amp;amp;description=The+things+one+finds+while+reading+the+specs%3A%0D%0A%0D%0AFor+historical+reasons%2C+the+value+IDL+attribute+prefixes+the+filename+with+the+string+%22C%3A%5Cfakepath%5C%22.+Some+legacy+user+agents+actually+included+the+full+path+%28which+was+a+security+vulnerability%29.+As+a+result+of+this%2C+obtaining+the+filename+from+the+value+IDL+attribute+in+a+backwards-compatible+way+is+non-trivial.+The+following+function+extracts+the+filename+in+a+suitably+compatible+manner%3A%0D%0A%0D%0A%0D%0Afunction+extractFilename%28path%29+%7B%0D%0A++if+%28path.substr%280%2C+12%29+%3D%3D+%22C%3A%5C%5Cfakepath%5C%5C%22%29%0D%0A++++return+path.substr%2812%29%3B+%2F%2F+modern+browser%0D%0A++var+x%3B%0D%0A++x+%3D+path.lastIndexOf%28%27%2F%27%29%3B%0D%0A++if+%28x+%3E%3D+0%29+%2F%2F+Unix-based+path%0D%0A++++return+path.substr%28x%2B1%29%3B%0D%0A++x+%3D+path.lastIndexOf%28%27%5C%5C%27%29%3B%0D%0A++if+%28x+%3E%3D+0%29+%2F%2F+Windows-based+path%0D%0A++++return+path.substr%28x%2B1%29%3B%0D%0A++return+path%3B+%2F%2F+just+the+filename%0D%0A%7D%0D%0A%0D%0A%0D%0A%28source%2C+please+look+at+the+URL%29%0D%0A%0D%0AWHAT+We+Guck%21%21%3F%0D%0A%0D%0AAt+the+same+time%2C+Firefox+seems+to+be+interpreting+the+title+of+this+post+literally%2C+and+instead+of+C%3A%5Cfakepath%5C%2C+I+see+C%3Aakepath+in+the+tab+title--because+it+is+showing+the+escaped+f+%28i.e.+%5Cf%29.+A+nifty+square+with+%280+0+0+C%29+shows+in+the+browser+window+title+area+instead+of+the+%5Cf...%0D%0A%0D%0AUpdate%2C+later%3A+Chrome+does+it+too%2C+as+well+as+Chromium%2C+and+Opera.%0D%0A%0D%0AAnother+update%3A+maybe+it%27s+a+WordPress+thing%3F+I+just+wrote+a+test+html+file+with+backslash+on+its+title+and+it%27s+shown+properly+on+the+tab+title.+Hum+ho.%0D%0A%0D%0AGlitches%2C+glitches--they+are+everywhere%21&amp;amp;tags=firefox%2Cglitches%2Chtml5%2Cwhatwg%2Cwtf%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Line spacing inconsistencies when pasting to Firefox from gedit</title>
		<link>http://soledadpenades.com/2011/08/19/line-spacing-inconsistencies-when-pasting-to-firefox-from-gedit/</link>
		<comments>http://soledadpenades.com/2011/08/19/line-spacing-inconsistencies-when-pasting-to-firefox-from-gedit/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 17:09:46 +0000</pubDate>
		<dc:creator>sole</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[clipboard]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gedit]]></category>

		<guid isPermaLink="false">http://soledadpenades.com/?p=3624</guid>
		<description><![CDATA[I was adding some productions to escena.org when I noticed something strange about the way the info section of the latest productions was looking. I was slightly distracted by the excitement of watching all those intros and demos that I hadn&#8217;t heard before about, so it took me a while to notice what it was [...]]]></description>
			<content:encoded><![CDATA[<p>I was adding some <a href="http://escena.org/productions/1">productions</a> to escena.org when I noticed something strange about the way the info section of the latest productions was looking. I was slightly distracted by the excitement of watching all those intros and demos that I hadn&#8217;t heard before about, so it took me a while to notice what it was exactly that &#8220;didn&#8217;t quite look right&#8221;. It was <strong>the spacing</strong>!</p>
<p>Or more exactly, <strong>the double spacing</strong> that I was <a href="http://escena.org/productions/id/114/">seeing</a>, instead of just a single line as in the original!</p>
<p>Initially willing (or expecting) to put the blame on me, I examined my back-end code first, but there is nothing dealing with double spacing or &#8220;Windows spacing&#8221; correction, such as automatically replacing <em>\r\n</em> with <em>\n</em> only.<br />
<span id="more-3624"></span><br />
I then remembered that when I developed this section a year ago I was using Chrome as my main browser, so I wondered if it was a Firefox-only error that had slipped thru back then. Therefore, I repeated my test with Chrome: opened a FILE_ID.DIZ with <a href="http://projects.gnome.org/gedit/">gedit</a>, copied the text and pasted it to the corresponding textarea. Clicked on save&#8230; and the result came out OK! Simple single line-endings were received by PHP, as one would expect.</p>
<p><q>So it&#8217;s a Firefox thing then</q>, I thought. Not so fast, it can still get more bizarre. But before I get to that, let me show you a little piece of test code I wrote to ensure nothing else was interfering in the process:</p>
<div class="syhi_block"><code><span style="color: #000000; font-weight: bold;">&lt;?php</span> <br />
<br />
<span style="color: #000088;">$txt</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pasted_text</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_METHOD'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'POST'</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$pasted_text</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'text'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/str_replace"><span style="color: #990000;">str_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;span class=&quot;n&quot;&gt;&lt;/span&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pasted_text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/str_replace"><span style="color: #990000;">str_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;span class=&quot;r&quot;&gt;&lt;/span&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$txt</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'You pasted this:&lt;br /&gt;&lt;pre&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$text</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;/pre&gt;&lt;br /&gt;(end of your paste)'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;!DOCTYPE HTML&gt;<br />
&lt;html&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;head&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/head&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;body&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$txt</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;form action=&quot;&quot; method=&quot;post&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;textarea name=&quot;text&quot; placeholder=&quot;PASTE SOMETHING HERE, press submit&quot; rows=&quot;20&quot; cols=&quot;80&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$pasted_text</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/textarea&gt;&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;submit&quot; value=&quot;submit&quot; /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/form&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;style&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pre {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: #eee;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-family: Monaco,&quot;Andale Mono&quot;,&quot;Bitstream Mono&quot;,Courier,terminal;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-size: 12px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; height: auto;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line-height: 1;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding: 10px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; width: auto;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; max-width: 99%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .n {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding: 0 10px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: #f00;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .r {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding: 0 10px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; background: #0f0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/style&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/body&gt;<br />
&lt;/html&gt;</code></div>
<p><small>(you can download it <a href="https://gist.github.com/1156911">from here</a>, in case you want to test it too)</small></p>
<p>What the test code does is simply highlight <strong>&#8216;\n&#8217;</strong> characters with <strong>red</strong>, and <strong>&#8216;\r&#8217;</strong> characters with <strong>green</strong>, so I can visually see what has been added. It&#8217;s not exactly like a full-grown hex editor, but it&#8217;s more practical for testing in the browser.</p>
<p>Then, if I use the following test text <small>(please ignore the fact that some characters are garbled because of the encoding&#8211;though if you don&#8217;t understand Spanish it should all look fine to you!)</small>:</p>
<div class="syhi_block"><code>Esta es una peque€a rutina realizada en Turbo Pascal 6.0.<br />
Est  programada por motivo de una mini-competici¢n que hicimos en el area<br />
SUR.DEMOS de SurNet.<br />
Espero que os guste ;-)</code></div>
<p>When run with Firefox, I get this:</p>
<p><img src="/imgs/2011/paste_firefox.png" alt="pasting to firefox" /></p>
<p>(notice the double spacing: there are double sequences of <em>\n\r</em>s)</p>
<p>And with Chrome it&#8217;s fine:</p>
<p><img src="/imgs/2011/paste_chrome.png" alt="pasting to chrome" /></p>
<p>And here comes the fun: when I copy the text <em>from Chrome</em> and paste it in Firefox. What do you think will happen? Will it double the space when I press Submit?</p>
<p><img src="/imgs/2011/paste_firefox2.png" alt="pasting to firefox, again" /></p>
<p>No! This time it works properly! Crazy! Or what? Well, I have made more tests to try to pinpoint what&#8217;s happening.</p>
<p><strong>Test one:</strong> copy from a txt file that I created on this computer (so it&#8217;s all Linux line endings), paste into Firefox: WORKS. Paste into Chrome: WORKS.</p>
<p>Some guy reported (for <a href="http://code.google.com/p/synergy-plus/issues/detail?id=443">another</a> product) that copying <strong>from Gnome terminal</strong> or <strong>gedit</strong> to Firefox got him strange results, so I tested the Gnome terminal bit too. Works on Firefox and Chrome: no extra line endings.</p>
<p><strong>Test two:</strong> I converted the original text file from <a href="http://en.wikipedia.org/wiki/Code_page_437">Code Page 437</a> (the old MSDOS encoding) to UTF-8, and opened it with gedit, and pasted it into Firefox: DOESN&#8217;T WORK! Double line spacing again! I guess a \r is a \r is a \r, no matter what the encoding! (fortunately).</p>
<p><strong>Test three:</strong> Opened the file with GVim. Copied everything and pasted into Firefox: WORKS. Single line spacing as expected.</p>
<h3>Conclusion?</h3>
<p>Before drawing up a conclusion, I&#8217;ll summarise the facts:</p>
<ol>
<li>In all the tests that &#8220;fail&#8221;, the copy-paste <em>source</em> is gedit, and the content is a file with MS-Dos line endings.</li>
<li>It only fails with Firefox</li>
</ol>
<p>So this is what I think is happening: gedit is getting confused by the MS-Dos line endings, and &#8220;something is wrong&#8221; in the data it puts in the clipboard when I press CTRL+C. Then Firefox gets sort of crazy when it gets those &#8220;wrong&#8221; characters or whatever gedit is storing in the clipboard, and tries to correct it&#8230; but ends up adding double the required line spacing.</p>
<p>On the other hand, Chrome seems to be able to &#8220;recover&#8221; from possibly malformed data, and proceeds in the normal way we expect: <em>not</em> duplicating content.</p>
<p>However I&#8217;m not too sure about this theory. I&#8217;d like to <em>see</em> the raw clipboard contents (this time, with a proper hex editor), to find out what is in there, but I haven&#8217;t been able to find any program which does it. And I&#8217;m not sure I want to start digging X-Clipboard protocol RFC&#8217;s or whatever it is that they use for their specs in order to find out how to communicate with the daemon which is listening to CTRL+C/CTRL+V key presses.</p>
<p>Do any of you have any pointer? Any idea? (other than telling people to not to use gedit!). A server-side solution is not exactly the best idea, since although I can detect whether the user is using Firefox, I don&#8217;t have any way to detect if a text was pasted from gedit! And blindly replacing groups of \r\n\r\n with just \r\n won&#8217;t work either: what if the text file indeed contains two carriage returns?</p>
<p>Decisions, decisions!</p>
<p>Update: found a gedit <a href="https://bugzilla.gnome.org/show_bug.cgi?id=640439">bug</a> which might be related to this issue!</p>
 <p><a href="http://soledadpenades.com/?flattrss_redirect&amp;id=3624&amp;md5=0f6f6bbc68b312d97cf32175241ce6be" title="Flattr" target="_blank"><img src="http://soledadpenades.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://soledadpenades.com/2011/08/19/line-spacing-inconsistencies-when-pasting-to-firefox-from-gedit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=8399&amp;amp;url=http%3A%2F%2Fsoledadpenades.com%2F2011%2F08%2F19%2Fline-spacing-inconsistencies-when-pasting-to-firefox-from-gedit%2F&amp;amp;language=en_GB&amp;amp;category=text&amp;amp;title=Line+spacing+inconsistencies+when+pasting+to+Firefox+from+gedit&amp;amp;description=I+was+adding+some+productions+to+escena.org+when+I+noticed+something+strange+about+the+way+the+info+section+of+the+latest+productions+was+looking.+I+was+slightly+distracted+by+the+excitement+of+watching+all+those+intros+and+demos+that+I+hadn%27t+heard+before+about%2C+so+it+took+me+a+while+to+notice+what+it+was+exactly+that+%22didn%27t+quite+look+right%22.+It+was+the+spacing%21%0D%0A%0D%0AOr+more+exactly%2C+the+double+spacing+that+I+was+seeing%2C+instead+of+just+a+single+line+as+in+the+original%21%0D%0A%0D%0AInitially+willing+%28or+expecting%29+to+put+the+blame+on+me%2C+I+examined+my+back-end+code+first%2C+but+there+is+nothing+dealing+with+double+spacing+or+%22Windows+spacing%22+correction%2C+such+as+automatically+replacing+%5Cr%5Cn+with+%5Cn+only.%0D%0A%0D%0AI+then+remembered+that+when+I+developed+this+section+a+year+ago+I+was+using+Chrome+as+my+main+browser%2C+so+I+wondered+if+it+was+a+Firefox-only+error+that+had+slipped+thru+back+then.+Therefore%2C+I+repeated+my+test+with+Chrome%3A+opened+a+FILE_ID.DIZ+with+gedit%2C+copied+the+text+and+pasted+it+to+the+corresponding+textarea.+Clicked+on+save...+and+the+result+came+out+OK%21+Simple+single+line-endings+were+received+by+PHP%2C+as+one+would+expect.%0D%0A%0D%0ASo+it%27s+a+Firefox+thing+then%2C+I+thought.+Not+so+fast%2C+it+can+still+get+more+bizarre.+But+before+I+get+to+that%2C+let+me+show+you+a+little+piece+of+test+code+I+wrote+to+ensure+nothing+else+was+interfering+in+the+process%3A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%09%0D%0A%09%0D%0A%09%0D%0A%09%09%0D%0A%09%09%0D%0A%09%09%0A%0D%0A%09%09%0D%0A%09%09%0D%0A%09%09%0D%0A%09%09%09pre+%7B%0D%0A%09%09%09%09background%3A+%23eee%3B%0D%0A%09%09%09%09font-family%3A+Monaco%2C%22Andale+Mono%22%2C%22Bitstream+Mono%22%2CCourier%2Cterminal%3B%0D%0A%09%09%09%09font-size%3A+12px%3B%0D%0A%09%09%09%09height%3A+auto%3B%0D%0A%09%09%09%09line-height%3A+1%3B%0D%0A%09%09%09%09padding%3A+10px%3B%0D%0A%09%09%09%09width%3A+auto%3B%0D%0A%09%09%09%09max-width%3A+99%25%3B%0D%0A%09%09%09%7D%0D%0A%09%09%09%0D%0A%09%09%09.n+%7B%0D%0A%09%09%09%09padding%3A+0+10px%3B%0D%0A%09%09%09%09background%3A+%23f00%3B%0D%0A%09%09%09%7D%0D%0A%09%09%09%0D%0A%09%09%09.r+%7B%0D%0A%09%09%09%09padding%3A+0+10px%3B%0D%0A%09%09%09%09background%3A+%230f0%3B%0D%0A%09%09%09%7D%0D%0A%09%09%09%0D%0A%09%09%0D%0A%09%0D%0A%0D%0A%0D%0A%0D%0A%28you+can+download+it+from+here%2C+in+case+you+want+to+test+it+too%29%0D%0A%0D%0AWhat+the+test+code+does+is+simply+highlight+%27%5Cn%27+characters+with+red%2C+and+%27%5Cr%27+characters+with+green%2C+so+I+can+visually+see+what+has+been+added.+It%27s+not+exactly+like+a+full-grown+hex+editor%2C+but+it%27s+more+practical+for+testing+in+the+browser.%0D%0A%0D%0AThen%2C+if+I+use+the+following+test+text+%28please+ignore+the+fact+that+some+characters+are+garbled+because+of+the+encoding--though+if+you+don%27t+understand+Spanish+it+should+all+look+fine+to+you%21%29%3A%0D%0A%0D%0A%0D%0AEsta+es+una+peque%E2%82%ACa+rutina+realizada+en+Turbo+Pascal+6.0.%0D%0AEst%C2%A0+programada+por+motivo+de+una+mini-competici%C2%A2n+que+hicimos+en+el+area%0D%0ASUR.DEMOS+de+SurNet.%0D%0AEspero+que+os+guste+%3B-%29%0D%0A%0D%0A%0D%0AWhen+run+with+Firefox%2C+I+get+this%3A%0D%0A%0D%0A%0D%0A%0D%0A%28notice+the+double+spacing%3A+there+are+double+sequences+of+%5Cn%5Crs%29%0D%0A%0D%0AAnd+with+Chrome+it%27s+fine%3A%0D%0A%0D%0A%0D%0A%0D%0AAnd+here+comes+the+fun%3A+when+I+copy+the+text+from+Chrome+and+paste+it+in+Firefox.+What+do+you+think+will+happen%3F+Will+it+double+the+space+when+I+press+Submit%3F%0D%0A%0D%0A%0D%0A%0D%0ANo%21+This+time+it+works+properly%21+Crazy%21+Or+what%3F+Well%2C+I+have+made+more+tests+to+try+to+pinpoint+what%27s+happening.%0D%0A%0D%0ATest+one%3A+copy+from+a+txt+file+that+I+created+on+this+computer+%28so+it%27s+all+Linux+line+endings%29%2C+paste+into+Firefox%3A+WORKS.+Paste+into+Chrome%3A+WORKS.%0D%0A%0D%0ASome+guy+reported+%28for+another+product%29+that+copying+from+Gnome+terminal+or+gedit+to+Firefox+got+him+strange+results%2C+so+I+tested+the+Gnome+terminal+bit+too.+Works+on+Firefox+and+Chrome%3A+no+extra+line+endings.%0D%0A%0D%0ATest+two%3A+I+converted+the+original+text+file+from+Code+Page+437+%28the+old+MSDOS+encoding%29+to+UTF-8%2C+and+opened+it+with+gedit%2C+and+pasted+it+into+Firefox%3A+DOESN%27T+WORK%21+Double+line+spacing+again%21+I+guess+a+%5Cr+is+a+%5Cr+is+a+%5Cr%2C+no+matter+what+the+encoding%21+%28fortunately%29.%0D%0A%0D%0ATest+three%3A+Opened+the+file+with+GVim.+Copied+everything+and+pasted+into+Firefox%3A+WORKS.+Single+line+spacing+as+expected.%0D%0A%0D%0AConclusion%3F%0D%0A%0D%0ABefore+drawing+up+a+conclusion%2C+I%27ll+summarise+the+facts%3A%0D%0A%0D%0A%0D%0A%09In+all+the+tests+that+%22fail%22%2C+the+copy-paste+source+is+gedit%2C+and+the+content+is+a+file+with+MS-Dos+line+endings.%0D%0A%09It+only+fails+with+Firefox%0D%0A%0D%0A%0D%0ASo+this+is+what+I+think+is+happening%3A+gedit+is+getting+confused+by+the+MS-Dos+line+endings%2C+and+%22something+is+wrong%22+in+the+data+it+puts+in+the+clipboard+when+I+press+CTRL%2BC.+Then+Firefox+gets+sort+of+crazy+when+it+gets+those+%22wrong%22+characters+or+whatever+gedit+is+storing+in+the+clipboard%2C+and+tries+to+correct+it...+but+ends+up+adding+double+the+required+line+spacing.%0D%0A%0D%0AOn+the+other+hand%2C+Chrome+seems+to+be+able+to+%22recover%22+from+possibly+malformed+data%2C+and+proceeds+in+the+normal+way+we+expect%3A+not+duplicating+content.%0D%0A%0D%0AHowever+I%27m+not+too+sure+about+this+theory.+I%27d+like+to+see+the+raw+clipboard+contents+%28this+time%2C+with+a+proper+hex+editor%29%2C+to+find+out+what+is+in+there%2C+but+I+haven%27t+been+able+to+find+any+program+which+does+it.+And+I%27m+not+sure+I+want+to+start+digging+X-Clipboard+protocol+RFC%27s+or+whatever+it+is+that+they+use+for+their+specs+in+order+to+find+out+how+to+communicate+with+the+daemon+which+is+listening+to+CTRL%2BC%2FCTRL%2BV+key+presses.%0D%0A%0D%0ADo+any+of+you+have+any+pointer%3F+Any+idea%3F+%28other+than+telling+people+to+not+to+use+gedit%21%29.+A+server-side+solution+is+not+exactly+the+best+idea%2C+since+although+I+can+detect+whether+the+user+is+using+Firefox%2C+I+don%27t+have+any+way+to+detect+if+a+text+was+pasted+from+gedit%21+And+blindly+replacing+groups+of+%5Cr%5Cn%5Cr%5Cn+with+just+%5Cr%5Cn+won%27t+work+either%3A+what+if+the+text+file+indeed+contains+two+carriage+returns%3F%0D%0A%0D%0ADecisions%2C+decisions%21%0D%0A%0D%0AUpdate%3A+found+a+gedit+bug+which+might+be+related+to+this+issue%21&amp;amp;tags=bugs%2Cchrome%2Cclipboard%2Cfirefox%2Cgedit%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Misclinklanea</title>
		<link>http://soledadpenades.com/2010/09/09/misclinklanea/</link>
		<comments>http://soledadpenades.com/2010/09/09/misclinklanea/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 21:56:17 +0000</pubDate>
		<dc:creator>sole</dc:creator>
				<category><![CDATA[Misclinklanea]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[filters]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[realtime]]></category>
		<category><![CDATA[silverlink]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://soledadpenades.com/?p=2851</guid>
		<description><![CDATA[Mozilla Labs Gaming looks interesting &#8211; specially the fact that they don&#8217;t seem to be focusing on desktop platforms only (see the reference to touch events). Having good references is always a good thing. I&#8217;m not sure about the horse power of current mobile platforms for running browser applications, though&#8230; And what&#8217;s with the pixelated, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mozillalabs.com/gaming">Mozilla Labs Gaming</a> looks interesting &#8211; specially the fact that they don&#8217;t seem to be focusing on desktop platforms only (see the reference to touch events). Having good references is always a good thing.</p>
<p>I&#8217;m not sure about the horse power of current mobile platforms for running browser applications, though&#8230; And what&#8217;s with the pixelated, blocky icons? Is it because games are assumed to be <em>blocky</em> by design? Is no antialias the new antialias?</p>
<p>~</p>
<p><a href="http://www.theregister.co.uk/2010/09/09/microsoft_html_5/">Silverlight vs HTML5</a> &#8211; was a fight to be fought rather sooner than later. Microsoft seems to me like they&#8217;re piloting a giant ship which takes ages to change direction. Only they don&#8217;t know which direction should they head to: with native applications being less relevant nowadays (at least desktop wise) it seems silly to keep working on new GUI layers and systems in Visual Studio and etc.</p>
<p>~</p>
<p><a href="http://blog.mozilla.com/blog/2010/09/07/firefox-4-beta-with-faster-graphics-and-new-audio-capabilities-for-the-web/">HTML5 Audio data exposed with Firefox 4</a> &#8211; more Mozilla good news. There was some support for FFT data reading a few Firefox beta builds ago, but they weren&#8217;t officially sanctioned until now, so experimenting with that was a bit risky. The video shows also audio data being manipulated too (not only read) with real time filtering&#8230; this has huge potential for projects such as <a href="http://5013.es/p/4">jranular</a> :)</p>
<p>I also find of capital interest that all these new audio features have been developed entirely outside Mozilla, as the main author details <a href="http://vocamus.net/dave/?p=1148">in his blog</a>. +1 for open source ;)</p>
<p>Oh, and in mrdoob&#8217;s <a href="http://twitter.com/mrdoob/status/24007392158">words</a>:</p>
<blockquote><p>
Really hope Chrome implements Mozilla&#8217;s Audio Data API. Other browsers won&#8217;t have other choice then :D <a href="http://audioscene.org/">http://audioscene.org/</a>
</p></blockquote>
<p>~</p>
<p><a href="http://ochook.org/">Zhook</a>, a simple HTML5 based ebook format. Very sensible idea &#8212; specially <a href="http://ipadtest.wordpress.com/2010/08/03/get-over-it-epub-is-dead-and-html5-wins/">if you&#8217;re reminded</a> that most of the platforms at which ebooks are targeted use the very capable WebKit as their core component for dealing with HTML:</p>
<blockquote><p>iOs, Android, webOS, Symbian — all use the WebKit rendering engine. That’s four broad global mobile operating systems that basically define the walk-around go-anywhere Internet today.</p></blockquote>
<p>I looked at the ePub format a few months ago and well&#8230; let&#8217;s just say it discouraged me :-P</p>
<p>~</p>
<p>Finally, more Mozilla goodness! It seems Firefox&#8217;s nightly builds using the superawesome JägerMonkey javascript engine are already <a href="http://nightly.mozilla.org/js-preview.html">available</a>. I&#8217;ve tested one of the builds they provide and the latest version from Firefox repository (compiled in my computer), and I&#8217;ve seen <em>huge</em> performance increases with mrdoob&#8217;s <a href="http://mrdoob.com/lab/javascript/effects/plane_deformations/">plane deformations</a> experiment.</p>
<p>It still can&#8217;t beat Chrome and some of the other experiments run horribly slow, but it&#8217;s getting dangerously close, as testified by their <a href="http://arewefastyet.com/">are we fast yet?</a> website. Well done, Mozilla people!</p>
 <p><a href="http://soledadpenades.com/?flattrss_redirect&amp;id=2851&amp;md5=b7f39cf1ac8aeda5e2f15511b56ad505" title="Flattr" target="_blank"><img src="http://soledadpenades.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://soledadpenades.com/2010/09/09/misclinklanea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=8399&amp;amp;url=http%3A%2F%2Fsoledadpenades.com%2F2010%2F09%2F09%2Fmisclinklanea%2F&amp;amp;language=en_GB&amp;amp;category=text&amp;amp;title=Misclinklanea&amp;amp;description=Mozilla+Labs+Gaming+looks+interesting+-+specially+the+fact+that+they+don%27t+seem+to+be+focusing+on+desktop+platforms+only+%28see+the+reference+to+touch+events%29.+Having+good+references+is+always+a+good+thing.%0D%0A%0D%0AI%27m+not+sure+about+the+horse+power+of+current+mobile+platforms+for+running+browser+applications%2C+though...+And+what%27s+with+the+pixelated%2C+blocky+icons%3F+Is+it+because+games+are+assumed+to+be+blocky+by+design%3F+Is+no+antialias+the+new+antialias%3F%0D%0A%0D%0A%7E%0D%0A%0D%0ASilverlight+vs+HTML5+-+was+a+fight+to+be+fought+rather+sooner+than+later.+Microsoft+seems+to+me+like+they%27re+piloting+a+giant+ship+which+takes+ages+to+change+direction.+Only+they+don%27t+know+which+direction+should+they+head+to%3A+with+native+applications+being+less+relevant+nowadays+%28at+least+desktop+wise%29+it+seems+silly+to+keep+working+on+new+GUI+layers+and+systems+in+Visual+Studio+and+etc.%0D%0A%0D%0A%7E%0D%0A%0D%0AHTML5+Audio+data+exposed+with+Firefox+4+-+more+Mozilla+good+news.+There+was+some+support+for+FFT+data+reading+a+few+Firefox+beta+builds+ago%2C+but+they+weren%27t+officially+sanctioned+until+now%2C+so+experimenting+with+that+was+a+bit+risky.+The+video+shows+also+audio+data+being+manipulated+too+%28not+only+read%29+with+real+time+filtering...+this+has+huge+potential+for+projects+such+as+jranular+%3A%29%0D%0A%0D%0AI+also+find+of+capital+interest+that+all+these+new+audio+features+have+been+developed+entirely+outside+Mozilla%2C+as+the+main+author+details+in+his+blog.+%2B1+for+open+source+%3B%29%0D%0A%0D%0AOh%2C+and+in+mrdoob%27s+words%3A%0D%0A%0D%0A%0D%0AReally+hope+Chrome+implements+Mozilla%27s+Audio+Data+API.+Other+browsers+won%27t+have+other+choice+then+%3AD+http%3A%2F%2Faudioscene.org%2F%0D%0A%0D%0A%0D%0A%7E%0D%0A%0D%0AZhook%2C+a+simple+HTML5+based+ebook+format.+Very+sensible+idea+--+specially+if+you%27re+reminded+that+most+of+the+platforms+at+which+ebooks+are+targeted+use+the+very+capable+WebKit+as+their+core+component+for+dealing+with+HTML%3A%0D%0A%0D%0AiOs%2C+Android%2C+webOS%2C+Symbian+%E2%80%94+all+use+the+WebKit+rendering+engine.+That%E2%80%99s+four+broad+global+mobile+operating+systems+that+basically+define+the+walk-around+go-anywhere+Internet+today.%0D%0A%0D%0AI+looked+at+the+ePub+format+a+few+months+ago+and+well...+let%27s+just+say+it+discouraged+me+%3A-P%0D%0A%0D%0A%7E%0D%0A%0D%0AFinally%2C+more+Mozilla+goodness%21+It+seems+Firefox%27s+nightly+builds+using+the+superawesome+J%C3%A4gerMonkey+javascript+engine+are+already+available.+I%27ve+tested+one+of+the+builds+they+provide+and+the+latest+version+from+Firefox+repository+%28compiled+in+my+computer%29%2C+and+I%27ve+seen+huge+performance+increases+with+mrdoob%27s+plane+deformations+experiment.%0D%0A%0D%0AIt+still+can%27t+beat+Chrome+and+some+of+the+other+experiments+run+horribly+slow%2C+but+it%27s+getting+dangerously+close%2C+as+testified+by+their+are+we+fast+yet%3F+website.+Well+done%2C+Mozilla+people%21&amp;amp;tags=benchmarks%2Cchrome%2Cebook%2Cfilters%2Cfirefox%2Chtml5%2Cjavascript%2Cmicrosoft%2Cmozilla%2Crealtime%2Csilverlink%2Cwebkit%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Using jQuery&#8217;s inline Datepicker within a form</title>
		<link>http://soledadpenades.com/2010/06/12/using-jquerys-inline-datepicker-within-a-form/</link>
		<comments>http://soledadpenades.com/2010/06/12/using-jquerys-inline-datepicker-within-a-form/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 23:59:49 +0000</pubDate>
		<dc:creator>sole</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Usability, Accessibility & User experience]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[datepicker]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[inline]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://soledadpenades.com/?p=2653</guid>
		<description><![CDATA[When you use the inline version of jQuery UI&#8217;s Datepicker within a form, it doesn&#8217;t submit its value back to the server, since there&#8217;s no form element in it. And that&#8217;s a pity, because I find the inline mode way more comfortable for users: rather than having to click a button in order to open [...]]]></description>
			<content:encoded><![CDATA[<p>When you use the <a href="http://jqueryui.com/demos/datepicker/#inline">inline</a> version of jQuery UI&#8217;s Datepicker within a form, it doesn&#8217;t submit its value back to the server, since there&#8217;s no form element in it. </p>
<p>And that&#8217;s a pity, because I find the inline mode way more comfortable for users: rather than having to click a button in order to open an overlay with the calendar and then finally select the date, they can simply select the date in the calendar, without worrying about anything else.</p>
<p>So I devised this simple function that when run over DIV elements attaches the corresponding inline d date picker to them, and also creates a hidden input element for each DIV, which will hold the selected associated date. </p>
<p>This value will be updated automatically whenever a new date is selected in the calendar (because we bind to the <em>select</em> event). When the form is submitted, the value for the inline date picker is submitted too, thanks to the hidden input element :)</p>
<div class="syhi_block"><code><span style="color: #003366; font-weight: bold;">function</span> htmlDatePickerize<span style="color: #009900;">&#40;</span>selector<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span>selector<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> dateValue <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> formName <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> hiddenInput <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hiddenInput.<span style="color: #000066;">name</span> <span style="color: #339933;">=</span> formName<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hiddenInput.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> dateValue<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hiddenInput.<span style="color: #660066;">type</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'hidden'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">after</span><span style="color: #009900;">&#40;</span>hiddenInput<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">datepicker</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; onSelect <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>dateText<span style="color: #339933;">,</span> inst<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hiddenInput.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> dateText<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">datepicker</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;setDate&quot;</span><span style="color: #339933;">,</span> dateValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></code></div>
<p>You would use it like this:</p>
<div class="syhi_block"><code>$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; htmlDatePickerize<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.calendar'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></code></div>
<p>It then would use &#8216;.calendar&#8217; as the selector, and jQuery to look for matching elements, creating the inputs and binding to the select events.</p>
<p>For this to work properly, you need to specify two attributes in each DIV element:</p>
<ul>
<li>name</li>
<li>value</li>
</ul>
<p>Therefore, a <em>proper</em> DIV, apt for being <em>datePickerized</em>, would be the following one:</p>
<div class="syhi_block"><code><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;calendar&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;startDate&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2006-03-02&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></code></div>
<p>and the form field would obviously be <em>startDate</em>.</p>
<p>I&#8217;m uncertain about the validity of these two &#8216;new&#8217; attributes in DIV elements. The <a href="http://validator.w3.org">W3 validator</a> is definitely <em>not happy</em> about them, and spits two unmerciful <em>there is no attribute &#8220;name&#8221;</em> and <em>there is no attribute &#8220;value&#8221;</em> errors, yet it works with Firefox and Chrome, both allowing me to manipulate object attributes at will.</p>
<p>HTML5 makes room for <a href="http://ejohn.org/blog/html-5-data-attributes/">custom attributes</a>, but their names should be prefixed with &#8220;data&#8221;. So these attributes should be renamed to &#8220;data-name&#8221; and &#8220;data-value&#8221; respectively if I wanted them to be valid HTML5 (although I&#8217;m still using a transitional XHTML doctype for this project).</p>
<p>All in all, a tremendous hack, but very practical. Hopefully HTML5 support for time/month/datetime/date inputs will get better in the future (currently only Opera supports them, as Mark Pilgrim dutifully <a href="http://diveintohtml5.org/forms.html#type-date">points out</a>). </p>
<p>Meanwhile, transgression is <em>a must</em>.</p>
 <p><a href="http://soledadpenades.com/?flattrss_redirect&amp;id=2653&amp;md5=1fd8fa8016448c03a1495bb9e84e2ffb" title="Flattr" target="_blank"><img src="http://soledadpenades.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://soledadpenades.com/2010/06/12/using-jquerys-inline-datepicker-within-a-form/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=8399&amp;amp;url=http%3A%2F%2Fsoledadpenades.com%2F2010%2F06%2F12%2Fusing-jquerys-inline-datepicker-within-a-form%2F&amp;amp;language=en_GB&amp;amp;category=text&amp;amp;title=Using+jQuery%26%238217%3Bs+inline+Datepicker+within+a+form&amp;amp;description=When+you+use+the+inline+version+of+jQuery+UI%27s+Datepicker+within+a+form%2C+it+doesn%27t+submit+its+value+back+to+the+server%2C+since+there%27s+no+form+element+in+it.+%0D%0A%0D%0AAnd+that%27s+a+pity%2C+because+I+find+the+inline+mode+way+more+comfortable+for+users%3A+rather+than+having+to+click+a+button+in+order+to+open+an+overlay+with+the+calendar+and+then+finally+select+the+date%2C+they+can+simply+select+the+date+in+the+calendar%2C+without+worrying+about+anything+else.%0D%0A%0D%0ASo+I+devised+this+simple+function+that+when+run+over+DIV+elements+attaches+the+corresponding+inline+d+date+picker+to+them%2C+and+also+creates+a+hidden+input+element+for+each+DIV%2C+which+will+hold+the+selected+associated+date.+%0D%0A%0D%0AThis+value+will+be+updated+automatically+whenever+a+new+date+is+selected+in+the+calendar+%28because+we+bind+to+the+select+event%29.+When+the+form+is+submitted%2C+the+value+for+the+inline+date+picker+is+submitted+too%2C+thanks+to+the+hidden+input+element+%3A%29%0D%0A%0D%0A%0D%0Afunction+htmlDatePickerize%28selector%29+%7B%0D%0A%09%24%28selector%29.each%28function%28e%29+%7B%0D%0A%09%09var+dateValue+%3D+%24%28this%29.attr%28%27value%27%29%3B%0D%0A%09%09var+formName+%3D+%24%28this%29.attr%28%27name%27%29%3B%0D%0A%09%09var+hiddenInput+%3D+document.createElement%28%27input%27%29%3B%0D%0A%09%09hiddenInput.name+%3D+formName%3B%0D%0A%09%09hiddenInput.value+%3D+dateValue%3B%0D%0A%09%09hiddenInput.type+%3D+%27hidden%27%3B%0D%0A%09%09%24%28this%29.after%28hiddenInput%29%3B%0D%0A%09%09%24%28this%29.datepicker%28%7B%0D%0A%09%09%09onSelect+%3A+function%28dateText%2C+inst%29+%7B%0D%0A%09%09%09%09hiddenInput.value+%3D+dateText%3B%0D%0A%09%09%09%7D%0D%0A%09%09%7D%29.datepicker%28%22setDate%22%2C+dateValue%29%3B%0D%0A%09%7D%29%3B%0D%0A%7D%0D%0A%0D%0A%0D%0AYou+would+use+it+like+this%3A%0D%0A%0D%0A%0D%0A%24%28document%29.ready%28function%28%29%0D%0A%7B%0D%0A%09htmlDatePickerize%28%27.calendar%27%29%3B%0D%0A%7D%0D%0A%0D%0A%0D%0AIt+then+would+use+%27.calendar%27+as+the+selector%2C+and+jQuery+to+look+for+matching+elements%2C+creating+the+inputs+and+binding+to+the+select+events.%0D%0A%0D%0AFor+this+to+work+properly%2C+you+need+to+specify+two+attributes+in+each+DIV+element%3A%0D%0A%0D%0A%09name%0D%0A%09value%0D%0A%0D%0A%0D%0ATherefore%2C+a+proper+DIV%2C+apt+for+being+datePickerized%2C+would+be+the+following+one%3A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0Aand+the+form+field+would+obviously+be+startDate.%0D%0A%0D%0AI%27m+uncertain+about+the+validity+of+these+two+%27new%27+attributes+in+DIV+elements.+The+W3+validator+is+definitely+not+happy+about+them%2C+and+spits+two+unmerciful+there+is+no+attribute+%22name%22+and+there+is+no+attribute+%22value%22+errors%2C+yet+it+works+with+Firefox+and+Chrome%2C+both+allowing+me+to+manipulate+object+attributes+at+will.%0D%0A%0D%0AHTML5+makes+room+for+custom+attributes%2C+but+their+names+should+be+prefixed+with+%22data%22.+So+these+attributes+should+be+renamed+to+%22data-name%22+and+%22data-value%22+respectively+if+I+wanted+them+to+be+valid+HTML5+%28although+I%27m+still+using+a+transitional+XHTML+doctype+for+this+project%29.%0D%0A%0D%0AAll+in+all%2C+a+tremendous+hack%2C+but+very+practical.+Hopefully+HTML5+support+for+time%2Fmonth%2Fdatetime%2Fdate+inputs+will+get+better+in+the+future+%28currently+only+Opera+supports+them%2C+as+Mark+Pilgrim+dutifully+points+out%29.+%0D%0A%0D%0AMeanwhile%2C+transgression+is+a+must.&amp;amp;tags=chrome%2Cdatepicker%2Cfirefox%2Cforms%2Chacks%2Chtml5%2Cinline%2Cjavascript%2Cjquery%2Copera%2Cxhtml%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Firefox 64 bit (Ubuntu)</title>
		<link>http://soledadpenades.com/2010/06/03/firefox-64-bit-ubuntu/</link>
		<comments>http://soledadpenades.com/2010/06/03/firefox-64-bit-ubuntu/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 11:15:59 +0000</pubDate>
		<dc:creator>sole</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[tests]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://soledadpenades.com/?p=2630</guid>
		<description><![CDATA[I wanted to test the latest Firefox but for the love of whoever you want, I wasn&#8217;t able to find a 64bit build in Mozilla&#8217;s site. I could choose between lots of languages, but I couldn&#8217;t choose between 32 and 64 bits&#8211; their detection system insisted in providing the 32 bits builds. Bad, bad UI [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to test the latest Firefox but for the love of whoever you want, I wasn&#8217;t able to find a 64bit build in Mozilla&#8217;s site. I could choose between lots of languages, but I couldn&#8217;t choose between 32 and 64 bits&#8211; their detection system insisted in providing the 32 bits builds. Bad, bad UI design!</p>
<p>But I managed to find how to build it from source. It turned out to be quite simple,<a href="https://developer.mozilla.org/En/Simple_Firefox_build"> it&#8217;s all in one page</a>. With the Ubuntu instructions only, it gets reduced to this:</p>
<div class="syhi_block"><code><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> build-dep firefox<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13<br />
<br />
hg clone http:<span style="color: #000000; font-weight: bold;">//</span>hg.mozilla.org<span style="color: #000000; font-weight: bold;">/</span>mozilla-central<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #666666; font-style: italic;"># this step might take quite a while</span><br />
<span style="color: #7a0874; font-weight: bold;">cd</span> mozilla-central<br />
<br />
<span style="color: #666666; font-style: italic;"># Setup a basic mozconfig file</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'. $topsrcdir/browser/config/mozconfig'</span> <span style="color: #000000; font-weight: bold;">&gt;</span> mozconfig &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #666666; font-style: italic;"># let's build Firefox...</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> mozconfig &nbsp; <span style="color: #666666; font-style: italic;"># ...in this directory...</span><br />
<span style="color: #666666; font-style: italic;"># Parallel compilation is a nice speedup.</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'mk_add_options MOZ_MAKE_FLAGS=&quot;-j4&quot;'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> mozconfig<br />
<br />
<span style="color: #666666; font-style: italic;"># Build</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #660033;">-f</span> client.mk</code></div>
<p>And to update:</p>
<div class="syhi_block"><code><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>mozilla-central<br />
<br />
<span style="color: #666666; font-style: italic;"># Get the latest source</span><br />
hg pull <span style="color: #660033;">-r</span> default<br />
hg update<br />
<br />
<span style="color: #666666; font-style: italic;"># Build</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #660033;">-f</span> client.mk</code></div>
<p>It didn&#8217;t take <em>much</em> time to build (less than 20 minutes). I can&#8217;t remember how much time did Chrome take the last time I tried, I should repeat it if only for curiosity sake.</p>
<p>And now I have a custom build, aptly named Minefield!</p>
<p><img src="/imgs/minefield.png" alt="Firefox 3.7" /></p>
<p>Still, it&#8217;s slower than Chrome in the tests I have ran (Javascript intensive tests, mostly <a href="http://mrdoob.com/">Mr.doob</a>&#8216;s javascript experiments). What a pity, the promised speed improvements made me want to go back to Firefox :-(</p>
<p>In their defence, it built without complaining about any missing and/or almost impossible to fulfill dependency. Which is something you can&#8217;t say about every open source project, unfortunately.</p>
<p>I&#8217;ll keep an eye on it, now that I know how to get my own builds&#8230;</p>
<p>UPDATE: if the build breaks for whatever the reason and you get errors such as these:</p>
<div class="syhi_block"><code>nsFileChannel.cpp:(.text+0xaa3): undefined reference to `nsBaseContentStream::AsyncWait(nsIInputStreamCallback*, unsigned int, unsigned int, nsIEventTarget*)'<br />
../../netwerk/protocol/file/libnkfile_s.a(nsFileChannel.o): In function `nsFileUploadContentStream::Release()':<br />
nsFileChannel.cpp:(.text+0x9d1): undefined reference to `nsBaseContentStream::Release()'<br />
../../netwerk/protocol/file/libnkfile_s.a(nsFileChannel.o): In function `nsFileUploadContentStream::AddRef()':<br />
nsFileChannel.cpp:(.text+0x9d7): undefined reference to `nsBaseContentStream::AddRef()'<br />
../../netwerk/protocol/file/libnkfile_s.a(nsFileChannel.o): In function `nsFileUploadContentStream::QueryInterface(nsID const&amp;, void**)':<br />
nsFileChannel.cpp:(.text+0x9dd): undefined reference to `nsBaseContentStream::QueryInterface(nsID const&amp;, void**)'<br />
../../netwerk/protocol/file/libnkfile_s.a(nsFileChannel.o): In function `nsBaseContentStream::~nsBaseContentStream()':<br />
nsFileChannel.cpp:(.text._ZN19nsBaseContentStreamD2Ev[nsBaseContentStream::~nsBaseContentStream()]+0x3): undefined reference to `vtable for nsBaseContentStream'<br />
/usr/bin/ld.bfd.real: ../../netwerk/protocol/file/libnkfile_s.a(nsFileChannel.o): relocation R_X86_64_PC32 against undefined hidden symbol `vtable for nsBaseContentStream' can not be used when making a shared object<br />
/usr/bin/ld.bfd.real: final link failed: Bad value<br />
collect2: ld returned 1 exit status<br />
make[5]: *** [libxul.so] Error 1<br />
make[5]: Leaving directory `/home/sole/Applications/mozilla/mozilla-central/objdir-ff-release/toolkit/library'<br />
make[4]: *** [libs_tier_platform] Error 2<br />
make[4]: Leaving directory `/home/sole/Applications/mozilla/mozilla-central/objdir-ff-release'<br />
make[3]: *** [tier_platform] Error 2<br />
make[3]: Leaving directory `/home/sole/Applications/mozilla/mozilla-central/objdir-ff-release'<br />
make[2]: *** [default] Error 2<br />
make[2]: Leaving directory `/home/sole/Applications/mozilla/mozilla-central/objdir-ff-release'<br />
make[1]: *** [realbuild] Error 2<br />
make[1]: Leaving directory `/home/sole/Applications/mozilla/mozilla-central'<br />
make: *** [build] Error 2</code></div>
<p>just delete the objdir-mozilla directory and try with make again.</p>
<p>Another solution is to delete .a files from the build directory:</p>
<div class="syhi_block"><code><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;*.a&quot;</span> <span style="color: #660033;">--delete</span></code></div>
 <p><a href="http://soledadpenades.com/?flattrss_redirect&amp;id=2630&amp;md5=0419ed743fc377ff6d62a5129d43ddf1" title="Flattr" target="_blank"><img src="http://soledadpenades.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://soledadpenades.com/2010/06/03/firefox-64-bit-ubuntu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=8399&amp;amp;url=http%3A%2F%2Fsoledadpenades.com%2F2010%2F06%2F03%2Ffirefox-64-bit-ubuntu%2F&amp;amp;language=en_GB&amp;amp;category=text&amp;amp;title=Firefox+64+bit+%28Ubuntu%29&amp;amp;description=I+wanted+to+test+the+latest+Firefox+but+for+the+love+of+whoever+you+want%2C+I+wasn%27t+able+to+find+a+64bit+build+in+Mozilla%27s+site.+I+could+choose+between+lots+of+languages%2C+but+I+couldn%27t+choose+between+32+and+64+bits--+their+detection+system+insisted+in+providing+the+32+bits+builds.+Bad%2C+bad+UI+design%21%0D%0A%0D%0ABut+I+managed+to+find+how+to+build+it+from+source.+It+turned+out+to+be+quite+simple%2C+it%27s+all+in+one+page.+With+the+Ubuntu+instructions+only%2C+it+gets+reduced+to+this%3A%0D%0A%0D%0A%0D%0Asudo+apt-get+build-dep+firefox%0D%0Asudo+apt-get+install+mercurial+libasound2-dev+libcurl4-openssl-dev+libnotify-dev+libxt-dev+libiw-dev+mesa-common-dev+autoconf2.13%0D%0A%0D%0Ahg+clone+http%3A%2F%2Fhg.mozilla.org%2Fmozilla-central%2F+%23+this+step+might+take+quite+a+while%0D%0Acd+mozilla-central%0D%0A%0D%0A%23+Setup+a+basic+mozconfig+file%0D%0Aecho+%27.+%24topsrcdir%2Fbrowser%2Fconfig%2Fmozconfig%27+%3E+mozconfig++++++++++++++++++++++%23+let%27s+build+Firefox...%0D%0Aecho+%27mk_add_options+MOZ_OBJDIR%3D%40TOPSRCDIR%40%2Fobjdir-ff-release%27+%3E%3E+mozconfig+++%23+...in+this+directory...%0D%0A%23+Parallel+compilation+is+a+nice+speedup.%0D%0Aecho+%27mk_add_options+MOZ_MAKE_FLAGS%3D%22-j4%22%27+%3E%3E+mozconfig%0D%0A%0D%0A%23+Build%0D%0Amake+-f+client.mk%0D%0A%0D%0A%0D%0AAnd+to+update%3A%0D%0A%0D%0A%0D%0Acd+%2Fpath%2Fto%2Fmozilla-central%0D%0A%0D%0A%23+Get+the+latest+source%0D%0Ahg+pull+-r+default%0D%0Ahg+update%0D%0A%0D%0A%23+Build%0D%0Amake+-f+client.mk%0D%0A%0D%0A%0D%0AIt+didn%27t+take+much+time+to+build+%28less+than+20+minutes%29.+I+can%27t+remember+how+much+time+did+Chrome+take+the+last+time+I+tried%2C+I+should+repeat+it+if+only+for+curiosity+sake.%0D%0A%0D%0AAnd+now+I+have+a+custom+build%2C+aptly+named+Minefield%21%0D%0A%0D%0A%0D%0A%0D%0AStill%2C+it%27s+slower+than+Chrome+in+the+tests+I+have+ran+%28Javascript+intensive+tests%2C+mostly+Mr.doob%27s+javascript+experiments%29.+What+a+pity%2C+the+promised+speed+improvements+made+me+want+to+go+back+to+Firefox+%3A-%28%0D%0A%0D%0AIn+their+defence%2C+it+built+without+complaining+about+any+missing+and%2For+almost+impossible+to+fulfill+dependency.+Which+is+something+you+can%27t+say+about+every+open+source+project%2C+unfortunately.%0D%0A%0D%0AI%27ll+keep+an+eye+on+it%2C+now+that+I+know+how+to+get+my+own+builds...%0D%0A%0D%0AUPDATE%3A+if+the+build+breaks+for+whatever+the+reason+and+you+get+errors+such+as+these%3A%0D%0A%0D%0A%0D%0AnsFileChannel.cpp%3A%28.text%2B0xaa3%29%3A+undefined+reference+to+%60nsBaseContentStream%3A%3AAsyncWait%28nsIInputStreamCallback%2A%2C+unsigned+int%2C+unsigned+int%2C+nsIEventTarget%2A%29%27%0D%0A..%2F..%2Fnetwerk%2Fprotocol%2Ffile%2Flibnkfile_s.a%28nsFileChannel.o%29%3A+In+function+%60nsFileUploadContentStream%3A%3ARelease%28%29%27%3A%0D%0AnsFileChannel.cpp%3A%28.text%2B0x9d1%29%3A+undefined+reference+to+%60nsBaseContentStream%3A%3ARelease%28%29%27%0D%0A..%2F..%2Fnetwerk%2Fprotocol%2Ffile%2Flibnkfile_s.a%28nsFileChannel.o%29%3A+In+function+%60nsFileUploadContentStream%3A%3AAddRef%28%29%27%3A%0D%0AnsFileChannel.cpp%3A%28.text%2B0x9d7%29%3A+undefined+reference+to+%60nsBaseContentStream%3A%3AAddRef%28%29%27%0D%0A..%2F..%2Fnetwerk%2Fprotocol%2Ffile%2Flibnkfile_s.a%28nsFileChannel.o%29%3A+In+function+%60nsFileUploadContentStream%3A%3AQueryInterface%28nsID+const%26%2C+void%2A%2A%29%27%3A%0D%0AnsFileChannel.cpp%3A%28.text%2B0x9dd%29%3A+undefined+reference+to+%60nsBaseContentStream%3A%3AQueryInterface%28nsID+const%26%2C+void%2A%2A%29%27%0D%0A..%2F..%2Fnetwerk%2Fprotocol%2Ffile%2Flibnkfile_s.a%28nsFileChannel.o%29%3A+In+function+%60nsBaseContentStream%3A%3A%7EnsBaseContentStream%28%29%27%3A%0D%0AnsFileChannel.cpp%3A%28.text._ZN19nsBaseContentStreamD2Ev%5BnsBaseContentStream%3A%3A%7EnsBaseContentStream%28%29%5D%2B0x3%29%3A+undefined+reference+to+%60vtable+for+nsBaseContentStream%27%0D%0A%2Fusr%2Fbin%2Fld.bfd.real%3A+..%2F..%2Fnetwerk%2Fprotocol%2Ffile%2Flibnkfile_s.a%28nsFileChannel.o%29%3A+relocation+R_X86_64_PC32+against+undefined+hidden+symbol+%60vtable+for+nsBaseContentStream%27+can+not+be+used+when+making+a+shared+object%0D%0A%2Fusr%2Fbin%2Fld.bfd.real%3A+final+link+failed%3A+Bad+value%0D%0Acollect2%3A+ld+returned+1+exit+status%0D%0Amake%5B5%5D%3A+%2A%2A%2A+%5Blibxul.so%5D+Error+1%0D%0Amake%5B5%5D%3A+Leaving+directory+%60%2Fhome%2Fsole%2FApplications%2Fmozilla%2Fmozilla-central%2Fobjdir-ff-release%2Ftoolkit%2Flibrary%27%0D%0Amake%5B4%5D%3A+%2A%2A%2A+%5Blibs_tier_platform%5D+Error+2%0D%0Amake%5B4%5D%3A+Leaving+directory+%60%2Fhome%2Fsole%2FApplications%2Fmozilla%2Fmozilla-central%2Fobjdir-ff-release%27%0D%0Amake%5B3%5D%3A+%2A%2A%2A+%5Btier_platform%5D+Error+2%0D%0Amake%5B3%5D%3A+Leaving+directory+%60%2Fhome%2Fsole%2FApplications%2Fmozilla%2Fmozilla-central%2Fobjdir-ff-release%27%0D%0Amake%5B2%5D%3A+%2A%2A%2A+%5Bdefault%5D+Error+2%0D%0Amake%5B2%5D%3A+Leaving+directory+%60%2Fhome%2Fsole%2FApplications%2Fmozilla%2Fmozilla-central%2Fobjdir-ff-release%27%0D%0Amake%5B1%5D%3A+%2A%2A%2A+%5Brealbuild%5D+Error+2%0D%0Amake%5B1%5D%3A+Leaving+directory+%60%2Fhome%2Fsole%2FApplications%2Fmozilla%2Fmozilla-central%27%0D%0Amake%3A+%2A%2A%2A+%5Bbuild%5D+Error+2+%0D%0A%0D%0A%0D%0Ajust+delete+the+objdir-mozilla+directory+and+try+with+make+again.%0D%0A%0D%0AAnother+solution+is+to+delete+.a+files+from+the+build+directory%3A%0D%0A%0D%0A%0D%0Afind+.+-name+%22%2A.a%22+--delete%0D%0A&amp;amp;tags=64bit%2Cfirefox%2Ctests%2Cubuntu%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

