<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14120944</id><updated>2011-12-30T00:55:12.828+01:00</updated><title type='text'>Electric Development Blog</title><subtitle type='html'>Software with a spark!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14120944.post-114493454540961912</id><published>2006-04-13T15:19:00.000+02:00</published><updated>2007-01-03T20:02:41.976+01:00</updated><title type='text'>The End is here.</title><content type='html'>OK I was right, I didn't have the motivation to keep writing here. Anway, I'll be keeping the site here for all of you who want to download my scripts.&lt;br /&gt;&lt;br /&gt;Thanks for now, I'll be back, &lt;a href="http://blog.runeskaug.com"&gt;somewhere&lt;/a&gt;, sometime.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-114493454540961912?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/114493454540961912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=114493454540961912' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/114493454540961912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/114493454540961912'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2006/04/end-is-here.html' title='The End is here.'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-113865670028766814</id><published>2006-01-30T22:26:00.000+01:00</published><updated>2006-01-30T22:33:25.966+01:00</updated><title type='text'>That's all folks?</title><content type='html'>One of my faithful readers asked me the other day if I already quit blogging (after all, it's been a loong silence :). I told him - as a rule - I never quit, but I usually take long breaks.&lt;br /&gt;&lt;br /&gt;Anyway, I'll still be here for a while, and even though I haven't spat out any new user scripts lately, I did learn a thing or two, and that's what I'll be sharing with you in the weeks to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-113865670028766814?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/113865670028766814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=113865670028766814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/113865670028766814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/113865670028766814'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2006/01/thats-all-folks.html' title='That&apos;s all folks?'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-113310328279739969</id><published>2005-11-27T14:56:00.000+01:00</published><updated>2006-09-22T17:57:16.986+02:00</updated><title type='text'>AutoTOC fame</title><content type='html'>&lt;iframe src="http://rcm.amazon.com/e/cm?t=runeskaugdott-20&amp;o=1&amp;amp;p=8&amp;l=as1&amp;amp;asins=0596101651&amp;nou=1&amp;amp;fc1=000000&amp;IS2=1&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt1=_blank&amp;lc1=0000ff&amp;amp;bc1=ffffff&amp;bg1=ffffff&amp;amp;f=ifr" style="border: 1px solid rgb(191, 191, 191); margin: 3px; padding: 3px; width: 120px; height: 240px;" marginwidth="0" marginheight="0" align="right" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;Yesterday, I received a copy of Mark Pilgrim's "&lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;tag=runeskaugdott-20&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;camp=1789&amp;creative=9325&amp;amp;path=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2F0596101651"&gt;Greasemonkey Hacks&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=runeskaugdott-20&amp;l=ur2&amp;amp;o=1" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /&gt;" in the mail - and it didn't take me long to find Hack #71 "Add a Table of Contents to Long Pages" a.k.a AutoTOC. Woho! :) Mine! Precioussss! (OK I must admit - it's a been a long time since I've seen my source code printed on paper... I'm guessing the high school assignments back in 95?? :)&lt;br /&gt;&lt;br /&gt;The interesting part is the period of time from when I knew nothing about Greasemonkey, until Pilgrim contacted me and asked me if I would contribute the script to his book. It took less than two weeks. Fair enough, we're not talking about cure to cancer or a Microsoft Office-competitor, but still... two weeks!! Vive la revolution!&lt;br /&gt;&lt;br /&gt;I didn't ask Mark how he found the script, but I'm guessing he found it through &lt;a href="http://dunck.us/collab/GreaseMonkeyUserScripts"&gt;Jeremy Dunck's wiki&lt;/a&gt; (most people did at the time - and still do). Others tend to find the script through my Technorati tags or through user script portals like &lt;a href="http://userscripts.org/"&gt;userscripts.org&lt;/a&gt; and &lt;a href="http://userjs.org/"&gt;userjs.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The point is - I've been blown away before - about how quickly information and tools spread in this relatively new age of blogs, RSS and wikis... and then it happened to me.&lt;br /&gt;&lt;br /&gt;Anyway, thanks to Mark for recognising the script (even though he forgot to include my name in the Contributors section ;)). Also, thanks to all of you (my 3 loyal readers and AutoTOC power users) for your kind suggestions, comments (and error reports).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-113310328279739969?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/113310328279739969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=113310328279739969' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/113310328279739969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/113310328279739969'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/11/autotoc-fame.html' title='AutoTOC fame'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-113265318876428717</id><published>2005-11-22T10:35:00.000+01:00</published><updated>2005-11-29T22:38:53.486+01:00</updated><title type='text'>New Release: AutoTOC 1.6</title><content type='html'>AutoTOC has reached version 1.6, and should be more compatible than ever, it is tested on Firefox 1.0, Firefox 1.5, Opera8 and Opera9.&lt;br /&gt;&lt;br /&gt;Featuring:&lt;br /&gt;- Flash active heading&lt;br /&gt;- Moved close button to the left, looks a bit better now&lt;br /&gt;&lt;br /&gt;Misc tech:&lt;br /&gt;- Fixed bug in cookie handling&lt;br /&gt;- Opera choked on the treewalker, so we've changed to XPath instead&lt;br /&gt;&lt;br /&gt;Get it here: &lt;a href="http://www.runeskaug.com/greasemonkey/autotoc.user.js"&gt;http://www.runeskaug.com/greasemonkey/autotoc.user.js&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A bookmarklet version will appear in the next few days. Thanks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;: To install the Bookmarklet version; drag the following link to your bookmarks or toolbar: &lt;a href="javascript:var fullTOCText = %22Table of Contents%22; var hideBtnText = %22\u00a0X\u00a0%22; var RXmatch = /^h[1-4]$/i; var XPmatch = %22//h1|//h2|//h3|//h4%22; var resetSelect = true; var showHide = true; var useCookie = false; var addMenuItem = true; function f() { if (document.getElementsByTagName(%22html%22).length &amp;&amp; ( document.getElementsByTagName('h1').length || document.getElementsByTagName('h2').length || document.getElementsByTagName('h3').length || document.getElementsByTagName('h4').length ) &amp;&amp; (!useCookie || (useCookie &amp;&amp; getCookie('autotoc_hide')!='true'))) { var aHs = getHTMLHeadings(); if (aHs.length%3E1) { var body = document.getElementsByTagName('body')[0]; body.style.marginBottom = %2224px !important%22; addCSS( '#js-toc {position: fixed; left: 0; right: 0; top: auto; bottom: 0; width: 100%; display: block; border-top: 1px solid #777; background: #ddd; margin: 0; padding: 3px; z-index: 9999; }\n'+ '#js-toc select { font: 8pt verdana, sans-serif; margin: 0; margin-left:5px; background: #fff; color: #000; float: left; padding: 0; vertical-align: bottom;}\n'+ '#js-toc option { font: 8pt verdana, sans-serif; color: #000; }\n'+ '#js-toc .hideBtn { font: bold 8pt verdana, sans-serif !important; float: left; margin-left: 2px; margin-right: 2px; padding: 1px; border: 1px solid #999; background: #e7e7e7; }\n'+ '#js-toc .hideBtn a { color: #333; text-decoration: none; background: transparent;} #js-toc .hideBtn a:hover { color: #333; text-decoration: none; background: transparent;}' ); var toc = document.createElement(window.opera||showHide?'tocdiv':'div'); toc.id = 'js-toc'; if (showHide) { var hideDiv = document.createElement('div'); hideDiv.setAttribute('class','hideBtn'); var hideLink = document.createElement('a'); hideLink.setAttribute(%22href%22,%22#%22); hideLink.setAttribute(%22onclick%22,useCookie?%22document.getElementById('js-toc').style.display = 'none'; document.cookie = 'autotoc_hide=true; path=/'; return false;%22:%22document.getElementById('js-toc').style.display = 'none';%22); hideLink.appendChild(document.createTextNode(hideBtnText)); hideDiv.appendChild(hideLink); toc.appendChild(hideDiv); } tocSelect = document.createElement('select'); tocSelect.setAttribute(%22onchange%22, %22if(this.value){function flash(rep,delay) { for (var i=rep;i%3E0;i--) {window.setTimeout('el.style.background=\%22#ff7\%22;',delay*i*2);window.setTimeout('el.style.background=elbg',delay*((i*2)+1));};}; elid = this.value; el=document.getElementById(elid); elbg=el.style.background; location.href='#'+elid; flash(5,100);%22+(resetSelect?%22this.selectedIndex=0;}%22:%22}%22)); tocSelect.id = 'toc-select'; tocEmptyOption = document.createElement('option'); tocEmptyOption.setAttribute('value',''); tocEmptyOption.appendChild(document.createTextNode(fullTOCText)); tocSelect.appendChild(tocEmptyOption); toc.appendChild(tocSelect); document.body.appendChild(toc); for (var i=0,aH;aH=aHs[i];i++) { if (aH.offsetWidth) { op = document.createElement(%22option%22); op.appendChild(document.createTextNode(gs(aH.tagName)+getInnerText(aH).substring(0,100))); var refID = aH.id ? aH.id : aH.tagName+'-'+(i*1+1); op.setAttribute(%22value%22, refID); document.getElementById(%22toc-select%22).appendChild(op); aH.id = refID; } } } } }; function autoTOC_toggleDisplay() { if (document.getElementById('js-toc')) { if (document.getElementById('js-toc').style.display == 'none') { document.getElementById('js-toc').style.display = 'block'; if (useCookie) {document.cookie = 'autotoc_hide=; path=/';} } else { document.getElementById('js-toc').style.display = 'none'; if (useCookie) {document.cookie = 'autotoc_hide=true; path=/';} }; } else { if (useCookie) {document.cookie = 'autotoc_hide=; path=/';} f(); } } function getHTMLHeadings() { function acceptNode(node) { if (node.tagName.match(RXmatch)) { if (node.value+''!='') { return NodeFilter.FILTER_ACCEPT; } } return NodeFilter.FILTER_SKIP; } outArray = new Array(); if (document.evaluate) { var nodes = document.evaluate(XPmatch, document, null, XPathResult.ANY_TYPE, null); var thisHeading = nodes.iterateNext(); var j = 0; while (thisHeading) { if (thisHeading.textContent+''!='') { outArray[j++] = thisHeading; } thisHeading = nodes.iterateNext(); } } else { var els = document.getElementsByTagName(%22*%22); var j = 0; for (var i=0,el;el=els[i];i++) { if (el.tagName.match(RXmatch)) outArray[j++] = el; } } return outArray; } function addCSS(css) { var head, styleLink; head = document.getElementsByTagName('head')[0]; if (!head) { return; } styleLink = document.createElement('link'); styleLink.setAttribute('rel','stylesheet'); styleLink.setAttribute('type','text/css'); styleLink.setAttribute('href','data:text/css,'+escape(css)); head.appendChild(styleLink); } function gs(s){ s = s.toLowerCase(); var ret = %22%22; for (var i=1; i%3C(s.substring(1)*1);i++) { ret = ret + %22\u00a0 \u00a0 %22; } return ret; } function getInnerText(el) { var s=''; for (var i=0,node; node=el.childNodes[i]; i++) { if (node.nodeType == 1) s += getInnerText(node); else if (node.nodeType == 3) s += node.nodeValue; } return s; } function getCookie(cname) { var namesep = cname + %22=%22; var ca = document.cookie.split(';'); for(var i=0, c; c=ca[i]; i++) { c = c.replace(/^\s*|\s*$/g,%22%22); if (c.indexOf(namesep) == 0) { return c.substring(namesep.length,c.length); } } return null; } f();"&gt;TOC it!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tags: &lt;a href="http://technorati.com/tag/user+scripts" rel="tag"&gt;user scripts&lt;/a&gt;, &lt;a href="http://technorati.com/tag/greasemonkey" rel="tag"&gt;greasemonkey&lt;/a&gt;, &lt;a href="http://technorati.com/tag/opera" rel="tag"&gt;opera&lt;/a&gt;, &lt;a href="http://technorati.com/tag/firefox" rel="tag"&gt;firefox&lt;/a&gt;, &lt;a href="http://technorati.com/tag/html" rel="tag"&gt;html&lt;/a&gt;, &lt;a href="http://technorati.com/tag/bookmarklet" rel="tag"&gt;bookmarklet&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-113265318876428717?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/113265318876428717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=113265318876428717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/113265318876428717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/113265318876428717'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/11/new-release-autotoc-16.html' title='New Release: AutoTOC 1.6'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-113151986748959680</id><published>2005-11-09T07:59:00.000+01:00</published><updated>2005-11-09T08:04:27.490+01:00</updated><title type='text'>Coming soon, more posts...</title><content type='html'>Hello everyone, I'm sure you missed me and, no less, my faboulous user scripts. The last couple of months have been pretty hectic, but thhings seem to be calming down a bit now. I've been getting comments about upgrading my scripts to Firefox 1.5 compability, and I'll try to do that as soon as possible. I also got some comments from Tarquin at userjs.org about AutoTOC performance, and I'll sort that out as well. OK just thought you ought to know... See you later!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-113151986748959680?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/113151986748959680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=113151986748959680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/113151986748959680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/113151986748959680'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/11/coming-soon-more-posts.html' title='Coming soon, more posts...'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-112374611116886569</id><published>2005-08-11T09:22:00.000+02:00</published><updated>2005-08-11T09:41:51.173+02:00</updated><title type='text'>Electric Resizer 1.0</title><content type='html'>&lt;p&gt;&lt;img src="http://www.skaug.net/files/resizer_medium.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Hey everyone! I'm back after a short break, holidays, real life, that kind of things. Let's launch August with ... a curiosity ...a bit pre-&lt;a href="http://flickr.com/"&gt;Flickr&lt;/a&gt;, but still a piece of Windows software.... &lt;i&gt;Electric Resizer&lt;/i&gt;. The Resizer does excactly what you think it does. It resizes pictures. Or to be more precise, it downsizes them. Define your maximum width and height, and it automagically scans the selected folder for pictures and outputs them in a web page friendly format. Could potentially save you hours of hard work. :)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Download the setup file here: &lt;a href="http://www.skaug.net/files/ResizerSetup.exe"&gt;ResizerSetup.exe&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;span style="font-size:70%;"&gt;&lt;a href="http://technorati.com/tag/image" rel="tag"&gt;image&lt;/a&gt; , &lt;a href="http://technorati.com/tag/utilities" rel="tag"&gt;utilities&lt;/a&gt; , &lt;a href="http://technorati.com/tag/windows" rel="tag"&gt;windows&lt;/a&gt; , &lt;a href="http://technorati.com/tag/software" rel="tag"&gt;software&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-112374611116886569?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/112374611116886569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=112374611116886569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112374611116886569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112374611116886569'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/08/electric-resizer-10.html' title='Electric Resizer 1.0'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-112230052916376793</id><published>2005-07-25T15:47:00.000+02:00</published><updated>2005-07-25T16:08:49.176+02:00</updated><title type='text'>User script: CibLines</title><content type='html'>Another day, another script.&lt;br /&gt;&lt;br /&gt;My first two user scripts/greasemonkey scripts I made were named AutoTOC and Bloglines HAI. So this time I thought I should be doing something that started with a C. So. My third script (and probably the third best one so far...):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CibLines&lt;/span&gt; ... aka &lt;span style="font-style: italic;"&gt;Comments in Bloglines&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.runeskaug.com/greasemonkey/ciblines-ss.gif" /&gt;&lt;br /&gt;&lt;br /&gt;The usual picture (1000 words).&lt;br /&gt;&lt;br /&gt;(Not very cleverly named, this one - either.) Anyway - CiBLines is a simple script that works like this: When you click the Comments link, it creates a small window (iframe) just below the "Comments" link in Bloglines, containing all comments to a post.&lt;br /&gt;&lt;br /&gt;The script only applies to blogs &lt;a href="http://blogs.law.harvard.edu/tech/rss#ltcommentsgtSubelementOfLtitemgt"&gt;where the RSS contains a comment link&lt;/a&gt;. Unlike my own Blogger blog. Shame on it.&lt;br /&gt;&lt;br /&gt;The usual disclaimers apply (it may not work at all, it may not work as you wish...).&lt;br /&gt;Please send me comments, suggestions etc. below - in the comments field.&lt;br /&gt;&lt;br /&gt;Download here: &lt;a href="http://www.runeskaug.com/greasemonkey/ciblines.user.js"&gt;http://runeskaug.com/greasemonkey/ciblines.user.js&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tags: &lt;a href="http://technorati.com/tag/greasemonkey" rel="tag"&gt;greasemonkey&lt;/a&gt;, &lt;a href="http://technorati.com/tag/user+scripts" rel="tag"&gt;user scripts&lt;/a&gt;, &lt;a href="http://technorati.com/tag/bloglines" rel="tag"&gt;bloglines&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-112230052916376793?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/112230052916376793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=112230052916376793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112230052916376793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112230052916376793'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/07/user-script-ciblines.html' title='User script: CibLines'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-112221683790577218</id><published>2005-07-24T16:47:00.000+02:00</published><updated>2005-07-24T16:53:57.926+02:00</updated><title type='text'>AutoTOC Bookmarklet</title><content type='html'>Thanks to an anonymous commenter, I decided to create a bookmarklet version of the AutoTOC script. Drag the following link to your linkbar, and press it when you want your TOC: &lt;a href="javascript:var fullTOCText = %22Table of Contents%22; var matchStr = /^h[1-6]$/i; var resetSelect = false; var addMenuItem = false; function f() { if (document.getElementsByTagName(%22html%22).length &amp;&amp; ( document.getElementsByTagName('h1').length || document.getElementsByTagName('h2').length || document.getElementsByTagName('h3').length || document.getElementsByTagName('h4').length || document.getElementsByTagName('h5').length || document.getElementsByTagName('h6').length )) { var aHs = getHTMLHeadings(); if (aHs.length%3E2) { addCSS( '#js-toc {position: fixed; left: 0; right: 0; top: auto; bottom: 0; height: 20px; width: 100%; vertical-align: middle; display: block; border-top: 1px solid #777; background: #ddd; margin: 0; padding: 3px; z-index: 9999; }\n'+ '#js-toc select { font: 8pt verdana, sans-serif; margin: 0; margin-left:5px; background-color: #fff; color: #000; float: left; padding: 0; vertical-align: middle;}\n'+ '#js-toc option { font: 8pt verdana, sans-serif; color: #000; }'); var toc = document.createElement(window.opera?'tocuserjselem':'div'); toc.id = 'js-toc'; tocSelect = document.createElement('select'); tocSelect.setAttribute(%22onchange%22,resetSelect?%22if(this.value){location.href='#'+this.value;this.selectedIndex=0;}%22:%22location.href='#'+this.value;%22); tocSelect.id = 'navbar-toc-select'; tocEmptyOption = document.createElement('option'); tocEmptyOption.setAttribute('value',''); tocEmptyOption.appendChild(document.createTextNode(fullTOCText)); tocSelect.appendChild(tocEmptyOption); toc.appendChild(tocSelect); document.body.style.paddingBottom = %2227px%22; document.body.appendChild(toc); for (var i=0,aH;aH=aHs[i];i++) { if (aH.offsetWidth) { op = document.createElement(%22option%22); op.appendChild(document.createTextNode(gs(aH.tagName)+getInnerText(aH).substring(0,100))); var refID = aH.id ? aH.id : aH.tagName+'-'+(i*1+1); op.setAttribute(%22value%22, refID); document.getElementById(%22navbar-toc-select%22).appendChild(op); aH.id = refID; } } } } }; function autoTOC_toggleDisplay() { if (document.getElementById('js-toc')) { if (document.getElementById('js-toc').style.display == 'none') { document.getElementById('js-toc').style.display = 'block'; } else { document.getElementById('js-toc').style.display = 'none'; }; } else { f(); } } function getHTMLHeadings() { function acceptNode(node) { if (node.tagName.match(matchStr)) { return NodeFilter.FILTER_ACCEPT; } return NodeFilter.FILTER_SKIP; } outArray = new Array(); if (document.createTreeWalker) { var treeWalker = document.createTreeWalker(document.documentElement, NodeFilter.SHOW_ELEMENT, acceptNode, true); if (treeWalker) { var node = treeWalker.nextNode(); while (node) { outArray.push(node); node = treeWalker.nextNode(); } } } else { var els = document.getElementsByTagName(%22*%22); var j = 0; for (var i=0,el;el=els[i];i++) { if (el.tagName.match(matchStr)) outArray[j++] = el; } } return outArray; } function addCSS(css) { var head, styleLink; head = document.getElementsByTagName('head')[0]; if (!head) { return; } styleLink = document.createElement('link'); styleLink.setAttribute('rel','stylesheet'); styleLink.setAttribute('type','text/css'); styleLink.setAttribute('href','data:text/css,'+escape(css)); head.appendChild(styleLink); } function gs(s){ s = s.toLowerCase(); var ret = %22%22; for (var i=1; i%3C(s.substring(1)*1);i++) { ret = ret + %22\u00a0 \u00a0 %22; } return ret; } function getInnerText(el) { var s=''; for (var i=0,node; node=el.childNodes[i]; i++) { if (node.nodeType == 1) s += getInnerText(node); else if (node.nodeType == 3) s += node.nodeValue; } return s; } f();"&gt;TOC it!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; (sorry, I only tested it for Firefox)&lt;br /&gt;&lt;br /&gt;Tags: &lt;a href="http://technorati.com/tag/javascript" rel="tag"&gt;javascript&lt;/a&gt;, &lt;a href="http://technorati.com/tag/bookmarklet" rel="tag"&gt;bookmarklet&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-112221683790577218?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/112221683790577218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=112221683790577218' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112221683790577218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112221683790577218'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/07/autotoc-bookmarklet.html' title='AutoTOC Bookmarklet'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-112125422240269971</id><published>2005-07-13T12:14:00.000+02:00</published><updated>2005-07-20T09:18:34.306+02:00</updated><title type='text'>AutoTOC 1.4</title><content type='html'>I just uploaded an updated version of the AutoTOC user script to my server (version 1.3). I have added a per-site, per-session cookie for the Hide behaviour, which means you don't have to hide the toc-bar more than once per site. This behaviour can easily be turned off by setting &lt;span style="font-style: italic;"&gt;useCookie&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;false&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The updated version can be downloaded or installed directly from here: &lt;a href="http://www.runeskaug.com/greasemonkey/autotoc.user.js"&gt;AutoTOC&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tags: &lt;a href="http://technorati.com/tag/greasemonkey" rel="tag"&gt;greasemonkey&lt;/a&gt;, &lt;a href="http://technorati.com/tag/user+scripts" rel="tag"&gt;user scripts&lt;/a&gt;, &lt;a href="http://technorati.com/tag/autotoc" rel="tag"&gt;autotoc&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Update 2005-07-20: Version 1.4. Disabled adding of menu item due to security restrictions in Greasemonkey. &lt;span style="font-style: italic;"&gt;It is very important that you all upgrade to the latest version of Greasemonkey&lt;/span&gt;. (read more @ &lt;a href="http://greaseblog.blogspot.com/2005/07/mandatory-greasemonkey-update.html"&gt;Greaseblog&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-112125422240269971?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/112125422240269971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=112125422240269971' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112125422240269971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112125422240269971'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/07/autotoc-14.html' title='AutoTOC 1.4'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-112056994707236039</id><published>2005-07-12T10:36:00.000+02:00</published><updated>2006-05-26T08:29:17.526+02:00</updated><title type='text'>User script: AutoTOC</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Update 2005-12-01&lt;/span&gt;: Version 1.6 has been released, which fixes a few bugs, adds FF1.5 compatibility etc. &lt;a href="http://electricdevelopment.blogspot.com/2005/11/new-release-autotoc-16.html"&gt;See separate post here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This user script (a.k.a. Greasemonkey script) creates a select box in the lower right corner of your screen (sort of a Start menu for your web page), containing quick-links to all headers (H1,H2,H3,H4) - an automagically created table of contents. It really helps navigating through long documents (with a certain amount of standard HTML tags), no matter how hard it used to be. Here, another 1000 words on the subject:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.runeskaug.com/greasemonkey/autotoc-ss.gif" /&gt;&lt;br /&gt;&lt;br /&gt;(hey - why didn't I think of that last year when I handed in those 3000-word essays ??)&lt;br /&gt;&lt;br /&gt;The script should be working nicely in &lt;a href="http://getfirefox.com/"&gt;Firefox&lt;/a&gt; (with &lt;a href="http://greasemonkey.mozdev.org/"&gt;Greasemonkey&lt;/a&gt; installed) and &lt;a href="http://www.opera.com/"&gt;Opera 8&lt;/a&gt;. For Firefox installation instructions, see previous post (except the part where you log into bloglines (c: ), for Opera installation instructions, see the &lt;a href="http://www.opera.com/support/tutorials/userjs/using/#writingscripts"&gt;official Opera User Script tutorial&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The script can be downloaded from here:&lt;br /&gt;&lt;a href="http://www.runeskaug.com/greasemonkey/autotoc.user.js"&gt;http://www.runeskaug.com/greasemonkey/autotoc.user.js&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update 2005-07-06: Made the script even more standards-friendly, thanks to the strict &lt;a href="http://userjs.org/"&gt;userjs.org&lt;/a&gt; moderators ;)&lt;br /&gt;&lt;br /&gt;Update 2005-07-11: Version 1.1. Improved the tag scanning algorithm, and added a "Hide TOC" button (thanks to &lt;a href="http://blog.monstuff.com/"&gt;Julien&lt;/a&gt; for the suggestion) - which can be turned off by using setting in the script.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Tags: &lt;a href="http://www.technorati.com/tag/user+scripts" rel="tag"&gt;user scripts&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/greasemonkey" rel="tag"&gt;greasemonkey&lt;/a&gt;, &lt;a href="http://technorati.com/tag/autotoc" rel="tag"&gt;autotoc&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="display: none;"&gt;&lt;a href="http://feedster.com/claimfeed.php?key=8f646e26384636693086a237f6cdf848"&gt;.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-112056994707236039?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/112056994707236039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=112056994707236039' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112056994707236039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112056994707236039'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/07/user-script-autotoc.html' title='User script: AutoTOC'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-112047566344435659</id><published>2005-07-04T13:13:00.000+02:00</published><updated>2006-09-23T12:15:14.016+02:00</updated><title type='text'>User script: Bloglines HAI (Hide Archived Items)</title><content type='html'>&lt;p&gt;Oy! I'm back with an updated version of the Bloglines HAI &lt;a href="http://greasemonkey.mozdev.org/"&gt;Greasemonkey&lt;/a&gt; script (a.k.a. user script). The script modifies your Bloglines experience, so that your archived (a.k.a. bookmarked) news items are hidden from view unless explicitly asked for...&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;img src="http://www.runeskaug.com/greasemonkey/habi-ss.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Installation instructions:&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Install &lt;a href="http://www.spreadfirefox.com/?q=affiliates&amp;id=14896&amp;amp;t=85"&gt;Firefox&lt;/a&gt;, if it isn't already installed.&lt;/li&gt;&lt;li&gt;Install &lt;a href="http://greasemonkey.mozdev.org/"&gt;the Greasemonkey extension&lt;/a&gt;, if it isn't already installed.&lt;/li&gt;&lt;li&gt;In Firefox, surf to &lt;a href="http://www.runeskaug.com/greasemonkey/bloglines-hai.user.js"&gt;http://www.runeskaug.com/greasemonkey/bloglines-hai.user.js&lt;/a&gt;&lt;/li&gt;&lt;li&gt;In Firefox, go Tools -&gt; Install User Script...&lt;/li&gt;&lt;li&gt;In Firefox, surf to &lt;a href="http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;If you have saved any items (By using the "Keep New" checkbox in the lower right corner of each item), they will be hidden by default. Show them by using the "... Archived" link as shown in the screenshot above.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Why you want it:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;   &lt;li&gt;Because you're always in a hurry - you like to save some interesting items for later. Problem is, these items will always show up under your articles (or even worse - &lt;span style="font-style: italic;"&gt;on top &lt;/span&gt;if you sort your items cronologically (as older articles tend to be ... older than the new ones... ;) - and slow down your reading.&lt;/li&gt;   &lt;li&gt;If you show new and updated articles for all your feeds (in my case - "51 Feeds" - that's the top folder in the left-hand navigation tree), you will see new items only, not all the old ones you archived for some reason.&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;You may also want it for other reasons, please let me know in the comments.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Update 2005-07-07: Fixed a couple of bugs when reading "all blogs", the previous version totalled all blogs and put the same numbers on all blog headers. Also, renamed the script from HABI to HAI. ;)&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Please leave a comment if you like the script - or have any suggestions - or if you hate it and want to give me money to stop making lame scripts ;)&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;Tags: &lt;a href="http://www.technorati.com/tag/user+scripts" rel="tag"&gt;user scripts&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/greasemonkey" rel="tag"&gt;greasemonkey&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/bloglines" rel="tag"&gt;bloglines&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-112047566344435659?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/112047566344435659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=112047566344435659' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112047566344435659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112047566344435659'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/07/user-script-bloglines-hai-hide.html' title='User script: Bloglines HAI (Hide Archived Items)'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14120944.post-112025704280670879</id><published>2005-07-02T09:24:00.000+02:00</published><updated>2006-08-11T09:57:33.516+02:00</updated><title type='text'>Starting off with a Greasemonkey script... Bloglines HABI!</title><content type='html'>Hey'all,&lt;br /&gt;&lt;br /&gt;I'll be coming back with more shortly, but for now ... the only content of this blog is a mention of my brand new &lt;a href="http://greasemonkey.mozdev.org/"&gt;Greasemonkey&lt;/a&gt; [read more there if you don't know what the heck I'm talking about...] script for &lt;a href="http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt;, which hides (and shows) your archived items (the ones you "Keep New"...)&lt;br /&gt;&lt;br /&gt;Install from here: &lt;a href="http://www.runeskaug.com/greasemonkey/bloglines-hai.user.js"&gt;Bloglines HABI: Hide Archived Bloglines Items&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please, add your suggestions at any time!&lt;br /&gt;&lt;br /&gt;Update: New post / version &lt;a href="http://electricdevelopment.blogspot.com/2005/07/user-script-bloglines-hai-hide.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14120944-112025704280670879?l=electricdevelopment.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electricdevelopment.blogspot.com/feeds/112025704280670879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14120944&amp;postID=112025704280670879' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112025704280670879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14120944/posts/default/112025704280670879'/><link rel='alternate' type='text/html' href='http://electricdevelopment.blogspot.com/2005/07/starting-off-with-greasemonkey-script.html' title='Starting off with a Greasemonkey script... Bloglines HABI!'/><author><name>Rune</name><uri>http://www.blogger.com/profile/03111373597736476912</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.runeskaug.no/files/t3_small.jpg'/></author><thr:total>1</thr:total></entry></feed>
