<?xml version="1.0" encoding="UTF-8"?>

<rss version='2.0' 
     xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
     xmlns:doap="http://usefulinc.com/ns/doap#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

    <channel>
        <!-- This XML Feed shows details for the page replacement 
             and everything recently tagged replacement -->
        <creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/
          </creativeCommons:license>
        <title>replacement on SWiK</title>
        <doap:name>replacement</doap:name>
        <doap:description></doap:description>
        <description></description> 
	  <!-- see doap:description for full description -->
        <link>http://swik.net/replacement</link>
        <doap:homepage></doap:homepage>
        
        <pubDate></pubDate>
        <lastBuildDate></lastBuildDate>
            
        <item>
            <title>D &amp; W Windows &amp; Sunrooms</title>
            <link>http://swik.net/User:window334/D+%26+W+Windows+%26+Sunrooms</link>
            <description>&lt;p&gt;D&amp;#38;W Windows, in business since 1955, is family owned and operated. Our success lies in our focus on fundamental values which include exceptional customer service, outstanding products.&lt;/p&gt;


	&lt;p&gt;http://profiles.smartlinksolutions.com/window&lt;/p&gt;
</description>
                        <category>replacement</category>
            <category>Windows</category>
            <category>vinyl</category>
            <category>windows,</category>
            <category>Sunrooms,</category>

            <pubDate>Thu, 28 Aug 2008 14:12:56 -0700</pubDate>
        </item>
            
        <item>
            <title>Clonezilla</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/Clonezilla/ccmsx</link>
            <description>Symantec Ghost, Firefox style.</description>
            
            <pubDate>Fri, 15 Aug 2008 22:05:05 -0700</pubDate>
        </item>
            
        <item>
            <title>ComboBoo - combobox with Mootools</title>
            <link>http://swik.net/mootools/del.icio.us%2Ftag%2Fmootools/ComboBoo+-+combobox+with+Mootools/cchjj</link>
            <description></description>
            
            <pubDate>Thu, 14 Aug 2008 09:05:51 -0700</pubDate>
        </item>
            
        <item>
            <title>FancyForm - Javascript checkbox replacement</title>
            <link>http://swik.net/mootools/del.icio.us%2Ftag%2Fmootools/FancyForm+-+Javascript+checkbox+replacement/cb1ij</link>
            <description>degrades gracefully on all older, non-supporting browsers.</description>
            
            <pubDate>Sat, 09 Aug 2008 09:11:31 -0700</pubDate>
        </item>
            
        <item>
            <title>Apple Hack - How to Replace the Cells in Your Apple Powerbook G3 Battery!</title>
            <link>http://swik.net/User:zedomax/Zedomax/Apple+Hack+-+How+to+Replace+the+Cells+in+Your+Apple+Powerbook+G3+Battery%21/cbiks</link>
            <description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-8395 aligncenter&quot; title=&quot;howto-powerbook-g3&quot; src=&quot;http://zedomax.com/blog/wp-content/uploads/2008/07/howto-powerbook-g3.jpg&quot; alt=&quot;Apple Hack - How to Replace the Cells in Your Apple Powerbook G3 Battery!&quot; width=&quot;500&quot; height=&quot;375&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a cool apple hack on &lt;a href=&quot;http://people.wallawalla.edu/~Rob.Frohne/Powerbook/Pismo/Battery/&quot;&gt;how to replace the cells in your Apple Powerbook G3&lt;/a&gt; if your batteries keep running out of time.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I decided to get new replacement cells from Battery Space instead of surplus cells at a slightly better price elsewhere.  There are nine 18650 Li Ion cells in each battery, so I ordered 18 of them at a cost of about $100 with solder tabs.  When they arrived, I carefully followed the instructions here to disassemble the first battery.  It looked identical to the one in the photos there as you can see below.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.makezine.com/archive/2008/07/replace_the_battery_cells.html&quot;&gt;via make&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Brought to you by: &lt;a href=&quot;http://zedomax.com/blog&quot;&gt;Zedomax.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/07/25/apple-hack-how-to-replace-the-cells-in-your-apple-powerbook-g3-battery/&quot;&gt;Apple Hack - How to Replace the Cells in Your Apple Powerbook G3 Battery!&lt;/a&gt;&lt;/p&gt;

	&lt;span style=&quot;display:none&quot;&gt;&lt;a href=&quot;http://zedomax.com/blog/category/apple/&quot; title=&quot;Apple&quot; rel=&quot;tag&quot;&gt;Apple&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/apple-powerbook-g3/&quot; title=&quot;apple powerbook g3&quot; rel=&quot;tag&quot;&gt;apple powerbook g3&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/ct/gadgets/batteries/&quot; title=&quot;Batteries&quot; rel=&quot;tag&quot;&gt;Batteries&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/batteries/&quot; title=&quot;Batteries&quot; rel=&quot;tag&quot;&gt;Batteries&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/computer/&quot; title=&quot;Computer&quot; rel=&quot;tag&quot;&gt;Computer&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/ct/&quot; title=&quot;Consumer&quot; rel=&quot;tag&quot;&gt;Consumer&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/cool/&quot; title=&quot;Cool&quot; rel=&quot;tag&quot;&gt;Cool&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/diy/&quot; title=&quot;DoItYourself!&quot; rel=&quot;tag&quot;&gt;DoItYourself!&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/educational/&quot; title=&quot;Educational&quot; rel=&quot;tag&quot;&gt;Educational&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/ct/gadgets/&quot; title=&quot;Gadgets&quot; rel=&quot;tag&quot;&gt;Gadgets&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/diy/hack/&quot; title=&quot;Hack&quot; rel=&quot;tag&quot;&gt;Hack&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/hack-on/&quot; title=&quot;hack on&quot; rel=&quot;tag&quot;&gt;hack on&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/diy/howto/&quot; title=&quot;HOWTO&quot; rel=&quot;tag&quot;&gt;HOWTO&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/computer/laptop/&quot; title=&quot;Laptop&quot; rel=&quot;tag&quot;&gt;Laptop&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/li-ion/&quot; title=&quot;li ion&quot; rel=&quot;tag&quot;&gt;li ion&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/photos/&quot; title=&quot;photos&quot; rel=&quot;tag&quot;&gt;photos&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/replacement-cells/&quot; title=&quot;replacement cells&quot; rel=&quot;tag&quot;&gt;replacement cells&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/running-out-of-time/&quot; title=&quot;running out of time&quot; rel=&quot;tag&quot;&gt;running out of time&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/tabs/&quot; title=&quot;tabs&quot; rel=&quot;tag&quot;&gt;tabs&lt;/a&gt;&lt;/span&gt;

	&lt;h3&gt;Related posts&lt;/h3&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/06/06/larry-and-sergey-and-the-google-party-jet-the-googleplane/&quot; title=&quot;Larry and Sergey AND The Google Party Jet - The Googleplane! (June 6, 2008)&quot;&gt;Larry and Sergey AND The Google Party Jet - The Googleplane!&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/05/18/diy-gmail-hack-how-to-make-a-physical-gmail-notifier/&quot; title=&quot;DIY Gmail HACK - How to Make a Physical Gmail Notifier! (May 18, 2008)&quot;&gt;DIY Gmail HACK - How to Make a Physical Gmail Notifier!&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/01/13/zinc-power-goes-commercial/&quot; title=&quot;Zinc power goes commercial (January 13, 2008)&quot;&gt;Zinc power goes commercial&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2007/05/23/zedomax-maker-faire-2007-coverage-electric-motorcycles/&quot; title=&quot;Zedomax Maker Faire 2007 Coverage - Electric Motorcycles (May 23, 2007)&quot;&gt;Zedomax Maker Faire 2007 Coverage - Electric Motorcycles&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2007/07/18/your-are-censored/&quot; title=&quot;Your are censored (July 18, 2007)&quot;&gt;Your are censored&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2006/10/02/venturi-astrolab-first-commercially-available-solar-hybrid/&quot; title=&quot;Venturi Astrolab First Commercially-Available Solar Hybrid (October 2, 2006)&quot;&gt;Venturi Astrolab: First Commercially-Available Solar Hybrid&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/05/06/use-cooliriss-piclens-firefox-plugin-to-browse-images-videos-like-an-iphone/&quot; title=&quot;Use Cooliris&amp;#8217;s PicLens Firefox Plugin to browse images, videos like an iPhone! (May 6, 2008)&quot;&gt;Use Cooliris&amp;#8217;s PicLens Firefox Plugin to browse images, videos like an iPhone!&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/02/15/usb-capsule-memory-key/&quot; title=&quot;USB Capsule memory key (February 15, 2008)&quot;&gt;USB Capsule memory key&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/~a/Zedomaxcom?a=JcVFcn&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~a/Zedomaxcom?i=JcVFcn&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=Zgy4jJ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=Zgy4jJ&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=LxGsgj&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=LxGsgj&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=K05ADj&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=K05ADj&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=0m2F5j&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=0m2F5j&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=yWHQrJ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=yWHQrJ&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=CCLc8J&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=CCLc8J&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=lHGTHJ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=lHGTHJ&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Fri, 25 Jul 2008 23:55:15 -0700</pubDate>
        </item>
            
        <item>
            <title>http://www.ticadvisors.com/</title>
            <link>http://swik.net/User:ticadvisor7/http%3A%2F%2Fwww.ticadvisors.com%2F</link>
            <description>&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;TIC&lt;/span&gt; Advisors is a 1031 exchange company specializing in 1031 exchanges into tenants in common replacement properties. It is our commitment to empower accredited investors with valuable information to educate and assist them with making informed 1031 exchange investment decisions.&lt;/p&gt;
</description>
                        <category>replacement</category>
            <category>1031</category>
            <category>investors</category>
            <category>Investment</category>
            <category>our</category>
            <category>making</category>
            <category>exchange</category>
            <category>information</category>
            <category>and</category>
            <category>decisions.</category>

            <pubDate>Wed, 23 Jul 2008 07:20:47 -0700</pubDate>
        </item>
            
        <item>
            <title>GNU Emacsマニュアル: 探索と置換</title>
            <link>http://swik.net/Emacs/del.icio.us+tag%2Femacs/GNU+Emacs%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%3A+%E6%8E%A2%E7%B4%A2%E3%81%A8%E7%BD%AE%E6%8F%9B/b9op7</link>
            <description>emacsの置換</description>
            
            <pubDate>Wed, 09 Jul 2008 02:48:11 -0700</pubDate>
        </item>
            
        <item>
            <title>CFModGuide &lt; Main &lt; TWiki</title>
            <link>http://swik.net/Rockbox/del.icio.us+tag%2Frockbox/CFModGuide+%3C+Main+%3C+TWiki/b8ztp</link>
            <description></description>
            
            <pubDate>Wed, 02 Jul 2008 06:47:46 -0700</pubDate>
        </item>
            
        <item>
            <title>CrossTeX</title>
            <link>http://swik.net/bibtex/del.icio.us%2Ftag%2Fbibtex/CrossTeX/b8b2k</link>
            <description></description>
            
            <pubDate>Wed, 25 Jun 2008 06:54:59 -0700</pubDate>
        </item>
            
        <item>
            <title>xbibtex</title>
            <link>http://swik.net/XML/del.icio.us%2Ftag%2Fxml/xbibtex/b8bsd</link>
            <description>Annotated link http://www.diigo.com/bookmark/http%3A%2F%2Fwww.ecn.wfu.edu%2F%7Ecottrell%2Fxbibtex</description>
            
            <pubDate>Wed, 25 Jun 2008 04:58:45 -0700</pubDate>
        </item>
            
        <item>
            <title>xbibtex</title>
            <link>http://swik.net/bibtex/del.icio.us%2Ftag%2Fbibtex/xbibtex/b8bmz</link>
            <description>Annotated link http://www.diigo.com/bookmark/http%3A%2F%2Fwww.ecn.wfu.edu%2F%7Ecottrell%2Fxbibtex</description>
            
            <pubDate>Wed, 25 Jun 2008 04:55:14 -0700</pubDate>
        </item>
            
        <item>
            <title>Die ist eine Testseite für custom Form Elements - Checkboxen und Radiobuttons selbst per CSS gestalten / Test custom Form Elements</title>
            <link>http://swik.net/mootools/del.icio.us%2Ftag%2Fmootools/Die+ist+eine+Testseite+f%C3%BCr+custom+Form+Elements+-+Checkboxen+und+Radiobuttons+selbst+per+CSS+gestalten+%2F+Test+custom+Form+Elements/b7yvy</link>
            <description></description>
            
            <pubDate>Fri, 20 Jun 2008 12:05:50 -0700</pubDate>
        </item>
            
        <item>
            <title>getmail version 4</title>
            <link>http://swik.net/fetchmail/del.icio.us%2Ftag%2Ffetchmail/getmail+version+4/b7mf7</link>
            <description></description>
            
            <pubDate>Mon, 16 Jun 2008 11:12:23 -0700</pubDate>
        </item>
            
        <item>
            <title>BiblioX</title>
            <link>http://swik.net/bibtex/del.icio.us%2Ftag%2Fbibtex/BiblioX/b7ma3</link>
            <description></description>
            
            <pubDate>Mon, 16 Jun 2008 09:22:34 -0700</pubDate>
        </item>
            
        <item>
            <title>Bibulus</title>
            <link>http://swik.net/bibtex/del.icio.us%2Ftag%2Fbibtex/Bibulus/b7lpi</link>
            <description></description>
            
            <pubDate>Mon, 16 Jun 2008 06:19:53 -0700</pubDate>
        </item>
            
        <item>
            <title>Household Essentials Hack - How to Refill a Disposable Brita Brand Water Filter!</title>
            <link>http://swik.net/User:zedomax/Zedomax/Household+Essentials+Hack+-+How+to+Refill+a+Disposable+Brita+Brand+Water+Filter%21/b6wiv</link>
            <description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-7111 aligncenter&quot; title=&quot;brita-refill&quot; src=&quot;http://zedomax.com/blog/wp-content/uploads/2008/06/brita-refill.jpg&quot; alt=&quot;Household Essentials Hack - How to Refill a Disposable Brita Brand Water Filter!&quot; width=&quot;500&quot; height=&quot;375&quot;/&gt;&lt;/p&gt;
&lt;p&gt;I am guilty of spending about $20 every month for a Brita water-filter but here&amp;#8217;s a cool hack that shows you that all you gotta do is replace the carbon crap inside it.&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-7110&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Why buy a replacement filter for $6 to $10 (or more) when you can refill your old filter cartridge housing for about 50 cents?!&lt;/p&gt;
&lt;p&gt;Refilling is quick, easy and economical. If you can refill a salt shaker, then you should be able to refill a Brita, PuR, or other brand water pitcher cartridges. All that you will need is an old cartridge, some activated carbon, a polyethylene plug, a sharp utility knife or Xacto knife. A 1/2&amp;#8243; drill motor and 1/2&amp;#8243; drill bit are optional, but can aid in rounding out the hole.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://www.hackszine.com/blog/archive/2008/06/turn_a_brita_filter_into_a_reu.html&quot;&gt;via hackszine&lt;/a&gt; - &lt;a href=&quot;http://www.instructables.com/id/How-to-refill-a-disposable-Brita-brand-water-pit/&quot;&gt;instructables&lt;/a&gt;&lt;/p&gt;

	&lt;span style=&quot;display:none&quot;&gt;&lt;a href=&quot;http://zedomax.com/blog/tag/50-cents/&quot; title=&quot;50 cents&quot; rel=&quot;tag&quot;&gt;50 cents&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/activated-carbon/&quot; title=&quot;activated carbon&quot; rel=&quot;tag&quot;&gt;activated carbon&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/brita-water-filter/&quot; title=&quot;brita water filter&quot; rel=&quot;tag&quot;&gt;brita water filter&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/ct/&quot; title=&quot;Consumer&quot; rel=&quot;tag&quot;&gt;Consumer&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/cool/&quot; title=&quot;Cool&quot; rel=&quot;tag&quot;&gt;Cool&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/cool-hack/&quot; title=&quot;cool hack&quot; rel=&quot;tag&quot;&gt;cool hack&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/crap/&quot; title=&quot;crap&quot; rel=&quot;tag&quot;&gt;crap&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/diy/&quot; title=&quot;DoItYourself!&quot; rel=&quot;tag&quot;&gt;DoItYourself!&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/drill-bit/&quot; title=&quot;drill bit&quot; rel=&quot;tag&quot;&gt;drill bit&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/educational/&quot; title=&quot;Educational&quot; rel=&quot;tag&quot;&gt;Educational&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/filter-cartridge/&quot; title=&quot;filter cartridge&quot; rel=&quot;tag&quot;&gt;filter cartridge&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/diy/hack/&quot; title=&quot;Hack&quot; rel=&quot;tag&quot;&gt;Hack&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/household-essentials/&quot; title=&quot;household essentials&quot; rel=&quot;tag&quot;&gt;household essentials&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/diy/howto/&quot; title=&quot;HOWTO&quot; rel=&quot;tag&quot;&gt;HOWTO&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/polyethylene/&quot; title=&quot;polyethylene&quot; rel=&quot;tag&quot;&gt;polyethylene&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/replacement-filter/&quot; title=&quot;replacement filter&quot; rel=&quot;tag&quot;&gt;replacement filter&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/salt-shaker/&quot; title=&quot;salt shaker&quot; rel=&quot;tag&quot;&gt;salt shaker&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/utility-knife/&quot; title=&quot;utility knife&quot; rel=&quot;tag&quot;&gt;utility knife&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/earth/water-earth/&quot; title=&quot;Water&quot; rel=&quot;tag&quot;&gt;Water&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/water-pitcher/&quot; title=&quot;water pitcher&quot; rel=&quot;tag&quot;&gt;water pitcher&lt;/a&gt;&lt;/span&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=fjV8UI&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=fjV8UI&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=8hkfDi&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=8hkfDi&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=BcxAQi&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=BcxAQi&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=zv77qi&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=zv77qi&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=mH1HAI&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=mH1HAI&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=6vudWI&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=6vudWI&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=K7cG9I&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=K7cG9I&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Sun, 08 Jun 2008 11:02:40 -0700</pubDate>
        </item>
            
        <item>
            <title>Aaron Gadberry &quot; Blog Archive &quot; Inject Build Time (timestamp) Property Using Maven</title>
            <link>http://swik.net/Maven/del.icio.us%2Ftag%2Fmaven/Aaron+Gadberry+%22+Blog+Archive+%22+Inject+Build+Time+%28timestamp%29+Property+Using+Maven/b6re4</link>
            <description></description>
            
            <pubDate>Fri, 06 Jun 2008 02:54:50 -0700</pubDate>
        </item>
            
        <item>
            <title>Seashore - About</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/Seashore+-+About/b6g77</link>
            <description></description>
            
            <pubDate>Mon, 02 Jun 2008 21:41:51 -0700</pubDate>
        </item>
            
        <item>
            <title>Rockbox - Open Source Jukebox Firmware</title>
            <link>http://swik.net/Rockbox/del.icio.us+tag%2Frockbox/Rockbox+-+Open+Source+Jukebox+Firmware/b6gpl</link>
            <description></description>
            
            <pubDate>Mon, 02 Jun 2008 18:19:12 -0700</pubDate>
        </item>
            
        <item>
            <title>Rockbox - Open Source Jukebox Firmware</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/Rockbox+-+Open+Source+Jukebox+Firmware/b5h6y</link>
            <description></description>
            
            <pubDate>Tue, 20 May 2008 10:16:25 -0700</pubDate>
        </item>
            
        <item>
            <title>Yamaha Ns10 Clones But Better Maybe</title>
            <link>http://swik.net/podcast/Pro+Audio+Matrix/Yamaha+Ns10+Clones+But+Better+Maybe/b4paz</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://www.yamahaproaudio.com/products/speakers/hs_series/index.html&quot;&gt;&lt;img style=&quot;float:left;padding:5px;&quot; src=&quot;http://proaudiomatrix.com/wp-content/plugins/hot-linked-image-cacher/upload/proaudio.com/products/speakers/hs_series/img/index_ph_ci_01.jpg&quot; alt=&quot;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Im taking that quote from the review that &amp;#8220;if It sounds good on these they sound good on every thing.&lt;/p&gt;
&lt;p&gt;The new HS series reference monitors have been created by Yamaha&amp;#8217;s studio monitor engineering team to deliver exceptionally flat, accurate response that you can trust. Unlike &amp;#8220;monitor&amp;#8221; speakers with exaggerated bass and treble that make a good first impression but can&amp;#8217;t be relied on for accuracy, the HS series were designed to be true studio reference monitors in the tradition of the legendary Yamaha NS10M.&lt;br/&gt;
&lt;a href=&quot;http://www.yamahaproaudio.com/products/speakers/hs_series/index.html&quot;&gt;HS50M, HS80M, HS10W | Speakers | Products | Yamaha Pro Audio&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;aizatto_related_posts&quot;&gt;&lt;span class=&quot;aizatto_related_posts_header&quot;&gt;Related Posts&lt;/span&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/~a/ProAudioMatrix?a=PASma8&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~a/ProAudioMatrix?i=PASma8&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?a=7Ck8uG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?i=7Ck8uG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?a=RmvAcG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?i=RmvAcG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?a=HfDfeg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?i=HfDfeg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?a=x0PQKg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?i=x0PQKg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?a=Ae3vhg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?i=Ae3vhg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?a=gEfRxG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?i=gEfRxG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?a=wKT7Og&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?i=wKT7Og&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?a=IdhDhg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ProAudioMatrix?i=IdhDhg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/ProAudioMatrix/~4/279644849&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
            
            <pubDate>Mon, 28 Apr 2008 15:16:50 -0700</pubDate>
        </item>
            
        <item>
            <title>The case for a parser replacement</title>
            <link>http://swik.net/MySQL/Planet+MySQL/The+case+for+a+parser+replacement/b4oef</link>
            <description>&lt;p&gt;Following up on the last post, I want to give my rationale behind why I think it would be beneficial to produce a replacement for MySQL&#039;s recognizer.&lt;/p&gt;

&lt;p&gt;Beware, this post has gotten much longer than I intended...&lt;/p&gt;

&lt;p&gt;Let me address the common objections first.&lt;/p&gt;&lt;h2&gt;Common objections&lt;/h2&gt;

&lt;h3&gt;But, we have an implementation already&lt;/h3&gt;

&lt;p&gt;Yes, but it is based on YACC and a handwritten lexer and we are thus constrained to C/C++ leaving out many interesting applications.&lt;/p&gt;

&lt;p&gt;Although there are YACC implementations for languages other than C/C++, they are different products, with different authors, different codebases and different behavior. Also it&#039;s hard to add a new target language because essentially you have to rewrite YACC for that language, thus porting the whole parser generator and not only the code generator. An error prone and tedious exercise.&lt;/p&gt;

&lt;p&gt;The lexer on the other hand must be rewritten completely for each new target language, simply because it&#039;s not generated code at all.&lt;/p&gt;

&lt;h3&gt;Most languages can bind to C/C++ code&lt;/h3&gt;

&lt;p&gt;Also true, but the point to consider is that ripping out the lexer and parser implementations to use them independently from &lt;code&gt;mysqld&lt;/code&gt; is hard. Both of them are closely tied to the server code and contain many many actions that rely on surrounding infrastructure.&lt;/p&gt;

&lt;p&gt;Aside: I&#039;m told the Workbench Team has done something like this, to avoid having to rewrite the recognizer. Given their goal (produce a developer tool and actually ship it - hooray, btw :)) that was a smart move. My goals are different and I&#039;m not constrained by deadlines regarding this long-term project.&lt;/p&gt;

&lt;p&gt;One other point is that sometimes it&#039;s not trivial or desired to use C/C++ code in projects. A native language implementation has its advantages, for example debugger support.&lt;/p&gt;

&lt;h3&gt;A new implementation brings new bugs&lt;/h3&gt;

&lt;p&gt;Of course it will. But the existing implementation contains bugs, too. By concentrating on the actual language grammar (not its implementation!) and going through the steps to create a new grammar we will find bugs in the existing implementation and that will help everyone. This is not a theoretical advantage, because I have found a bug that leads to a server crash, by writing and testing a new grammar. Taking the step back and thinking about how the language is supposed to work helps to uncover flaws. Parser bugs can become glaringly obvious this way.&lt;/p&gt;

&lt;p&gt;Having two implementations helps with squishing bugs in both implementations, however. Taking a lot of queries and running them through both will help discovering bugs and thus makes both of them more robust.&lt;/p&gt;

&lt;h3&gt;It adds no value to MySQL (= no new feature)&lt;/h3&gt;

&lt;p&gt;I disagree wholeheartedly. The current state of the parser subsystem is bad. Almost no one really understands what&#039;s going on in there, there&#039;s no clear separation of code, and it&#039;s virtually impossible to create a plugin interface for parsers.&lt;/p&gt;

&lt;p&gt;The latter stems from the fact that the parser does a lot more than just parsing. It sets all kinds of hints for later subsystems, there&#039;s no clear API for building trees that are used to drive the query execution and it&#039;s all being done inline. In short, a tangled mess.&lt;/p&gt;

&lt;p&gt;Cleaning that code up will add immense value to MySQL because then it will be possible to support different dialects of SQL or even completely different query languages (as long as it&#039;s possible to map them to something that makes sense for the rest of the relational model in MySQL).&lt;/p&gt;

&lt;p&gt;I think it is vitally important for MySQL to move to a pluggable architecture all the way through the server. Just look at how much good the Storage Engine concept has done for MySQL. Let&#039;s extend that to other parts and make the code more accessible to the community developers. (At the same time our own developers will have a better time, too :))&lt;/p&gt;

&lt;h3&gt;LL-parsing is for dummies&lt;/h3&gt;

&lt;p&gt;Many people I have spoken with about my proposal take offense at the LL-parsing algorithm ANTLR uses. The general reason given was that LALR(1) parsing is so much more efficient. I do not think that ANTLR with its LL(*) algorithm has to hide itself in terms of efficiency but only real benchmarking can tell how big the impact really is. I&#039;m inclined to think that it actually is negligible and that the clarity of implementation and gain of productivity, as well as the new possibilities that come with the use of ANTLR, negate those concerns.&lt;/p&gt;

&lt;h2&gt;New possibilities&lt;/h2&gt;

&lt;p&gt;As mentioned above, having a pluggable parser architecture with ANTLR would make it possible to&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;test the parser(s) in isolation, finally making unit tests possible for that subsystem
&lt;ul&gt;
&lt;li&gt;Does anyone doubt that this is a good thing?&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;implement different query languages or dialects for use with MySQL, without having to go through some sort of middleware to provide that.
&lt;ul&gt;
&lt;li&gt;I know people wanted to explore MDX support in MySQL, which is a huge task given the current codebase.&lt;/li&gt;
&lt;li&gt;Even dynamically changing parsers within one connection is a possibility.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;enable stuff like query tree rewriting at the grammar level.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basing a new parser implementation on an actively developed tool has the benefit that we would gain new functionality basically for free. For example ANTLR will soon support combining existing grammars using composition, making it easy to reuse and modify existing grammars just be specifying the differing rules. An ideal solution for dialects of one language - and dialects SQL has...&lt;/p&gt;

&lt;p&gt;A point I briefly mentioned above is ANTLR&#039;s capability to generate code for a variety of different target languages, without even changing a single line of code. There&#039;s simply no lock-in into a single language like YACC or handwritten solutions pose (actions of course have to be written in the respective target languages, but usually that can be factored out into an API). This is a good thing, IMHO, because it would enable heavy reuse of the &quot;official&quot; grammars. Incidentally that&#039;s one major point that comes up as an objection: &quot;Please use the official grammar MySQL uses internally, so it&#039;s compatible.&quot; With this solution it basically comes for free!&lt;/p&gt;

&lt;p&gt;Wouldn&#039;t it be awesome when people can just take the grammar file, generate code from it, and use the result in their application? How much easier would it be to make IDEs that &quot;know&quot; about MySQL syntax? Syntax highlighting wouldn&#039;t be hard to do anymore. Even query rewriting (and thus support for sharding, parallel queries, backwards compatibility with old schemas, analyzing column or table usage) would be made a lot easier - and there are not regexes involved at all :)&lt;/p&gt;

&lt;p&gt;In short: Having easy access to the syntax tree in a language agnostic way would enabled all sorts of interesting applications &lt;em&gt;outside&lt;/em&gt; the MySQL server, which I think would be a good thing for the community.&lt;/p&gt;

&lt;p&gt;Here&#039;s an interesting thought: You could even use a tree building parser and a subsequent phase to check for SQL injections and even filter them out on the fly. Not that you should have SQL injections in the first place, but it&#039;s an interesting application.&lt;/p&gt;

&lt;p&gt;Not to mention how cool it would be to simply tell the MySQL server &quot;The following query is actually using Oracle 8 syntax, please just use the parser for that.&quot; :P&lt;/p&gt;</description>
            
            <pubDate>Sun, 27 Apr 2008 06:21:59 -0700</pubDate>
        </item>
            
        <item>
            <title>Radius Intelligent Replaceable Head - Soft, 6 pieces</title>
            <link>http://swik.net/RADIUS/del.icio.us%2Ftag%2Fradius/Radius+Intelligent+Replaceable+Head+-+Soft%2C+6+pieces/b4hvm</link>
            <description></description>
            
            <pubDate>Mon, 21 Apr 2008 08:19:19 -0700</pubDate>
        </item>
            
        <item>
            <title>Replacement Clock for &gt;OSX-Leopard</title>
            <link>http://swik.net/License:GPL/del.icio.us+tag%2Fgpl/Replacement+Clock+for+%3EOSX-Leopard/b2h6k</link>
            <description></description>
            
            <pubDate>Tue, 05 Feb 2008 00:38:28 -0800</pubDate>
        </item>
            
        <item>
            <title>Zimbra - Community</title>
            <link>http://swik.net/Zimbra/del.icio.us+tag%2Fzimbra/Zimbra+-+Community/b1xro</link>
            <description></description>
            
            <pubDate>Thu, 31 Jan 2008 13:09:35 -0800</pubDate>
        </item>
            
        <item>
            <title>SourceForge.net: Supercopier</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/SourceForge.net%3A+Supercopier/byzlw</link>
            <description></description>
            
            <pubDate>Sat, 29 Dec 2007 18:00:56 -0800</pubDate>
        </item>
            
        <item>
            <title>Songbirdnest.com | Songbird Media Player</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/Songbirdnest.com+%7C+Songbird+Media+Player/bu82g</link>
            <description></description>
            
            <pubDate>Sat, 24 Nov 2007 17:30:29 -0800</pubDate>
        </item>
            
        <item>
            <title>FancyForm - Javascript checkbox replacement</title>
            <link>http://swik.net/mootools/del.icio.us%2Ftag%2Fmootools/FancyForm+-+Javascript+checkbox+replacement/bukuw</link>
            <description></description>
            
            <pubDate>Mon, 19 Nov 2007 07:44:21 -0800</pubDate>
        </item>
            
        <item>
            <title>OO Database</title>
            <link>http://swik.net/Hibernate/del.icio.us+tag%2Fhibernate/OO+Database/bq4fc</link>
            <description></description>
            
            <pubDate>Tue, 23 Oct 2007 08:41:08 -0700</pubDate>
        </item>
            
        <item>
            <title>Jean-Francois Arcand&#039;s Blog: Grizzly: An HTTP Listener Using Java Technology NIO</title>
            <link>http://swik.net/GlassFish/del.icio.us%2Ftag%2Fglassfish/Jean-Francois+Arcand%27s+Blog%3A+Grizzly%3A+An+HTTP+Listener+Using+Java+Technology+NIO/bqux0</link>
            <description></description>
            
            <pubDate>Fri, 19 Oct 2007 08:33:01 -0700</pubDate>
        </item>
                </channel>
</rss>
