<?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>codeblog &#187; Web</title>
	<atom:link href="http://www.outflux.net/blog/archives/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.outflux.net/blog</link>
	<description>code is freedom -- patching my itch</description>
	<lastBuildDate>Tue, 07 Feb 2012 00:49:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Google is wardriving</title>
		<link>http://www.outflux.net/blog/archives/2010/01/24/google-is-wardriving/</link>
		<comments>http://www.outflux.net/blog/archives/2010/01/24/google-is-wardriving/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 04:28:56 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.outflux.net/blog/?p=292</guid>
		<description><![CDATA[So, a while back, Google started providing location services. This seemed pretty cool, but I kind of ignored it until recently when I was playing with my Android&#8217;s location API. With the GPS off, and no cell towers visible (my basement gets terrible cell service), my phone knew within about 500 feet of where it [...]]]></description>
			<content:encoded><![CDATA[<p>So, a while back, Google started providing <a href="http://google-latlong.blogspot.com/2009/07/blue-circle-comes-to-your-desktop.html">location</a> <a href="http://www.google.com/latitude/apps">services</a>.  This seemed pretty cool, but I kind of ignored it until recently when I was playing with my Android&#8217;s <a href="http://developer.android.com/reference/android/location/package-summary.html">location API</a>.  With the GPS off, and no cell towers visible (my basement gets terrible cell service), my phone knew within about 500 feet of where it actually was.  All I was connected to was my wifi.</p>
<p>Bottom line: it seems that Google, among other methods, is likely <a href="http://en.wikipedia.org/wiki/Wardriving">wardriving</a> while photographing for <a href="http://maps.google.com/help/maps/streetview/">Street View</a>.  They are now able to pinpoint wifi access points if they happened to see it while driving through your city.</p>
<p>I&#8217;m really rather astonished that no one is freaking out about this; I&#8217;m a bit unnerved.  I <a href="http://outflux.net/software/shorts/geoloc.py">implemented the location-of-your-wifi</a> <a href="http://code.google.com/p/gears/wiki/GeolocationAPI">API</a> quickly, so I could terrify myself further.  You can do lookups via my <a href="http://outflux.net/geoloc/">location website</a> too, if you want.</p>
<p><strong>UPDATE</strong>: yeah, it would seem to be crowd-sourced wifi and cell tower triangulation data.  I should say &#8220;Google is WarCrowding&#8221;.</p>
<p style='text-align:left'>&copy; 2010, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2010/01/24/google-is-wardriving/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>directing firefox url opening</title>
		<link>http://www.outflux.net/blog/archives/2008/11/21/directing-firefox-url-opening/</link>
		<comments>http://www.outflux.net/blog/archives/2008/11/21/directing-firefox-url-opening/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 01:53:16 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.outflux.net/blog/?p=175</guid>
		<description><![CDATA[A while ago, I found a way to open multiple firefox instances so I could have multiple cookie/password repositories. One issue that plagued me was that when launching URLs from other applications (e.g. liferea, gnome-terminal, etc), the URL would open in the longest running firefox, so if I opened my Browsing instance first, then my [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago, I found a <a href="http://www.outflux.net/blog/archives/2008/02/16/firefox-trick-and-recovery-help/">way to open multiple firefox instances</a> so I could have multiple cookie/password repositories.  One issue that plagued me was that when launching URLs from other applications (e.g. liferea, gnome-terminal, etc), the URL would open in the <em>longest running</em> firefox, so if I opened my Browsing instance first, then my Authenticated instance, URLs would open in the Browsing instance.  That&#8217;s what I wanted.</p>
<p>However, if I had to restart my Browsing instance (like, say, when flash was crashing), URLs would start opening in the Authenticated instance, which I didn&#8217;t want.  So, I changed the Gnome preferences to run this script when launching a browser:<code>
<pre>
#!/bin/sh
firefox -p Browsing -remote 'openURL('"$@"')'
</pre>
<p></code></p>
<p>Ta-da, URLs are always directed to the &#8220;Browsing&#8221; instance, regardless of when it was started.</p>
<p style='text-align:left'>&copy; 2008, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2008/11/21/directing-firefox-url-opening/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>md5 lookups for 4 chars and common words</title>
		<link>http://www.outflux.net/blog/archives/2008/11/18/md5_lookups_for_4_chars/</link>
		<comments>http://www.outflux.net/blog/archives/2008/11/18/md5_lookups_for_4_chars/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 04:19:51 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.outflux.net/blog/?p=173</guid>
		<description><![CDATA[Here&#8217;s a fun link. This site appears to have seeded their md5 hash list with all lower case character strings of 4 characters or fewer and many english words (probably from some large dictionaries), and they seem to be adding more as they go. This makes me want to put up an interface to the [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a fun <a href="http://www.md5oogle.com/">link</a>.  This site appears to have seeded their md5 hash list with all lower case character strings of <a href="http://www.md5oogle.com/decrypt.php?input=3d9d72d90404bc6912dcb8bd6d4a9af8&#038;meta=01">4 characters</a> or fewer and many <a href="http://www.md5oogle.com/decrypt.php?input=f8ea9e07f542c0cdf0805e5f30c76cb6&#038;meta=01">english words</a> (probably from some large <a href="ftp://ftp.ibiblio.org/pub/linux/distributions/openwall/wordlists/">dictionaries</a>), and they seem to be adding more as they go.  This makes me want to put up an interface to the 7 character alpha-numeric-plus-many-special-chars rainbow table I&#8217;ve got.  But searching the 500G table for a single hash takes&#8230; a while.  I&#8217;d need to batch it up.  Go-go-gadget web 2.0!</p>
<p style='text-align:left'>&copy; 2008, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2008/11/18/md5_lookups_for_4_chars/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>firefox trick and recovery help</title>
		<link>http://www.outflux.net/blog/archives/2008/02/16/firefox-trick-and-recovery-help/</link>
		<comments>http://www.outflux.net/blog/archives/2008/02/16/firefox-trick-and-recovery-help/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 18:05:00 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.outflux.net/blog/archives/2008/02/16/firefox-trick-and-recovery-help/</guid>
		<description><![CDATA[To provide myself with slightly more safety through separation, I run two firefox profiles simultaneously. One is the &#8220;general&#8221; browser for day-to-day viewing of random (and unauthenticated) sites, and the other is the &#8220;authenticated&#8221; browser, which contains the cookies for known sites I authenticate against. The trick for this is having a launcher that runs [...]]]></description>
			<content:encoded><![CDATA[<p>To provide myself with slightly more safety through separation, I run two firefox profiles simultaneously.  One is the &#8220;general&#8221; browser for day-to-day viewing of random (and unauthenticated) sites, and the other is the &#8220;authenticated&#8221; browser, which contains the cookies for known sites I authenticate against.  The trick for this is having a launcher that runs firefox without attempting to request a new window from the currently running profile:</p>
<pre><code>bash -c "MOZ_NO_REMOTE=1 firefox -ProfileManager"</code></pre>
<p>And in a recent bug-hunting session, I had a firefox profile that just kind of didn&#8217;t load javascript correctly any more (&#8220;change_feedback_state is not defined&#8221; on facebook).  I have no idea what was causing the issue (something not extensions &#8212; it didn&#8217;t go away in &#8220;<code>-safe-mode</code>&#8220;), and so I just reconstructed the profile one bit at a time, eventually leaving all of <code>prefs.js</code> out.  I used the <a href="http://kb.mozillazine.org/Transferring_data_to_a_new_profile_-_Firefox">migration checklist</a> I found at mozillazine.</p>
<p style='text-align:left'>&copy; 2008, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2008/02/16/firefox-trick-and-recovery-help/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OpenID and goofy Claims</title>
		<link>http://www.outflux.net/blog/archives/2007/02/03/openid-and-goofy-claims/</link>
		<comments>http://www.outflux.net/blog/archives/2007/02/03/openid-and-goofy-claims/#comments</comments>
		<pubDate>Sat, 03 Feb 2007 16:33:08 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Inkscape]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://outflux.net/blog/archives/2007/02/03/openid-and-goofy-claims/</guid>
		<description><![CDATA[I&#8217;ve been having fun fighting religious battles and confusing people with in-jokes at jyte.com. Other good claims: Inkscape rocks! Ubuntu is the best Linux desktop Duran Duran was neither Duran nor Duran Or just see what&#8217;s been claimed about linux in general. Yay for silly social networking sites! :) &#169; 2007, Kees Cook. This work [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been having fun fighting <a href="http://jyte.com/cl/emacs-is-better-than-vi">religious battles</a> and confusing people with <a href="http://jyte.com/cl/coreyshields.com-is-a-splunk-banner-ad">in-jokes</a> at <a href="http://jyte.com/">jyte.com</a>.  Other good claims:</p>
<ul>
<li><a href="http://jyte.com/cl/inkscape-rocks">Inkscape rocks!</a></li>
<li><a href="http://jyte.com/cl/ubuntu-is-best-linux-desktop">Ubuntu is the best Linux desktop</a></li>
<li><a href="http://jyte.com/cl/duran-duran-was-neither-duran-nor-duran">Duran Duran was neither Duran nor Duran</a></li>
</ul>
<p>Or just see what&#8217;s been <a href="http://jyte.com/site/search?q=linux&#038;x=0&#038;y=0">claimed about linux</a> in general.  Yay for silly social networking sites!  :)</p>
<p style='text-align:left'>&copy; 2007, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2007/02/03/openid-and-goofy-claims/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CVE links via Greasemonkey</title>
		<link>http://www.outflux.net/blog/archives/2007/01/23/cve-links-via-greasemonkey/</link>
		<comments>http://www.outflux.net/blog/archives/2007/01/23/cve-links-via-greasemonkey/#comments</comments>
		<pubDate>Wed, 24 Jan 2007 06:00:17 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://outflux.net/blog/archives/2007/01/23/cve-links-via-greasemonkey/</guid>
		<description><![CDATA[I spend a good bit of time reading CVEs but their entries are plain text, without links associated with their various recorded URLs. I&#8217;m annoyed at having to select/paste to load a URL, so I had to go code a work-around. :) Since MozDev&#8216;s &#8220;linkify.user.js&#8221; was a bit heavy-handed, I wrote up a quick hack [...]]]></description>
			<content:encoded><![CDATA[<p>I spend a good bit of time reading <a href="http://cve.mitre.org/cve/">CVEs</a> but their <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6120">entries</a> are plain text, without links associated with their various recorded URLs.  I&#8217;m annoyed at having to select/paste to load a URL, so I had to go code a work-around.  :)</p>
<p>Since <a href="http://greasemonkey.mozdev.org/">MozDev</a>&#8216;s &#8220;<a href="http://downloads.mozdev.org/greasemonkey/linkify.user.js">linkify.user.js</a>&#8221; was a bit heavy-handed, I wrote up a quick hack based on similar code to only look at mitre.org&#8217;s LI tags: &#8220;<a href="http://outflux.net/greasemonkey/cve-links.user.js">cve-links.user.js</a>&#8220;.</p>
<p style='text-align:left'>&copy; 2007, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2007/01/23/cve-links-via-greasemonkey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>silly things to do with unicode</title>
		<link>http://www.outflux.net/blog/archives/2006/12/13/silly-things-to-do-with-unicode/</link>
		<comments>http://www.outflux.net/blog/archives/2006/12/13/silly-things-to-do-with-unicode/#comments</comments>
		<pubDate>Wed, 13 Dec 2006 20:37:46 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://outflux.net/blog/archives/2006/12/13/silly-things-to-do-with-unicode/</guid>
		<description><![CDATA[˙ǝɓuɐɹʇs ʎɹǝʌ ʍoH &#8238;Unicode is so odd. &#169; 2006, Kees Cook. This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.xs4all.nl/~johnpc/uniud/">˙ǝɓuɐɹʇs ʎɹǝʌ ʍoH</a></p>
<p><a href="http://digitalpbk.blogspot.com/2006/11/fun-with-unicode-and-mirroring.html">&#8238;Unicode is so odd.</a></p>
<p style='text-align:left'>&copy; 2006, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2006/12/13/silly-things-to-do-with-unicode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fun with OpenID</title>
		<link>http://www.outflux.net/blog/archives/2006/05/03/fun-with-openid/</link>
		<comments>http://www.outflux.net/blog/archives/2006/05/03/fun-with-openid/#comments</comments>
		<pubDate>Thu, 04 May 2006 02:04:41 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://outflux.net/blog/archives/2006/05/03/fun-with-openid/</guid>
		<description><![CDATA[While I can&#8217;t log into NetFlix or Amazon with OpenID (or other federated login systems), I still wanted to try it out. The goal is to easily write comments on people&#8217;s blogs, edit Wiki pages, etc, all without having to keep logging in every time. So far, so good. First step was to decide between [...]]]></description>
			<content:encoded><![CDATA[<p>While I can&#8217;t log into NetFlix or Amazon with <a href="http://www.openid.net/">OpenID</a> (or other <a href="http://yadis.org/">federated</a> <a href="http://lid.netmesh.org/">login</a> <a href="http://www.inames.net/">systems</a>), I still wanted to try it out.  The goal is to easily write comments on people&#8217;s blogs, edit Wiki pages, etc, all without having to keep logging in every time.  So far, so good.</p>
<p>First step was to decide between running my own OpenID server or not.  I went with &#8220;not&#8221;, since there really isn&#8217;t an installable OpenID server yet (there are only <a href="http://www.lifewiki.net/openid/OpenIDLibraries">support libraries</a>, it seems).  Since I was given a permanent <a href="http://keescook.livejournal.com/profile">account</a> with <a href="http://www.livejournal.com/">LiveJournal</a> for some XSS testing I did for them, I figured I&#8217;d just use their stuff.  I wanted to use &#8220;outflux.net&#8221; as my login everywhere, so I just added <a href="http://www.openid.net/specs.bml#delegate">two lines</a> to my outflux.net HTML source:</p>
<blockquote><p>
&lt;link rel=&#8221;openid.server&#8221; href=&#8221;http://www.livejournal.com/openid/server.bml&#8221; /&gt;<br />
&lt;link rel=&#8221;openid.delegate&#8221; href=&#8221;http://keescook.livejournal.com/&#8221; /&gt;
</p></blockquote>
<p>Poof.  Done.  I used <a href="http://videntity.org/">Videntity</a> to verify that it was all working.  Nifty stuff.</p>
<p>My only complaint is that it&#8217;s not clear how to get an end-to-end secure login.  I can log into LiveJournal securely, but the OpenID server they run doesn&#8217;t seem to operate over HTTPS.  Future study is needed.  :)</p>
<p style='text-align:left'>&copy; 2006, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2006/05/03/fun-with-openid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>greasemonkey for RMLS</title>
		<link>http://www.outflux.net/blog/archives/2006/04/09/greasemonkey-for-rmls/</link>
		<comments>http://www.outflux.net/blog/archives/2006/04/09/greasemonkey-for-rmls/#comments</comments>
		<pubDate>Mon, 10 Apr 2006 04:15:50 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://outflux.net/blog/archives/2006/04/09/greasemonkey-for-rmls/</guid>
		<description><![CDATA[The house-for-sale listings that RMLSweb.com produces are very detailed, and even include a link to show a map for each house&#8217;s address. However, this link goes to MapQuest, which I find infuriatingly annoying to use. I wanted the link to at least go to Google Maps instead. Since I live near Portland, I also wanted [...]]]></description>
			<content:encoded><![CDATA[<p>The house-for-sale listings that <a href="http://rmlsweb.com/">RMLSweb.com</a> produces are very detailed, and even include a link to show a map for each house&#8217;s address.  However, this link goes to MapQuest, which I find infuriatingly annoying to use.  I wanted the link to at least go to <a href="http://maps.google.com/">Google Maps</a> instead.  Since I live near Portland, I also wanted to search the fantastic <a href="http://portlandmaps.com/">Portland Maps</a> site at the same time.  That way I could see lot dimensions, crime statistics, etc.</p>
<p>This was clearly a perfect job for <a href="http://greasemonkey.mozdev.org/">GreaseMonkey</a>.  The result, after my usual fights with javascript, is my script to <a href="http://outflux.net/greasemonkey/rmlsweb.user.js">override the RMLS address mapping</a> function.</p>
<p style='text-align:left'>&copy; 2006, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2006/04/09/greasemonkey-for-rmls/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>debugging firefox extensions</title>
		<link>http://www.outflux.net/blog/archives/2006/03/22/debugging-firefox-extensions/</link>
		<comments>http://www.outflux.net/blog/archives/2006/03/22/debugging-firefox-extensions/#comments</comments>
		<pubDate>Thu, 23 Mar 2006 01:15:32 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://outflux.net/blog/archives/2006/03/22/debugging-firefox-extensions/</guid>
		<description><![CDATA[After installing my amd64 machine and getting my desktop moved, I noticed that Firefox seemed to be running really slowly. Especially google maps. After Brian showed me the Firefox Hacks book, I decided to try and dig into the cause. By setting the environment variable &#8220;NSPR_LOG_MODULES=all:5&#8243; you see damn near everything Firefox is doing while [...]]]></description>
			<content:encoded><![CDATA[<p>After installing my amd64 machine and getting my desktop moved, I noticed that <a href="http://mozilla.org/">Firefox</a> seemed to be running really slowly.  Especially google maps.  After Brian showed me the <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&#038;tag=outflux-20&#038;camp=1789&#038;creative=9325&#038;path=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2F0596009283">Firefox Hacks</a> book, I decided to try and dig into the cause.</p>
<p>By setting the environment variable &#8220;NSPR_LOG_MODULES=all:5&#8243; you see damn near everything Firefox is doing while it does it.  I noticed that it was stalling every time it processed a new cookie (since I don&#8217;t let Google set cookies).  So I started removing each of my cookie extensions.</p>
<p>To get myself back to a sane state, I just backed up my Firefox profile:</p>
<blockquote><p>cp -a ~/.mozilla/firefox/*.default ~/firefox-profile</p></blockquote>
<p>Then removed one extension, restarted Firefox, etc, until I found the busted one.  Turns out &#8220;Extended Cookie Manager&#8221; was my problem, so I replaced it with &#8220;Cookie Button in the status bar&#8221;.</p>
<p>Tedious, but, it worked.  And for some reason, getting a list of all the Firefox environment variables proves to be very difficult.</p>
<p style='text-align:left'>&copy; 2006, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2006/03/22/debugging-firefox-extensions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>my firefox extensions</title>
		<link>http://www.outflux.net/blog/archives/2006/01/03/my-firefox-extensions/</link>
		<comments>http://www.outflux.net/blog/archives/2006/01/03/my-firefox-extensions/#comments</comments>
		<pubDate>Wed, 04 Jan 2006 06:50:57 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://outflux.net/blog/archives/2006/01/03/my-firefox-extensions/</guid>
		<description><![CDATA[I&#8217;ve gotten all my Firefox extensions straightened out again since the 1.5 shake-up. Now that it&#8217;s sane, I wanted to report what I&#8217;m using so I&#8217;ll remember for the future, and so I can go look somewhere if I&#8217;m on my laptop or some other machine and I can&#8217;t remember which extension I was looking [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve gotten all my Firefox extensions straightened out again since the 1.5 shake-up.  Now that it&#8217;s sane, I wanted to report what I&#8217;m using so I&#8217;ll remember for the future, and so I can go look somewhere if I&#8217;m on my laptop or some other machine and I can&#8217;t remember which extension I was looking for.</p>
<p>Also at least one other person has asked me what extensions I&#8217;m using, so maybe others would be interested.  I used the following to get a human-readable list of my extensions:</p>
<blockquote>
<pre>
egrep ':(version|name|description|type)' ~/.mozilla/firefox/*.default/extensions.rdf | \
perl -pe 'print "\n" if (/:version/); s/^[^=]+="//; s/"$//;' | \
(read EMPTY; while read VER; do \
  read NAME; read DESC; read TYPE; read EMPTY; \
  if echo "$TYPE" | grep \>2\<>/dev/null; then \
    echo "$NAME $VER"; echo "$DESC"; echo ""; \
  fi; \
done)
</pre>
</blockquote>
<p>I bet there is an elegant XPath command to extract this directly with a single &#8220;perl&#8221; execution, but, uhm, I&#8217;m not an XML expert.  :)</p>
<p>Almost all of these extensions were gotten from the Firefox extensions list:</p>
<ul>
<li><b>BugMeNot</b> (0.9) Bypass compulsory web registration with the context menu via www.bugmenot.com.</li>
<li><b>Tabbrowser Preferences</b> (1.2.8.8) Enhances control over some aspects of tabbed browsing.</li>
<li><b>Modify Headers</b> (0.5.1) Add, modify and filter http request headers</li>
<li><b>View Rendered Source Chart</b> (1.2.03) Creates a Colorful Chart of a Webpage&#8217;s Rendered Source</li>
<li><b>Gcache</b> (0.2.1) Displays a google cached version of the webpage.</li>
<li><b>Adblock</b> (0.5.2.039) Filters ads from web-pages</li>
<li><b>Word Count</b> (0.3) Counts the number of words in selected text.</li>
<li><b>Allow Right-Click</b> (0.3) Defeats web sites&#8217; right-click prevention scripts.</li>
<li><b>JavaScript Options</b> (1.2.2) Provides advanced JavaScript options for Firefox.</li>
<li><b>User Agent Switcher</b> (0.6.6) Adds a menu and a toolbar button to switch the user agent of the browser.</li>
<li><b>Live HTTP Headers</b> (0.11) View HTTP headers of a page and while browsing.</li>
<li><b>Download Manager Tweak</b> (0.7.1) A modification of the Firefox download manager that changes its appearance and allows it to be opened in a separate window, a new tab, or the sidebar.</li>
<li><b>View Cookies</b> (1.5) View cookies of the current web page.</li>
<li><b>udtranslate</b> (0.0.7) UDTranslate: a zombie translation utility for Urban Dead</li>
<li><b>Stop-or-Reload Button</b> (0.2) Turns the stop and reload buttons into a single one. When you can stop, you have a Stop button, otherwise you have a Reload button. (Like in Safari)</li>
<li><b>QuickJava</b> (0.4.1) Allows quick enable and disable of Java and Javascript from statusbar.</li>
<li><b>Flashblock</b> (1.5) Replaces Flash objects with a button you can click to view them.</li>
<li><b>Greasemonkey</b> (0.6.4) A User Script Manager for Firefox</li>
<li><b>Fasterfox</b> (1.0.1) Performance and network tweaks for Firefox.</li>
<li><b>Disable Targets For Downloads</b> (1.0) Prevents download links opening a blank window.</li>
<li><b>QuickProxy</b> (2005.12.04) Quickproxy creates a statusbar button to quickly turn the proxy on and off.</li>
<li><b>DownThemAll!</b> (0.9.8.4) The mass downloader for Firefox.</li>
<li><b>Web Developer</b> (0.9.4) Adds a menu and a toolbar with various web developer tools.</li>
<li><b>Wayback</b> (0.1.1) Displays an archived version of the webpage.</li>
<li><b>Extended Cookie Manager</b> (0.5.5) Change the cookie status for websites on demand.</li>
</ul>
<p>In addition, it seems the option in TabBrowserPreferences for URL pasting into the display window to load was removed.  After some <a href="http://www.google.com/search?q=paste+loads+URL">Googling</a>, I was <a href="http://thomer.com/howtos/paste_in_firefox.html">directed</a> to the about:config page, under &#8220;middlemouse.contentLoadURL&#8221;.  Set it to <strong>true</strong> to restore the prior default behavior.</p>
<p style='text-align:left'>&copy; 2006, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2006/01/03/my-firefox-extensions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>greasemonkey and fantasy football</title>
		<link>http://www.outflux.net/blog/archives/2005/09/08/greasemonkey-and-fantasy-football/</link>
		<comments>http://www.outflux.net/blog/archives/2005/09/08/greasemonkey-and-fantasy-football/#comments</comments>
		<pubDate>Thu, 08 Sep 2005 21:01:55 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://outflux.net/blog/archives/2005/09/08/greasemonkey-and-fantasy-football/</guid>
		<description><![CDATA[Fantasy Football isn&#8217;t something I have any idea how to play, but I thought I&#8217;d join a few friends in their league, since they seemed to have so much fun with it. It&#8217;s through Yahoo, and is pretty nifty. I&#8217;m slowly learning how to play, but I doubt I&#8217;ll ever be any good considering how [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Fantasy_football_%28American%29">Fantasy Football</a> isn&#8217;t something I have any idea how to play, but I thought I&#8217;d join a few friends in their league, since they seemed to have so much fun with it.  It&#8217;s through Yahoo, and is pretty nifty.  I&#8217;m slowly learning how to play, but I doubt I&#8217;ll ever be any good considering how much I don&#8217;t watch football.  In the Yahoo interface, however, to evaluate a player&#8217;s depth (first string, second string, etc.) I have to click on the player, then the team, then the &#8220;Depth chart&#8221; link.  This was annoying, so it was a perfect opportunity to learn some more javascript, xpath, and DOM manipulation.  As a result, I wrote a <a href="http://greasemonkey.mozdev.org/">greasemonkey</a> script to <a href="http://outflux.net/greasemonkey/yahoo-nfl-teams.user.js">add team links</a> where ever a team abbreviation is seen.</p>
<p style='text-align:left'>&copy; 2005 &#8211; 2006, <a href="http://www.outflux.net/blog/">Kees Cook</a>. This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 License</a>.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.outflux.net/blog/archives/2005/09/08/greasemonkey-and-fantasy-football/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

