<?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-3053637267389201020</id><updated>2012-02-16T04:02:16.798-08:00</updated><title type='text'>toxic thoughts blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-5229992970575785012</id><published>2011-09-15T22:41:00.000-07:00</published><updated>2011-09-15T22:44:00.498-07:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-WrDlFk7G7rg/TnLiB_RlI5I/AAAAAAAABnE/38h0mhIyqJY/s1600/http___www.math.colostate.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/-WrDlFk7G7rg/TnLiB_RlI5I/AAAAAAAABnE/38h0mhIyqJY/s400/http___www.math.colostate.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5652829006096311186" /&gt;&lt;/a&gt;&lt;br /&gt;chaotic pendulum&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-5229992970575785012?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/5229992970575785012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2011/09/chaotic-pendulum.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5229992970575785012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5229992970575785012'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2011/09/chaotic-pendulum.html' title=''/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-WrDlFk7G7rg/TnLiB_RlI5I/AAAAAAAABnE/38h0mhIyqJY/s72-c/http___www.math.colostate.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-4677625411305538480</id><published>2011-08-16T15:27:00.001-07:00</published><updated>2011-08-16T15:39:15.899-07:00</updated><title type='text'>way to go blogger</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-0wA0n_2Ty6c/Tkru-ALK_FI/AAAAAAAABmc/EB6iIz8Yngg/s1600/blogger.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://3.bp.blogspot.com/-0wA0n_2Ty6c/Tkru-ALK_FI/AAAAAAAABmc/EB6iIz8Yngg/s400/blogger.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5641584232201124946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-4677625411305538480?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/4677625411305538480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2011/08/way-to-go-blogger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4677625411305538480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4677625411305538480'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2011/08/way-to-go-blogger.html' title='way to go blogger'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-0wA0n_2Ty6c/Tkru-ALK_FI/AAAAAAAABmc/EB6iIz8Yngg/s72-c/blogger.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-2803172396166613598</id><published>2011-03-12T19:11:00.000-08:00</published><updated>2011-04-04T18:03:59.138-07:00</updated><title type='text'>glitchdrone</title><content type='html'>&lt;iframe src="http://player.vimeo.com/video/20190132" width="640" height="480" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;experiment with raw video codecs and synth track&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-2803172396166613598?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/2803172396166613598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2011/03/new-video-glitchdrone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/2803172396166613598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/2803172396166613598'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2011/03/new-video-glitchdrone.html' title='glitchdrone'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-6358266945398775686</id><published>2010-06-13T03:53:00.000-07:00</published><updated>2010-06-13T21:44:35.913-07:00</updated><title type='text'>prefast code analyze</title><content type='html'>Visual C++ has a static code analyzer called PREfast that ist now ditributes in the new-ish Windows SDK v6.1. PREfast analyze used to be distributed in the DDK, and it used in part by the Microsoft Secure Development Lifecycle (SDL). The analysis basically catches stuff you forget when you're dealing with a lot of code&lt;br /&gt;&lt;br /&gt;- Checking for NULL pointers or parameters in your functions&lt;br /&gt;- Out of bounds indexing or buffer overflows for example in array indexes in 'for' loops&lt;br /&gt;- Local variable scope masking other scopes&lt;br /&gt;&lt;br /&gt;To make code analyze work with visual studio, for example VS2005, I set up this batch file&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px solid; line-height: 14px; padding: 5px; overflow: auto; width: 150%;"&gt;&lt;code&gt;; devenv-prefast.bat&lt;br /&gt;call "C:\Program Files\Windows SDK\v6.1\vcvars32.bat"&lt;br /&gt;start "C:\Program Files\Microsoft Visual Studio 8.0\VC\Common7\IDE\devenv.exe" /UseEnv&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This uses the PATH, INCLUDES, and LIBS from vcvars32.bat, and uses them in the Visual Studio environment. Then, you add /analyze to the Project -&gt; C/C++ Command line options and it does the static code analysis&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-6358266945398775686?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/6358266945398775686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2010/06/prefast-code-analyze.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/6358266945398775686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/6358266945398775686'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2010/06/prefast-code-analyze.html' title='prefast code analyze'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-8574349323436390484</id><published>2010-04-17T19:59:00.000-07:00</published><updated>2010-04-19T20:17:18.633-07:00</updated><title type='text'>dotfiles</title><content type='html'>Everyone knows linux stuff is totally customizable -- but what I figured out was that a lot of the configuration options are in hidden 'dotfiles'! I wanted to give cygwin a dark theme, so here's the most basic dark theme for vim and xterm&lt;br /&gt;&lt;br /&gt;vim using .vimrc &lt;br /&gt;&lt;br /&gt;&lt;p style="border: 1px solid; padding: 5px; overflow: auto; background-color: rgb(238, 238, 238);"&gt; " Example .vimrc here &lt;a href="http://www.vi-improved.org/vimrc.php"&gt;http://www.vi-improved.org/vimrc.php&lt;/a&gt;&lt;br /&gt; " Vim colorschemes generator &lt;a href="http://inspiration.sweyla.com/code/"&gt;http://inspiration.sweyla.com/code/&lt;/a&gt;&lt;br /&gt; " {&lt;br /&gt;     set background=dark " we plan to use a dark background&lt;br /&gt;     colorscheme inspiration907827&lt;br /&gt;     syntax on " syntax highlighting on&lt;br /&gt; " }&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6i3bDi-dZN4/S80bT3pXq7I/AAAAAAAABfw/iLhBGp7_UIM/s1600/gvim.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 361px;" src="http://2.bp.blogspot.com/_6i3bDi-dZN4/S80bT3pXq7I/AAAAAAAABfw/iLhBGp7_UIM/s400/gvim.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5462051951239211954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;xterm using .Xdefaults&lt;br /&gt;&lt;br /&gt;&lt;p style="border: 1px solid; padding: 5px; overflow: auto; background-color: rgb(238, 238, 238);"&gt;XTerm*Background: black&lt;br /&gt;XTerm*Foreground: grey&lt;br /&gt;XTerm*utf8: 1&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6i3bDi-dZN4/S80bBVRtk9I/AAAAAAAABfo/-s2zbHhA-yE/s1600/xterm.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 305px;" src="http://2.bp.blogspot.com/_6i3bDi-dZN4/S80bBVRtk9I/AAAAAAAABfo/-s2zbHhA-yE/s400/xterm.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5462051632775533522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- check out &lt;a href="http://dotfiles.org/"&gt;http://dotfiles.org/&lt;/a&gt; for more of this stuff&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-8574349323436390484?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/8574349323436390484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2010/04/dotfiles.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/8574349323436390484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/8574349323436390484'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2010/04/dotfiles.html' title='dotfiles'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6i3bDi-dZN4/S80bT3pXq7I/AAAAAAAABfw/iLhBGp7_UIM/s72-c/gvim.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-5920545820793306967</id><published>2010-02-20T06:38:00.000-08:00</published><updated>2010-03-22T01:30:25.093-07:00</updated><title type='text'>opengl post processing</title><content type='html'>I figured out how to use OpenGL for post processing ... finally -- sort of used it as an excuse for valentines day to make something that would run on a Mac&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6i3bDi-dZN4/S6cqIcvbcrI/AAAAAAAABcM/O2MGrxIq9KY/s1600-h/xt.JPG"&gt;&lt;img style="cursor: pointer; width: 388px; height: 394px;" src="http://2.bp.blogspot.com/_6i3bDi-dZN4/S6cqIcvbcrI/AAAAAAAABcM/O2MGrxIq9KY/s400/xt.JPG" alt="" id="BLOGGER_PHOTO_ID_5451372198597718706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Uses this pixel shader to make the big pixel convolution - http://www.lighthouse3d.com/opengl/ledshader/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-5920545820793306967?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/5920545820793306967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2010/02/opengl-post-processing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5920545820793306967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5920545820793306967'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2010/02/opengl-post-processing.html' title='opengl post processing'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6i3bDi-dZN4/S6cqIcvbcrI/AAAAAAAABcM/O2MGrxIq9KY/s72-c/xt.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-1981393003723494897</id><published>2010-01-18T22:44:00.001-08:00</published><updated>2010-04-19T20:26:54.049-07:00</updated><title type='text'>wtl for the poor</title><content type='html'>I've always liked WTL. I learned programming by exploring Windows programming and C++ -- For me, just using the "Win32 API" was a good exercise (was it really though?). As I got better, I was constantly using C++ in weird ways, but when WTL came out, I knew that that it was actually good C++ for the Windows programming&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/S67O6t65ApI/AAAAAAAABcU/rNOSWsuk3fY/s1600/blergh.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 192px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/S67O6t65ApI/AAAAAAAABcU/rNOSWsuk3fY/s400/blergh.JPG" alt="" id="BLOGGER_PHOTO_ID_5453523706946585234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;WTL project circa 2006 - &lt;a href="http://zxcvbn.googlecode.com/svn/trunk/wtltrip/"&gt;http://zxcvbn.googlecode.com/svn/trunk/wtltrip/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recently though, Microsoft made WTL not so free, by taking rid of the MFC/ATL in the "Platform SDK" (which is now called the "Microsoft SDK").&lt;br /&gt;&lt;br /&gt;The SDK does not have ATL base classes anymore, and it does not come with the Visual Studio Express Editions either. Free open source web browser Google Chrome uses WTL on Windows, and has some &lt;a href="http://cotsog.wordpress.com/2009/11/08/how-to-compile-google-chrome-with-visual-c-2008-express-edition/"&gt;extensive workarounds for the issues&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I found that I could get the ATL base classes if I register with MSDN and &lt;a href="http://www.microsoft.com/whdc/DevTools/WDK/WDKpkg.mspx"&gt;download the WDK here&lt;/a&gt; ...wait what? the device driver development kit? Microsoft acknowledges this in the WDK release notes : &lt;a href="http://www.microsoft.com/whdc/devtools/wdk/RelNotesW7.mspx"&gt;Windows Driver Kit (WDK) Version 7.0.0 Release Notes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="border: 1px solid; padding: 5px; overflow: auto; background-color: rgb(238, 238, 238);"&gt;[August 2009] ATL Best Practice - Use the Visual Studio release&lt;br /&gt;&lt;br /&gt;ATL is included in the WDK as a convenience for driver developers who need to create Windows applets for their drivers. ATL should not be used for software development beyond this scope. The ATL that is available through Visual Studio provides a more complete and current set of libraries and should be used for development of software and web applications. Visual C++ Express Edition is available for free from MSDN.&lt;/p&gt;&lt;br /&gt;So there aren't any good free sources for the MFC/ATL base, so the WTL is no longer a free software platform like it should be.&lt;br /&gt;&lt;br /&gt;sources:&lt;a href="http://www.caloni.com.br/blog/archives/como-usar-wtl-com-o-atl-do-ddk"&gt;&lt;br /&gt;http://www.caloni.com.br/blog/archives/como-usar-wtl-com-o-atl-do-ddk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-1981393003723494897?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/1981393003723494897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2010/01/foobar2000-development-for-poor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1981393003723494897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1981393003723494897'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2010/01/foobar2000-development-for-poor.html' title='wtl for the poor'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6i3bDi-dZN4/S67O6t65ApI/AAAAAAAABcU/rNOSWsuk3fY/s72-c/blergh.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-7521848033346015643</id><published>2009-12-27T18:48:00.000-08:00</published><updated>2010-03-27T22:15:08.697-07:00</updated><title type='text'>last.fm 2009</title><content type='html'>Last.fm has a cool API that let's you gewt almost any sort of data from them just using a web request in XML or JSON format. During their countdown for the top artists of 2009 they encouraged people to use the API, and I used the Last.fm API to show how many plays you scrobbled from each artist in the top 40.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zxcvbn.t35.com/lastfm-2009.html"&gt;http://zxcvbn.t35.com/lastfm-2009.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Uses Last.fm API to get JSON data for number of songs listened to&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Dynamic page effect using JavaScript to organize page elements&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Uses &lt;a href="http://github.com/fxb/javascript-last.fm-api"&gt;last.fm javascript client API&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The program is pretty simple, it uses the Library.getTracks API method to retrieve your listening data. I create a last.fm object. you need an 'API key' and 'API secret', which you 'apply' for on their API page &lt;a href="http://www.last.fm/api"&gt;http://www.last.fm/api&lt;/a&gt;. Then, you can call any of the methods of the API you like&lt;br /&gt;&lt;br /&gt;Using my program as an example&lt;br /&gt;&lt;pre style="border: 1px solid; padding: 5px; overflow: auto; background-color: rgb(238, 238, 238); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; width: 150%;"&gt;&lt;code&gt;/* Create last.fm object */&lt;br /&gt;var lastfm = new LastFM(&lt;br /&gt;{&lt;br /&gt;apiKey: 'Apply for key at http://www.last.fm/api',&lt;br /&gt;apiSecret: 'Apply for API code at http://www.last.fm/api',&lt;br /&gt;cache: cache&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;/* Success function parses JSON data. note: stringify JSON data before parsing */&lt;br /&gt;function success(json_data) {&lt;br /&gt;var json_string = JSON.stringify(json_data);&lt;br /&gt;var json_parse = JSON.parse(json_string);&lt;br /&gt;var tracks = json_parse.tracks;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* Failure function parses error codes */&lt;br /&gt;function failure(code, message) {&lt;br /&gt;alert(code + ': ' + message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* Call the api function with JSON format API parameters */&lt;br /&gt;lastfm.library.getTracks({ user: "LastFM Username", artist: "Britney Spears" },&lt;br /&gt;success_function_callback, failure_function_callback);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;I made it so you can find out how many songs you've listened to by any artist you type in. It's not very easy to find out if the artist isn't in your top charts&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zxcvbn.t35.com/lastfm-2009.html"&gt;http://zxcvbn.t35.com/lastfm-2009.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-7521848033346015643?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/7521848033346015643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2010/01/lastfm-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7521848033346015643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7521848033346015643'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2010/01/lastfm-2009.html' title='last.fm 2009'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-8559625809534672385</id><published>2009-12-15T15:27:00.000-08:00</published><updated>2010-03-28T14:22:20.604-07:00</updated><title type='text'>cpu post processing</title><content type='html'>Out of curiosity, I tried to replicate the post processing effect using the CPU instead of using shaders on the GPU. This is complicated because we're not supposed to access the graphics data directly, but uh-hmm -- whatever&lt;br /&gt;&lt;br /&gt;To get the rendered graphics data, I use GetRenderTextureData which uses the system memory pool. But &lt;a href="http://msdn.microsoft.com/en-us/library/ee416513%28VS.85%29.aspx"&gt;MSDN says&lt;/a&gt; that : "system memory is not typically accessible by the  Direct3D device". So we must wait on a lock to copy from the system memory to default memory. This is a really costly operation and basically is the failure of my experiment. Running in exclusive (fullscreen) mode, takes about ~50ms to run, and  the framerate is killed to &amp;lt;20fps&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px solid; padding: 5px; overflow: auto; background-color: rgb(238, 238, 238); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; width: 150%;"&gt;&lt;code&gt;// Texture surfaces with given CreateTexture parameters&lt;br /&gt;// renderTexture is D3DUSAGE_RENDERTARGET, D3DPOOL_DEFAULT&lt;br /&gt;// systemMemTexture is D3DUSAGE_DYNAMIC, D3DPOOL_SYSTEMMEM&lt;br /&gt;// defaultMemTexture is D3DUSAGE_DYNAMIC, D3DPOOL_DEFAULT&lt;br /&gt;&lt;br /&gt;pd3dDevice-&gt;GetRenderTargetData(renderTextureSurface, systemMemSurface);&lt;br /&gt;systemMemSurface-&gt;LockRect(&amp;amp;source, NULL, 0);&lt;br /&gt;defaultMemSurface-&gt;LockRect(&amp;amp;dest, NULL, 0);&lt;br /&gt;copy(source.pBits, dest.pBits);&lt;br /&gt;systemMemSurface-&gt;UnlockRect();&lt;br /&gt;defaultMemSurface-&gt;UnlockRect();&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apparently, GPGPU programming is enabled by hardware and the software. For example in nVidia CUDA it let's programmers control shared memory for hardware the graphics that enables programmer control (see &lt;a href="http://www.tomshardware.com/reviews/nvidia-cuda-gpu,1954-8.html"&gt;Toms's Hardware: CUDA from the Hardware Point of View&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6i3bDi-dZN4/S67gL495G2I/AAAAAAAABcc/KDe_Mc3NTQA/s1600/020.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 339px;" src="http://1.bp.blogspot.com/_6i3bDi-dZN4/S67gL495G2I/AAAAAAAABcc/KDe_Mc3NTQA/s400/020.png" alt="" id="BLOGGER_PHOTO_ID_5453542693667412834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From the GPGPU FAQ it says about the shared memory&lt;br /&gt;&lt;br /&gt;"Texture read operations are routed through a cache structure to allow  efficient exploitation of reference locality.  Read operations also  factor into shader thread scheduling as read operations that miss the  cache will block the thread and cause other ready threads to run while  waiting for the read to memory to complete.  Writes are routed through  different logic that does some amount of buffering to maximize the  efficieny of writes."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-8559625809534672385?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/8559625809534672385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/11/graphics-pipeline-pt-2-gpu-vs-cpu-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/8559625809534672385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/8559625809534672385'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/11/graphics-pipeline-pt-2-gpu-vs-cpu-post.html' title='cpu post processing'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6i3bDi-dZN4/S67gL495G2I/AAAAAAAABcc/KDe_Mc3NTQA/s72-c/020.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-7204474320661762181</id><published>2009-12-12T03:06:00.000-08:00</published><updated>2010-03-28T01:00:44.783-07:00</updated><title type='text'>gpu post-processing</title><content type='html'>I wanted to explain an overview of the post-processing effects using GPU shader programs since I've been working on this for awhile now.  Basically, the rendering for post processing is broken into two steps&lt;br /&gt;&lt;br /&gt;- we render-to-texture using normal rendering routines&lt;br /&gt;- then use a pixel shader to texture a square with the render-target texture&lt;br /&gt;&lt;br /&gt;The code I used the DirectX SDK sample ($SDK\Samples\C++\Direct3D\PostProcess)&lt;br /&gt;Here is a simple model of the rendering&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px solid; line-height: 14px; padding: 5px; overflow: auto; width: 150%;"&gt;&lt;code&gt;// render-to-texture&lt;br /&gt;graphics-&amp;gt;SetRenderTarget( offscreenTexture );&lt;br /&gt;graphics-&amp;gt;RenderScene( );&lt;br /&gt;&lt;br /&gt;// square is the size of the screen, from back buffer description&lt;br /&gt;VERTEX quad [4] = /* use the BackBufferDescription( ); */&lt;br /&gt;&lt;br /&gt;// set shader parameters&lt;br /&gt;shader-&amp;gt;SetTechnique( "RenderPostProcess" );&lt;br /&gt;shader-&amp;gt;SetTexture( “offscreen_texture", offscreenTexture );&lt;br /&gt;&lt;br /&gt;// square is textured by the pixel shader effect&lt;br /&gt;graphics-&amp;gt;SetRenderTarget( screen );&lt;br /&gt;graphics-&amp;gt;DrawPrimitive( quad );&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I based this code off of the DirectX SDK sample  ($SDK\Samples\C++\Direct3D\PostProcess, definitely look at that this if you are trying this). The square is calculated to fit the screen (using &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.dxut.dxutgetd3d9backbuffersurfacedesc%28VS.85%29.aspx"&gt;DXUTGetD3D9BackBufferSurfaceDesc&lt;/a&gt;). Then we texture the "fullscreen square" using our RTT texture, and we can use pixel shader effects during this rendering.&lt;br /&gt;&lt;br /&gt;Here, the simplest "toon shader" ever&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; border: 1px solid; line-height: 14px; padding: 5px; overflow: auto; width: 150%;"&gt;&lt;code&gt;// render target from effect-&amp;gt;settexture&lt;br /&gt;texture offscreen_texture;&lt;br /&gt;sampler2D s = sampler_state {&lt;br /&gt; Texture = &amp;lt;&amp;gt;;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// "toon shader"&lt;br /&gt;float4 PostProcessPixel(float2 uv : TEXCOORD0) : COLOR&lt;br /&gt;{&lt;br /&gt; float4 c = tex2D(s, uv_coord);&lt;br /&gt; c.rgba -= (Color.rgba % 0.3f );&lt;br /&gt; return c;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;technique RenderPostProcess {&lt;br /&gt; pass p0 {&lt;br /&gt;   VertexShader = null;&lt;br /&gt;   PixelShader = compile ps_2_0 PostProcessPixel ();&lt;br /&gt;   ZEnable = false;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Thanks to gamedev for helping me with this miracle&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/SzNSq-M_7zI/AAAAAAAABV8/IH7TQCorCvk/s1600-h/31312.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 314px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/SzNSq-M_7zI/AAAAAAAABV8/IH7TQCorCvk/s400/31312.jpg" alt="" id="BLOGGER_PHOTO_ID_5418765674862341938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Updated:&lt;br /&gt;&lt;br /&gt;Source code - http://zxcvbn.googlecode.com/svn/trunk/skelly/&lt;br /&gt;Wiki page - http://code.google.com/p/zxcvbn/wiki/skelly&lt;br /&gt;Demo - http://zxcvbn.googlecode.com/files/Skelly.exe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-7204474320661762181?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/7204474320661762181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/12/gpu-post-processing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7204474320661762181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7204474320661762181'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/12/gpu-post-processing.html' title='gpu post-processing'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6i3bDi-dZN4/SzNSq-M_7zI/AAAAAAAABV8/IH7TQCorCvk/s72-c/31312.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-4604543929465589831</id><published>2009-11-16T22:06:00.000-08:00</published><updated>2010-03-28T01:47:35.384-07:00</updated><title type='text'>graphics pipeline</title><content type='html'>It's important to know how shaders work with the graphics pipeline, because the "shader model" of graphics programming is totally different from the "fixed function model"! MSDN says here &lt;a href="http://msdn.microsoft.com/en-us/library/ms800169.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms800169.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"The following user-mode display driver functions are not called by the Direct3D runtime when the vertex shader is enabled&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   * MultiplyTransform&lt;/li&gt;&lt;li&gt;    * SetTransform&lt;/li&gt;&lt;li&gt;    * SetMaterial&lt;/li&gt;&lt;li&gt;    * SetLight&lt;/li&gt;&lt;li&gt;    * CreateLight&lt;/li&gt;&lt;li&gt;    * DestroyLight&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;This means that when you use shaders, you have to compute lighting and transformations! DirectX will also ignore flags like D3DRS_LIGHTING and texture state flags when you use shaders. When you program using the shader model, your shader program has responsibilities!&lt;br /&gt;&lt;br /&gt;Contrast the API for  the fixed function model, which uses the D3D device functions, with the  shader model, which is similar but passeses parameters to your shader effects through the shader interface&lt;br /&gt;&lt;br /&gt;IDirect3DDevice9::SetTexture vs  ID3DXEffect::SetTexture&lt;br /&gt;IDirect3DDevice9::SetTransform vs  ID3DXEffect::SetMatrix&lt;br /&gt;IDirect3DDevice9::SetLight vs  ID3DXEffect::SetValue&lt;br /&gt;&lt;br /&gt;I'll go over the exact responsibilities of shaders in your program. The MSDN page on the graphics pipeline says has some really important things about this - &lt;a href="http://msdn.microsoft.com/en-us/library/ee415715%28VS.85%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee415715(VS.85).aspx&lt;/a&gt; and I will use this gamasutra article for base code - &lt;a href="http://www.gamasutra.com/features/20030418/engel_02.shtml"&gt;http://www.gamasutra.com/features/20030418/engel_02.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6i3bDi-dZN4/SzNIhrsCSMI/AAAAAAAABVs/sO9rPxsml50/s1600-h/Ee415715.d3d10_pipeline_stages%28en-us,VS.85%29-alt.GIF"&gt;&lt;img style="cursor: pointer; width: 326px; height: 329px;" src="http://2.bp.blogspot.com/_6i3bDi-dZN4/SzNIhrsCSMI/AAAAAAAABVs/sO9rPxsml50/s400/Ee415715.d3d10_pipeline_stages%28en-us,VS.85%29-alt.GIF" alt="" id="BLOGGER_PHOTO_ID_5418754520157145282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) "The  vertex-shader (VS) stage processes vertices ... performing per-vertex  operations such as transformations, morphing, skinning, and per-vertex  lighting."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Therefore, the vertex shader is typically responsible  for worldview transformations and also calculating light values. The  vertex shader sets up a VS_OUTPUT struct that contains transformed vertex information that is rasterized and passed to the pixel shader. The vertex shader outputs a VS_OUTPUT structure&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;struct VS_OUTPUT&lt;br /&gt;{&lt;br /&gt;float4 Pos : POSITION;&lt;br /&gt;float3 Light : TEXCOORD0;&lt;br /&gt;float3 Norm : TEXCOORD1;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;VS_OUTPUT VS(float4 Pos : POSITION, float3 Normal : NORMAL)&lt;br /&gt;{&lt;br /&gt;VS_OUTPUT Out = (VS_OUTPUT)0;&lt;br /&gt;Out.Pos = mul(Pos, matWorldViewProj); // transform Position wrt worldview&lt;br /&gt;Out.Light = vecLightDir; // output light vector&lt;br /&gt;Out.Norm = normalize(mul(Normal, matWorld)); // transform normal wrt world&lt;br /&gt;return Out;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) "A pixel shader is a program that  combines texture  data, per-vertex values, and other data to produce  per-pixel outputs...&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Pixel shader inputs are interpolated from the vertex attributes of the  primitive being rasterized&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We basically receive a VS_OUTPUT from our vertex shader as our pixel shader input, but the vertex data is interpolated. We use the NORMAL value to calculate lighting in our pixel shader, because the NORMAL in our pixel shader is interpolated from the rasterizer for our little pixel! The pixel shader outputs is a RGBA&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;float4 PS(float3 Light: TEXCOORD0, float3 Norm : TEXCOORD1) : COLOR&lt;br /&gt;{&lt;br /&gt;float4 diffuse = { 1.0f, 0.0f, 0.0f, 1.0f};&lt;br /&gt;float4 ambient = {0.1, 0.0, 0.0, 1.0};&lt;br /&gt;return ambient + diffuse * saturate(dot(Light, Norm));&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Note: The POSITION register is not valid in the pixel shader, we are  using pixels and not 3D space, but we still use the NORMAL data for  lighting. The rasterization stage that converts our vertex shader data into pixel shader data is interesting. See the wikipedia page is  good &lt;a href="http://en.wikipedia.org/wiki/rasterization"&gt;http://en.wikipedia.org/wiki/rasterization&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-4604543929465589831?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/4604543929465589831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/11/graphics-pipeline-pt1-vertex-shader.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4604543929465589831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4604543929465589831'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/11/graphics-pipeline-pt1-vertex-shader.html' title='graphics pipeline'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6i3bDi-dZN4/SzNIhrsCSMI/AAAAAAAABVs/sO9rPxsml50/s72-c/Ee415715.d3d10_pipeline_stages%28en-us,VS.85%29-alt.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-423284860528655647</id><published>2009-10-26T03:46:00.000-07:00</published><updated>2009-12-24T22:41:21.822-08:00</updated><title type='text'>erasing linux passwords also</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/SzB1M4hi4VI/AAAAAAAABVE/i7SYm9xkKz8/s1600-h/308llcy.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 213px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/SzB1M4hi4VI/AAAAAAAABVE/i7SYm9xkKz8/s400/308llcy.jpg" alt="" id="BLOGGER_PHOTO_ID_5417959215918670162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I actually forgot my root password on a debian linux, for real! I was actually able to reset the root password on my the linux also pretty easily. I had to boot into single user mode, by way of the grub command line, add the option (see in the picture where it says press e to edit? add this onto the end)&lt;br /&gt;&lt;br /&gt;single init=/bin/bash&lt;br /&gt;&lt;br /&gt;apparently, it skipped loading the operating system or something, gave me a root shell in single user mode, butthen I was getting the error 'Authentication token lock busy' trying to reset the password. presumably this was because it was read only, so in the bash shell entered&lt;br /&gt;&lt;br /&gt;mount -o remount,rw /&lt;br /&gt;&lt;br /&gt;this made gave me read-write and then I was able to I was then able to reset the password using the passwd program like normally. wow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-423284860528655647?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/423284860528655647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/12/erasing-linux-passwords-also.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/423284860528655647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/423284860528655647'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/12/erasing-linux-passwords-also.html' title='erasing linux passwords also'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6i3bDi-dZN4/SzB1M4hi4VI/AAAAAAAABVE/i7SYm9xkKz8/s72-c/308llcy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-4771596881901423323</id><published>2009-10-23T01:14:00.000-07:00</published><updated>2009-12-25T01:16:25.296-08:00</updated><title type='text'>erasing windows passwords</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.emergingtechs.com/files/images/bootcd-offline1.gif"&gt;&lt;img style="cursor: pointer; width: 500px; height: 313px;" src="http://www.emergingtechs.com/files/images/bootcd-offline1.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I thought that to fix a windows computer if you've forgotten a password, you needed to like recover the sam file (using like a recovery disk) and crack the password hashes using a program, some complicated process! It turns out that it is actually very simple to just clear the password on the passworded account using a boot disk, without harming anything, using the offline nt password editor - http://pogostick.net/~pnh/ntpasswd/&lt;br /&gt;&lt;br /&gt;you burn the boot disk image to a cd using nero or some other program, and the boot disk automatically detects hard drive partitions with windows installed, and the accounts on the computer, and erases the password on the given accounts. It has lots of automatic and default options and is absolutely easy to use, you just literally hit enter a couple times and it will erase the password for you to login to an admin account. too easy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-4771596881901423323?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/4771596881901423323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/10/hacking-into-windows-removing-passwords.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4771596881901423323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4771596881901423323'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/10/hacking-into-windows-removing-passwords.html' title='erasing windows passwords'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-5118148025054765300</id><published>2009-10-05T17:09:00.000-07:00</published><updated>2009-11-08T17:12:41.095-08:00</updated><title type='text'>xkcd lols</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/SvdsNmr_6HI/AAAAAAAABOs/4deWuKda2xU/s1600-h/estimation.png"&gt;&lt;img style="cursor: pointer; width: 297px; height: 335px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/SvdsNmr_6HI/AAAAAAAABOs/4deWuKda2xU/s400/estimation.png" alt="" id="BLOGGER_PHOTO_ID_5401905259033389170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/SvdsW0pOh4I/AAAAAAAABO0/KggWFvh1yKw/s1600-h/understocked.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 209px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/SvdsW0pOh4I/AAAAAAAABO0/KggWFvh1yKw/s400/understocked.png" alt="" id="BLOGGER_PHOTO_ID_5401905417398683522" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-5118148025054765300?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/5118148025054765300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/10/xkcd-lols.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5118148025054765300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5118148025054765300'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/10/xkcd-lols.html' title='xkcd lols'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6i3bDi-dZN4/SvdsNmr_6HI/AAAAAAAABOs/4deWuKda2xU/s72-c/estimation.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-5162371663697306547</id><published>2009-09-29T20:16:00.000-07:00</published><updated>2009-12-24T21:58:20.754-08:00</updated><title type='text'>doctor fill</title><content type='html'>I set up emacs to run with the sml/nj for one of my classes, and it turns out for my sanity that emacs comes with this artificial intelligence psychotherapist named doctor fill. it's pretty funny -- here's some things it says&lt;br /&gt;&lt;pre&gt;F: Maybe your life have something to do with this.&lt;br /&gt;F: What makes you believe your life has nothing to do with this?&lt;br /&gt;F: Can you elaborate on that?&lt;br /&gt;F: Is it because of the people you hang around with that you are going through all this?&lt;br /&gt;F: I would appreciate it if you would continue.&lt;br /&gt;F: Go on, don't be afraid.&lt;br /&gt;F: Is it because of problems at school that you say you say arghh?&lt;br /&gt;F: My secretary will send you a bill.&lt;br /&gt;F: Bye bye.&lt;/pre&gt;It's pretty funny, it just keeps asking you to explain your reasoning, which is pretty good if you're being irrational in the first place. If you want a pretty good personal psychotherapist you can download it here (&lt;a href="http://ftp.gnu.org/pub/gnu/emacs/windows/"&gt;http://ftp.gnu.org/pub/gnu/emacs/windows/&lt;/a&gt;)&lt;br /&gt;get the bin, the barebin download you have to download the sources also so just get the bin. you can use the sml-mode if you create a site-start.el file in the emacs/site-start/ directory.. follow the instructions here &lt;a href="http://www.smlnj.org/software.html"&gt;http://www.smlnj.org/software.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;also very newest version (23.1, 07/30/09) has M-x butterfly ... "Do you really want to unleash the powers of the butterfly? (yes or no)"&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img196.imageshack.us/img196/4602/butterflyu.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-5162371663697306547?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/5162371663697306547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/10/ive-been-really-busy-with-testing-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5162371663697306547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5162371663697306547'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/10/ive-been-really-busy-with-testing-at.html' title='doctor fill'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-962765387009886338</id><published>2009-09-19T14:54:00.000-07:00</published><updated>2009-12-09T06:40:12.373-08:00</updated><title type='text'>record last.fm radio with foobar</title><content type='html'>I found a weird applciation of some foobar components that allows you to record last.fm radio.&lt;br /&gt;&lt;br /&gt;I posted about &lt;a href="http://poisonforthemind.blogspot.com/2009/07/foobar-lastfm-radio.html"&gt;foo_lastfm_radio&lt;/a&gt; earlier, the component let's you not just stream, but sample from a playlist of like 4-8 songs on average. interestingly you can also copy this stream using the foo_converter component. the converter tool automatically comes with foobar. just select any number of songs in the playlist, and then use the converter utility to download the songs.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/SrVWrnOpvsI/AAAAAAAABNU/7FGzeBbtDds/s1600-h/converter_01.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 255px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/SrVWrnOpvsI/AAAAAAAABNU/7FGzeBbtDds/s400/converter_01.JPG" alt="" id="BLOGGER_PHOTO_ID_5383304236856098498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;unfortunately, this method generates transcodes, because of the converter utility, but if you don't care very much about the quality, then this method works pretty well. unfortunently, you cannot use foo_fileops to 'copy' the file from the last.fm radio but there might be a way to copy the radio stream without transcoding it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-962765387009886338?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/962765387009886338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/09/record-lastfm-radio-with-foobar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/962765387009886338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/962765387009886338'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/09/record-lastfm-radio-with-foobar.html' title='record last.fm radio with foobar'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6i3bDi-dZN4/SrVWrnOpvsI/AAAAAAAABNU/7FGzeBbtDds/s72-c/converter_01.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-97928288035267856</id><published>2009-08-27T11:28:00.000-07:00</published><updated>2010-09-02T18:48:36.553-07:00</updated><title type='text'>analog-to-digital</title><content type='html'>I have recently learned how to 'rip' cassettes and stuff to digital so I thought I'd share some tips. I used this technique to rip cassettes but you can defintiely take this advice for ripping vinyl, the procedure is the same, it's just the set up is different. anyways, here's what you need to get started&lt;br /&gt;&lt;br /&gt;1) you should get one of these monster icables, or something that joins the rca-&gt;1/8'' for your line-in&lt;br /&gt;2) you need 'exact audio copy' &lt;a href="http://www.exactaudiocopy.de/"&gt;[1]&lt;/a&gt; to record the audio from the line-in and it helps create a 'cue sheet'&lt;br /&gt;3) then cuetools &lt;a href="http://wiki.hydrogenaudio.org/index.php?title=CueTools"&gt;[2]&lt;/a&gt; to split the wav into tracks using the cue sheet&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6i3bDi-dZN4/SprzY9NmFzI/AAAAAAAABMk/oOVJgPnUMNI/s1600-h/9526.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 228px;" src="http://2.bp.blogspot.com/_6i3bDi-dZN4/SprzY9NmFzI/AAAAAAAABMk/oOVJgPnUMNI/s400/9526.jpg" alt="" id="BLOGGER_PHOTO_ID_5375876715294103346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;so set it up so you have the cables running into your computers mic slot or line-in and run eac  -&gt; tools -&gt; 'record wav'. you should be able to see levels, but if you can't try going into the volume control panel and go to properties -&gt; recording controls and select the line-in checkbox&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6i3bDi-dZN4/Sprw2km_aII/AAAAAAAABMU/dvzxkrFmoGg/s1600-h/recording+control.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 246px;" src="http://2.bp.blogspot.com/_6i3bDi-dZN4/Sprw2km_aII/AAAAAAAABMU/dvzxkrFmoGg/s400/recording+control.JPG" alt="" id="BLOGGER_PHOTO_ID_5375873925550925954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;after you get the levels, just let it record the whole tape, both sides, and then select 'process wav'&lt;br /&gt;&lt;br /&gt;in the 'process wav' tool, first delete the leading and ending silence, but not the silence on the tape though, just the silence that is recorded when the tape wasn't even playing. then you place the 'track start' and 'gap start' markers to create a 'cue sheet'. track changes are marked by 'silence' on the tape, and the silence is much easier to see if you use the spectral view instead of the waveform view (view -&gt; spectral).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6i3bDi-dZN4/Spry_7idFDI/AAAAAAAABMc/s0cm8mZbCl0/s1600-h/process+wav+gaps.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 321px;" src="http://1.bp.blogspot.com/_6i3bDi-dZN4/Spry_7idFDI/AAAAAAAABMc/s0cm8mZbCl0/s400/process+wav+gaps.JPG" alt="" id="BLOGGER_PHOTO_ID_5375876285347992626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;inserting track start markers generates track n index 1 and gap markers generate track n index 0. insert a track start at the beginning of the tape's first song, and change the first marker marked track 1 index 1 into track 1 index 0 (effectively making the beginning of the recording a pregap until the first song). I also make the end of the tape silence a whole track that I edit into the cue sheet as a postgap.&lt;br /&gt;&lt;br /&gt;go through the whole tape and then you basically get a cue sheet that looks like this&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://a.imageshack.us/img267/3641/cuesheet.png" /&gt;&lt;br /&gt;&lt;br /&gt;tell eac to save this cue sheet and the open it in a text editor to make sure it's correct (sometimes it doesn't export the gaps correctly, or some of the gaps correctly! see &lt;a href="http://www.digital-inn.de/exact-audio-copy-english/38858-process-wav-makes-bad-cue-sheet-when-using-gaps.html"&gt;[3]&lt;/a&gt; you might have to manually edit the cue sheet, the syntax is easy enough) after you have saved the cue sheet then load cuetools and use the default settings&lt;br /&gt;&lt;br /&gt;audio output - wav&lt;br /&gt;output style - gaps left out&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/Spr2Wf8qM6I/AAAAAAAABMs/T8DZQKAgvx8/s1600-h/cuetools.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 334px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/Spr2Wf8qM6I/AAAAAAAABMs/T8DZQKAgvx8/s400/cuetools.JPG" alt="" id="BLOGGER_PHOTO_ID_5375879971613586338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;this will generate all the tracks&lt;br /&gt;&lt;pre&gt;Directory of C:\Music\Kites - 2007 - Deny 1\New&lt;br /&gt;&lt;br /&gt;01.wav&lt;br /&gt;02.wav&lt;br /&gt;03.wav&lt;br /&gt;04.wav&lt;br /&gt;05.wav&lt;br /&gt;06.wav&lt;br /&gt;07.wav&lt;br /&gt;08.wav&lt;br /&gt;09.wav&lt;br /&gt;CUESheet.cue&lt;br /&gt;&lt;/pre&gt;the final step is to tag the files and compress the wav. use either musicbrainz or foo_discogs to tag the files, and either foobar2000's converter utility or eac to compress the wav's.&lt;br /&gt;&lt;br /&gt;my favorite way to do it is to load the cue sheet into foobar, select the cue sheet and tag it with the foo_discogs plugin, this writes the track metadata into the cue sheet, and then you can give the cue sheet to eac and it outputs the compressed files with properly formatted filenames!&lt;br /&gt;&lt;br /&gt;I hope this can help you create proper rips of your music, either with your cassettes or your vinyl&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-97928288035267856?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/97928288035267856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/08/analog-to-digital.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/97928288035267856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/97928288035267856'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/08/analog-to-digital.html' title='analog-to-digital'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6i3bDi-dZN4/SprzY9NmFzI/AAAAAAAABMk/oOVJgPnUMNI/s72-c/9526.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-4664742427580268569</id><published>2009-08-03T02:21:00.000-07:00</published><updated>2009-12-03T01:50:58.598-08:00</updated><title type='text'>corruption 2</title><content type='html'>&lt;object height="300" width="400"&gt;&lt;br /&gt;&lt;param name="movie" value="http://www.youtube.com/v/5OsfXKxs_wM&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/5OsfXKxs_wM&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="300" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;corrupting every frame of a video movie and re-encoding it. source video is some video feedback with high-def digital camera, music is made from some fm synth effects&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-4664742427580268569?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/4664742427580268569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/08/corruption.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4664742427580268569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4664742427580268569'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/08/corruption.html' title='corruption 2'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-4754285333376824899</id><published>2009-07-29T20:11:00.000-07:00</published><updated>2009-12-24T23:25:15.231-08:00</updated><title type='text'>fractals</title><content type='html'>I got this book called 'chaos in wonderland' and decided to try out mathematica to create some of the fractals in the books. the fractals are 'dynamical systems' described by basically differential equations (x[n+1] can be thought of as a discrete form of dx) &lt;a href="http://mathworld.wolfram.com/DynamicalSystem.html"&gt;[1]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;x[n+1] = sin(y[n]*a) + c*sin(y[n]*b)&lt;br /&gt;y[n+1] = sin(x[n]*a) + d*sin(y[n]*b)&lt;br /&gt;&lt;br /&gt;my first attempt at code&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; margin: 0px; padding: 1px; overflow: auto; text-align: left;"&gt;ListPlot[Table[&lt;br /&gt;   xn = N[Sin[y*b] + c*Sin[x*b]];&lt;br /&gt;   yn = N[Sin[x*a] + d*Sin[y*a]];&lt;br /&gt;   {x = xn, y = yn},&lt;br /&gt;{i, 0, 10000}]]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/SnJufxUvE3I/AAAAAAAABLI/g_QIfDuzNiE/s1600-h/image08.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/SnJufxUvE3I/AAAAAAAABLI/g_QIfDuzNiE/s400/image08.png" alt="" id="BLOGGER_PHOTO_ID_5364471598246990706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;this worked great. but to create a more functional style of iterated programming, I use the nestlist function which creates a list {x, f(x), f(f(x)), ...}, however instead of the one parameter 'x', I have parameters {x, y}. to deal with this I have to pass nested lists that I flatted at the end&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; margin: 0px; padding: 1px; overflow: auto; text-align: left;"&gt;Iter[list_] :=&lt;br /&gt;{&lt;br /&gt;   {{x, y}} = list;&lt;br /&gt;   xn = N[Sin[y*b] + c*Sin[x*b]];&lt;br /&gt;   yn = N[Sin[x*a] + d*Sin[y*a]];&lt;br /&gt;   {xn, yn}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;FSystemsPlot[l_, ax_, bx_, cx_, dx_] :=&lt;br /&gt;{&lt;br /&gt;   a = ax; b = bx; c = cx; d = dx;&lt;br /&gt;   list = NestList[Iter, {{0.1, 0.1}}, 10000];&lt;br /&gt;   ListPlot[Flatten[list,1]]&lt;br /&gt;}]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;the book had a list interesting parameters for this system that created these graphs&lt;br /&gt;&lt;br /&gt;http://img198.imageshack.us/g/image10jhh.png/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-4754285333376824899?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/4754285333376824899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/fractals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4754285333376824899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4754285333376824899'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/fractals.html' title='fractals'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6i3bDi-dZN4/SnJufxUvE3I/AAAAAAAABLI/g_QIfDuzNiE/s72-c/image08.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-6356534539019319290</id><published>2009-07-28T17:36:00.000-07:00</published><updated>2009-08-03T02:02:34.617-07:00</updated><title type='text'>someone has set us up the bomb</title><content type='html'>a new hack is going around that checks what sites you've been too. guess how? the script has a little database of sites and it just checks whether the link is the changed color of when it has been visited&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 1px; overflow: auto; text-align: left;"&gt; var link = document.createElement("a");&lt;br /&gt; link.id = "id" + i;&lt;br /&gt; link.href = websites[i];&lt;br /&gt; link.innerHTML = websites[i];&lt;br /&gt;&lt;br /&gt; document.body.appendChild(link);&lt;br /&gt; var color = document.defaultView.getComputedStyle(link,null).getPropertyValue("color");&lt;br /&gt; document.body.removeChild(link);&lt;br /&gt; &lt;br /&gt; if (color == "rgb(255, 0, 0)") // the site has been visited :)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;demo - &lt;a href="http://ha.ckers.org/weird/CSS-history-hack.html"&gt;http://ha.ckers.org/weird/CSS-history-hack.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-6356534539019319290?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/6356534539019319290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/someone-has-set-us-up-bomb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/6356534539019319290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/6356534539019319290'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/someone-has-set-us-up-bomb.html' title='someone has set us up the bomb'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-4138678486429405565</id><published>2009-07-27T18:25:00.000-07:00</published><updated>2009-08-03T02:02:34.644-07:00</updated><title type='text'>foobar last.fm radio</title><content type='html'>so, I just found this component that plays last.fm radio straight from foobar, and i couldn't control my love. beautiful!!! it constantly updates a playlist of like 4-7 songs from the last.fm radio, and you can play any of those tracks. i never listened to the last.fm radio before this, but playing 'your personal last.fm radio' from foobar is awesome!!!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.unkempt.co.uk/fb2k/foo_lastfm_radio.html" target="_blank"&gt;http://www.unkempt.co.uk/fb2k/foo_lastfm_radio.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6i3bDi-dZN4/Sm5YwGtlEDI/AAAAAAAABKw/l5zEMknOUdI/s1600-h/tight+2.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 245px;" src="http://2.bp.blogspot.com/_6i3bDi-dZN4/Sm5YwGtlEDI/AAAAAAAABKw/l5zEMknOUdI/s400/tight+2.JPG" alt="" id="BLOGGER_PHOTO_ID_5363321789703589938" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-4138678486429405565?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/4138678486429405565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/foobar-lastfm-radio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4138678486429405565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4138678486429405565'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/foobar-lastfm-radio.html' title='foobar last.fm radio'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6i3bDi-dZN4/Sm5YwGtlEDI/AAAAAAAABKw/l5zEMknOUdI/s72-c/tight+2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-8119648880373817448</id><published>2009-07-25T23:03:00.000-07:00</published><updated>2009-12-25T00:27:35.224-08:00</updated><title type='text'>dammit dell</title><content type='html'>&lt;div style="text-align: justify;"&gt;"Is there anyone who is not happy with the audio quality of the E6500? I have found that even through high quality headphones, the audio quality is very tinny and lacks proper equalization. If anyone has managed to sort the problem out, it would be great if you can share." &lt;a href="http://en.community.dell.com/forums/t/19235508.aspx"&gt;http://en.community.dell.com/forums/t/19235508.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm pretty mad about this because these awful IDT audio drivers are pretty much to blame for this. the fix? uncheck the mysterious "PC Spk Mute" button in the volume control panel. apparently this setting disables the on-board laptop speakers, and unintuitively, makes headphone/external sound a billion times better. I listened to music for months with the bass turned up to try to compensate for the horrible sound.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/SmvyouJ0hWI/AAAAAAAABKg/PAnjc8lxnHM/s1600-h/idt-ctrl.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 267px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/SmvyouJ0hWI/AAAAAAAABKg/PAnjc8lxnHM/s400/idt-ctrl.JPG" alt="" id="BLOGGER_PHOTO_ID_5362646562712618338" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-8119648880373817448?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/8119648880373817448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/dammit-dell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/8119648880373817448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/8119648880373817448'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/dammit-dell.html' title='dammit dell'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6i3bDi-dZN4/SmvyouJ0hWI/AAAAAAAABKg/PAnjc8lxnHM/s72-c/idt-ctrl.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-4153044300027146588</id><published>2009-07-17T14:59:00.000-07:00</published><updated>2009-12-25T00:30:24.779-08:00</updated><title type='text'>physics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/SmEIZmDRg_I/AAAAAAAABKY/-Ed9vEdOSAc/s1600-h/FEYNMAN2.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 120px; height: 202px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/SmEIZmDRg_I/AAAAAAAABKY/-Ed9vEdOSAc/s400/FEYNMAN2.gif" alt="" id="BLOGGER_PHOTO_ID_5359574267351630834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've recently taken an interest in physics (well, so much as to absorb my reading of books and wikipedia articles constantly) because there's just so many interesting explanations for such things as gravity and matter the more you keep reading about it&lt;br /&gt;&lt;br /&gt;today, I found these lectures that richard feynman did at cornell in 1964 that bill gates and microsoft have published. they aren't like scientific lectures about physics (typical feynmann lectures are way beyond) this series is called 'the character of physical law' and they're just really entertaining (7 lectures)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://research.microsoft.com/apps/tools/tuva/"&gt;http://research.microsoft.com/apps/tools/tuva/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. The Law of Gravitation, an example of Physical Law&lt;br /&gt;2. The Relation of Mathematics to Physics&lt;br /&gt;3. The Great Conservation Principle&lt;br /&gt;4. Symmetry in Physical Law&lt;br /&gt;5. The Distinction of Past and Future&lt;br /&gt;6. Probability and Uncertainty&lt;br /&gt;7. Seeking New Law&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-4153044300027146588?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/4153044300027146588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/ive-always-had-these-questions-about.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4153044300027146588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4153044300027146588'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/07/ive-always-had-these-questions-about.html' title='physics'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6i3bDi-dZN4/SmEIZmDRg_I/AAAAAAAABKY/-Ed9vEdOSAc/s72-c/FEYNMAN2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-2180124608935107511</id><published>2009-07-02T01:36:00.000-07:00</published><updated>2009-12-25T01:30:12.124-08:00</updated><title type='text'>cool devtools</title><content type='html'>&lt;a href="http://www.resedit.net/"&gt;http://www.resedit.net/&lt;/a&gt; - free resource editor for .rc resource compiler scripts - the dialog wysiwyg editor is great. you can hardcore hardcode handcode win32 stuff but don't code the gui layout, that's tedious&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeguru.com/cpp/v-s/devstudio_macros/visualstudionet/print.php/c14981"&gt;http://www.codeguru.com/cpp/c14981&lt;/a&gt; - visual studio add-on that auto-increments versioninfo in .rc and .rc2 resource scripts, works for almost all versions of visual studio&lt;br /&gt;&lt;br /&gt;the version auto-increment is fun, and so far we're at version 1, 3, 1, 137&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/SkbFrf-yFHI/AAAAAAAABDg/CD2wzXI7_GM/s1600-h/versiond.JPG"&gt;&lt;img style="cursor: pointer; width: 287px; height: 198px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/SkbFrf-yFHI/AAAAAAAABDg/CD2wzXI7_GM/s400/versiond.JPG" alt="" id="BLOGGER_PHOTO_ID_5352182558286287986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;versioninfo resource &lt;a href="http://msdn.microsoft.com/en-us/library/ms647003%28VS.85%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms647003(VS.85).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-2180124608935107511?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/2180124608935107511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/cool-devtools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/2180124608935107511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/2180124608935107511'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/cool-devtools.html' title='cool devtools'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6i3bDi-dZN4/SkbFrf-yFHI/AAAAAAAABDg/CD2wzXI7_GM/s72-c/versiond.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-3424360514815469096</id><published>2009-06-30T12:40:00.000-07:00</published><updated>2009-08-03T02:02:34.652-07:00</updated><title type='text'>evil!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/SkpqO7RQWtI/AAAAAAAABJc/skN0On74nWg/s1600-h/evil_2.JPG"&gt;&lt;img style="cursor: pointer; width: 368px; height: 250px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/SkpqO7RQWtI/AAAAAAAABJc/skN0On74nWg/s400/evil_2.JPG" alt="" id="BLOGGER_PHOTO_ID_5353207911744035538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;totally evil&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-3424360514815469096?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/3424360514815469096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/evil.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/3424360514815469096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/3424360514815469096'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/evil.html' title='evil!'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6i3bDi-dZN4/SkpqO7RQWtI/AAAAAAAABJc/skN0On74nWg/s72-c/evil_2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-613072416790024464</id><published>2009-06-26T18:07:00.000-07:00</published><updated>2010-03-27T22:02:29.803-07:00</updated><title type='text'>choons</title><content type='html'>Alright, my second itunes monitor plug-in is in working order&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/SzRxjJsM0OI/AAAAAAAABW4/ZFhrSNorrDM/s1600-h/fs6262009.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 165px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/SzRxjJsM0OI/AAAAAAAABW4/ZFhrSNorrDM/s400/fs6262009.jpg" alt="" id="BLOGGER_PHOTO_ID_5419081100344217826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Features:&lt;br /&gt;&lt;br /&gt;-automatically updates the aim status bar with the song playing in itunes&lt;br /&gt;-can be minimized to the notification tray while it is running&lt;br /&gt;-the program is multithreaded to support multiple interfaces 'event sink' interfaces&lt;br /&gt;&lt;br /&gt;Download - &lt;a href="http://zxcvbn.googlecode.com/files/itunes-nowplaying.zip"&gt;http://zxcvbn.googlecode.com/files/itunes-nowplaying.zip&lt;/a&gt;&lt;br /&gt;Source -&lt;a href="http://zxcvbn.googlecode.com/svn/trunk/itunes/"&gt; http://zxcvbn.googlecode.com/svn/trunk/itunes/&lt;/a&gt;&lt;br /&gt;Wiki - &lt;a href="http://code.google.com/p/zxcvbn/wiki/choons"&gt;http://code.google.com/p/zxcvbn/wiki/choons&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;see: CAccEventSink (AimEventHandler), _IiTunesEvents, IDispatch, IUnknown (ItunesEventHandler), GetFileVersionInfo (AboutDlg)&lt;br /&gt;&lt;br /&gt;see also: my other itunes plugin&lt;br /&gt;&lt;br /&gt;source - &lt;a href="http://zxcvbn.googlecode.com/svn/trunk/habit/"&gt;http://zxcvbn.googlecode.com/svn/trunk/habit/&lt;/a&gt;&lt;br /&gt;wiki - &lt;a href="http://code.google.com/p/zxcvbn/wiki/habit"&gt;http://code.google.com/p/zxcvbn/wiki/habit&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-613072416790024464?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/613072416790024464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/itunes-now-playing-status-for-aim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/613072416790024464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/613072416790024464'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/itunes-now-playing-status-for-aim.html' title='choons'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6i3bDi-dZN4/SzRxjJsM0OI/AAAAAAAABW4/ZFhrSNorrDM/s72-c/fs6262009.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-7274314314418412864</id><published>2009-06-22T19:45:00.000-07:00</published><updated>2009-12-25T00:04:01.092-08:00</updated><title type='text'>father's day</title><content type='html'>&lt;a href="http://img10.imageshack.us/i/fday3.gif/"&gt;&lt;img src="http://img10.imageshack.us/img10/4376/fday3.gif" alt="Image Hosted by ImageShack.us" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zydecogroup.com/happy_day_2.html"&gt;live demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I made this for father's day, it's his company logo and I animated the colors using javascript dom&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-7274314314418412864?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/7274314314418412864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/father-day.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7274314314418412864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7274314314418412864'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/father-day.html' title='father&amp;#39;s day'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-7651424748409968236</id><published>2009-06-14T22:40:00.000-07:00</published><updated>2009-08-03T02:02:34.692-07:00</updated><title type='text'>phoken brone</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6i3bDi-dZN4/SjXewYqBb7I/AAAAAAAAA3Q/bSpYckbvjeU/s1600-h/232814.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_6i3bDi-dZN4/SjXewYqBb7I/AAAAAAAAA3Q/bSpYckbvjeU/s400/232814.jpg" alt="" id="BLOGGER_PHOTO_ID_5347425055406124978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;that's the outside lcd, the inside is fine&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-7651424748409968236?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/7651424748409968236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/phoken-brone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7651424748409968236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7651424748409968236'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/phoken-brone.html' title='phoken brone'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6i3bDi-dZN4/SjXewYqBb7I/AAAAAAAAA3Q/bSpYckbvjeU/s72-c/232814.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-1623400199107788676</id><published>2009-06-14T13:32:00.000-07:00</published><updated>2009-08-03T02:02:34.700-07:00</updated><title type='text'>memory feetprints</title><content type='html'>microsoft's sql server (sqlserv.exe) is really great at taking up all the free memory on my computer ... the default behavior of the server is to allocate the entire memory pool and give it back to the system when it's requested &lt;a href="http://www.cisco.com/en/US/ts/fn/200/fn29019.html"&gt;http://www.cisco.com/en/US/ts/fn/200/fn29019.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/SjZIJFlq-TI/AAAAAAAAA3g/vTXKUAtO6rE/s1600-h/sql.JPG"&gt;&lt;img style="cursor: pointer; width: 341px; height: 400px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/SjZIJFlq-TI/AAAAAAAAA3g/vTXKUAtO6rE/s400/sql.JPG" alt="" id="BLOGGER_PHOTO_ID_5347540928505248050" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-1623400199107788676?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/1623400199107788676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/memory-feetprints.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1623400199107788676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1623400199107788676'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/memory-feetprints.html' title='memory feetprints'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6i3bDi-dZN4/SjZIJFlq-TI/AAAAAAAAA3g/vTXKUAtO6rE/s72-c/sql.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-1540751495801708579</id><published>2009-06-10T20:04:00.000-07:00</published><updated>2009-12-03T01:49:30.828-08:00</updated><title type='text'>shredded windows</title><content type='html'>&lt;object height="295" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cHVa9CcDmGc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/cHVa9CcDmGc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="295" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;the windows 95 screensaver, resolume video editor, synth noise, this&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://zxcvbn.t35.com/raindrop.swf" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" height="150" width="150"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-1540751495801708579?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/1540751495801708579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/shredded-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1540751495801708579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1540751495801708579'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/shredded-windows.html' title='shredded windows'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-1976138680396553007</id><published>2009-06-10T16:06:00.000-07:00</published><updated>2009-12-25T00:07:22.693-08:00</updated><title type='text'>windows 95 shenanigans</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6i3bDi-dZN4/SjZLEr3LwjI/AAAAAAAAA4A/F7uIoRuru1U/s1600-h/Windows+95+2-2009-06-10-16-12-59.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_6i3bDi-dZN4/SjZLEr3LwjI/AAAAAAAAA4A/F7uIoRuru1U/s400/Windows+95+2-2009-06-10-16-12-59.png" alt="" id="BLOGGER_PHOTO_ID_5347544151414784562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/SjBBKGKwx0I/AAAAAAAAA3I/uWhZptELkuI/s1600-h/Windows+95+2-2009-06-09-14-11-10.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/SjBBKGKwx0I/AAAAAAAAA3I/uWhZptELkuI/s400/Windows+95+2-2009-06-09-14-11-10.png" alt="" id="BLOGGER_PHOTO_ID_5345844399399028546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/SjZK0VgG45I/AAAAAAAAA3w/lkGoIGRMHIc/s1600-h/Windows+95+2-2009-06-09-17-38-03.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/SjZK0VgG45I/AAAAAAAAA3w/lkGoIGRMHIc/s400/Windows+95+2-2009-06-09-17-38-03.png" alt="" id="BLOGGER_PHOTO_ID_5347543870534509458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;brian eno did the startup sound ^^&lt;br /&gt;&lt;a href="http://zydecogroup.com/scanner.html"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-1976138680396553007?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/1976138680396553007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/windows-95-shenanigans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1976138680396553007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1976138680396553007'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/windows-95-shenanigans.html' title='windows 95 shenanigans'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6i3bDi-dZN4/SjZLEr3LwjI/AAAAAAAAA4A/F7uIoRuru1U/s72-c/Windows+95+2-2009-06-10-16-12-59.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-5795505529908835798</id><published>2009-06-06T19:19:00.000-07:00</published><updated>2009-12-24T23:55:11.030-08:00</updated><title type='text'>slit scanning flash applet</title><content type='html'>I converted this project from http://blog.onepixeloff.com/index.cfm/2006/12/2/Slit-Scan-Camera-Experiment-In-Flash&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zydecogroup.com/scanner.html"&gt;http://zydecogroup.com/scanner.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6i3bDi-dZN4/SkCFHM2CutI/AAAAAAAAA4g/VCbLeoN6KR8/s1600-h/02.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_6i3bDi-dZN4/SkCFHM2CutI/AAAAAAAAA4g/VCbLeoN6KR8/s400/02.jpg" alt="" id="BLOGGER_PHOTO_ID_5350422716069624530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;new features:&lt;br /&gt;&lt;br /&gt;- is able to save captures to local hd as jpeg&lt;br /&gt;- converted from as2 to as3&lt;br /&gt;&lt;br /&gt;you can get the fla source here&lt;br /&gt;&lt;a href="http://zxcvbn.googlecode.com/files/scanner.zip"&gt;http://zxcvbn.googlecode.com/files/scanner.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;keywords: &lt;a href="http://code.google.com/p/as3corelib/"&gt;as3corelib&lt;/a&gt;, FileReference.save, Camera.getCamera, JPGEncoder.encode&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-5795505529908835798?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/5795505529908835798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/slit-scanning-flash-applet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5795505529908835798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5795505529908835798'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/06/slit-scanning-flash-applet.html' title='slit scanning flash applet'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6i3bDi-dZN4/SkCFHM2CutI/AAAAAAAAA4g/VCbLeoN6KR8/s72-c/02.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-1883167816172676563</id><published>2009-05-27T19:17:00.000-07:00</published><updated>2009-12-24T23:43:14.226-08:00</updated><title type='text'>texture mapping glitch</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/Sh30Xgfm0aI/AAAAAAAAA1Y/XHRTitGDrwg/s1600-h/glitch1.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 324px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/Sh30Xgfm0aI/AAAAAAAAA1Y/XHRTitGDrwg/s400/glitch1.JPG" alt="" id="BLOGGER_PHOTO_ID_5340693417827946914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;uninitialized texture&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-1883167816172676563?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/1883167816172676563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/texture-mapping-glitch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1883167816172676563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/1883167816172676563'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/texture-mapping-glitch.html' title='texture mapping glitch'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6i3bDi-dZN4/Sh30Xgfm0aI/AAAAAAAAA1Y/XHRTitGDrwg/s72-c/glitch1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-817436259522437741</id><published>2009-05-27T11:30:00.000-07:00</published><updated>2009-12-24T23:41:53.105-08:00</updated><title type='text'>diabetes explosion</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6i3bDi-dZN4/Sh2HJ-lejjI/AAAAAAAAA1I/XLDq0W6nLSs/s1600-h/vlcsnap-44202.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_6i3bDi-dZN4/Sh2HJ-lejjI/AAAAAAAAA1I/XLDq0W6nLSs/s400/vlcsnap-44202.png" alt="" id="BLOGGER_PHOTO_ID_5340573338620038706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;from s30e19, feat the will ferrel's cowbell skit&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-817436259522437741?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/817436259522437741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/diabetes-explosion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/817436259522437741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/817436259522437741'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/diabetes-explosion.html' title='diabetes explosion'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6i3bDi-dZN4/Sh2HJ-lejjI/AAAAAAAAA1I/XLDq0W6nLSs/s72-c/vlcsnap-44202.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-5051839390679615812</id><published>2009-05-25T15:08:00.000-07:00</published><updated>2009-12-24T23:38:21.345-08:00</updated><title type='text'>vim</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6i3bDi-dZN4/ShsYr4qIdNI/AAAAAAAAA08/Mjp1vMZTqUY/s1600-h/vim_finally.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_6i3bDi-dZN4/ShsYr4qIdNI/AAAAAAAAA08/Mjp1vMZTqUY/s400/vim_finally.JPG" alt="" id="BLOGGER_PHOTO_ID_5339888925400397010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think I figured out vim finally, you like press exit to get into insert mode --&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-5051839390679615812?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/5051839390679615812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/vim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5051839390679615812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/5051839390679615812'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/vim.html' title='vim'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6i3bDi-dZN4/ShsYr4qIdNI/AAAAAAAAA08/Mjp1vMZTqUY/s72-c/vim_finally.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-4146213541587558629</id><published>2009-05-24T17:19:00.000-07:00</published><updated>2009-08-03T02:02:34.752-07:00</updated><title type='text'>pikachu</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/ShnsM8VQnQI/AAAAAAAAA0Q/kMzTWwUFb5c/s1600-h/bgb00001.bmp"&gt;&lt;img style="cursor: pointer; width: 160px; height: 144px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/ShnsM8VQnQI/AAAAAAAAA0Q/kMzTWwUFb5c/s400/bgb00001.bmp" alt="" id="BLOGGER_PHOTO_ID_5339558540322315522" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-4146213541587558629?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/4146213541587558629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/pikachu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4146213541587558629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/4146213541587558629'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/pikachu.html' title='pikachu'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6i3bDi-dZN4/ShnsM8VQnQI/AAAAAAAAA0Q/kMzTWwUFb5c/s72-c/bgb00001.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-7336890153006695413</id><published>2009-05-21T08:55:00.000-07:00</published><updated>2009-08-03T02:02:34.761-07:00</updated><title type='text'>distorted</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6i3bDi-dZN4/ShV5xjrZbBI/AAAAAAAAA0I/hlO3k2TeGAk/s1600-h/distorted.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 207px;" src="http://3.bp.blogspot.com/_6i3bDi-dZN4/ShV5xjrZbBI/AAAAAAAAA0I/hlO3k2TeGAk/s400/distorted.JPG" alt="" id="BLOGGER_PHOTO_ID_5338306825615404050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;opengl image viewer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-7336890153006695413?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/7336890153006695413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/distorted.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7336890153006695413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/7336890153006695413'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2009/05/distorted.html' title='distorted'/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6i3bDi-dZN4/ShV5xjrZbBI/AAAAAAAAA0I/hlO3k2TeGAk/s72-c/distorted.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053637267389201020.post-806560384052360101</id><published>2008-11-12T11:46:00.000-08:00</published><updated>2009-12-03T01:44:14.464-08:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6i3bDi-dZN4/SRs0M3ab65I/AAAAAAAAAms/aGRYNVzf70w/s1600-h/21637053-701649.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 334px;" src="http://4.bp.blogspot.com/_6i3bDi-dZN4/SRs0M3ab65I/AAAAAAAAAms/aGRYNVzf70w/s400/21637053-701649.JPG" alt="" id="BLOGGER_PHOTO_ID_5267861584777833362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;the intention is for this to be a code blog but things get crazy sometimes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053637267389201020-806560384052360101?l=poisonforthemind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://poisonforthemind.blogspot.com/feeds/806560384052360101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://poisonforthemind.blogspot.com/2008/11/intention-is-for-this-to-be-code-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/806560384052360101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053637267389201020/posts/default/806560384052360101'/><link rel='alternate' type='text/html' href='http://poisonforthemind.blogspot.com/2008/11/intention-is-for-this-to-be-code-blog.html' title=''/><author><name>zxcvbn</name><uri>http://www.blogger.com/profile/09153095377018353120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://2.bp.blogspot.com/_6i3bDi-dZN4/ShnuNt246YI/AAAAAAAAA0c/9o-_oOlviTQ/S220/bgb00006.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6i3bDi-dZN4/SRs0M3ab65I/AAAAAAAAAms/aGRYNVzf70w/s72-c/21637053-701649.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
