tag:blogger.com,1999:blog-91156446058333841382024-03-13T21:16:17.380+01:00X de XavierUnos y ceros. A veces, en el orden adecuado.-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-9115644605833384138.post-78603933397120283482009-11-03T10:59:00.005+01:002010-03-24T14:07:18.499+01:00Analyze your traffic without you<div>Even when you have like a dozen visits a day, checking <a href="http://www.google.com/analytics/">google analytics</a> now and then is nice (<i>hey! a vsitor from Belize!</i>). However, it is nice to be able to tell what traffic comes from yourself and what comes from your two readers (if any). A <a href="http://code.verg.es/sharebookmarklet.html?author=%3Ca%20href%3D%22http%3A%2F%2Fx.verg.es%22%3E-Xv%3C%2Fa%3E&description=%3Cp%3EBookmark%20the%20link%20%22Exclude%20myself...%22%20link%20below%2C%20or%20copy%20its%20location%20to%20the%20clipboard.%20When%20visiting%20your%20tracked%20page%2C%20run%20the%20code%2C%20by%20clicking%20on%20the%20bookmark%20or%20pasting%20the%20code%20in%20the%20address%20bar.%20Once%20your%20cookie%20is%20set%2C%20you%27ll%20need%20to%20set%20a%20custom%20filter.%20Check%20the%20second%20step%20in%20%3Ca%20href%3D%22http%3A%2F%2Fcatbirdanalytics.wordpress.com%2F2009%2F01%2F03%2Fexcluding-visitors-from-google-analytics-via-cookie%2F%22%3EExcluding%20Visitors%20from%20Google%20Analytics%20via%20Cookie%3C%2Fa%3E%3C%2Fp%3E&title=Exclude%20myself%20from%20Google%20Analytics&code=(function%20SetFilterCookie()%0A{%0A%20%20var%20field%20%3D%20prompt(%22Google%20Analytics%20custom%20field%20value%22%2C%20%22Xavier%22)%3B%0A%20%20if%20(field)%20{%0A%20%20%20%20if%20(typeof%20pageTracker%20!%3D%3D%20%22undefined%22)%20{%0A%20%20%20%20%20%20pageTracker._setVar(field)%3B%20%2F%2F%20ga.js%0A%20%20%20%20}%20else%20{%0A%20%20%20%20%20%20__utmSetVar(field)%3B%20%2F%2F%20urchin.js%0A%20%20%20%20}%0A%20%20%20%20alert(%22Set%20%27%22%2B%20field%20%2B%20%22%27%20in%20your%20custom%20field%20filter%22)%3B%0A%20%20}%0A})()">bookmarklet</a> can help you to enable a filter that will allow analytics to remove you from its stats, or even to track your own usage of your site.</div><div><br /></div><div><b>Update</b>: bookmarklet magic moved from the defunct googlepages to amazon s3 to <a href="http://code.verg.es/sharebookmarklet.html">http://code.verg.es/sharebookmarklet.html</a> </div><div><br /></div>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com1tag:blogger.com,1999:blog-9115644605833384138.post-1113466658100296322008-06-30T23:26:00.006+01:002008-07-01T13:22:41.736+01:00Jornades de Programari Lliure<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.jornadespl.org/"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.jornadespl.org/logo.jpg" alt="" border="0" /></a><br />Dimecres comencen les <a href="http://www.jornadespl.org/biblioteca/vii-jornades">VII Jornades de Programari Lliure</a>. <a href="http://www.google.com/calendar/embed?mode=AGENDA&src=oqt75c0jgojvcd2o7trfh0prn4%40group.calendar.google.com">Programa al Google Calendar</a>.<br /><br />Si m'ho puc apanyar, vull anar a<br /><ul><li><span style="font-size:85%;">Dijous 12:30 - 13:00.</span><br />Aprenentatge de la Programació al <a href="http://citilab.eu/squeak">Citilab: Squeak</a> i Scratch</li><li><span style="font-size:85%;">Divendres 13:00-14:00.</span> <a href="http://eyeos.org/"><br />eyeOS</a> : Portant el Sistema Operatiu a la Xarxa</li><li><span style="font-size:85%;">Divendres 15:30-16:30.</span><br />Eines de virtualització lliures per a sistemes GNU/Linux</li><li><span style="font-size:85%;">Divendres 16:30-19:00.</span><br />Taller d’<a href="http://www.arduino.cc/">Arduinos</a> (open-hardware)<br /></li></ul><br />M'ho pugui apanyar o no, dissabte aniré a la Jornada de Python (de 10:00 a 14:00), doncs he dit que faria una xerrada sobre <a href="http://wiki.sugarlabs.org/go/Main_Page">Sugar</a>, l'interface d'usuari del XO o OLPC o $100 Laptop<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://wiki.laptop.org/"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://pics.ebaystatic.com/aw/pics/xogiving/g1g1/xo_intro_v2.jpg" alt="" border="0" /></a>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-73017729548916926492008-04-15T21:46:00.006+01:002008-04-24T09:16:33.994+01:00A simple way to manage Firefox privilegesIf you are familiar with the 'enhanced abilities' Firefox security prompt, and you ever clicked on the 'Remember this decision' check box<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_T679aggANRU/SAUV47MdTXI/AAAAAAAAAEE/btI4u5w6n4I/s1600-h/securityprompt.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_T679aggANRU/SAUV47MdTXI/AAAAAAAAAEE/btI4u5w6n4I/s400/securityprompt.png" alt="" id="BLOGGER_PHOTO_ID_5189578213321166194" border="0" /></a><br />you may want to check <a href="http://firefoxprivileges.tiddlyspot.com/">http://firefoxprivileges.tiddlyspot.com</a>.<br /><br />When this prompt appears as a result of loading a file from your hard drive, you may not be aware of the exact meaning of the 'Remember this decision' check box. While you probably mean "I trust this file and I don't want you to annoy me anymore", Firefox understands "I trust every html file loaded from the hard drive". This broad trust is not a good idea from the security point of view.<br /><br />This tool allows to easily cancel that effects of "remember this", and tell Firefox that you only trust some specific files (<a href="http://www.mozilla.org/projects/security/components/per-file.html">per-file permissions</a>). Before hacking it, I used to have to mess with the <a href="http://kb.mozillazine.org/User.js_file">user.js</a> file, much less convenient.<br /><br />The tool is implemented as a TiddlyWiki plugin. If you are not familiar with <a href="http://firefoxprivileges.tiddlyspot.com/#TiddlyWiki">TiddlyWiki</a>s (super cool wikis in a single file), this is a good chance to get to know them.<br /><br /><span style="font-weight: bold;">Edit:</span><br /><span style="font-size:78%;">Some strings to make this post googleable for the right people:<br />UniversalXPConnect UniversalBrowserRead UniversalBrowserWrite UniversalFileRead CapabilityPreferencesAccess UniversalPreferencesRead UniversalPreferencesWrite<br />netscape.security.PrivilegeManager.enablePrivilege signed.applets.codebase_principal_support</span>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-70210677744317020972007-08-06T16:30:00.000+01:002007-09-22T10:53:09.140+01:00XUL persist annoyancesXUL Elements have <a href="http://www.xulplanet.com/references/elemref/ref_XULElement.html#attr_persist">a persist attribute</a>, that is documented as<blockquote>A space separated list of attributes that are maintained when the window is closed. When the window is re-opened, the values of persistent attributes are restored. In Mozilla, persistent attributes are stored in the per-profile file localstore.rdf. Persistence can also be stored using the document.persist function. In order for persistence to work, the element must also have an id.</blockquote> I've learned some things about it today:<br /><ul><li>It does not seem to work for the "value" attribute of "textarea" elements</li><li>It is stored as <a href="http://www.xulplanet.com/tutorials/mozsdk/rdfstart.php">RDF</a><br /></li><li>It asks for some quite verbose code if you need to access to it<br /></li></ul><div style="overflow:scroll"><pre><code><br />var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].<br /> getService(Components.interfaces.nsIRDFService);<br />var rdfLocalStoreDS = Components.classes["@mozilla.org/rdf/datasource;1?name=local-store"].<br /> getService(Components.interfaces.nsIRDFDataSource);<br />var rdfRes = rdfService.GetResource("uri of interest after about in localstore.rdf");<br />var screenXRes = rdfService.GetResource("screenX");<br />var screenYRes = rdfService.GetResource("screenY");<br /><br />if (rdfLocalStoreDS.hasArcOut(rdfRes, screenXRes) &&<br />rdfLocalStoreDS.hasArcOut(rdfRes, screenYRes)) {<br />var screenX = rdfLocalStoreDS.GetTarget(rdfRes, screenXRes, true).<br /> QueryInterface(Components.interfaces.nsIRDFLiteral)<br />var screenY = rdfLocalStoreDS.GetTarget(rdfRes, screenYRes, true).<br /> QueryInterface(Components.interfaces.nsIRDFLiteral)<br />window.moveTo(screenX.Value, screenY.Value);<br /></code></pre></div>I failed to call <code>QueryInterface(Components.interfaces.nsIRDFLiteral)</code> for quite a while of wasted time. In <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=391044#c2">another piece of code that I wrote</a>, this was magically called for me by checking <code>if (target instanceof Components.interfaces.nsIRDFLiteral);</code> I need to get a better understanding of Mozilla's component model mechanisms... I also failed to use "Value" with a capital letter, to add up to the waste. :-(-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-63059799618048678252007-08-04T01:04:00.000+01:002007-08-04T17:55:03.219+01:00SendTo Clipboard coolness (TiddlyWiki links to your files)The SendTo folder is a simple and powerful tool to customize Windows Explorer to simplify some recurring tasks. If you often want to link to files in your PC from your TiddlyWikis, you'll like this hack. It creates two new items in the "Send To" menu:<br /><ul><li><span style="font-family:courier new;">clipboard - file url</span>: Copies to the clipboard the file: url of the file or folder that was showing the "Send To" menu</li><li><span style="font-family:courier new;">clipboard - new tiddler javascript url</span>: Copies to the clipboard a javascript: url that, when pasted into the address bar of a Firefox tab showing a TiddlyWiki, will create a tiddler with the contents of the file that was showing the "Send To" menu<br /></li></ul><br />You can jump and just download and run the thing, <a href="http://xdexavier.googlepages.com/path2twlink.hta">a small .hta file</a>, or take less than three minutes watching it in action in one of the lamest screencasts ever:<br /><object type="application/x-shockwave-flash" data="http://vimeo.com/moogaloop.swf?clip_id=261215&server=vimeo.com&fullscreen=1&show_title=1&show_byline=1&show_portrait=0&color=00ADEF" height="300" width="400"> <param name="quality" value="best"> <param name="allowfullscreen" value="true"> <param name="scale" value="showAll"> <param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=261215&server=vimeo.com&fullscreen=1&show_title=1&show_byline=1&show_portrait=0&color=00ADEF"></object><br /><span style="font-size:78%;"><a href="http://vimeo.com/261215">SendTo Clipboard Screencast</a> from <a href="http://vimeo.com/xdexavier">Xavier Vergés</a> and <a href="http://vimeo.com/">Vimeo</a></span><br /><br /><span style="font-weight: bold;">Using it<br /></span><ul><li>Just download the .hta file and open it. No, wait! Never open .hta files unless you trust its author or you have taken a look at the code.</li><li>Provided that you trust me or that you have checked the code, you can now open it. Maybe a double click will be enough (your Windows associates .hta files to <span style="font-family:courier new;">mshta.exe</span>, a version of IE with high security privileges in your machine). Maybe you need to use the command line and type <span style="font-family:courier new;">mshta path2twlink.hta</span>.</li><li>Follow the simple steps described in the .hta file, and you can start using your new shinny Send To menu items.</li><li>You are expected to edit the file to customize what gets copied into the clipboard. It should be easy. You may get ideas to push the sendto+clipboard+javascript urls concept further; adding them to the tool should not be too hard.</li><li>You are also expected to do some dancing, since this is <a href="http://xdexavier.blogspot.com/2007/08/upcoming-dancelikematthardingware-half.html">DanceLikeMattHardingWare</a>.<br /></li></ul><span style="font-weight: bold;">Lessons learned while hacking<br /></span><ul><li>I initially wanted to use just a .js file. Getting access to the clipboard from a .js file is hard, so I went for an .hta. It turned out to be a good thing, because it ended up providing a way to avoid to the users the trouble of creating the shortcuts by hand and to me the trouble of documenting the recipe.</li><li>The problem of using an .hta file is that I found no way to keep it invisible, that it has an unusual way to receive its params, and that I had to warn you about its dangerousness.</li><li>I think that I've spent more time recording the lousy screencast and comparing video hosting services that coding. The number of times that I rerecorded the #@%! thing will remain undisclosed; I have my pride. Regarding the hosting services, after reading <a href="http://pascal.vanhecke.info/2006/10/31/screencasting-online-video-sharing-sites-compared-2">about</a> <a href="http://209.85.135.104/search?q=cache:a5H_UzfisBsJ:www.gnurou.org/blog/gnurou/2007/07/30/comparing_google_video_vimeo_and_blip_tv&hl=en&amp;amp;amp;amp;amp;amp;amp;amp;amp;ct=clnk&cd=10" title="sorry, cached version">them</a>, I posted the video to <a href="http://video.google.es/videoplay?docid=1620076739328504497">google</a>, <a href="http://blip.tv/file/327653/">blip.tv</a> and <a href="http://www.vimeo.com/261215">vimeo</a>. <del><br />I still have no winner, but google's video quality was awfull, so I had to drop it despite its super cool feature of letting you link to a specific point of the video.</del> <span style="font-weight: bold;">Update</span>: looks like the winner is <a href="http://viddler.com">http://viddler.com</a>: links, comments and tags on specific points of the video, plus the best player of all (in full screen mode, showing the original size, the quality was just perfect): <a href="http://www.viddler.com/explore/xdexavier/videos/1">http://www.viddler.com/explore/xdexavier/videos/1</a><br /></li></ul>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com2tag:blogger.com,1999:blog-9115644605833384138.post-36171151279229827012007-08-02T13:37:00.000+01:002007-08-06T08:53:42.199+01:00Upcoming DanceLikeMattHardingWare (half cooked hacks)I have a longish backlog of hacks worth cleaning up and publishing<br /><ul><li><span style="font-weight: bold;">FoxyHistory</span>, a better Firefox History Manager. Having the ability to include urls when searching, and to sort the history by date of first visit has already saved me some time trying to restore some foggy memories.<br /></li><li><span style="font-weight: bold;">TiddlyWiky SendTo Shortcuts</span>, that allow to easily create customized links to files in a tiddlywiki and tiddlers with the contents of a file <span style="font-size:85%;">(Thanks for that <a href="http://groups.google.com/group/TiddlyWiki/browse_frm/thread/fa8a27d2f13f94fd/e26f38c207160ceb?#e26f38c207160ceb">first implementation</a>, <a href="http://groups.google.com/groups/profile?enc_user=cfb74xEAAADNzp8KVNaUwGY7xBgmxhfBIZ6HvvJW0y4Pue0pYgAOJQ">-- F.</a>!)</span><br /></li><li><span style="font-weight: bold;">MultiTiddlyWiki</span>, that allows to have a bunch of tiddlywikis in a single Firefox tab. Specially nice when used with the terrific <a href="http://wiki.mozilla.org/WebRunner">WebRunner</a>, a XULRunner based <a href="http://www.hawkwings.net/2006/05/13/a-dedicated-distraction-free-browser-for-gmail/">distraction-free browser</a> <span style="font-size:85%;">(Thanks for <a href="http://groups.google.com/group/GTD-TiddlyWiki/browse_frm/thread/c7a877fbd76a4363">the link</a>, <a href="http://groups.google.com/groups/profile?enc_user=EZKFZB4AAAAiViFfWiEmN7zhal_9mEZS3PARwrFCXyGvkdrowEPjtw">schilke</a>!)</span></li></ul>I also had a <a href="http://xkcd.com/">xkdc</a> (<span style="font-style: italic;">a webcomic of romance, sarcasm, math, and language</span>) specific bookmarklet, but I just learned about the <a href="https://addons.mozilla.org/en-US/firefox/addon/1715">Long Titles Firefox extension</a> that obsoletes it.<br /><br />I think that I'll make the hacks available as <span style="font-weight: bold;">DanceLikeMattHardingWare</span>:<br /><blockquote>You are free to do with this whatever you fancy, but you are expected to do some small <a href="http://video.google.com/videoplay?docid=4333821212636205852#2m53s">à la Matt Harding dancing steps</a> now and then.<br /><br />If you are too serious to dance, consider changing some things in your life, or just use it under some form of <a href="http://en.wikipedia.org/wiki/Beerware">beerware</a> or <a href="http://creativecommons.org/">Creative Commons</a> licensing.</blockquote><br /><a title="Matt Harding in Berlin" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wherethehellismatt.com/"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_T679aggANRU/RrbS6EOtDsI/AAAAAAAAACk/lPAMwz74sK0/s320/matt_in_berlin.jpg" border="0" alt="Matt Harding in Berlin" id="BLOGGER_PHOTO_ID_5095491923425955522" /></a>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-91761754399576670492007-05-11T21:35:00.000+01:002007-05-11T21:43:50.770+01:00Tiddlywiki YourSearch bookmarkletWant to use the <a href="http://xdexavier.blogspot.com/2007/04/tiddlywiki-yousearch-plugin.html">terrific</a> <a href="http://tiddlywiki.abego-software.de/#YourSearchPlugin">YourSearch plugin</a> even when visiting a <a href="http://tiddlywiki.com/">TiddlyWiki</a> that does not have it installed?<br /><a href="http://xdexavier.googlepages.com/yoursearch.html">A bookmarklet will make it simple</a>.-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com2tag:blogger.com,1999:blog-9115644605833384138.post-80524253773524956312007-05-11T00:23:00.000+01:002007-05-11T00:35:42.787+01:00Falling in love with MochiKit<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mochikit.com/"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://mochikit.com/include/_img/img_logo_01.gif" alt="" border="0" /></a><br /><br />As promised, <a href="http://mochikit.com/">MochiKit</a> makes JavaScript suck less. Small things like bind(), partial(), map() and filter() are making me fall in love with it. And the very extensive documentation. And how I think that I'm going to enjoy using its <a href="http://www.mochikit.com/doc/html/MochiKit/Signal.html">Signal</a>, inspired on <a href="http://doc.trolltech.com/3.3/signalsandslots.html">Qt's signal/slot system</a>.<br /><br />Back to coding.-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-41763351587962417962007-04-27T13:52:00.000+01:002007-04-27T14:11:55.926+01:00Evangelizing and toilets<span class="q"><blockquote>One of Google's little secrets that has helped us to inspire our developers to write well-tested code: <span style="font-weight: bold;">we write flyers </span>about (testing techniques) <span style="font-weight: bold;">and then regularly plaster the bathrooms all over Google with each</span> episode, almost 500 stalls worldwide.<br /><br />We've received a lot of feedback about it. Some favorable ("This is great because I'm always forgetting to bring my copy of Linux Nerd 2000 to the bathroom!") and some not ("I'm trying to use the bathroom, can you folks please just LEAVE ME ALONE?")</blockquote>Stumbled upon this evangelizing technique in </span><a href="http://googletesting.blogspot.com/2007/01/introducing-testing-on-toilet.html">Introducing "Testing on the Toilet"</a>, while googling trying to decide which JavaScript unit testing framework use (yeah, shame on me, I've been doing lots of JavaScript lately without doing Test Driven Development).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://googletesting.blogspot.com/" title="Debugging sucks. Testing rocks"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://photos1.blogger.com/x/blogger2/5468/1836/1600/z/275811/gse_multipart55189.gif" alt="" border="0" /></a>They not only use a surprising evangelizing technique, but also have a great banner and motto for their blog: "<span style="font-style: italic;">Debugging sucks. Testing Rocks.</span>"-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-16162012660920317632007-01-09T23:44:00.000+01:002007-01-10T10:35:10.857+01:00My browser, my rules, my chrome<span style="font-weight: bold;">Summary:</span> there are times when Firefox security gets in your way. Having a directory where you can place xul, html and scripts to run with chrome privileges enables you to shoot yourself in the foot and to create nice and handy hacks.<br /><br /><span style="font-weight: bold;">The itch that called for scratching:</span> I wanted to hack something to let me upload several files at once to <a href="http://googlepages.com/">googlepages</a> [1]. The problem is that, for very good reasons, you can not use JavaScript to change the value of input fields of type file: you usualy don't want scripts reading files in your disk. So, a bookmarklet, that to the browser looks as if it were part of the page, wouldn't cut it. Greasemonkey userscripts do <a href="http://diveintogreasemonkey.org/etech2006/#slide31">run sandboxed, but not under chrome privilege</a> [2], so I did not try that. I tried to give the page <a href="http://citebite.com/q6m6j4u5uvqh">UniversalFileRead privilege</a> [3][4], but failed.<br /><br /><span style="font-weight: bold;">A chrome folder.</span> From <a href="http://xulblog.de/xul/archives/7-Under-chromes-influence.html">Under chrome's influence</a>, slightly modified,<br /><blockquote><br />In the browser's installation directory, create a new file <code>chrome/mychrome.manifest</code> and put a single line into it:<br /><pre>content mychrome file:///D:/whatever/mychrome/<br /></pre>Note that the trailing slash is significant. Then create the file <code>D:\whatever\mychrome\hello.txt</code> and add some text:<br /><pre>hello world!<br /></pre>After a complete restart of your browser, you can open that file using <code>chrome://mychrome/content/hello.txt</code>.<br /></blockquote>You need to keep in mind that chrome is catched, so you may not see the changes you make immediately. Setting <a href="http://kb.mozillazine.org/Nglayout.debug.disable_xul_cache"><code>nglayout.debug.disable_xul_cache</code></a> to <code>true</code> [5] or the <a href="http://ted.mielczarek.org/code/mozilla/extensiondev/">Extension Developer's Extension</a> ability to reload chrome without restarting the browser are helpful here.<br /><br /><span style="font-weight: bold;">Future plans:</span><br /><ul><li>the bulk upload to googlepages is working nicely; needs some docu before uploading it.</li><li>I want to have a browser window with chrome privileges so that I can have more freedom of what I can do with some file: urls. Specifically<br /></li><ul><li>have known tiddlywikis granted <code>UniversalXPConnect</code> privilege <a href="http://groups-beta.google.com/group/TiddlyWikiDev/browse_frm/thread/5a8ddb015a6e738/97a25887d760a7d3?hl=en#97a25887d760a7d3">without having to grant it to everything from file:</a> and without having to mess with the <code>capability.principal.codebase</code> annoyance.</li><li>have local files use a script loaded from the web, or have a remote file load a script from my disk, so that I don't have to upload files while writing/debugging javascript.<br /></li></ul></ul><span style="font-weight: bold;">Footnotes:</span><br /><span style="font-size:85%;"><span style="font-weight: bold;">[1]</span> googlepages: yeah, I know, I'm cheap!<br /><span style="font-weight: bold;">[2]</span> Mark Pilgrim's slides on sandboxing greasemonkey have a wonderful <a href="http://diveintogreasemonkey.org/etech2006/#slide10">"how to become an expert" detour</a>. Don't miss it.<br />And, just in case you are a powerpoint author, consider <a href="http://meyerweb.com/eric/tools/s5/">S5</a> (a Simple Standards-Based Slide Show System), the tool used for Mark's slides.<br /><span style="font-weight: bold;">[3]</span> UniversalFileRead: I added to my <a href="http://kb.mozillazine.org/User.js_file">user.js</a><br /><pre>user_pref("capability.principal.codebase.googlepages1.granted", "UniversalFileRead");<br />user_pref("capability.principal.codebase.googlepages1.id", "http://pages.google.com/");<br /></pre>but still got a security exception.<br /><span style="font-weight: bold;">[4]</span> Highlighted link thanks to <a href="http://citebite.com/">http://citebite.com</a>.<br /><span style="font-weight: bold;">[5]</span> <code>nglayout.debug.disable_xul_cache</code>: I haven't tried it. As I write this,I realize that my <code>user.js</code> sets it to <code>true</code> while my <code>prefs.js</code> ignores it and keeps it to <code>false</code>. <del>I'm clueless here.</del> <span style="font-weight: bold;">Update:</span> A ";" was missing at the end of its user_pref line. Life is much better with this setting enabled!<br /></span>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com2tag:blogger.com,1999:blog-9115644605833384138.post-52376862091731804912006-12-05T00:50:00.000+01:002006-12-05T00:54:27.726+01:00dW chats: Making the move to AjaxIBM Rational's <a href="http://www-03.ibm.com/developerworks/blogs/page/BillHiggins">Bill Higgins</a> will be the moderator of a <a href="http://www-03.ibm.com/developerworks/blogs/page/BillHiggins?entry=ajax_chat_with_me_wed">developerWorks chat on Ajax</a>. to be held on Wednesday December 6th at <a href="http://www.timeanddate.com/worldclock/fixedtime.html?month=12&day=6&amp;amp;year=2006&hour=13&min=0&sec=0&p1=179">1pm his time or 7pm my time</a>. I was not aware of these dW chats going on (this is the second one, <a href="http://www-128.ibm.com/developerworks/java/chat/glover.html">as far as I've seen</a>).-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0