<?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-982929381470443133</id><updated>2011-11-25T11:26:38.674+05:30</updated><category term='web application'/><category term='glibc'/><category term='lambda function'/><category term='html5'/><category term='bugs'/><category term='books'/><category term='gentoo'/><category term='profiler'/><category term='sage'/><category term='competition'/><category term='segmentation fault'/><category term='privacy'/><category term='open source'/><category term='Apple'/><category term='secondary rays'/><category term='loop unrolling'/><category term='ipython'/><category term='chrome'/><category term='firefox'/><category term='pointers'/><category term='povray'/><category term='cracking'/><category term='delhi'/><category term='git'/><category term='valgrind'/><category term='scipy'/><category term='haskell'/><category term='sports'/><category term='crazy idea'/><category term='wish'/><category term='unicode'/><category term='browser wars'/><category term='review'/><category term='rant'/><category term='fraud'/><category term='cpu'/><category term='rigid transformation'/><category term='rasterizer'/><category term='terror'/><category term='parallel speedup'/><category term='mathematica'/><category term='cuda'/><category term='multiprocessing'/><category term='scalability'/><category term='exams'/><category term='memory bug'/><category term='theme'/><category term='opencl'/><category term='going home'/><category term='mumbai'/><category term='hardware accelerated video decoding'/><category term='economy'/><category term='swig bugs'/><category term='fractals'/><category term='swig'/><category term='ffmpeg'/><category term='algorithm'/><category term='gpgpu'/><category term='india'/><category term='webgl'/><category term='c'/><category term='CAS'/><category term='night out'/><category term='chrome os'/><category term='parallel processing'/><category term='gpu'/><category term='isro'/><category term='IIT'/><category term='numpy'/><category term='thread safe'/><category term='parallel bugs'/><category term='intel'/><category term='drivers'/><category term='shaders'/><category term='STL'/><category term='glsl'/><category term='reference'/><category term='unemployment'/><category term='Eclipse'/><category term='optimization'/><category term='dropbox'/><category term='AVR'/><category term='superpc'/><category term='rendering quality'/><category term='web browser'/><category term='ubuntu'/><category term='Suse'/><category term='nvidia'/><category term='compiler'/><category term='x86-64'/><category term='space'/><category term='selinux'/><category term='mmap'/><category term='proxy'/><category term='fastest code'/><category term='scientific calculator'/><category term='polipo'/><category term='democracy'/><category term='javascript'/><category term='ray tracing'/><category term='cache'/><category term='moon'/><category term='debugging'/><category term='quote'/><category term='quaternion'/><category term='blender'/><category term='low power'/><category term='ARM'/><category term='bleeding edge'/><category term='github'/><category term='fedora'/><category term='lua'/><category term='closed source'/><category term='tor'/><category term='OS X'/><category term='cross platform'/><category term='C++'/><category term='compression'/><category term='weird behavior'/><category term='JIT'/><category term='opengl'/><category term='python'/><category term='larrabee'/><category term='tweaking'/><category term='llvm'/><category term='acceleration structure'/><category term='vectorization'/><category term='openmp'/><category term='BFS'/><category term='wave'/><category term='c++11'/><category term='eigen'/><category term='system call'/><category term='arduino'/><category term='linux'/><category term='unsupported'/><category term='pretty pictures'/><category term='portage'/><category term='emacs'/><category term='opensuse'/><category term='ray tracer'/><category term='politics'/><category term='broadband'/><category term='tutorial'/><category term='multithreading'/><category term='prefetch'/><category term='syntax highlighting'/><category term='eye-opener'/><category term='font'/><category term='blog'/><category term='electronic voting'/><category term='Google'/><category term='z buffer'/><category term='object oriented programming'/><category term='cool'/><category term='Bing'/><category term='Crenshaw approach'/><category term='blogger'/><category term='3D'/><category term='texture'/><category term='twitter'/><category term='netbook'/><category term='kernel'/><category term='functional programming'/><category term='search'/><category term='gcc'/><category term='colors'/><category term='wishful thinking'/><category term='amd'/><category term='asciidoc'/><category term='iPad'/><category term='file sync'/><category term='rains'/><category term='cache coherence'/><category term='python extensions'/><title type='text'>Rpg's Corner</title><subtitle type='html'>My thoughts, distilled.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default?start-index=101&amp;max-results=100'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>135</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4648624547189929461</id><published>2011-11-25T11:25:00.001+05:30</published><updated>2011-11-25T11:26:38.683+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Installing Ubuntu fonts in Fedora</title><content type='html'>I &lt;a href="http://rpg-314.blogspot.com/2010/10/mavericks-font.html"&gt;like&lt;/a&gt; the new Ubuntu fonts. &lt;a href="https://www.facebook.com/notes/fossorgmy/danesh-manoharan-install-ubuntu-fonts-on-fedora-16/317061931641388?ref=nf"&gt;Here&lt;/a&gt;'s how to get them working in Fedora.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4648624547189929461?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4648624547189929461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4648624547189929461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4648624547189929461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4648624547189929461'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2011/11/installing-ubuntu-fonts-in-fedora.html' title='Installing Ubuntu fonts in Fedora'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3226564978870799079</id><published>2011-09-12T08:41:00.003+05:30</published><updated>2011-09-12T08:51:03.253+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><category scheme='http://www.blogger.com/atom/ns#' term='CAS'/><category scheme='http://www.blogger.com/atom/ns#' term='mathematica'/><title type='text'>Sage: A first experience</title><content type='html'>I had heard about &lt;a href="http://sagemath.org/"&gt;sage&lt;/a&gt; a while ago. I had figured that I'd give it a try if I needed it over Mathematica and friends. That need arose a short while ago. And I tried using sage for some hybrid symbolic/numerical computation. So, how was it? Read on.&lt;br /&gt;&lt;br /&gt;a) The online sage notebook experience is simply awesome. A very good idea. May be, somebody should do an Android/iOS app for this. It could  be quite useful.&lt;br /&gt;&lt;br /&gt;b) The symbolic manipulation capabilities are decent. Mathematica's are demonstrably better at this time, but the difference I saw was that the expressions were simplified better in Mathematica. This is hardly a exhaustive review, but it wasn't a deal breaker in any way.&lt;br /&gt;&lt;br /&gt;c) I tried evaluating the error function for a complex argument. Sage went &lt;a href="http://trac.sagemath.org/sage_trac/ticket/1173"&gt;poof&lt;/a&gt;. The expression was complicated, so I didn't wan't to get my hands dirty with it. But the milestone is set to be the next version, so it's not that bad.&lt;br /&gt;&lt;br /&gt;Bottom line, Sage is a very good step in a very good direction. But it will be a while before it crosses the reliability threshold. My guess is 3 years with decent amount of funding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3226564978870799079?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3226564978870799079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3226564978870799079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3226564978870799079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3226564978870799079'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2011/09/sage-first-experience.html' title='Sage: A first experience'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4369306027983177583</id><published>2011-08-25T09:28:00.003+05:30</published><updated>2011-08-25T09:49:00.969+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='c++11'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='STL'/><category scheme='http://www.blogger.com/atom/ns#' term='lambda function'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='object oriented programming'/><title type='text'>C++11 : a great addition</title><content type='html'>I have always liked a certain subset of C++. I never cared much for OOP, but I have always liked functional paradigm. The C++ standard has just undergone a major revision and it has now added support for lambda functions.&lt;br /&gt;&lt;br /&gt;Now, C++11 is &lt;span style="font-style: italic;"&gt;almost&lt;/span&gt; my favorite language. It offers precise control over memory, instructions and data structures while almost letting you use functional composition and functional abstraction and offers type inference to boot.&lt;br /&gt;&lt;br /&gt;There a few &lt;a href="http://stackoverflow.com/questions/7169542/why-cant-i-declare-a-struct-variable-inside-a-lambda-in-c0x"&gt;brittle points&lt;/a&gt;, and the new STL still seems to lack a version/variant of reduce operation.&lt;br /&gt;&lt;br /&gt;If only C++ had a garbage collected and interpreted subset ass well :)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4369306027983177583?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4369306027983177583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4369306027983177583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4369306027983177583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4369306027983177583'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2011/08/c11-great-addition.html' title='C++11 : a great addition'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8460688717591477432</id><published>2011-07-19T23:20:00.005+05:30</published><updated>2011-07-19T23:47:51.571+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='openmp'/><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='secondary rays'/><category scheme='http://www.blogger.com/atom/ns#' term='ray tracer'/><category scheme='http://www.blogger.com/atom/ns#' term='rasterizer'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='pretty pictures'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleration structure'/><title type='text'>Writing a ray tracer</title><content type='html'>I have &lt;a href="http://rpg-314.blogspot.com/2011/05/got-my-rasterizer-working.html"&gt;written&lt;/a&gt; earlier about the simple rasterizer I wrote some time ago. Well, I have been feeling somewhat more adventurous of late, and I decided to write a ray tracer. The good news is that it is mostly working. The bad news is that making pretty pictures is more work than fun and messing around with the internals is lots more fun, so nothing worth posting here as yet.&lt;br /&gt;&lt;br /&gt;Things I learnt,&lt;br /&gt;&lt;br /&gt;a) You might need to link with -lgomp with gcc, in addition to -fopenmp, if your code was initially compiled with -c option.&lt;br /&gt;&lt;br /&gt;b) Parallelizing code can make you clear up your understanding of your own code by a lot.&lt;br /&gt;&lt;br /&gt;c) OpenMP rocks. But GPUs rock even more.&lt;br /&gt;&lt;br /&gt;It needs some secondary rays goodness and some more work for it's acceleration structure. I think I'll do the  latter first.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8460688717591477432?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8460688717591477432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8460688717591477432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8460688717591477432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8460688717591477432'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2011/07/writing-ray-tracer.html' title='Writing a ray tracer'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6622862235505770317</id><published>2011-07-19T23:13:00.003+05:30</published><updated>2011-07-19T23:18:28.174+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='rendering quality'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><title type='text'>Text rendering in Firefox 5</title><content type='html'>This was a nice surprise. In FF 3.6, at least on linux, text rendering left a lot to be desired, especially as you zoomed in or out. With Firefox 5, rendering quality is positively cute. With awesome AA. I just keep liking FF more and more.&lt;br /&gt;&lt;br /&gt;At this point, I only miss two things from chrome. Auto translate and H.264 video playback with HTML5.&lt;br /&gt;&lt;br /&gt;Any suggestions?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6622862235505770317?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6622862235505770317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6622862235505770317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6622862235505770317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6622862235505770317'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2011/07/text-rendering-in-firefox-5.html' title='Text rendering in Firefox 5'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-1919341328853811884</id><published>2011-06-26T21:27:00.008+05:30</published><updated>2011-06-26T23:20:17.888+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='selinux'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='tor'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='drivers'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><category scheme='http://www.blogger.com/atom/ns#' term='polipo'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Upgraded to Ubuntu Unity, and I like it</title><content type='html'>I am running Natty with Unity. I am kinda smitten by the new UI Ubuntu has come up with. With gpu acceleration, this thing really flies. &lt;a href="http://www.techdrivein.com/2011/04/31-useful-ubuntu-1104-unity.html"&gt;These shortcuts&lt;/a&gt; are really useful.&lt;br /&gt;&lt;br /&gt;I have upgraded to Firefox 5, and frankly, I am not missing chromium, which is quite surprising, considering &lt;a href="http://rpg-314.blogspot.com/2010/02/chrome-gobbling-up-firefox-users.html"&gt;my experience with Firefox in the past&lt;/a&gt;. A few addons have helped, like omnibar, downthemall, and torbutton helped swing the decision. Firefox is sitting behind polipo, which is good, as I can filter all the nasty ad serving URLs. It helps that I need polipo for tor anyway. I highly recommend tor for anyone who cares about his privacy and free speech online.&lt;br /&gt;&lt;br /&gt;The default nouveau driver was a bit of a pain (I have gt330m), as it kept hanging. Got rid of it and with the new nvidia driver, there is no problem at all.&lt;br /&gt;&lt;br /&gt;There are a few downsides though. The firewall situation needs to be looked at. I had to set selinux in permissive mode, else it wouldn't let me run the nvidia driver.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-1919341328853811884?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/1919341328853811884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=1919341328853811884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1919341328853811884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1919341328853811884'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2011/06/upgraded-to-ubuntu-unity-and-i-like-it.html' title='Upgraded to Ubuntu Unity, and I like it'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3902293448945606005</id><published>2011-05-21T15:06:00.004+05:30</published><updated>2011-05-21T15:30:31.968+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='rasterizer'/><category scheme='http://www.blogger.com/atom/ns#' term='z buffer'/><category scheme='http://www.blogger.com/atom/ns#' term='ray tracing'/><category scheme='http://www.blogger.com/atom/ns#' term='algorithm'/><title type='text'>Got my rasterizer working</title><content type='html'>Long time, no see huh :|&lt;br /&gt;&lt;br /&gt;Anyways, the big news is that I have crossed my rite of passage. See, most people would write a simple ray tracer when they are fooling around with graphics. But I for some reason, felt that writing a rasterizer would be so much cooler. The thing is, this technique is so looked down upon that even the word rasterize not in default Firefox dictionary. Talk about being an outcast. :P&lt;br /&gt;&lt;br /&gt;But, I managed to write it in the end. So here's the obligatory screenshot.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-sMhv4IjuXEs/TdeI_udfJ8I/AAAAAAAAAPY/EUuni30080c/s1600/Screenshot-Untitled%2BWindow.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-sMhv4IjuXEs/TdeI_udfJ8I/AAAAAAAAAPY/EUuni30080c/s400/Screenshot-Untitled%2BWindow.png" alt="" id="BLOGGER_PHOTO_ID_5609102489298085826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It has vertex shaders, pixel shaders, bilinear filtering of rectangular textures (but no mip mapping) and perspective correct interpolation. It still has a few rough edges and sharp corners though. The rasterization process is anything but robust and for some reason, I decided to defer implementing the z buffer itself. Yeah, I am going to hell for this...&lt;br /&gt;&lt;br /&gt;There's a very illuminating story behind the history of z buffer itself. It was discovered by Edward Catmull, who among other things discovered  texturing. In a &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.132.8222&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;review of 10 visible surface determination algorithms&lt;/a&gt; (PDF) by the legendary Ivan Sutherland, it was characterized as ridiculously expensive. And yet, here it is, having virtually displaced everything else.&lt;br /&gt;&lt;br /&gt;Bottom line, amenability to hardware implementation and Moore's law put together can change the cost of an algorithm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3902293448945606005?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3902293448945606005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3902293448945606005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3902293448945606005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3902293448945606005'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2011/05/got-my-rasterizer-working.html' title='Got my rasterizer working'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-sMhv4IjuXEs/TdeI_udfJ8I/AAAAAAAAAPY/EUuni30080c/s72-c/Screenshot-Untitled%2BWindow.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8873091583791080035</id><published>2010-10-12T10:00:00.001+05:30</published><updated>2010-10-12T10:02:03.533+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Maverick's font</title><content type='html'>Just upgraded to Ubuntu Maverick on my work machine. The new font is pretty cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8873091583791080035?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8873091583791080035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8873091583791080035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8873091583791080035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8873091583791080035'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/10/mavericks-font.html' title='Maverick&apos;s font'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6698981719393282600</id><published>2010-10-01T22:28:00.003+05:30</published><updated>2010-10-01T22:37:36.694+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fastest code'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><category scheme='http://www.blogger.com/atom/ns#' term='syntax highlighting'/><title type='text'>Perhaps the best way to paste code in blogger</title><content type='html'>Github Gists.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a simple example&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/602369.js?file=gistfile1.sh"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Syntax highlighting for a gazillion langugaes, forkable, editable, and revisions to boot. What's not to like compared to methods like &lt;a href="http://www.craftyfella.com/2010/01/syntax-highlighting-with-blogger-engine.html"&gt;these&lt;/a&gt;?&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Honestly, I think any dev worth his salt should switch to this method or it's equivalent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6698981719393282600?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6698981719393282600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6698981719393282600' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6698981719393282600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6698981719393282600'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/10/perhaps-best-way-to-paste-code-in.html' title='Perhaps the best way to paste code in blogger'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-159734367956757886</id><published>2010-09-05T15:08:00.002+05:30</published><updated>2010-09-05T15:10:31.571+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Testing out Github Pages</title><content type='html'>Github's really cool. They have some awesome services on top of the already awesome git based version control. I just made a test page to checkout the possibility of hosting a blog over there. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://rpg-314.github.com/"&gt;Link&lt;/a&gt;. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-159734367956757886?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/159734367956757886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=159734367956757886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/159734367956757886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/159734367956757886'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/09/testing-out-github-pages.html' title='Testing out Github Pages'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6582804712179249630</id><published>2010-07-29T21:20:00.002+05:30</published><updated>2010-07-29T21:23:45.514+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>Another compiler in haskell series</title><content type='html'>&lt;a href="http://alephnullplex.appspot.com/blog/view/2010/01/12/lbach-1-introduction"&gt;Here&lt;/a&gt;'s another compiler in Haskell series. This one's based on Crenshaw's famous series, and is quite a a bit simpler than the prior one. But it takes quite a different route as well. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6582804712179249630?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6582804712179249630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6582804712179249630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6582804712179249630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6582804712179249630'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/07/another-compiler-in-haskell-series.html' title='Another compiler in haskell series'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6062949754984613342</id><published>2010-07-23T00:43:00.002+05:30</published><updated>2010-07-23T00:44:32.705+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>Compiler construction series: all of it in Haskell</title><content type='html'>&lt;a href="http://bloggingmath.wordpress.com/2010/01/20/writing-a-compiler-in-haskell-compiler-series-part-i/"&gt;Seems pretty nice to me. &lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6062949754984613342?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6062949754984613342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6062949754984613342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6062949754984613342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6062949754984613342'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/07/compiler-construction-series-all-of-it.html' title='Compiler construction series: all of it in Haskell'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-889817203380195939</id><published>2010-07-17T13:07:00.000+05:30</published><updated>2010-07-17T13:08:15.235+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIT'/><category scheme='http://www.blogger.com/atom/ns#' term='mumbai'/><title type='text'>Dear IITB</title><content type='html'>I'll miss you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-889817203380195939?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/889817203380195939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=889817203380195939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/889817203380195939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/889817203380195939'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/07/dear-iitb.html' title='Dear IITB'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5736082192712594396</id><published>2010-06-15T21:50:00.003+05:30</published><updated>2010-06-15T22:06:51.872+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fastest code'/><category scheme='http://www.blogger.com/atom/ns#' term='loop unrolling'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>GCC: Now you are going to unroll the loop or should I?</title><content type='html'>&lt;span class="Apple-style-span"&gt;A codelet to calculate the log (to base 2) of a number which is known to be a power of 2. &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: pre; font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: pre; font-size: medium;"&gt;&lt;div&gt;unsigned int log2_pow2(unsigned int v)  // 32-bit value to find the log2 of &lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;    static const unsigned int b[] = {0xAAAAAAAA, 0xCCCCCCCC, 0xF0F0F0F0, &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;     0xFF00FF00, 0xFFFF0000};&lt;/div&gt;&lt;div&gt;    register unsigned int r = (v &amp;amp; b[0]) != 0;&lt;/div&gt;&lt;div&gt;    int i;&lt;/div&gt;&lt;div&gt;    for (i = 4; i &gt; 0; i--) // unroll for speed...&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;r |= ((v &amp;amp; b[i]) != 0) &lt;&lt;&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;    return r;&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's see what do we get with GCC 4.4 at O3, &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  400550:	31 c0                	xor    %eax,%eax   400552:	f7 c7 aa aa aa aa    	test   $0xaaaaaaaa,%edi   400558:	0f 95 c0             	setne  %al   40055b:	31 d2                	xor    %edx,%edx   40055d:	f7 c7 00 00 ff ff    	test   $0xffff0000,%edi   400563:	0f 95 c2             	setne  %dl   400566:	31 c9                	xor    %ecx,%ecx   400568:	c1 e2 04             	shl    $0x4,%edx   40056b:	f7 c7 00 ff 00 ff    	test   $0xff00ff00,%edi   400571:	0f 95 c1             	setne  %cl   400574:	c1 e1 03             	shl    $0x3,%ecx   400577:	09 ca                	or     %ecx,%edx   400579:	09 c2                	or     %eax,%edx   40057b:	31 c0                	xor    %eax,%eax   40057d:	f7 c7 f0 f0 f0 f0    	test   $0xf0f0f0f0,%edi   400583:	0f 95 c0             	setne  %al   400586:	c1 e0 02             	shl    $0x2,%eax   400589:	09 c2                	or     %eax,%edx   40058b:	31 c0                	xor    %eax,%eax   40058d:	f7 c7 cc cc cc cc    	test   $0xcccccccc,%edi   400593:	0f 95 c0             	setne  %al   400596:	01 c0                	add    %eax,%eax   400598:	09 d0                	or     %edx,%eax   40059a:	c3                   	retq      40059b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So GCC unrolled the code for us. Nice. But how about this bit of assistance?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;unsigned int log2_pow2_2(unsigned int v)     {     register unsigned int r = (v &amp;amp; 0xAAAAAAAA) != 0;     r |= ((v &amp;amp; 0xFFFF0000) != 0) &lt;&lt;&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shouldn't make much difference, right? Let's ask the GCC gods for their verdict.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  4005a0:	89 f8                	mov    %edi,%eax   4005a2:	89 fa                	mov    %edi,%edx   4005a4:	66 31 c0             	xor    %ax,%ax   4005a7:	83 f8 01             	cmp    $0x1,%eax   4005aa:	19 c0                	sbb    %eax,%eax   4005ac:	81 e2 00 ff 00 ff    	and    $0xff00ff00,%edx   4005b2:	f7 d0                	not    %eax   4005b4:	83 e0 10             	and    $0x10,%eax   4005b7:	83 fa 01             	cmp    $0x1,%edx   4005ba:	89 fa                	mov    %edi,%edx   4005bc:	19 f6                	sbb    %esi,%esi   4005be:	81 e2 f0 f0 f0 f0    	and    $0xf0f0f0f0,%edx   4005c4:	f7 d6                	not    %esi   4005c6:	83 e6 08             	and    $0x8,%esi   4005c9:	83 fa 01             	cmp    $0x1,%edx   4005cc:	89 fa                	mov    %edi,%edx   4005ce:	19 c9                	sbb    %ecx,%ecx   4005d0:	81 e2 cc cc cc cc    	and    $0xcccccccc,%edx   4005d6:	f7 d1                	not    %ecx   4005d8:	83 e1 04             	and    $0x4,%ecx   4005db:	83 fa 01             	cmp    $0x1,%edx   4005de:	19 d2                	sbb    %edx,%edx   4005e0:	f7 d2                	not    %edx   4005e2:	83 e2 02             	and    $0x2,%edx   4005e5:	81 e7 aa aa aa aa    	and    $0xaaaaaaaa,%edi   4005eb:	40 0f 95 c7          	setne  %dil   4005ef:	40 0f b6 ff          	movzbl %dil,%edi   4005f3:	09 f8                	or     %edi,%eax   4005f5:	09 f0                	or     %esi,%eax   4005f7:	09 c8                	or     %ecx,%eax   4005f9:	09 d0                	or     %edx,%eax   4005fb:	c3                   	retq      4005fc:	0f 1f 40 00          	nopl   0x0(%rax)  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gee, that was unexpected. The code size grew. And is probably slower because of it. I do not claim to know much of non-SSEx assembly, but the manual unrolling seems to produce worse code. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Who knew? :|&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5736082192712594396?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5736082192712594396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5736082192712594396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5736082192712594396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5736082192712594396'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/06/gcc-now-you-are-going-to-unroll-loop-or.html' title='GCC: Now you are going to unroll the loop or should I?'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7718764568132131912</id><published>2010-06-03T12:16:00.001+05:30</published><updated>2010-06-03T12:18:59.893+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='cache coherence'/><category scheme='http://www.blogger.com/atom/ns#' term='quote'/><category scheme='http://www.blogger.com/atom/ns#' term='scalability'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><title type='text'>Quote of the day.</title><content type='html'>"Cache coherence certainly can scale -- for codes designed to scale on it. This generally means codes designed to not use coherence very much"&lt;br /&gt;&lt;br /&gt;-Greg Pfister&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.realworldtech.com/forums/index.cfm?action=detail&amp;amp;id=110473&amp;amp;threadid=110430&amp;amp;roomid=2"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7718764568132131912?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7718764568132131912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7718764568132131912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7718764568132131912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7718764568132131912'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/06/quote-of-day.html' title='Quote of the day.'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-2553131523027959172</id><published>2010-05-26T23:28:00.002+05:30</published><updated>2010-05-26T23:32:48.052+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>Emacs and unicode</title><content type='html'>Of late, my Emacs had been throwing up at the quote marks in the compile window. &lt;a href="http://blog.jonnay.net/archives/820-Emacs-and-UTF-8-Encoding.html"&gt;Here&lt;/a&gt;'s how to fix it. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;BTW, I didn't need the &lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; font-size: x-small; "&gt;clipboard-coding-system&lt;/span&gt; bit. My emacs works fine without it. &lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-2553131523027959172?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/2553131523027959172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=2553131523027959172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2553131523027959172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2553131523027959172'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/05/emacs-and-unicode.html' title='Emacs and unicode'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6257341870268822551</id><published>2010-05-07T15:02:00.001+05:30</published><updated>2010-05-07T15:04:11.203+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Eclipse with Arduino</title><content type='html'>&lt;a href="http://www.chipkin.com/articles/using-eclipse-with-arduino-duemilanove"&gt;This&lt;/a&gt; is a very good guide.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6257341870268822551?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6257341870268822551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6257341870268822551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6257341870268822551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6257341870268822551'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/05/eclipse-with-arduino.html' title='Eclipse with Arduino'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7125196275737863686</id><published>2010-05-04T12:46:00.003+05:30</published><updated>2010-05-04T14:22:38.733+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='india'/><category scheme='http://www.blogger.com/atom/ns#' term='cracking'/><category scheme='http://www.blogger.com/atom/ns#' term='electronic voting'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><category scheme='http://www.blogger.com/atom/ns#' term='democracy'/><title type='text'>Indian electronic voting machines are vulnerable to fraud</title><content type='html'>&lt;a href="http://indiaevm.org/evm_tr2010.pdf"&gt;Full paper &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=ZlCOj1dElDY"&gt;Video&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Broadly speaking, I see three problems.&lt;br /&gt;&lt;br /&gt;1) Belief in the magic of security through obscurity.&lt;br /&gt;&lt;br /&gt;2) Near-total absence of understanding of electronic technology and it's security related aspects.&lt;br /&gt;&lt;br /&gt;3) Confusing the comfort of Powerpoint presentations for a reliable and robust defence against hardcore cracking by motivated and well-resourced individuals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7125196275737863686?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7125196275737863686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7125196275737863686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7125196275737863686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7125196275737863686'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/05/indian-evms-are-vulnerable-to-fraud.html' title='Indian electronic voting machines are vulnerable to fraud'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5817138239152071860</id><published>2010-04-30T14:38:00.003+05:30</published><updated>2010-04-30T14:41:15.050+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web application'/><category scheme='http://www.blogger.com/atom/ns#' term='ipython'/><category scheme='http://www.blogger.com/atom/ns#' term='scipy'/><category scheme='http://www.blogger.com/atom/ns#' term='scientific calculator'/><title type='text'>Web 2.0 Calc</title><content type='html'>&lt;a href="http://web2.0calc.com/"&gt;A really nice web app&lt;/a&gt;. Very useful at times when you don't have a physical calculator at hand and the problem is too small to fire up an ipython/scipy console.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5817138239152071860?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5817138239152071860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5817138239152071860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5817138239152071860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5817138239152071860'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/04/web-20-calc.html' title='Web 2.0 Calc'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-2403725891424663504</id><published>2010-04-28T13:15:00.004+05:30</published><updated>2010-04-28T13:26:58.062+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Crenshaw approach'/><category scheme='http://www.blogger.com/atom/ns#' term='bleeding edge'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>Build a compiler series</title><content type='html'>A great 15 part series &lt;a href="http://compilers.iecc.com/crenshaw/"&gt;here&lt;/a&gt;. Definitely worth bookmarking. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The approach taken is an interesting one. Ruthlessly eliminate features. Relentlessly punt to user. Just focus on building a working, complete - and functionally correct - baseline. By functionally correct, I mean it should correctly - and in all cases completely - raise the red flag whenever it encounters anything illegal according the syntax or semantics. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Perhaps it deserves to be given a name. How about "The Crenshaw approach"?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-2403725891424663504?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/2403725891424663504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=2403725891424663504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2403725891424663504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2403725891424663504'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/04/build-compiler-series.html' title='Build a compiler series'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5771135914194492646</id><published>2010-04-10T15:57:00.001+05:30</published><updated>2010-04-10T16:00:16.865+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='web application'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='web browser'/><category scheme='http://www.blogger.com/atom/ns#' term='cross platform'/><title type='text'>Apple's latest</title><content type='html'>&lt;a href="http://daringfireball.net/2010/04/iphone_agreement_bans_flash_compiler"&gt;Have a look.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Great job, Apple. HTML5 can't land here fast enough. I wonder why then, they seem to be interested in HTML5 so much by their participation in WHATWG.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5771135914194492646?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5771135914194492646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5771135914194492646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5771135914194492646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5771135914194492646'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/04/apples-latest.html' title='Apple&apos;s latest'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-1437682100510821543</id><published>2010-04-02T20:52:00.001+05:30</published><updated>2010-04-02T20:54:36.949+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='unemployment'/><category scheme='http://www.blogger.com/atom/ns#' term='eye-opener'/><category scheme='http://www.blogger.com/atom/ns#' term='economy'/><title type='text'>An eye opener...</title><content type='html'>&lt;span class="Apple-style-span" style="line-height: 31px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;a href="http://www.nytimes.com/2010/04/03/business/economy/03jobs.html?partner=rss&amp;amp;emc=rss"&gt;Have a look here. &lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;"Indeed, the government predicts the jobless rate will average 9.8 percent next year and 8.4 percent in 2012 before falling to 5 percent in 2016."&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 31px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 31px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;~3 years to reduce unemployment by ~1%. Really eye opening. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-1437682100510821543?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/1437682100510821543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=1437682100510821543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1437682100510821543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1437682100510821543'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/04/eye-opener.html' title='An eye opener...'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7573353061933680657</id><published>2010-03-28T19:54:00.005+05:30</published><updated>2010-03-28T21:20:48.610+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='reference'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='weird behavior'/><title type='text'>Python reference management</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;I ran into a crazy Python reference management behavior today. I wanted to do&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;x=y=[None for i in xrange(10)]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;and then add elements to both x and y separately. Basically, wanted to avoid creating an empty list and then append stuff to each. No particular reason, just for the heck of it. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Turns out there is some kind of weird reference management policy in Python, which it so happens that I don't have the time to dive into right now. What this does is that it couples x to y, in such a way that changing elements of one affects the other. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;So, the solution is to change the above line into&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;x=[None for i in xrange(10)]&lt;/div&gt;&lt;div&gt;y=[None for i in xrange(10)]&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7573353061933680657?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7573353061933680657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7573353061933680657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7573353061933680657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7573353061933680657'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/03/python-reference-counting.html' title='Python reference management'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-434732560461400471</id><published>2010-03-22T19:36:00.002+05:30</published><updated>2010-03-22T19:49:38.179+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fastest code'/><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='x86-64'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='unsupported'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>x86-64 unsupported.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;a href="http://forums.amd.com/forum/textthread.cfm?catid=373&amp;amp;threadid=120322&amp;amp;filtmsgid=1067216"&gt;Sorry we don't support the X86_64 build environment (we never use it  internally).&lt;/a&gt;  &lt;/span&gt;An AMD employee, who presumably works on open64, in Dec 2009.&lt;br /&gt;&lt;br /&gt;I am not sure whether to laugh or cry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-434732560461400471?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/434732560461400471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=434732560461400471' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/434732560461400471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/434732560461400471'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/03/x86-64-unsupported.html' title='x86-64 unsupported.'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7149873997896619603</id><published>2010-03-21T21:15:00.001+05:30</published><updated>2010-03-21T21:17:10.729+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>New/old style classes in Python</title><content type='html'>I just got bitten by the new/old style classes in Python. :P&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/54867/old-style-and-new-style-classes-in-python"&gt;Here&lt;/a&gt;'s a reasonably good description/discussion/summary/...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7149873997896619603?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7149873997896619603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7149873997896619603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7149873997896619603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7149873997896619603'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/03/newold-style-classes-in-python.html' title='New/old style classes in Python'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-2063384364274035465</id><published>2010-03-18T23:01:00.004+05:30</published><updated>2010-04-01T13:18:10.412+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='webgl'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='web browser'/><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='fastest code'/><category scheme='http://www.blogger.com/atom/ns#' term='web application'/><category scheme='http://www.blogger.com/atom/ns#' term='JIT'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware accelerated video decoding'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><title type='text'>GPU acceleration in IE 9</title><content type='html'>&lt;a href="http://www.anandtech.com/show/2966/internet-explorer-9-platform-preview-investigated/3"&gt;This&lt;/a&gt; is definitely something exciting.&lt;br /&gt;&lt;br /&gt;It's nice to see GPU acceleration coming to consumer apps other than games. :) In the next couple of years, we can expect pervasive support for fast texturing and drawing in web browsers. Even though it leverages just the classic "drawing lines and triangles" bit of gpu's and not their emerging compute side, with imminent merger of cpu's and gpu's, I think gpu's might have found their killer app for the non-gaming folks. With on-die gpu's and faster JS, I think web apps are going to get quite cool, especially in the hands of competent web developers.&lt;br /&gt;&lt;br /&gt;At any rate, it seems doubtful that web developers will stress even the lamest gpu's of today. They are just &lt;span style="font-style: italic;"&gt;too &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ridiculously&lt;/span&gt;&lt;span style="font-style: italic;"&gt; fast&lt;/span&gt; for these kind of workloads. And JS is going to be dog slow compared to C++ for ages to come. Unless, of course, somebody hires &lt;a href="http://luajit.org/index.html"&gt;Mike Pall&lt;/a&gt; to speed up their JS engines, at which point all bets are off. :)&lt;br /&gt;&lt;br /&gt;More generally, better web standards support from IE is great to see.&lt;br /&gt;&lt;br /&gt;From the hardware accelerated video decoding point of view, I think Firefox going to be a loser here. H.264 seems to have won the web video codec war and so far Mozilla's policy has been to avoid it like plague.&lt;br /&gt;&lt;br /&gt;Overall, these are exciting times for all those who browse the web, as your vehicle is about to get a serious overhaul.&lt;br /&gt;&lt;br /&gt;I have only one question with that article. Since when has Apple  solicited &lt;span style="font-style: italic;"&gt;any&lt;/span&gt; kind of consumer  feedback in the design phase for any of their products?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-2063384364274035465?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/2063384364274035465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=2063384364274035465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2063384364274035465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2063384364274035465'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/03/gpu-acceleration-in-ie-9.html' title='GPU acceleration in IE 9'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3066926094223791656</id><published>2010-03-08T12:36:00.004+05:30</published><updated>2010-03-08T12:42:24.594+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><category scheme='http://www.blogger.com/atom/ns#' term='web browser'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Swiftfox</title><content type='html'>Swiftfox, an optimized build of Firefox for Linux is pretty good with speed. I am running the 64 bit build of 3.6 and it's cpu and mem usage seems pretty good to me. They have prebuilt binaries, but only for Ubuntu.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://getswiftfox.com/"&gt;Check it out&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3066926094223791656?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3066926094223791656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3066926094223791656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3066926094223791656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3066926094223791656'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/03/swiftfox.html' title='Swiftfox'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-569733586339641414</id><published>2010-02-28T21:28:00.001+05:30</published><updated>2010-02-28T21:30:08.141+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='python extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='numpy'/><title type='text'>Porting numpy to Python 3 : STATUS</title><content type='html'>&lt;a href="http://www.mail-archive.com/numpy-discussion@scipy.org/msg23923.html"&gt;This&lt;/a&gt; is good news.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-569733586339641414?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/569733586339641414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=569733586339641414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/569733586339641414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/569733586339641414'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/02/numpys-python-3-port.html' title='Porting numpy to Python 3 : STATUS'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3663972698755114483</id><published>2010-02-19T15:53:00.002+05:30</published><updated>2010-02-19T15:59:02.297+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='browser wars'/><category scheme='http://www.blogger.com/atom/ns#' term='web browser'/><title type='text'>Chromium begins to suck :(</title><content type='html'>I had no idea it will come so close to &lt;a href="http://rpg-314.blogspot.com/2010/02/chrome-gobbling-up-firefox-users.html"&gt;my praise for Chromium&lt;/a&gt; over Firefox. But it has happened. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I use the Chromium daily PPA for Ubuntu. And for a few days now, Chromium has been showing abnormally high CPU usage. It basically locks up a core, and when you have only a dual core machine, things get bad and ugly. The only saving grace is that I can shutdown chromium rather painlessly as usually, only one process is responsible for the CPU lockdown,. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My cribs against Firefox still stand, but a quirky browser is better than a useless browser. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Back to Firefox then, :|&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3663972698755114483?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3663972698755114483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3663972698755114483' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3663972698755114483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3663972698755114483'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/02/chromium-begins-to-suck.html' title='Chromium begins to suck :('/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-690696240555886024</id><published>2010-02-08T23:58:00.002+05:30</published><updated>2010-02-09T00:01:14.276+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='cool'/><category scheme='http://www.blogger.com/atom/ns#' term='theme'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>Emacs theme based customization</title><content type='html'>Many softwares today ofter theme support to increase aesthetic attractiveness. &lt;a href="http://techlogbook.wordpress.com/2008/04/03/changing-emacs-color-theme/"&gt;Here's&lt;/a&gt; a good way to get it done in &lt;a href="http://rpg-314.blogspot.com/2009/08/is-it-just-me-or-emacs-23-one-that.html"&gt;my favorite editor&lt;/a&gt;, emacs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-690696240555886024?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/690696240555886024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=690696240555886024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/690696240555886024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/690696240555886024'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/02/emacs-theme-based-customization.html' title='Emacs theme based customization'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5559352726313188310</id><published>2010-02-07T18:56:00.004+05:30</published><updated>2010-02-07T18:59:50.582+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='Bing'/><category scheme='http://www.blogger.com/atom/ns#' term='web application'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='web browser'/><category scheme='http://www.blogger.com/atom/ns#' term='multiprocessing'/><title type='text'>Chrome gobbling up Firefox users</title><content type='html'>&lt;a href="http://arstechnica.com/microsoft/news/2010/02/ie8-chrome-have-most-momentum-in-browser-wars.ars"&gt;This&lt;/a&gt; is an interesting bit of news.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Overall, Firefox seems to have stalled while Chrome is growing. Amongst Ars Technica users, IE and Firefox are losing share to Safari and Chrome. A 14% share amongst a tech-savvy community within a year of it's public unveiling is good by any standards. At this rate, on this website atleast, by the end of summer, Chrome would be in the number 2 position.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While IE's decay is hardly unsurprising, the loss of mind share amongst a savvy community does not bode well for Firefox. I have been a chrome &lt;a href="http://rpg-314.blogspot.com/2009/07/chrome-on-fedora-11-64-bit.html"&gt;convert&lt;/a&gt; for a long time now. I was also unaware of the general stall in Firefox's growth&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Speaking about overall internet aware community is pretty hard. After all some 20% of IE users are still using IE6. :P Why did I switch over to Chrome? Well actually I use the non trademarked, third party provided builds, so it is probably more accurate to call it Chromium.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Firefox has always been pretty good with it's rendering accuracy. FF2 and 3 were pretty good in this regard. However, where they really messed up was Javascript speed and tab isolation. All versions of FF so far have been a single process design and it used to lock up with many tabs/heavy javascript often. Many times, it would be just a single bad tab taking down the entire browser. The only way out was to kill the entire browser itself, losing your entire session.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The memory usage was another problem. I use my browsers for long periods of time often opening lots of tabs and the closing them and this usage cycle repeats often. All through this, FF's memory consumption keeps increasing due to memory fragmentation. I have seen &lt;i&gt;a single Gmail tab&lt;/i&gt; use up more than 300 MB of memory after a long period of usage. In FF 3 and earlier, it was pretty common after just a couple of such usage cycles to have a single tab use up about 200 MB memory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With these problems at hand, I switched over to Chromium for it's speed and scalability under heavy loads. For the most part, the rendering was fine but it did have &lt;a href="http://rpg-314.blogspot.com/2009/07/no-chrome-for-me.html"&gt;occasional&lt;/a&gt; rendering SNAFU's. Within a couple of months they were sorted out too. It's not like Chromium &lt;i&gt;never&lt;/i&gt; jams up. It does. But the failure rate is easily an order of magnitude less that FF3. FF3.5 has, for the most part, has competitive JS performance and the lock up issues occur much less frequently. I haven't looked at FF3.6 yet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With those two bugbears off it's back, what is holding FF back for me? In no particular order, they are as follows.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, it wastes a lot of window space, which Chromium reuses for actual web pages. The rest of browser window is unused 99% of the time, why waste screen real estate for the 1% case.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Second, it does not, yet, have flexible tab manipulation. By that, I mean easy (drag-and-drop) shuffling of tabs across browser windows. May be it is already there in FF and I don't know how to use it. For me, it is the browser's equivalent of multiple desktops in Linux world.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Third, the first option when you right click on a link is 'open in new tab' in Chromium. Juggling multiple browser windows is clumsy, which is why we have moved on to tabbed browsing today. Then what is the point of having 'open in new window' as the first option in right-click menus?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fourth, Chromium's integrated address and search bar is enormously useful. It suits my browsing style so much that I positively &lt;b&gt;detest&lt;/b&gt; the split bars in all other browsers today. I am not going back to any other browser if it does not have this feature.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fifth, Chromium's another useful feature (largely overlooked by the competition) is that when you close off a tab, the rest of the tabs do not appropriate the whole horizontal window space immediately. There is a small pause, which is very useful in closing adjacent tabs, as the next tab's cross button smoothly slides into the now-closed tab's cross button's position. Try closing many tabs with your mouse in FF. You'll often have to move your pointer as you close off tabs. This is a big irritant for my daily use.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Which browser I am gonna be using in the future? Chromium, definitely. It won over FF because it was better in many (but not all) regards. Today it is better in all but one. No DownThemAll :(. I should mention that I didn't use many FF extensions. The one that I like (a lot) is DownThemAll. Sometimes, I often start up FF just to use this. But that's pretty much it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's the same situation with Google vs Bing. Initially people switched over to Google because it was better than everyone else in search. Now MS/Bing has been trying hard to compete with Google. And at the moment it is almost as good as Google. But it won't gain market/mind share until it becomes better than Google. And I won't go back to FF until it becomes better that Chromium.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On a side note, it appears that Ubuntu does not upgrade packages in it's update repositories. Although Ubuntu 9.10 has been keeping my FF updated with all the security and other bug fixes, it has not updated my FF 3.5 to 3.6. Apparently, it is their policy to provide feature updates in the next distribution release only. I like Fedora more on this count. :P&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5559352726313188310?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5559352726313188310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5559352726313188310' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5559352726313188310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5559352726313188310'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/02/chrome-gobbling-up-firefox-users.html' title='Chrome gobbling up Firefox users'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4420343721292613608</id><published>2010-02-07T00:37:00.005+05:30</published><updated>2010-02-07T00:48:41.078+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='python extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='parallel processing'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='multiprocessing'/><title type='text'>Semi-rant against python multiprocessing module</title><content type='html'>Go &lt;a href="http://code.google.com/p/mpmath/issues/detail?id=88"&gt;here&lt;/a&gt;. And now look at issue 13 in that bug track. Or just have a look at &lt;a href="http://code.google.com/p/python-multiprocessing/issues/detail?id=6"&gt;this&lt;/a&gt;. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is bad news. The unpicklability of lambdas has forced me to make some ugly changes to the parallel code I was using to drive my python extensions. I really-really wish it was doable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For a while,  I have been thinking that use of python's multiprocessing module to parallelize your C extensions akin to solving the problem at the wrong abstraction level. This nails it. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OTOH, opencl has a wonderful parallelization and synchronization model. In future, I am looking to write OCL code only for compute intensive tasks. Implementations from AMD and nvidia are out of beta, but they are immature atm. Intel is missing in action. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I expect it will take them about a year more to mature. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4420343721292613608?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4420343721292613608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4420343721292613608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4420343721292613608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4420343721292613608'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/02/semi-rant-against-python.html' title='Semi-rant against python multiprocessing module'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-1670447751735808911</id><published>2010-01-28T23:13:00.004+05:30</published><updated>2010-01-28T23:26:52.009+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web application'/><category scheme='http://www.blogger.com/atom/ns#' term='webgl'/><category scheme='http://www.blogger.com/atom/ns#' term='web browser'/><title type='text'>WebGL : updates</title><content type='html'>The &lt;a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html"&gt;draft spec&lt;/a&gt; is out. And &lt;a href="http://learningwebgl.com/blog/"&gt;here&lt;/a&gt;'s a great place to learn more about it. Looks like I'll be tempted into learning web programming and JS after all. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-1670447751735808911?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/1670447751735808911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=1670447751735808911' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1670447751735808911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1670447751735808911'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/01/webgl-updates.html' title='WebGL : updates'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-2946359874501204408</id><published>2010-01-28T23:10:00.003+05:30</published><updated>2010-01-28T23:13:14.099+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Apple iPad</title><content type='html'>Meh....&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The concept has potential. But this iteration is bloody useless for my purposes. Let's hope Apple can do much better in the future versions.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-2946359874501204408?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/2946359874501204408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=2946359874501204408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2946359874501204408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2946359874501204408'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/01/apple-ipad.html' title='Apple iPad'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8376662695567838759</id><published>2010-01-28T22:49:00.004+05:30</published><updated>2010-01-28T23:10:36.483+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Book Search - a personal experience</title><content type='html'>I have naturally been excited at the prospect of having all, (well, almost all) of the world's books scanned and made full text search searchable, with Google-level smarts in them.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was kind of indifferent to the legal battle going on (go &lt;a href="http://news.bbc.co.uk/2/hi/technology/8484689.stm"&gt;here&lt;/a&gt; for an update on that). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A few days ago, I had a profoundly useful experience with Google Books. I came across a solution to a problem I have been tackling (for a little hobby of mine) for a long time now. I had searched long and hard for it when I was actively working on it, but couldn't make much progress. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And then, a few days ago, when I gave it another shot, ~70% of the solution turned up in a book in Google Books. I had a look at the book title and author, and voila, a copy of it was available in my university library. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had long thought that perhaps nobody had tried to tackle this before so a lot of heavy lifting would have to be done. But Google Books saved the day. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Which is why now I am *strongly* in favor of allowing the proposed deal to go through. I urge all the concerned decision makers to let this this wonderful thing happen. Newton stood on the shoulders of giants. Over the last ~350 years, we have accumulated the knowledge and the technology to let even folks like me stand on Mount Everest of human knowledge and make useful contributions, in whatever small way. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As for the various concerns, I have just one thing to say. Google made all the investment in technology, money, risk and effort. They have every right to milk it fwiw. However, I have just one quib. If exclusivity granted to Google were junked, it would be a Great Leap Forward for the entire humanity. In a really good way. After all, all of us stand to gain from the competition between search engines. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8376662695567838759?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8376662695567838759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8376662695567838759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8376662695567838759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8376662695567838759'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/01/google-book-search-personal-experience.html' title='Google Book Search - a personal experience'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-9099706475777328448</id><published>2010-01-26T16:47:00.003+05:30</published><updated>2010-01-26T16:53:33.768+05:30</updated><title type='text'>The way it's meant to be seen.</title><content type='html'>Saw Avatar. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In IMAX 3D. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It rocks. :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Apparently, many people &lt;a href="http://en.wikipedia.org/wiki/List_of_highest-grossing_films#Worldwide_highest-grossing_films"&gt;agree&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No really, it changes the way movies-are-meant-to-be-seen. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-9099706475777328448?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/9099706475777328448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=9099706475777328448' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/9099706475777328448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/9099706475777328448'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2010/01/way-its-meant-to-be-seen.html' title='The way it&apos;s meant to be seen.'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8214049931889944881</id><published>2009-12-20T18:59:00.002+05:30</published><updated>2009-12-20T19:05:43.082+05:30</updated><title type='text'>How to screw the Avatar 3D experience and alienate customers</title><content type='html'>How exactly might one go about doing that? After all, it is a James Cameron's MASTERPIECE, which will redefine CGI forever, a worthy sequel to Titanic. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's how Odeon, Connaught Place, a proud member of Anil Ambani's empire went about it. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You have a cinema screen with totally screwed up contrast ratio, color range that makes ugly cam prints look good and a sound system worse than a cheap pair of earphones. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And you charge people 200/300 bucks for it. Not to mention the 10x priced food to go with it. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;:(&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;:(&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8214049931889944881?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8214049931889944881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8214049931889944881' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8214049931889944881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8214049931889944881'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/12/how-to-screw-avatar-3d-experience-and.html' title='How to screw the Avatar 3D experience and alienate customers'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4289002113411622187</id><published>2009-11-01T23:42:00.003+05:30</published><updated>2009-11-01T23:50:15.319+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='mmap'/><category scheme='http://www.blogger.com/atom/ns#' term='python extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='eigen'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='numpy'/><title type='text'>Mmap-ing temporary files</title><content type='html'>There is a cool way to allocate memory without actually doing malloc. It uses temporary files. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's how to do it,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) Make a temporary file, and then use fileno() to get it's file descriptor. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) Seek to the the end of the region which you want mmap-ed and the write a dummy data (just a  "")  to make the file of that size&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) Actually mmap this file with this size itself. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why bother with all this, you ask. It can be useful to inter-operate between C land and numpy while sharing memory while avoiding memory leaks. This can be achieved by using numpy.memmap class and then passing in the numpy array to obtain the pointer. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This will in general need some amount of reworking in your library's memory allocation routine, but avoids the troubles associated with making sure that the C object is deallocated after the associated numpy  object is freed. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4289002113411622187?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4289002113411622187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4289002113411622187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4289002113411622187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4289002113411622187'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/11/mmap-ing-temporary-files.html' title='Mmap-ing temporary files'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-1073050381975172527</id><published>2009-10-31T13:00:00.002+05:30</published><updated>2009-10-31T13:02:44.910+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>I wave, you wave, we all wave</title><content type='html'>I just got an invite for Google Wave, but there aren't many people around at the moment. Also I can't see any invite other folks link either. Not bad for 100th post, eh..?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-1073050381975172527?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/1073050381975172527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=1073050381975172527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1073050381975172527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1073050381975172527'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/10/i-wave-you-wave-we-all-wave.html' title='I wave, you wave, we all wave'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4191276730295478864</id><published>2009-10-27T23:17:00.003+05:30</published><updated>2009-10-27T23:25:37.251+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Tweeting from python</title><content type='html'>Stumbled across &lt;a href="http://code.google.com/p/python-twitter/"&gt;this&lt;/a&gt;. Really cool. Now I can send myself a private tweet to keep track of my long running jobs, or just about any damn thing. I don't have to be present at the keyboard to monitor the progress for this. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The only problem, is &lt;a href="http://code.google.com/p/python-twitter/issues/detail?id=28"&gt;this&lt;/a&gt;. No proxy support, no.... :(&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hopefully, it'll materialize soon. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4191276730295478864?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4191276730295478864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4191276730295478864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4191276730295478864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4191276730295478864'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/10/tweeting-from-python.html' title='Tweeting from python'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-1070919196704623082</id><published>2009-10-24T19:49:00.003+05:30</published><updated>2009-10-24T19:54:31.908+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='BFS'/><category scheme='http://www.blogger.com/atom/ns#' term='python extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='parallel processing'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='parallel speedup'/><category scheme='http://www.blogger.com/atom/ns#' term='multiprocessing'/><title type='text'>Parallel nirvana on the cheap</title><content type='html'>I just had a production run for &lt;a href="http://rpg-314.blogspot.com/2009/10/looks-like-i-did-it.html"&gt;this&lt;/a&gt;, it took 48 hours. Now time for some parallel goodness from python side. :) So, after much experimentation and frustration, here is a great &lt;a href="http://docs.python.org/library/multiprocessing.html"&gt;module&lt;/a&gt;, and here is some great &lt;a href="http://bugs.python.org/issue5000"&gt;advice&lt;/a&gt;. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, you can get it in C/C++ land too, just use &lt;a href="http://randomscribblepad.blogspot.com/2009/06/foray-into-openmp.html"&gt;this&lt;/a&gt;. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-1070919196704623082?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/1070919196704623082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=1070919196704623082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1070919196704623082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1070919196704623082'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/10/parallel-nirvana-on-cheap.html' title='Parallel nirvana on the cheap'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4920832664389447187</id><published>2009-10-17T20:31:00.006+05:30</published><updated>2009-10-17T20:50:52.188+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ARM'/><category scheme='http://www.blogger.com/atom/ns#' term='webgl'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome os'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='eigen'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='cpu'/><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware accelerated video decoding'/><category scheme='http://www.blogger.com/atom/ns#' term='netbook'/><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><title type='text'>Tegra2 netbooks</title><content type='html'>It seems Tegra2 based netbooks will come out next year. If it has a dual core ARM Cortex A9, running at atleast 1.5 GHz, it'll probably be faster than my present laptop in CPU power. If it has a GPU based on the 9400M chipset, it'll be faster than the gpu in my laptop too, while supporting CUDA, OpenGL 3.2, OpenCL 1.1, WebGL etc. Not to mention that it'll have dedicated hardware for video decode acceleration as well. Tegra1 devices are supposed to be capable of playing back HD video for over 10 hours on a single battery charge. Hell, if this thing can give me 6 hours of HD video playback, I am gonna love it. On a smaller process, it &lt;b&gt;should&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; get &lt;/span&gt;&lt;/b&gt;more power efficient as well, but that is probably asking for too much. Considering the amount of integration it has, a netbook based on it will likely be cheaper as well... :) :)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If this thing comes with 2GB ram, then I am definitely gonna pick one up. With Chrome OS, it could prove mighty useful as well. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4GB ram is highly unlikely since ARM doesn't have a 64 bit CPU core out as yet, AFAIK. But Tegra3, :D&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So my wishlist for Tegra2 would be, &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Dual core ARM Cortex A9 with NEON at 2GHz (it'll be fun to write an vector backend for eigen on ARM)&lt;/div&gt;&lt;div&gt;2. 9400M GPU&lt;/div&gt;&lt;div&gt;3. hardware accelerated video decode for H.264, VC1, MPEG-4, DivX&lt;/div&gt;&lt;div&gt;4. 2GB RAM&lt;/div&gt;&lt;div&gt;5. minimum 6 hour battery life while playing 1080p HD video&lt;/div&gt;&lt;div&gt;6. nVidia supporting Chrome OS on it. (Let's hope Chrome OS will come with some nice hacking tools with it too, or atleast there will be some community support around building distributions that allow hacking it.)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4920832664389447187?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4920832664389447187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4920832664389447187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4920832664389447187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4920832664389447187'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/10/tegra2-netbooks.html' title='Tegra2 netbooks'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8595401249847544245</id><published>2009-10-16T16:24:00.003+05:30</published><updated>2009-10-16T16:29:11.347+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='colors'/><category scheme='http://www.blogger.com/atom/ns#' term='tweaking'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Getting colors in git output on opensuse 11.1</title><content type='html'>I just installed opensuse 11.1 on my lab machine. Git was behaving very oddly here, displaying color codes instead of color-ed output with git-diff and other commands. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A bit of googling later, I found &lt;a href="http://www.xcombinator.com/2008/07/23/mac-os-x-color-showing-escwhatever-for-git-diff-colors-and-more/"&gt;this&lt;/a&gt;, exactly the same issue, but on Mac OS X. It was useful to me. Problem fixed. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8595401249847544245?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8595401249847544245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8595401249847544245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8595401249847544245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8595401249847544245'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/10/getting-colors-i-git-output-on-opensuse.html' title='Getting colors in git output on opensuse 11.1'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6902141359201300430</id><published>2009-10-11T22:27:00.003+05:30</published><updated>2009-10-11T22:31:07.896+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='cpu'/><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='larrabee'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>Broad comparison of Larrabee and AMD and nVidia GPU's</title><content type='html'>Jawed, from B3D, in an excellent &lt;a href="http://forum.beyond3d.com/showpost.php?p=1346076&amp;amp;postcount=775"&gt;post&lt;/a&gt; describes the broad architectural features of Larrabee and GPU's from nVidia and AMD. Worth a read for anyone who is interested in high performance hardware of tomorrow and for those who are looking to tap into the cheap teraflops of these beasts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6902141359201300430?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6902141359201300430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6902141359201300430' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6902141359201300430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6902141359201300430'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/10/broad-comparison-of-larrabee-and-amd.html' title='Broad comparison of Larrabee and AMD and nVidia GPU&apos;s'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4647703639270636284</id><published>2009-10-07T12:34:00.004+05:30</published><updated>2009-10-07T12:40:31.911+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fastest code'/><category scheme='http://www.blogger.com/atom/ns#' term='BFS'/><category scheme='http://www.blogger.com/atom/ns#' term='swig bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='python extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='swig'/><category scheme='http://www.blogger.com/atom/ns#' term='eigen'/><title type='text'>Looks like I did it</title><content type='html'>It seems like that I have managed to graft on a &lt;a href="http://rpg-314.blogspot.com/2009/09/benefits-of-flattermore-balanced.html"&gt;few changes&lt;/a&gt; to my &lt;a href="http://rpg-314.blogspot.com/2008/10/finally-i-achieve-closure.html"&gt;magnum opus&lt;/a&gt; successfully. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am just waiting for second opinion and then, merge to master. :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's a bit slower than what I'd prefer, need to &lt;a href="http://rpg-314.blogspot.com/2009/09/amds-profiler-for-linux.html"&gt;profile&lt;/a&gt; it. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4647703639270636284?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4647703639270636284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4647703639270636284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4647703639270636284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4647703639270636284'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/10/looks-like-i-did-it.html' title='Looks like I did it'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4165412065250451367</id><published>2009-09-28T11:36:00.004+05:30</published><updated>2009-09-28T11:41:52.828+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='file sync'/><category scheme='http://www.blogger.com/atom/ns#' term='dropbox'/><category scheme='http://www.blogger.com/atom/ns#' term='closed source'/><title type='text'>Dropbox, file syncing service</title><content type='html'>Somebody recently recommended to me the dropbox file sharing service. It is really cool. You just see a local folder, you make changes to it and it is auto synced across multiple machines. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They provide an opensource plugin for nautilus, and a closed source deamon to actually talk to their servers. You install the opensource plugin, and then do a dropbox start -i, and the binary deamon is downloaded and installed. After that, it could not be simpler to use. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The package (even the opensource part) will never be part of fedora proper, and &lt;a href="http://www.mail-archive.com/fedora-legal-list@redhat.com/msg00545.html"&gt;here&lt;/a&gt;'s why. But yeah, it could be a useful inclusion in rpmfusion. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4165412065250451367?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4165412065250451367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4165412065250451367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4165412065250451367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4165412065250451367'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/09/dropbox-file-syncing-service.html' title='Dropbox, file syncing service'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-2968777043048895807</id><published>2009-09-19T14:44:00.001+05:30</published><updated>2009-09-19T14:58:27.055+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='swig bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='python extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='swig'/><title type='text'>Python extensions, wrapping with swig and bug hunting</title><content type='html'>If you use swig to wrap your c/c++ code into a python extension, you will sometimes come across bugs when you try to import your freshly minted module. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Errors which go something like, &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;_mod, attribute referenced before assignment. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They can be pretty nasty to hunt, since you don't know if the bug is in your code, python interpreter (HOLY COW! that's not where I &lt;a href="http://blog.taragana.com/n/tharoor-tweets-apology-for-cattle-class-remarks-172096/"&gt;tweeted&lt;/a&gt; ;) ), swig (please no!!) or your own code (damn, I'll have debug it instead of passing it off on someone else..). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Chances are that the error is in your code. And if you get error like the one showed above, then python interpreter is throwing an error while importing your extension. To debug it, try the following, &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) if your module is named FOO, then do &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;import _FOO&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; as you have to prepend the underscore for the real module while swig sugarcoats it to make it look a little less ugly. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is a very good chance that it is happening because there is a function in your code which is unknown to swig or the python interpreter is attempting to call a function that does not exist. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The path from now on is a little harder. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) do &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;objdump -dS _FOO.so &gt; some-text-file&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And dive into that disassembly looking for the offending function. This isn't for the faint-hearted, but it pretty straightforward, quick and simple if you are used to it. :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Happy bug hunting&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-2968777043048895807?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/2968777043048895807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=2968777043048895807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2968777043048895807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2968777043048895807'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/09/python-extensions-wrapping-with-swig.html' title='Python extensions, wrapping with swig and bug hunting'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-770670763545339335</id><published>2009-09-18T15:09:00.003+05:30</published><updated>2009-09-18T15:24:54.088+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='quaternion'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='rigid transformation'/><category scheme='http://www.blogger.com/atom/ns#' term='eigen'/><title type='text'>Dual quaternions in eigen.</title><content type='html'>I have been trying to add dual quaternion support (mainly for rigid transformations) to my project. That is done, but now I am trying to push it into &lt;a href="http://eigen.tuxfamily.org/index.php?title=Main_Page"&gt;eigen&lt;/a&gt;. To follow the discussion, head &lt;a href="http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/09/msg00098.html"&gt;here&lt;/a&gt; and &lt;a href="http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/09/msg00134.html"&gt;there&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-770670763545339335?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/770670763545339335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=770670763545339335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/770670763545339335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/770670763545339335'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/09/dual-quaternions-in-eigen.html' title='Dual quaternions in eigen.'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-824518108711950343</id><published>2009-09-11T22:35:00.004+05:30</published><updated>2009-09-19T15:02:21.885+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='eigen'/><title type='text'>Benefits of flatter/more balanced expression trees</title><content type='html'>I am rewriting (partly) &lt;a href="http://rpg-314.blogspot.com/2008/10/finally-i-achieve-closure.html"&gt;my magum opus&lt;/a&gt;. This time, I have overloaded operators of a simple class wrapping the __m128i datatype. This allows me to generate much flatter expression trees, and boy, the code generated is fantastic. I have never seen so awesome assembly code generated by gcc from my code. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the assembly dump for the brave and/or the foolish :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;0000000000400ba0 &lt;_z11addressegenpkspkis0_s0_s0_s0_ssss&gt;:&lt;/div&gt;&lt;div&gt;  400ba0:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6e 5c 24 08 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movd   0x8(%rsp),%xmm11&lt;/div&gt;&lt;div&gt;  400ba7:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 0f bf 54 24 20    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movswl 0x20(%rsp),%r10d&lt;/div&gt;&lt;div&gt;  400bad:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6e 74 24 10    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movd   0x10(%rsp),%xmm6&lt;/div&gt;&lt;div&gt;  400bb3:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;4c 8b 1d 06 18 20 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0x201806(%rip),%r11        # 6023c0 &lt;ptr&gt;&lt;/ptr&gt;&lt;/div&gt;&lt;div&gt;  400bba:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f 61 db       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;punpcklwd %xmm11,%xmm11&lt;/div&gt;&lt;div&gt;  400bbf:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 61 f6          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;punpcklwd %xmm6,%xmm6&lt;/div&gt;&lt;div&gt;  400bc3:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6e 74 24 18 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movd   0x18(%rsp),%xmm14&lt;/div&gt;&lt;div&gt;  400bca:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;41 f7 da             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;neg    %r10d&lt;/div&gt;&lt;div&gt;  400bcd:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f ef ff       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pxor   %xmm15,%xmm15&lt;/div&gt;&lt;div&gt;  400bd2:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 70 e3 00    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pshufd $0x0,%xmm11,%xmm4&lt;/div&gt;&lt;div&gt;  400bd8:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 70 de 00       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pshufd $0x0,%xmm6,%xmm3&lt;/div&gt;&lt;div&gt;  400bdd:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6e 6c 24 20 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movd   0x20(%rsp),%xmm13&lt;/div&gt;&lt;div&gt;  400be4:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f 61 f6       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;punpcklwd %xmm14,%xmm14&lt;/div&gt;&lt;div&gt;  400be9:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f fd 63 40    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;paddw  0x40(%r11),%xmm4&lt;/div&gt;&lt;div&gt;  400bef:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f 61 ed       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;punpcklwd %xmm13,%xmm13&lt;/div&gt;&lt;div&gt;  400bf4:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6f d4       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm4,%xmm10&lt;/div&gt;&lt;div&gt;  400bf9:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f fd 5b 50    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;paddw  0x50(%r11),%xmm3&lt;/div&gt;&lt;div&gt;  400bff:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 89 54 24 d4       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    %r10d,-0x2c(%rsp)&lt;/div&gt;&lt;div&gt;  400c04:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6f cb       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm3,%xmm9&lt;/div&gt;&lt;div&gt;  400c09:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6e 44 24 d4    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movd   -0x2c(%rsp),%xmm0&lt;/div&gt;&lt;div&gt;  400c0f:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 70 ee 00    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pshufd $0x0,%xmm14,%xmm5&lt;/div&gt;&lt;div&gt;  400c15:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 6f 53 70    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa 0x70(%r11),%xmm2&lt;/div&gt;&lt;div&gt;  400c1b:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;f3 44 0f 10 f8       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movss  %xmm0,%xmm15&lt;/div&gt;&lt;div&gt;  400c20:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f 70 e5 00    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pshufd $0x0,%xmm13,%xmm12&lt;/div&gt;&lt;div&gt;  400c26:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f db ca       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm2,%xmm9&lt;/div&gt;&lt;div&gt;  400c2b:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f 61 ff       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;punpcklwd %xmm15,%xmm15&lt;/div&gt;&lt;div&gt;  400c30:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6f f3       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm3,%xmm14&lt;/div&gt;&lt;div&gt;  400c35:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f db d2       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm2,%xmm10&lt;/div&gt;&lt;div&gt;  400c3a:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f fd ec       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;paddw  %xmm12,%xmm5&lt;/div&gt;&lt;div&gt;  400c3f:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 71 f1 02    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psllw  $0x2,%xmm9&lt;/div&gt;&lt;div&gt;  400c45:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6f e4       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm4,%xmm12&lt;/div&gt;&lt;div&gt;  400c4a:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 71 d6 0f    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0xf,%xmm14&lt;/div&gt;&lt;div&gt;  400c50:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 70 ff 00    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pshufd $0x0,%xmm15,%xmm7&lt;/div&gt;&lt;div&gt;  400c56:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6f f3          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm3,%xmm6&lt;/div&gt;&lt;div&gt;  400c5a:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 71 f2 04    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psllw  $0x4,%xmm10&lt;/div&gt;&lt;div&gt;  400c60:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f eb d1       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;por    %xmm9,%xmm10&lt;/div&gt;&lt;div&gt;  400c65:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 71 d4 0f    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0xf,%xmm12&lt;/div&gt;&lt;div&gt;  400c6b:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f ef 7b 60    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pxor   0x60(%r11),%xmm7&lt;/div&gt;&lt;div&gt;  400c71:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f fd ef          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;paddw  %xmm7,%xmm5&lt;/div&gt;&lt;div&gt;  400c75:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6f c5       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm5,%xmm8&lt;/div&gt;&lt;div&gt;  400c7a:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6f ed       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm5,%xmm13&lt;/div&gt;&lt;div&gt;  400c7f:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6f fd          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm5,%xmm7&lt;/div&gt;&lt;div&gt;  400c83:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f db c2       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm2,%xmm8&lt;/div&gt;&lt;div&gt;  400c88:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 71 d5 0f    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0xf,%xmm13&lt;/div&gt;&lt;div&gt;  400c8e:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6f d5          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm5,%xmm2&lt;/div&gt;&lt;div&gt;  400c92:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f eb d0       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;por    %xmm8,%xmm10&lt;/div&gt;&lt;div&gt;  400c97:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 71 d2 04       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0x4,%xmm2&lt;/div&gt;&lt;div&gt;  400c9c:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6f c6       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm6,%xmm8&lt;/div&gt;&lt;div&gt;  400ca1:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 0f 29 17          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm10,(%rdi)&lt;/div&gt;&lt;div&gt;  400ca5:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f 29 22             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm4,(%rdx)&lt;/div&gt;&lt;div&gt;  400ca8:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f 29 19             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm3,(%rcx)&lt;/div&gt;&lt;div&gt;  400cab:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;41 0f 29 28          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm5,(%r8)&lt;/div&gt;&lt;div&gt;  400caf:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;48 8b 05 0a 17 20 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0x20170a(%rip),%rax        # 6023c0 &lt;ptr&gt;&lt;/ptr&gt;&lt;/div&gt;&lt;div&gt;  400cb6:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6f 80 a0 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa 0xa0(%rax),%xmm0&lt;/div&gt;&lt;div&gt;  400cbd:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00 &lt;/div&gt;&lt;div&gt;  400cbe:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 6f b8 90 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa 0x90(%rax),%xmm15&lt;/div&gt;&lt;div&gt;  400cc5:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00 00 &lt;/div&gt;&lt;div&gt;  400cc7:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f f9 c3          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psubw  %xmm3,%xmm0&lt;/div&gt;&lt;div&gt;  400ccb:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 71 d0 0f       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0xf,%xmm0&lt;/div&gt;&lt;div&gt;  400cd0:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f db f0       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm0,%xmm14&lt;/div&gt;&lt;div&gt;  400cd5:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6f c2          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm2,%xmm0&lt;/div&gt;&lt;div&gt;  400cd9:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f f9 fc       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psubw  %xmm4,%xmm15&lt;/div&gt;&lt;div&gt;  400cde:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 71 d7 0f    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0xf,%xmm15&lt;/div&gt;&lt;div&gt;  400ce4:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f db e7       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm15,%xmm12&lt;/div&gt;&lt;div&gt;  400ce9:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6f 88 b0 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa 0xb0(%rax),%xmm1&lt;/div&gt;&lt;div&gt;  400cf0:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00 &lt;/div&gt;&lt;div&gt;  400cf1:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 71 f0 06       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psllw  $0x6,%xmm0&lt;/div&gt;&lt;div&gt;  400cf6:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f f9 cd          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psubw  %xmm5,%xmm1&lt;/div&gt;&lt;div&gt;  400cfa:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f db e6       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm14,%xmm12&lt;/div&gt;&lt;div&gt;  400cff:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 71 d1 0f       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0xf,%xmm1&lt;/div&gt;&lt;div&gt;  400d04:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f db e9       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm1,%xmm13&lt;/div&gt;&lt;div&gt;  400d09:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6f ec          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm4,%xmm5&lt;/div&gt;&lt;div&gt;  400d0d:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f ef c9          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pxor   %xmm1,%xmm1&lt;/div&gt;&lt;div&gt;  400d11:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 71 d5 04       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0x4,%xmm5&lt;/div&gt;&lt;div&gt;  400d16:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f db e5       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm13,%xmm12&lt;/div&gt;&lt;div&gt;  400d1b:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 61 e9          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;punpcklwd %xmm1,%xmm5&lt;/div&gt;&lt;div&gt;  400d1f:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 61 c1          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;punpcklwd %xmm1,%xmm0&lt;/div&gt;&lt;div&gt;  400d23:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f eb a0 80 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;por    0x80(%rax),%xmm12&lt;/div&gt;&lt;div&gt;  400d2a:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00 00 &lt;/div&gt;&lt;div&gt;  400d2c:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;45 0f 29 21          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm12,(%r9)&lt;/div&gt;&lt;div&gt;  400d30:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;4c 8b 1d 89 16 20 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0x201689(%rip),%r11        # 6023c0 &lt;ptr&gt;&lt;/ptr&gt;&lt;/div&gt;&lt;div&gt;  400d37:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f 6f 8b c0 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa 0xc0(%r11),%xmm9&lt;/div&gt;&lt;div&gt;  400d3e:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00 00 &lt;/div&gt;&lt;div&gt;  400d40:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f db f9       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm9,%xmm7&lt;/div&gt;&lt;div&gt;  400d45:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f db c1       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm9,%xmm8&lt;/div&gt;&lt;div&gt;  400d4a:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f db cc       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pand   %xmm4,%xmm9&lt;/div&gt;&lt;div&gt;  400d4f:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 6f e3          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movdqa %xmm3,%xmm4&lt;/div&gt;&lt;div&gt;  400d53:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 71 d7 02       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0x2,%xmm7&lt;/div&gt;&lt;div&gt;  400d58:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 71 d4 04       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psrlw  $0x4,%xmm4&lt;/div&gt;&lt;div&gt;  400d5d:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 0f 61 e1          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;punpcklwd %xmm1,%xmm4&lt;/div&gt;&lt;div&gt;  400d61:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 41 0f 71 f1 02    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;psllw  $0x2,%xmm9&lt;/div&gt;&lt;div&gt;  400d67:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 45 0f eb c1       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;por    %xmm9,%xmm8&lt;/div&gt;&lt;div&gt;  400d6c:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f eb c7       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;por    %xmm7,%xmm8&lt;/div&gt;&lt;div&gt;  400d71:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 44 0f 61 c1       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;punpcklwd %xmm1,%xmm8&lt;/div&gt;&lt;div&gt;  400d76:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 0f 29 06          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm8,(%rsi)&lt;/div&gt;&lt;div&gt;  400d7a:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;4c 8b 1d 3f 16 20 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0x20163f(%rip),%r11        # 6023c0 &lt;ptr&gt;&lt;/ptr&gt;&lt;/div&gt;&lt;div&gt;  400d81:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f 29 6c 24 e8       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm5,-0x18(%rsp)&lt;/div&gt;&lt;div&gt;  400d86:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;41 8b bb d0 00 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0xd0(%r11),%edi&lt;/div&gt;&lt;div&gt;  400d8d:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f af 7c 24 e8       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;imul   -0x18(%rsp),%edi&lt;/div&gt;&lt;div&gt;  400d92:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;01 3e                &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %edi,(%rsi)&lt;/div&gt;&lt;div&gt;  400d94:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;48 8d 7e 04          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;lea    0x4(%rsi),%rdi&lt;/div&gt;&lt;div&gt;  400d98:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;41 8b 8b d4 00 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0xd4(%r11),%ecx&lt;/div&gt;&lt;div&gt;  400d9f:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f af 4c 24 ec       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;imul   -0x14(%rsp),%ecx&lt;/div&gt;&lt;div&gt;  400da4:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;01 0f                &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %ecx,(%rdi)&lt;/div&gt;&lt;div&gt;  400da6:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;41 8b 93 d8 00 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0xd8(%r11),%edx&lt;/div&gt;&lt;div&gt;  400dad:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;48 8d 4e 08          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;lea    0x8(%rsi),%rcx&lt;/div&gt;&lt;div&gt;  400db1:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f af 54 24 f0       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;imul   -0x10(%rsp),%edx&lt;/div&gt;&lt;div&gt;  400db6:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f 29 44 24 d8       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm0,-0x28(%rsp)&lt;/div&gt;&lt;div&gt;  400dbb:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;01 11                &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %edx,(%rcx)&lt;/div&gt;&lt;div&gt;  400dbd:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;48 8d 56 0c          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;lea    0xc(%rsi),%rdx&lt;/div&gt;&lt;div&gt;  400dc1:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;45 8b 93 dc 00 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0xdc(%r11),%r10d&lt;/div&gt;&lt;div&gt;  400dc8:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 0f af 54 24 f4    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;imul   -0xc(%rsp),%r10d&lt;/div&gt;&lt;div&gt;  400dce:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 01 12             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %r10d,(%rdx)&lt;/div&gt;&lt;div&gt;  400dd1:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f 29 64 24 e8       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm4,-0x18(%rsp)&lt;/div&gt;&lt;div&gt;  400dd6:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;45 8b 8b e0 00 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0xe0(%r11),%r9d&lt;/div&gt;&lt;div&gt;  400ddd:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 0f af 4c 24 e8    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;imul   -0x18(%rsp),%r9d&lt;/div&gt;&lt;div&gt;  400de3:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 01 0e             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %r9d,(%rsi)&lt;/div&gt;&lt;div&gt;  400de6:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 8b 4c 24 d8       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    -0x28(%rsp),%r9d&lt;/div&gt;&lt;div&gt;  400deb:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;45 8b 83 e4 00 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0xe4(%r11),%r8d&lt;/div&gt;&lt;div&gt;  400df2:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 0f af 44 24 ec    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;imul   -0x14(%rsp),%r8d&lt;/div&gt;&lt;div&gt;  400df8:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 01 07             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %r8d,(%rdi)&lt;/div&gt;&lt;div&gt;  400dfb:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;41 8b 83 e8 00 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0xe8(%r11),%eax&lt;/div&gt;&lt;div&gt;  400e02:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f af 44 24 f0       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;imul   -0x10(%rsp),%eax&lt;/div&gt;&lt;div&gt;  400e07:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;01 01                &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %eax,(%rcx)&lt;/div&gt;&lt;div&gt;  400e09:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;45 8b 93 ec 00 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    0xec(%r11),%r10d&lt;/div&gt;&lt;div&gt;  400e10:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 0f af 54 24 f4    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;imul   -0xc(%rsp),%r10d&lt;/div&gt;&lt;div&gt;  400e16:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 01 12             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %r10d,(%rdx)&lt;/div&gt;&lt;div&gt;  400e19:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0f 29 44 24 e8       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;movaps %xmm0,-0x18(%rsp)&lt;/div&gt;&lt;div&gt;  400e1e:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 01 0e             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %r9d,(%rsi)&lt;/div&gt;&lt;div&gt;  400e21:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 8b 44 24 ec       &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    -0x14(%rsp),%r8d&lt;/div&gt;&lt;div&gt;  400e26:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;44 01 07             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %r8d,(%rdi)&lt;/div&gt;&lt;div&gt;  400e29:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;8b 74 24 f0          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    -0x10(%rsp),%esi&lt;/div&gt;&lt;div&gt;  400e2d:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;01 31                &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %esi,(%rcx)&lt;/div&gt;&lt;div&gt;  400e2f:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;8b 44 24 f4          &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mov    -0xc(%rsp),%eax&lt;/div&gt;&lt;div&gt;  400e33:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;01 02                &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;add    %eax,(%rdx)&lt;/div&gt;&lt;div&gt;  400e35:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;c3                   &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;retq   &lt;/div&gt;&lt;div&gt;  400e36:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;66 2e 0f 1f 84 00 00 &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;nopw   %cs:0x0(%rax,%rax,1)&lt;/div&gt;&lt;div&gt;  400e3d:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00 00 00 &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;To be fair, I am comparing gcc 4.3 to gcc4.4. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The compiler runs out of steam at around 400d86, but still this is great. I am using eigen after that. I have no idea why the operations have not been vectorized. Need to look into that as well. &lt;/div&gt;&lt;div&gt;But still, +1 to &lt;a href="http://rpg-314.blogspot.com/2009/08/adding-short-support-to-eigen.html"&gt;this&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDIT: The vectorization for the code after 400d86 can be fixed if you follow &lt;a href="http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/09/msg00124.html"&gt;this&lt;/a&gt; and &lt;a href="http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/09/msg00117.html"&gt;this&lt;/a&gt;. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-824518108711950343?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/824518108711950343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=824518108711950343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/824518108711950343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/824518108711950343'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/09/benefits-of-flattermore-balanced.html' title='Benefits of flatter/more balanced expression trees'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-1639752772753327790</id><published>2009-09-03T20:24:00.000+05:30</published><updated>2009-09-03T20:28:12.013+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='profiler'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><title type='text'>AMD's profiler for linux</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had no idea that there was an RPM for AMD's code analyst sitting in fedora's repositories until I came across &lt;a href="http://developer.amd.com/cpu/CodeAnalyst/codeanalystlinux/Pages/default.aspx"&gt;this&lt;/a&gt; page.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I immediately got hold of the package and now it is sitting nicely on my laptop.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MNAZ1qvGXeM/Sp_ZKjB-ArI/AAAAAAAAAKI/pVTC-ha-5O8/s1600-h/Screenshot.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 208px;" src="http://2.bp.blogspot.com/_MNAZ1qvGXeM/Sp_ZKjB-ArI/AAAAAAAAAKI/pVTC-ha-5O8/s320/Screenshot.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5377255255329079986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Time to grind my software against it. :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-1639752772753327790?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/1639752772753327790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=1639752772753327790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1639752772753327790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1639752772753327790'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/09/amds-profiler-for-linux.html' title='AMD&apos;s profiler for linux'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MNAZ1qvGXeM/Sp_ZKjB-ArI/AAAAAAAAAKI/pVTC-ha-5O8/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6688179421442763458</id><published>2009-08-30T11:39:00.003+05:30</published><updated>2009-08-30T11:46:29.512+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='x86-64'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='eigen'/><title type='text'>[update] short support in eigen</title><content type='html'>There was recently some &lt;a href="http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/08/msg00200.html"&gt;good news&lt;/a&gt; on the &lt;a href="http://rpg-314.blogspot.com/2009/08/adding-short-support-to-eigen.html"&gt;vectorization for short&lt;/a&gt; operations front. I may be able to do it with a little less work then. If you want to follow the work that's being done on this, follow this thread. Help welcome, of course!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now we have native &lt;a href="http://spot.livejournal.com/309432.html"&gt;64 bit builds for chromium in fedora&lt;/a&gt;. Thanks to the chromium team and Tom, who has been maintaining those builds. This post was written using 64 bit chromium on fedora. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6688179421442763458?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6688179421442763458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6688179421442763458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6688179421442763458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6688179421442763458'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/08/update-short-support-in-eigen.html' title='[update] short support in eigen'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-996951433927950450</id><published>2009-08-24T14:39:00.004+05:30</published><updated>2009-08-30T11:38:27.508+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='eigen'/><title type='text'>Adding short support to eigen</title><content type='html'>I have started work on adding short support to &lt;a href="http://eigen.tuxfamily.org/index.php?title=Main_Page"&gt;eigen&lt;/a&gt;. I think this would help me a lot as I don't need an int in my work. Short should be just fine. You can follow the progress of my work &lt;a href="https://bitbucket.org/rpg/eigen2-rpg-branch/overview/"&gt;here&lt;/a&gt;. There is no vectorization support yet, but it should be able to generate scalar code just fine. For more in depth discussion on this, follow this &lt;a href="http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/08/msg00148.html"&gt;thread&lt;/a&gt;. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Writing unit tests is up next. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-996951433927950450?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/996951433927950450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=996951433927950450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/996951433927950450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/996951433927950450'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/08/adding-short-support-to-eigen.html' title='Adding short support to eigen'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3708738943474632247</id><published>2009-08-16T20:44:00.004+05:30</published><updated>2009-08-16T20:49:16.615+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='cool'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Emacs 23</title><content type='html'>Is it just me, or emacs 23 (the one that ships with fedora, not ubuntu) does kinda look cool?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MNAZ1qvGXeM/Sogisxz5vmI/AAAAAAAAAKA/x08yZ2vDcHM/s1600-h/emacs.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 338px;" src="http://3.bp.blogspot.com/_MNAZ1qvGXeM/Sogisxz5vmI/AAAAAAAAAKA/x08yZ2vDcHM/s400/emacs.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5370580708319936098" /&gt;&lt;/a&gt;BTW, it broke &lt;a href="http://www.emacswiki.org/emacs/CudaMode"&gt;cuda&lt;/a&gt; mode, dunno why? :(&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3708738943474632247?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3708738943474632247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3708738943474632247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3708738943474632247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3708738943474632247'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/08/is-it-just-me-or-emacs-23-one-that.html' title='Emacs 23'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MNAZ1qvGXeM/Sogisxz5vmI/AAAAAAAAAKA/x08yZ2vDcHM/s72-c/emacs.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-1485892101728388294</id><published>2009-08-16T13:58:00.003+05:30</published><updated>2009-08-16T14:48:41.118+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Wave goes live on 30th sept.</title><content type='html'>Sept is shaping up to be an exciting month. AMD's dx11 class gpu's &lt;a href="http://forum.beyond3d.com/showpost.php?p=1321362&amp;amp;postcount=1594"&gt;launch&lt;/a&gt; on sept. 10, and Google Wave will go &lt;a href="http://www.infoq.com/news/2009/08/wave-preview-opens"&gt;live&lt;/a&gt; on 30th. It seems that Wave will be by-invitation-only, just like gmail was initially. :(&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But still, let's hope it will open up faster.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-1485892101728388294?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/1485892101728388294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=1485892101728388294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1485892101728388294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1485892101728388294'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/08/google-wave-goes-live-on-30th-sept.html' title='Google Wave goes live on 30th sept.'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-997866155617407247</id><published>2009-08-06T17:15:00.002+05:30</published><updated>2009-08-06T17:33:32.807+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='cpu'/><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='x86-64'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><title type='text'>Installing AMD's opencl implementation for CPU</title><content type='html'>I just installed AMD's implementation of OpenCL for it's CPU's on Fedora 11, x86-64. Here's how to do it. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Download the SDK from &lt;a href="http://developer.amd.com/streambeta"&gt;here&lt;/a&gt;. and unpack the sdk. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1A. Move the decompressed archive into the place where you want to install it. I chose /home/rpg/bin. I don't like binary crap arbitrarily polluting my system directories and settings. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Enter the directory of the sdk and do &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$make&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You could use make -j2 or even make -j4 if you have multiple cores to burn. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Now you need to add a few places to your paths. Add this to your .bashrc and .bash_profile files. Both of them should be in your home folder. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;ATISTREAMSDKROOT=/home/rpg/bin/ati-stream-sdk-v2.0-beta2-lnx64&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;export ATISTREAMSDKROOT&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;export LD_LIBRARY_PATH=$ATISTREAMSDKROOT/lib/x86_64:$LD_LIBRARY_PATH&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The installation notes provided by SDK have some typos. For a start, it is lib and not bin and you add different folders for different architectures. And you definitely don't need root access for this. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lucky me though, I have a SSE3 capable CPU. It is ironic to note that the inventor of x86-64 is leaving behind the classic x86-64. I wonder why they felt SSE3 was mandatory. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After all this, this is what I get to see, &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ ./BlackScholes&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;For test only: Expires on Wed Sep 30 00:00:00 2009&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;deviceCallPrice&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;0.118873 7.04261 0 0.00272289 0 33.9944 5.90269 0.0174322 15.6142 31.8218 0.208182 31.4897 36.4303 4.70751 0 0 0.180582 0 23.1549 0 56.4034 19.635 38.0241 0.00524368 2.9981 52.4114 33.1443 50.3665 0 36.6461 0.167021 0.00245133 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;devicePutPrice&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;9.18383 0.216879 56.2858 23.5745 51.5608 3.39307e-06 0.0396819 14.4737 0.00709584 0 5.18874 0 0 3.79125 63.0257 49.3472 17.1783 51.754 0.191513 16.1561 0 0 0 29.3654 0.00833774 0 0 4.21006e-06 17.8919 6.60636e-05 4.04936 31.1893 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Option samples           Time taken(sec)          Options / sec            &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;4096                     1.565                    2617.25                  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The exact paths have been scrubbed from the output here though. Enjoy!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-997866155617407247?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/997866155617407247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=997866155617407247' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/997866155617407247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/997866155617407247'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/08/installing-amds-opencl-implementation.html' title='Installing AMD&apos;s opencl implementation for CPU'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-2118904109955728033</id><published>2009-08-03T22:38:00.003+05:30</published><updated>2009-08-03T22:42:43.578+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='mumbai'/><title type='text'>Chrome working again</title><content type='html'>Chrome is working &lt;a href="http://rpg-314.blogspot.com/2009/07/no-chrome-for-me.html"&gt;again&lt;/a&gt;. Inside IITB. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-2118904109955728033?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/2118904109955728033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=2118904109955728033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2118904109955728033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2118904109955728033'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/08/chrome-working-again.html' title='Chrome working again'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8982857598331089180</id><published>2009-07-13T19:17:00.001+05:30</published><updated>2009-07-13T19:18:45.101+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='going home'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT'/><category scheme='http://www.blogger.com/atom/ns#' term='delhi'/><title type='text'>Going home</title><content type='html'>I am writing this from inside the great firewall of China. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8982857598331089180?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8982857598331089180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8982857598331089180' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8982857598331089180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8982857598331089180'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/07/going-home.html' title='Going home'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3229973762356681438</id><published>2009-07-09T23:46:00.003+05:30</published><updated>2009-07-09T23:51:38.998+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='bleeding edge'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><title type='text'>No chrome for me :(</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MNAZ1qvGXeM/SlY1JxnP2LI/AAAAAAAAAJA/lyu7NWTty7E/s1600-h/Screenshot.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 186px;" src="http://3.bp.blogspot.com/_MNAZ1qvGXeM/SlY1JxnP2LI/AAAAAAAAAJA/lyu7NWTty7E/s320/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5356527248856832178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I knew this was &lt;a href="http://rpg-314.blogspot.com/2009/07/have-look-at-this.html"&gt;coming&lt;/a&gt;, but I didn't it would come so fast and &lt;span&gt;in this way. Latest svn build just hit a &lt;a href="http://en.wikipedia.org/wiki/SNAFU"&gt;SNAFU&lt;/a&gt;. &lt;/span&gt;&lt;span&gt;Ah, the perils of living on the bleeding edge. &lt;/span&gt;&lt;span&gt;Thank God, I still have firefox. And 3.5 is pretty good with it's speed too. &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3229973762356681438?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3229973762356681438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3229973762356681438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3229973762356681438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3229973762356681438'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/07/no-chrome-for-me.html' title='No chrome for me :('/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MNAZ1qvGXeM/SlY1JxnP2LI/AAAAAAAAAJA/lyu7NWTty7E/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3515957627944565709</id><published>2009-07-06T05:34:00.003+05:30</published><updated>2009-07-06T09:56:28.172+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fastest code'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>Compiling open64 with gcc4.4</title><content type='html'>After &lt;a href="http://rpg-314.blogspot.com/2009/07/installing-llvm-gcc-in-fedora-11-64-bit.html"&gt;this&lt;/a&gt;, God knows what got into me and I tried to compile &lt;a href="http://en.wikipedia.org/wiki/Open64"&gt;open64&lt;/a&gt; with gcc4.4 that comes with fedora 11. There were a few bugs along the way. I included cstring, cstdlib here and there and they were fixed. The last one that I got stuck on was in c-parse.c. Now I am officially giving up on my install-as-many-compilers-as-you-can binge. LLVM should be fine, for now.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDIT0: Ok, I broke my promise to myself. I installed it using the binary rpm. :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3515957627944565709?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3515957627944565709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3515957627944565709' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3515957627944565709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3515957627944565709'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/07/compiling-open64-with-gcc44.html' title='Compiling open64 with gcc4.4'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6377074149274727350</id><published>2009-07-06T04:02:00.006+05:30</published><updated>2009-07-06T04:21:49.031+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='x86-64'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='llvm'/><title type='text'>installing LLVM-GCC in fedora 11, 64 bit</title><content type='html'>Fedora comes with a prepackaged llvm. To install that, you just need to do yum install llvm. But to compile &lt;i&gt;any&lt;/i&gt; thing with llvm, you need to install llvm-gcc. Here's how to do it. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. install llvm by&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ yum install llvm&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. download llvm-gcc source code from &lt;a href="http://llvm.org/releases/download.html"&gt;here&lt;/a&gt;. I downloaded llvm-gcc4.2-2.5.source.tar.gz. Let's say you downloaded it to /path/to/llvm-gcc&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. now extract the tarball by&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ cd /path/to/llvm-gcc&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ tar -zxvf llvm-gcc-version.tar.gz&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. make temp directories for compilation&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ cd /path/to/llvm-gcc/llvm-gcc4.2-2.5.source&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ mkdir install;mkdir obj&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. now comes the fun part of &lt;a href="http://rpg-314.blogspot.com/2009/06/software-updates-and-linux-distros.html"&gt;customizing&lt;/a&gt; everything to suit your needs. I did&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ cd obj&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ ../configure --prefix=`pwd`/../install --program-prefix=llvm- --enable-llvm=/usr --enable-languages=c,c++,fortran --disable-multilib&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The extras here are fortran, disabled multilib for native x86-64 builds and the prefix directory for installation. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. Now compile and install&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ make -j2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On your machine, it might be a little different depending on how many cpus you can spare for installation. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7. Finally, install it with &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$ make install&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Now all your stuff will be installed int the $prefix/install/bin directory. Here, $prefix is the path you used to run ./configure, and not some arbitrary environment variable. You may place symlinks at your preferred places. &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6377074149274727350?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6377074149274727350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6377074149274727350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6377074149274727350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6377074149274727350'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/07/installing-llvm-gcc-in-fedora-11-64-bit.html' title='installing LLVM-GCC in fedora 11, 64 bit'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6879737852855405385</id><published>2009-07-06T00:17:00.000+05:30</published><updated>2009-07-06T00:18:46.211+05:30</updated><title type='text'>Visit to Alcatraz</title><content type='html'>Getting to San Francisco: $3.70&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ferry to Alcatraz, $26.00&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Having your camera battery die on you after you get there: Priceless&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6879737852855405385?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6879737852855405385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6879737852855405385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6879737852855405385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6879737852855405385'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/07/visit-to-alcatraz.html' title='Visit to Alcatraz'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-370599902129840972</id><published>2009-07-04T12:08:00.004+05:30</published><updated>2009-07-04T12:11:55.419+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='going home'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT'/><title type='text'>No chrome, :(</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MNAZ1qvGXeM/Sk75SuPkYxI/AAAAAAAAAIw/GAYbEju99Ek/s1600-h/Screenshot.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 302px; height: 320px;" src="http://3.bp.blogspot.com/_MNAZ1qvGXeM/Sk75SuPkYxI/AAAAAAAAAIw/GAYbEju99Ek/s320/Screenshot.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5354491107036390162" /&gt;&lt;/a&gt;&lt;br /&gt;Have a look at this. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will have to give up chrome when I return to IITB. I am disappointed, but hopefully, this feature will get implemented soon. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-370599902129840972?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/370599902129840972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=370599902129840972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/370599902129840972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/370599902129840972'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/07/have-look-at-this.html' title='No chrome, :('/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MNAZ1qvGXeM/Sk75SuPkYxI/AAAAAAAAAIw/GAYbEju99Ek/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5294708073901692799</id><published>2009-07-02T07:51:00.002+05:30</published><updated>2009-07-02T07:53:27.928+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='rains'/><category scheme='http://www.blogger.com/atom/ns#' term='india'/><category scheme='http://www.blogger.com/atom/ns#' term='going home'/><category scheme='http://www.blogger.com/atom/ns#' term='delhi'/><category scheme='http://www.blogger.com/atom/ns#' term='mumbai'/><title type='text'>More updates</title><content type='html'>After falling to alomst 30, my to-watch list of movies has swelled to 42 again. :) Time to go back to India is approaching too. Mumabi would be as usual swamped with rains, no doubt. :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5294708073901692799?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5294708073901692799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5294708073901692799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5294708073901692799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5294708073901692799'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/07/more-updates.html' title='More updates'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7367264592208146208</id><published>2009-07-01T00:08:00.005+05:30</published><updated>2009-07-02T03:33:06.626+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='web browser'/><title type='text'>Chrome on Fedora 11, 64 bit</title><content type='html'>I just installed google chrome using &lt;a href="http://spot.livejournal.com/308900.html"&gt;this&lt;/a&gt;. Even though I am running a 64  bit version. Install using yum and it will run perfectly. I am all over this thing. It is awesome, it runs like a rocket, GAAAWWWD. Every one should try this. Thanks for making this repo available. This thing is going to kick ass when done in gentoo. !!! Thank God for the competition.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDIT0: I wrote this using chrome. The repo maintainer seems to be updating his repo fairly quickly (for now atleast). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDIT1: As correctly pointed out &lt;a href="http://spot.livejournal.com/308900.html?thread=1415588#t1415588"&gt;here&lt;/a&gt;, the rpms are not native 64 bit binaries. They are 32 bit ones, which work correctly for 32 bit ones too. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7367264592208146208?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7367264592208146208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7367264592208146208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7367264592208146208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7367264592208146208'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/07/chrome-on-fedora-11-64-bit.html' title='Chrome on Fedora 11, 64 bit'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8543383506086298028</id><published>2009-06-19T07:56:00.002+05:30</published><updated>2009-06-19T08:00:40.036+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Why I love Python</title><content type='html'>Yesterday, my advisor was talking to me. I was telling him about the progress we have made.&lt;br /&gt;&lt;br /&gt;Me: This is a python script to drive every thing&lt;br /&gt;&lt;br /&gt;Advisor: What is Python?&lt;br /&gt;&lt;br /&gt;M: It is a scripting language.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;... 5 minutes later&lt;br /&gt;&lt;br /&gt;A: Let me look into the script.&lt;br /&gt;&lt;br /&gt;.....He reads for a minute or two.&lt;br /&gt;&lt;br /&gt;A: Now I see why people program in Python. I can actually understand it.&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/982929381470443133-8543383506086298028?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8543383506086298028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8543383506086298028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8543383506086298028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8543383506086298028'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/06/why-i-love-python.html' title='Why I love Python'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3763660277426043324</id><published>2009-06-15T03:03:00.003+05:30</published><updated>2009-06-15T03:13:13.248+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='india'/><title type='text'>Disappointed</title><content type='html'>We lost. :(&lt;br /&gt;&lt;br /&gt;But honestly though, we didn't deserve to win considering the way we played. 14 wides, top 4 playing like they are holidaying on a tropical beach, paid for by God know who.&lt;br /&gt;&lt;br /&gt;But it keeps up the pattern we have been seeing since 1987.  Did well, reached semis. 1991, a disaster. 1996, again reached semis and 1999, made a hash of it all. 2003, reached the finals and in 2007, suffered humiliation at the hands of Bangladesh. In 2007 T20, we actually won for a change, and in 2009..........&lt;br /&gt;&lt;br /&gt;We'll lose to SA too on Tuesday, rest assured.&lt;br /&gt;&lt;br /&gt;Knives are going to be out for Dhoni and co now, considering the Sehwag fiasco.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3763660277426043324?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3763660277426043324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3763660277426043324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3763660277426043324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3763660277426043324'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/06/disappointed.html' title='Disappointed'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-235964427166218252</id><published>2009-06-09T10:15:00.002+05:30</published><updated>2009-06-09T10:20:20.725+05:30</updated><title type='text'>Reset signals</title><content type='html'>I had quite a moment today. I have been bamging my head against a problem for quite some time now. Today, it got solved. I had generous help from Michal in it BTW.&lt;br /&gt;&lt;br /&gt;The problem. The mother code works uses a active high reset  and the module for my chip uses active low. Epic fail!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-235964427166218252?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/235964427166218252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=235964427166218252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/235964427166218252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/235964427166218252'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/06/reset-signals.html' title='Reset signals'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5253429612160413346</id><published>2009-06-05T07:50:00.007+05:30</published><updated>2009-06-05T09:29:13.654+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='portage'/><category scheme='http://www.blogger.com/atom/ns#' term='llvm'/><title type='text'>Software updates and linux distros</title><content type='html'>Today, I just out of curiosity did a uname -a and gcc -v on th elinux server that cnnects to my hardware. And horror of horrors, what do I find? Gcc 3.4 and kernel 2.6.8. Python v2.3.&lt;br /&gt;&lt;br /&gt;Now come on guys. Update your software atleast once a year. I know everyone does not run Gentoo. But still.&lt;br /&gt;&lt;br /&gt;Speaking of Gentoo, I must confess that I have been drawn to it. I really need the customizability for some applications/libraries atleast. The usual complaints apply, however. I am told (by some one who is a serious linux pro) that gentoo offers too much choice, such as letting you install a bootloader yourself (aka, not by default).&lt;br /&gt;&lt;br /&gt;I am coming around to the view of installing &lt;a href="http://sabayon.org/"&gt;Sabayon&lt;/a&gt; and using portage to get my optimization-compilation kick. BTW, IMHO, Sabayon is the coolest looking distribution out there. I have downloaded it's iso, &lt;span style="font-style: italic;"&gt;just in case&lt;/span&gt;.  I'll probably use the lab machine as the guinea pig in this experiment. :)&lt;br /&gt;&lt;br /&gt;Honestly though, I think that with a Core i7, compilation would be much less of a problem. I really like hardware multithreading. I think, all new CPU's should have it though. :) Wish AMD will go this route as well.&lt;br /&gt;&lt;br /&gt;I have been checking out the portage tree over at &lt;a href="http://gentoo-portage.com"&gt;gentoo-portage.com&lt;/a&gt; and it seems that they have done a really thourough job. I mean, apart from the llvm, vTune and sage, I could find ebuilds for every thing. Even flash, skype, imkl, acml, icc etc. The first two are a mystery, but with sage, I am not surprised. With their philosophy of making a giant static binary (the source tarball is &gt;300M, I think), and bundling all the open source math software ever created (including their shiny python interpreter) into it, I am amazed that somebody managed to get it into Debian. I hope the fedora guys will have some luck as well. But it'll probably will always be way behind on updates.&lt;br /&gt;&lt;br /&gt;I'll get the &lt;a href="http://rpg-314.blogspot.com/2009/06/picsvideos-from-makers-fair-2009.html"&gt;videos&lt;/a&gt; done by the weekend hopefully. Promise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5253429612160413346?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5253429612160413346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5253429612160413346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5253429612160413346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5253429612160413346'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/06/software-updates-and-linux-distros.html' title='Software updates and linux distros'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7151732262822591631</id><published>2009-06-02T10:49:00.001+05:30</published><updated>2009-06-02T10:51:49.307+05:30</updated><title type='text'>Pics</title><content type='html'>Ok, the pics got done earlier than I &lt;a href="http://rpg-314.blogspot.com/2009/06/picsvideos-from-makers-fair-2009.html"&gt;expected&lt;/a&gt;. So &lt;a href="http://picasaweb.google.com/rpg.314/PicturesFromMakerSFairExhibition2009?feat=directlink"&gt;enjoy&lt;/a&gt;. But the videos will probably take more time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7151732262822591631?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7151732262822591631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7151732262822591631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7151732262822591631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7151732262822591631'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/06/pics.html' title='Pics'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6885431022699426544</id><published>2009-06-02T10:17:00.002+05:30</published><updated>2009-06-02T10:20:46.090+05:30</updated><title type='text'>Pics/videos from Maker's fair 2009</title><content type='html'>I'll be putting up stuff I grabbed from Maker's Fair 2009. It's gonna take a while, but I really want to annotate the stuff real well so that onlookers have some context around it. Promise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6885431022699426544?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6885431022699426544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6885431022699426544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6885431022699426544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6885431022699426544'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/06/picsvideos-from-makers-fair-2009.html' title='Pics/videos from Maker&apos;s fair 2009'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6145714919465311291</id><published>2009-05-31T03:49:00.002+05:30</published><updated>2009-07-06T09:57:15.370+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='x86-64'/><category scheme='http://www.blogger.com/atom/ns#' term='india'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><title type='text'>Running skype on fedora 64 bit</title><content type='html'>I just installed skype on my fedora 10 laptop (64 bit) using &lt;a href="http://daryldawkins.net/2009/03/19/skype-2dynamic-on-fedora-10-64-bit/"&gt;this&lt;/a&gt; and it works like a charm.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDIT0: It is broken in fedora 11. I haven't got around to fixing it yet. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6145714919465311291?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6145714919465311291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6145714919465311291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6145714919465311291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6145714919465311291'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/05/running-skype-on-fedora-64-bit.html' title='Running skype on fedora 64 bit'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7073195601737881516</id><published>2009-05-20T05:36:00.003+05:30</published><updated>2009-05-20T05:41:23.160+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><title type='text'>In Berkeley :)</title><content type='html'>I am back at the lab (LBNL) now. I have settled down here in the last couple of days. The weather is nice here. Though I have not been doing the stuff  had planned I would do yet. Really need to get started on it soon.&lt;br /&gt;&lt;br /&gt;Fedora 11 got &lt;a href="http://www.phoronix.com/scan.php?page=news_item&amp;amp;px=NzI4MA"&gt;delayed&lt;/a&gt;. :(&lt;br /&gt;&lt;br /&gt;Will update this blog soon. Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7073195601737881516?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7073195601737881516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7073195601737881516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7073195601737881516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7073195601737881516'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/05/in-berkeley.html' title='In Berkeley :)'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3971403150595623799</id><published>2009-04-28T22:23:00.004+05:30</published><updated>2009-04-28T23:56:45.571+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='segmentation fault'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><title type='text'>Updates 2</title><content type='html'>This month, I have been really bad with my blogging. I did very few updates (in fact, this is the second one this month). But now I hope to turn a corner. The exams are over. The project (Sriram and mine) is done. And I am in the mood for some relaxation now. Though I still can't believe we managed to finish our &lt;a href="http://rpg-314.blogspot.com/2009/03/render-to-texture.html"&gt;project&lt;/a&gt; some 24 hours before the deadline. I mean, when was the last time it happened?&lt;br /&gt;&lt;br /&gt;Never, dude.&lt;br /&gt;&lt;br /&gt;We borrowed a lot of code from &lt;a href="http://freehackers.org/%7Erivo/kgllib/html/"&gt;kgllib&lt;/a&gt;. It's a fantastically written llibrary for opengl convenience functions. Too tied to Qt for my taste, but the Qt stuff was easy to remove. Initially, we wrote a lot of nice code, but soon after degenerated into bad programming practices. Global variables all over the place, messy code in between. We avoided the deprected bits of opengl functionality wherever we could, which, IMHO,  is a good thing. We had a nice time hunting for segmentation faults, and removing them. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3971403150595623799?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3971403150595623799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3971403150595623799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3971403150595623799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3971403150595623799'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/04/updates-2.html' title='Updates 2'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4207771379614699937</id><published>2009-04-17T20:33:00.005+05:30</published><updated>2009-04-17T22:38:52.144+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='india'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><category scheme='http://www.blogger.com/atom/ns#' term='segmentation fault'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><title type='text'>Updates</title><content type='html'>1) Exams are going on. But I have a bit of a break here.&lt;br /&gt;&lt;br /&gt;2) My IIT life is coming to an end. Not immediately, but yes the end has begun.&lt;br /&gt;&lt;br /&gt;3) Our (Sriram and mine) opengl project is coming along. Need to fix a few bugs before we can get it to work. Had a few issues with git while collaborating on it. For now, we are just screwing any optimizations. :)&lt;br /&gt;&lt;br /&gt;4) I was recently put up as a contributor to Eigen on their &lt;a href="http://eigen.tuxfamily.org/index.php?title=Main_Page"&gt;webpage&lt;/a&gt;. Seems wonderful to see my name in print. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4207771379614699937?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4207771379614699937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4207771379614699937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4207771379614699937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4207771379614699937'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/04/updates.html' title='Updates'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5743172964954740555</id><published>2009-03-16T10:27:00.004+05:30</published><updated>2009-03-28T18:19:34.120+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><title type='text'>Render to texture</title><content type='html'>We, (that is &lt;a href="http://www.cse.iitb.ac.in/%7Ekashyap/"&gt;Sriram&lt;/a&gt; and myself) just got our render to texture facility working. We drew a quad and and then generated some funny patterns in the pixel shader. It was fun. My first gpu side hacking. More of it is coming along soon, I promise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5743172964954740555?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5743172964954740555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5743172964954740555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5743172964954740555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5743172964954740555'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/03/render-to-texture.html' title='Render to texture'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4459832162782801373</id><published>2009-03-12T17:12:00.004+05:30</published><updated>2009-03-12T18:32:05.614+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='parallel bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='thread safe'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='llvm'/><title type='text'>Haskell and fractals.</title><content type='html'>I recently came across &lt;a href="http://fraqtive.mimec.org/"&gt;Fraqtive&lt;/a&gt;. Very nice program. And well optimized and well written too, by the looks of it. It automatically takes care of multithreading and vectorization. And it uses some very nice algorithms to to handle zoom ins etc. The big news for me came when I stumbled across &lt;a href="http://wiki.mimec.org/wiki/Fraqtive/Generator_Core"&gt;this&lt;/a&gt; and realized that it uses template metaprogramming to generate fast C++ code. Bit more googling and what do I &lt;a href="http://www.serpentine.com/blog/2008/01/03/llvm-bindings-for-haskell/"&gt;find&lt;/a&gt;, Haskell bindings for LLVM!!!&lt;br /&gt;&lt;br /&gt;I remember that in Lisp one can get access to the code of the functions to manipulate on them. If I can get them in Haskell, it would be great. Generate LLVM code from there, and then run it under a JIT. and after that, send it off to opengl and use shaders to generate nice colors for them....&lt;br /&gt;&lt;br /&gt;May be I am getting too ahead of myself. New language, new libraries. May be, I should start from Python first :) But there's no denying that it would make for a very good &lt;a href="http://rpg-314.blogspot.com/2008/07/learnig-haskell.html"&gt;learning project&lt;/a&gt; in Haskell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4459832162782801373?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4459832162782801373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4459832162782801373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4459832162782801373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4459832162782801373'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/03/haskell-and-fractals.html' title='Haskell and fractals.'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5734749868290241346</id><published>2009-03-11T12:23:00.003+05:30</published><updated>2009-03-11T12:31:14.841+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='eigen'/><title type='text'>Vectorized integer multiplication</title><content type='html'>Integer operations in vector ISA's rarely get much love (compared to floating point operations), unless it has got something to do with video decode-encode. But I needed something like that for my &lt;a href="http://rpg-314.blogspot.com/2008/08/new-bfs-algo.html"&gt;needs&lt;/a&gt;. So I wrote one, and it turns out to be faster than the one in &lt;a href="http://eigen.tuxfamily.org/index.php?title=Main_Page"&gt;eigen&lt;/a&gt;, so it &lt;a href="http://rpg-314.blogspot.com/2009/03/open-source-developer.html"&gt;was&lt;/a&gt; &lt;a href="http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/03/msg00023.html"&gt;committed&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5734749868290241346?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5734749868290241346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5734749868290241346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5734749868290241346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5734749868290241346'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/03/vectorized-integer-multiplication.html' title='Vectorized integer multiplication'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-236723164146953696</id><published>2009-03-08T11:35:00.002+05:30</published><updated>2009-03-08T11:45:28.879+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='fastest code'/><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><title type='text'>Open source developer</title><content type='html'>&lt;a href="http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/03/msg00019.html"&gt;Now&lt;/a&gt; I am an official opensource developer. Yay!!!!. Feels great to see some stuff from my side being accepted there. Small beginning, I admit. But hopefully, as we go along, I will contribute more and more. BTW, this community is very friendly and responsive.&lt;br /&gt;&lt;br /&gt;I wrote this because I wanted to use &lt;a href="http://en.wikipedia.org/wiki/Quaternion"&gt;quaternions&lt;/a&gt; and it not being vectorized is obviously a shame. I have also sent a better routine for vectorized integer multiplication. Let's hope it gets in too. The code is only somewhat faster, but hey something is better than nothing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-236723164146953696?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/236723164146953696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=236723164146953696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/236723164146953696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/236723164146953696'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/03/open-source-developer.html' title='Open source developer'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8757274522733870890</id><published>2009-03-03T14:40:00.003+05:30</published><updated>2009-03-03T14:49:01.738+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='parallel bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='thread safe'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='drivers'/><title type='text'>Good news</title><content type='html'>Finally, &lt;a href="http://lists.freedesktop.org/archives/xorg/2009-March/044173.html"&gt;some&lt;/a&gt;  &lt;a href="http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2009/02/msg00180.html"&gt;sanity&lt;/a&gt; is restored. Look here for a &lt;a href="http://rpg-314.blogspot.com/2009/01/thread-safety.html"&gt;rant&lt;/a&gt;. Lets' hope nvidia drivers won't break this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8757274522733870890?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8757274522733870890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8757274522733870890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8757274522733870890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8757274522733870890'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/03/good-news.html' title='Good news'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3939713384587134253</id><published>2009-02-25T21:19:00.003+05:30</published><updated>2009-02-25T21:30:19.903+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='llvm'/><category scheme='http://www.blogger.com/atom/ns#' term='asciidoc'/><title type='text'>Updates</title><content type='html'>Lot's of 'em here today.&lt;br /&gt;&lt;br /&gt;I came across &lt;a href="http://mdevan.nfshost.com/llvm-py/"&gt;this&lt;/a&gt; site. Hack &lt;a href="http://llvm.org/"&gt;LLVM&lt;/a&gt; from python. Wow. I really liked it. I even went through some of the tutorials up there which tell you how to hack llvm to make your own language. The lexer and the parser I am obviously going to generate using automated tools (if I ever do it). Making AST from parsed input is obviously going to take some doing. But if you can get to LLVM IR, after that it is a joy ride.&lt;br /&gt;&lt;br /&gt;Another nice thing about his website is that it is made using &lt;a href="http://www.methods.co.nz/asciidoc/"&gt;asciidoc&lt;/a&gt;. I immediately recognized it from it's similiarity to the git documentation. Seems way better suited to generating HTML than LATEX and you can do nice code formatting and insert math formulas.&lt;br /&gt;&lt;br /&gt;And the first preview (to my knowledge) of RV740 just got out &lt;a href="http://www.guru3d.com/article/radeon-hd-4750-rv740-review-preview-test/"&gt;here&lt;/a&gt;. Seems really good. Good luck AMD. And please don't go bankrupt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3939713384587134253?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3939713384587134253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3939713384587134253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3939713384587134253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3939713384587134253'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/02/updates.html' title='Updates'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8251892151603143381</id><published>2009-02-22T20:01:00.005+05:30</published><updated>2009-02-22T20:12:20.204+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><title type='text'>OpenGL Assignment</title><content type='html'>&lt;a href="http://rpg-314.blogspot.com/2009/02/exams-again.html"&gt;It's&lt;/a&gt; done. I managed to do the whole thing, even as much as for 150% credit, though it is useful only if I am stuck at the borderline. The mid sem was half a washout, but I think he gives papers like this. Of course, there was no time to optimize anything.&lt;br /&gt;&lt;br /&gt;After the grades for this come out, I'll post it here depending on how embarrassing was it. :) Though I hope using Python for it wasn't a problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8251892151603143381?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8251892151603143381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8251892151603143381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8251892151603143381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8251892151603143381'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/02/opengl-assignment.html' title='OpenGL Assignment'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6055483715534932097</id><published>2009-02-20T21:40:00.001+05:30</published><updated>2009-02-20T21:50:38.535+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='python extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><title type='text'>Code-athon</title><content type='html'>The exams are over. But the assignment I referred to &lt;a href="http://rpg-314.blogspot.com/2009/02/exams-again.html"&gt;here&lt;/a&gt; still needs doing. Thank God I have python. With this sword of damocles hanging on my head, all thought of optimization, and writing it as a python extension has gone miles away from my head.&lt;br /&gt;&lt;br /&gt;Let's Rock.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6055483715534932097?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6055483715534932097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6055483715534932097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6055483715534932097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6055483715534932097'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/02/exams-are-over.html' title='Code-athon'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-778335094776535544</id><published>2009-02-14T19:32:00.003+05:30</published><updated>2009-02-14T19:38:25.122+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fastest code'/><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT'/><title type='text'>Exams, again</title><content type='html'>Midsems have begun, again. And immediately after them I am supposed to do an assignment for which the specs were changed midway. And now, I have to rewrite it all. I have a few ideas, and hopefully, will be able to implement them in time. Thank God for python, where would I be without you. And yes, atm, the usual aim of having it run blazing fast is out of the window.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-778335094776535544?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/778335094776535544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=778335094776535544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/778335094776535544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/778335094776535544'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/02/exams-again.html' title='Exams, again'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3962070136816985091</id><published>2009-02-05T22:00:00.004+05:30</published><updated>2009-02-05T22:14:10.782+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='povray'/><category scheme='http://www.blogger.com/atom/ns#' term='ray tracing'/><title type='text'>POVray videos</title><content type='html'>I just made a few videos from &lt;a href="http://rpg-314.blogspot.com/2009/02/povray-assigment-done.html"&gt;my&lt;/a&gt; POVray demo. I thought I'll put them up here. So here it is, at 800x600 resolution, encoded at 15 fps.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-997933651b6e5bb" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v3.nonxt3.googlevideo.com/videoplayback?id%3D0997933651b6e5bb%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330100797%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4A5457190A7A86E8F799F0D3E2F1C7884493BE96.24917146A81EBBDE4842E4F7F24506EBF856F319%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D997933651b6e5bb%26offsetms%3D5000%26itag%3Dw160%26sigh%3DnmwErFn3db5HHFZDQulEZW9IgzU&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v3.nonxt3.googlevideo.com/videoplayback?id%3D0997933651b6e5bb%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330100797%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4A5457190A7A86E8F799F0D3E2F1C7884493BE96.24917146A81EBBDE4842E4F7F24506EBF856F319%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D997933651b6e5bb%26offsetms%3D5000%26itag%3Dw160%26sigh%3DnmwErFn3db5HHFZDQulEZW9IgzU&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3962070136816985091?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=997933651b6e5bb&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3962070136816985091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3962070136816985091' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3962070136816985091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3962070136816985091'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/02/povray-videos.html' title='POVray videos'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7961367262249656778</id><published>2009-02-05T18:41:00.002+05:30</published><updated>2009-02-05T18:50:44.493+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Wetting my feet</title><content type='html'>It seems a &lt;a href="http://rpg-314.blogspot.com/2008/07/learnig-haskell.html"&gt;long while ago&lt;/a&gt; that I wanted to learn Haskell. And I haven't made any progress yet. But it seems to be changing. I came across &lt;a href="http://book.realworldhaskell.org/read/"&gt;this&lt;/a&gt;. It's a very nice book at a cursory glance. And I also got &lt;a href="http://www.haskell.org/soe/"&gt;this&lt;/a&gt; book from the library. It seems to be pretty good as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7961367262249656778?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7961367262249656778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7961367262249656778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7961367262249656778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7961367262249656778'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/02/wetting-my-feet.html' title='Wetting my feet'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-4594922763615066437</id><published>2009-02-04T22:09:00.009+05:30</published><updated>2009-02-05T22:23:29.312+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='povray'/><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><category scheme='http://www.blogger.com/atom/ns#' term='ray tracing'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT'/><title type='text'>POVray assigment done</title><content type='html'>The POVray assignment I wrote about &lt;a href="http://rpg-314.blogspot.com/2009/01/rant-against-povray.html"&gt;earlier&lt;/a&gt; is now complete. Got some nice pics out of it. Here's one of them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MNAZ1qvGXeM/SYnHE1u67II/AAAAAAAAACs/bxY2ncJVCdg/s1600-h/scene3001.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_MNAZ1qvGXeM/SYnHE1u67II/AAAAAAAAACs/bxY2ncJVCdg/s320/scene3001.png" alt="" id="BLOGGER_PHOTO_ID_5298985322535382146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now I am rendering them at higher resolution and will be making a movie out of them. Right now I have made a mpeg-4 one but I am looking to encode them in theora format. FFmpeg, I love you. Though this movie was made with mencoder, they both basically use the &lt;a href="http://en.wikipedia.org/wiki/Libavcodec"&gt;libavcodec&lt;/a&gt; and libavformat libraries.&lt;br /&gt;&lt;br /&gt;It is somewhat surprising that in ray tracing too, texture mapping is used extensively.&lt;br /&gt;&lt;br /&gt;Anyways, the pics look pretty cool to me.&lt;br /&gt;&lt;br /&gt;And yes, I figured out how to get rid of that irritating warning. Here' how.&lt;br /&gt;&lt;br /&gt;In the vfe/unix folder of the source tar ball for unix, there's a file called unixconsole.cpp. IN it, the following code appears,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (user_code != current_code)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            fprintf(stderr, "%s: this pre-release version of POV-Ray for Unix %s\n",&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;PACKAGE,&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;current_week &lt;&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            exit(RETURN_ERROR);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Comment it out. Afterwards, it will whine about expiring in a while, but those warnings are harmless, it won't come to pass.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Happy ray tracing.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-4594922763615066437?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/4594922763615066437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=4594922763615066437' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4594922763615066437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/4594922763615066437'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/02/povray-assigment-done.html' title='POVray assigment done'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MNAZ1qvGXeM/SYnHE1u67II/AAAAAAAAACs/bxY2ncJVCdg/s72-c/scene3001.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-988384607615160747</id><published>2009-01-30T14:11:00.004+05:30</published><updated>2009-01-30T14:24:10.883+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='glsl'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='broadband'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='drivers'/><title type='text'>The road to GLSL: Part II</title><content type='html'>Well, where's the part I dude? You may ask. Well, it was &lt;a href="http://rpg-314.blogspot.com/2008/12/my-gpu-supports-sm30.html"&gt;here&lt;/a&gt;, when I realized what I had with me for 2 years. And, in my 50th post, I am happy to tell you that we are nearly there now. Have a look.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;[rpg@rpg ~]$&lt;/span&gt; glxinfo|grep NVIDIA&lt;br /&gt;server glx vendor string: NVIDIA Corporation&lt;br /&gt;client glx vendor string: NVIDIA Corporation&lt;br /&gt;OpenGL vendor string: NVIDIA Corporation&lt;br /&gt;OpenGL version string: 2.1.2 NVIDIA 180.25&lt;br /&gt;OpenGL shading language version string: 1.20 NVIDIA via Cg compiler&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;[rpg@rpg ~]$&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No, my prompt isn't like that. I reinstalled Fedora 10 because I was fed up with KDE. Now I have both GNOME and KDE for future proofing. I'll just keep upgrading and use whatever seems better at the time.&lt;br /&gt;&lt;br /&gt;The install went horribly though. Long story. Some data loss has occurred too, though can't say how much. Hopefully, it is in can-be-easily-mitigated category. My mistake. Should have acted more prudently.&lt;br /&gt;&lt;br /&gt;Anyway, now the fun begins.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-988384607615160747?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/988384607615160747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=988384607615160747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/988384607615160747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/988384607615160747'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/01/road-to-glsl-part-ii.html' title='The road to GLSL: Part II'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-2442387543905470976</id><published>2009-01-28T21:25:00.005+05:30</published><updated>2009-01-28T22:51:04.105+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='povray'/><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='glsl'/><category scheme='http://www.blogger.com/atom/ns#' term='ray tracing'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='blender'/><title type='text'>Rant against povray</title><content type='html'>Recently, we were given an assignment to render some scenes using &lt;a href="http://en.wikipedia.org/wiki/POV-Ray"&gt;POVray&lt;/a&gt; and demonstrate to what we had learned about ray tracing. All right then, let's install it. OK. it may not be OSI compliant  license but as the page there states, it's because of it's birth time. We are sure to have packages for it in ubuntu. It's a just a simple matter of running&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;$&lt;/span&gt;sudo apt-get install povray&lt;br /&gt;&lt;br /&gt;I couldn't have been more wrong.&lt;br /&gt;&lt;br /&gt;This project is quite screwed up as it turns out.&lt;br /&gt;&lt;br /&gt;There has been no stable release for more than 4 years now. The project's mailinglists distinctly convey a sense of lack of developers. But this is the least of the troubles. Sure, I could have just stuck to the old but stable version. But it is not multithreaded.&lt;br /&gt;&lt;br /&gt;Yup. That's right. A serial ray tracer.&lt;br /&gt;&lt;br /&gt;If I didn't know better, I would have said that was a malapropism (GRE side effects, :-) ). People have been using SMP machines (if not multi core) for a while now and since POVray has been ported to many different machines before, it is incomprehensible that it's developers haven't threaded it yet.&lt;br /&gt;&lt;br /&gt;The most irritating thing about it is their concept of beta timeout. Their betas usually expire after a fixed time. And on top of it, these guys can't even release betas in time. Look &lt;a href="http://news.povray.org/povray.beta-test/thread/%3Cweb.4960e481cf8be8c9360c96990@news.povray.org%3E/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;They can't release the updated betas on time, aren't releasing new stable versions at all and everyone else is supposed to update every month or so.&lt;br /&gt;&lt;br /&gt;I somehow manged to patch the vfe.cpp file referenced in the above link. I even managed to render a few things like this.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MNAZ1qvGXeM/SYCP13KjZRI/AAAAAAAAACg/nnH7MwrUdfE/s1600-h/box.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 320px;" src="http://1.bp.blogspot.com/_MNAZ1qvGXeM/SYCP13KjZRI/AAAAAAAAACg/nnH7MwrUdfE/s320/box.png" alt="" id="BLOGGER_PHOTO_ID_5296391317291754770" border="0" /&gt;&lt;/a&gt;And, then I went to dinner. What a mistake on my part.&lt;br /&gt;&lt;br /&gt;And now, I have to fight this.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;~/povray-3.7.0.beta.29/unix@rpg-lab&gt;&lt;/span&gt; ./povray&lt;br /&gt;povray: this pre-release version of POV-Ray for Unix has expired&lt;br /&gt;&lt;br /&gt;Now only the betacode hack is working, in spite of modding the sources as mentioned in the link above to remove the timeout.&lt;br /&gt;&lt;br /&gt;God help me.&lt;br /&gt;&lt;br /&gt;Just look at &lt;a href="http://en.wikipedia.org/wiki/Blender_%28software%29"&gt;Blender&lt;/a&gt;. It has a huge community behind it. Scriptable in python (yay!), supports GLSL shaders, renders all right, imports/exports from/to every file format imaginable, can interface to other ray tracers as well. I think I am begining to like it. Further, it can export to anything that ffmpeg supports.&lt;br /&gt;&lt;br /&gt;I am running it on a machine with SSE3, but gcc can hardly be expected to make use of any of it's horizontal math goodness.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-2442387543905470976?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/2442387543905470976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=2442387543905470976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2442387543905470976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/2442387543905470976'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/01/rant-against-povray.html' title='Rant against povray'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MNAZ1qvGXeM/SYCP13KjZRI/AAAAAAAAACg/nnH7MwrUdfE/s72-c/box.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5174866776300677848</id><published>2009-01-27T17:11:00.003+05:30</published><updated>2009-01-27T17:28:49.857+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='glsl'/><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><title type='text'>GRE over, finally</title><content type='html'>My GRE is over. Thank God so much. The last few days have been full of nervous tension. But it is over. And it went well.&lt;br /&gt;&lt;br /&gt;And now, let's install Fedora 10, and chase &lt;a href="http://rpg-314.blogspot.com/2008/12/my-gpu-supports-sm30.html"&gt;shaders&lt;/a&gt;, GLSL shaders. And yeah, before that, we need to backup our data, watch some movies, etc etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5174866776300677848?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5174866776300677848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5174866776300677848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5174866776300677848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5174866776300677848'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/01/gre-over-finally.html' title='GRE over, finally'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6646329350174342562</id><published>2009-01-22T22:23:00.003+05:30</published><updated>2009-01-22T22:28:06.616+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><category scheme='http://www.blogger.com/atom/ns#' term='mumbai'/><category scheme='http://www.blogger.com/atom/ns#' term='moon'/><title type='text'>GRE</title><content type='html'>Just wanna get over with it. Feeling good about it. Let's see how it goes.&lt;br /&gt;&lt;br /&gt;Fingers crossed.&lt;br /&gt;&lt;br /&gt;PS: Slumdog Millionaire gets 10 Oscar nominations. AR Rehman gets 3 of them. That guy is a genius. He's gonna win atleast one of them. I am ecstatic about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6646329350174342562?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6646329350174342562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6646329350174342562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6646329350174342562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6646329350174342562'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/01/gre.html' title='GRE'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7542086263764978769</id><published>2009-01-15T19:02:00.002+05:30</published><updated>2009-01-15T19:05:31.861+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='thread safe'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='wishful thinking'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><title type='text'>Thread Safety</title><content type='html'>OpenGL ain't thread safe. What a shame.&lt;br /&gt;&lt;br /&gt;Turns out few libraries are thread safe. How the hell are average Joe programmers supposed to write multithreaded code when the libraries they rely upon aren't. Beats me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7542086263764978769?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7542086263764978769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7542086263764978769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7542086263764978769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7542086263764978769'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/01/thread-safety.html' title='Thread Safety'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3341319565822703713</id><published>2009-01-10T19:52:00.004+05:30</published><updated>2009-01-10T20:47:57.117+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='memory bug'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='mmap'/><category scheme='http://www.blogger.com/atom/ns#' term='system call'/><category scheme='http://www.blogger.com/atom/ns#' term='glsl'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='pointers'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>Exams and system calls</title><content type='html'>I have got my GRE comping up on 27th. It's really keeping me away from my &lt;a href="http://rpg-314.blogspot.com/2008/12/my-gpu-supports-sm30.html"&gt;crazy shaders&lt;/a&gt;. I wanted to get into system call level programming earlier, as I find it to be a powerful tool. I looked at the &lt;a href="http://en.wikipedia.org/wiki/Mmap"&gt;mmap&lt;/a&gt; system call first and found it to be very nice.&lt;br /&gt;&lt;br /&gt;The GLSL examples I have looked at usually define a read from file function which stat's a file for it's size, allocates memory reads and passes the &lt;span style="font-style: italic;"&gt;char *&lt;/span&gt; to compiler. Better still, just stat the file to get it's size, mmap those many bytes and then, just pass the mmap-ed pointer to the compiler!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Portable_pixmap"&gt;PPM&lt;/a&gt; images lend themselves to even better use. Just open the file, read the header info and close it. Then, mmap the file at the offset such that the header is read off and use the size from prior header read, and &lt;span style="font-style: italic;"&gt;voila&lt;/span&gt;, you can stream the texture to the GPU from hard disk asynchronously. Other texture loading libraries typically require you to allocate memory temporarily while they read the files. This way, we get rid of memory bugs, (&lt;a href="http://rpg-314.blogspot.com/2008/09/wtf.html"&gt;which can get nasty BTW&lt;/a&gt;) and this is something we can do easily in the background, ideal use for multi-threading. And it's simple too, as they it requires no inter-thread I/O.&lt;br /&gt;&lt;br /&gt;I know PPM images are too big to be practically used, but hey, OpenGL needs images in &lt;span style="font-style: italic;"&gt;that&lt;/span&gt; format, and we will give it in that format. Compressed textures, we'll look into, but later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3341319565822703713?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3341319565822703713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3341319565822703713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3341319565822703713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3341319565822703713'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2009/01/exams-and-system-calls.html' title='Exams and system calls'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8377058231978700603</id><published>2008-12-28T12:31:00.007+05:30</published><updated>2008-12-28T13:40:12.008+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='glsl'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='crazy idea'/><category scheme='http://www.blogger.com/atom/ns#' term='python extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='thread safe'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='swig'/><category scheme='http://www.blogger.com/atom/ns#' term='mumbai'/><title type='text'>My GPU supports SM3.0</title><content type='html'>I just realized that my laptop's GPU has been a SM3.0 capable one all along. I have learnt about using programmable graphics pipeline this year itself. I am drooling at the thought of running &lt;a href="http://en.wikipedia.org/wiki/Vertex_shader"&gt;vertex&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Pixel_shader"&gt;pixel&lt;/a&gt; shaders (I am going to call fragment shaders as pixel shaders only) of  my own. OK it is not a top of the line GPU, but hey, better than none.&lt;br /&gt;&lt;br /&gt;When I first learnt graphics programming, it was using the lowly Turbo C++'s graphis capabilities. Then I moved onto OpenGL 1.1. I wrote a demo using display lists and stuff but then it seemed that it was more than enough for anything that I might need.&lt;br /&gt;&lt;br /&gt;Then I discovered the joys of programmble graphics pipeline. It appeared to combine the power of Turbo C++'s low level and highly flexible power with the SGI's grpahics pipeline's inherent advantages.&lt;br /&gt;&lt;br /&gt;Now, my Geforce 6150 (I never said it was top of the line) is ready to serve me in my pursuit of crazy shaders. Of course, I'll start small and then I plan to move the control into Python and leave the hevy lifting to C.&lt;br /&gt;&lt;br /&gt;This also appears to be a great place to move into multithreading. Raw pthreads from C seems unwise.  I would &lt;a href="http://rpg-314.blogspot.com/2008/11/multithreading-and-python.html"&gt;prefer&lt;/a&gt; to orchestrate the entire stuff from Python. Atleast the loading/storing of textures is anticipated to be simple enough. This also is a place where multithreading can help hide latencies.&lt;br /&gt;&lt;br /&gt;Now I found the &lt;a href="http://en.wikipedia.org/wiki/DevIL"&gt;DevIL&lt;/a&gt; library for loading it seems very nice. Though I don't know if it is thread-safe. I hate it when I open docs for some library, only to find that it is not threadsafe. It is essential for concurrency that the libraries be threadsafe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8377058231978700603?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8377058231978700603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8377058231978700603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8377058231978700603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8377058231978700603'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2008/12/my-gpu-supports-sm30.html' title='My GPU supports SM3.0'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-8675161576826198589</id><published>2008-12-25T18:04:00.006+05:30</published><updated>2008-12-25T19:09:07.494+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='valgrind'/><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='terror'/><category scheme='http://www.blogger.com/atom/ns#' term='python extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='vectorization'/><category scheme='http://www.blogger.com/atom/ns#' term='segmentation fault'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><title type='text'>2008: A Review</title><content type='html'>Today as I sit down to write this, one thought runs through my mind. That this is the year of change. Sure, stuff changes all the time and&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic; font-family: courier new;"&gt;Change is the only constant&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Yet I cannot shake off the feeling that this year, somehow, more things seem to have hanged than they usually do. Moreover, I see the changes in trends not just in new incidents. To summarize, (in no particular order)&lt;br /&gt;&lt;br /&gt;1. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;GPGPU&lt;/span&gt; went mainstream. It got lots of attention from the tech press. I too read some stuff about programmable graphics pipeline. &lt;a href="http://en.wikipedia.org/wiki/OpenCL"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;OpenCL&lt;/span&gt;&lt;/a&gt; spec was released, which I am sure is just the catalyst needed for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;gpu's&lt;/span&gt; to come in their own.&lt;br /&gt;&lt;br /&gt;2. I &lt;a href="http://rpg-314.blogspot.com/2008/10/finally-i-achieve-closure.html"&gt;wrote&lt;/a&gt; a program in two different languages, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;ie&lt;/span&gt; Python and C++. I &lt;a href="http://rpg-314.blogspot.com/2008/09/wtf.html"&gt;suffered&lt;/a&gt; a lot on the way, but I had an optimized, vectorized (in parts) and cache aware &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;BFS&lt;/span&gt; ready when I was done. And yes, I learnt about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;valgrind&lt;/span&gt; along the way.&lt;br /&gt;&lt;br /&gt;3. India made history in many ways. We &lt;a href="http://rpg-314.blogspot.com/2008/11/india-on-moon.html"&gt;landed&lt;/a&gt; on the moon, had our best Olympics ever, had our &lt;a href="http://rpg-314.blogspot.com/2008/09/indias-breakout-moment.html"&gt;break-out moment&lt;/a&gt; and won emphatically in Australia. Today, I see India, Australia and South Africa as forming a triad which will compete for the No. 1 slot into the next year.&lt;br /&gt;&lt;br /&gt;4. Obama became the US president. It just had to make the list. And you know what it means.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;5. I got an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;opportunity&lt;/span&gt; to go abroad (which is a first in my family), so a big deal for me.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;6. The war on terror started going right for US and upside down for India. Yankees realized that ISI has been milking them all along and is actually busy screwing them royally in Afghanistan. Terror &lt;a href="http://rpg-314.blogspot.com/2008/07/terror-in-india.html"&gt;struck&lt;/a&gt; India like never before, and that's without 26/11.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;7. Public coming out on streets to protest was a welcome change. However, the public anger needs to be better directed if we are to achieve our long term goals.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-8675161576826198589?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/8675161576826198589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=8675161576826198589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8675161576826198589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/8675161576826198589'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2008/12/2008-review.html' title='2008: A Review'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-7927896865260269762</id><published>2008-12-22T14:04:00.004+05:30</published><updated>2008-12-22T14:09:15.804+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='broadband'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT'/><category scheme='http://www.blogger.com/atom/ns#' term='delhi'/><title type='text'>A quiet December</title><content type='html'>It has been a quiet december this year so far. I mean nothing on the blog, and Have been too lazy so far to bother doing much else so far in the holidays. The internet connection here has been acting up lately, in part because of the cable outage. Lot's of stuff has been flowing through my mind these past few days. Will summrize it soon.&lt;br /&gt;&lt;br /&gt;Though need to decide on the electives I will be taking next semester soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-7927896865260269762?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/7927896865260269762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=7927896865260269762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7927896865260269762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/7927896865260269762'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2008/12/quiet-december.html' title='A quiet December'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-3258813934776446100</id><published>2008-11-26T15:59:00.002+05:30</published><updated>2008-11-26T16:00:20.003+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='going home'/><category scheme='http://www.blogger.com/atom/ns#' term='exams'/><title type='text'>Going home</title><content type='html'>Exams got over yesterday. Though a presentation is remaining. Leaving for home on day after tommorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-3258813934776446100?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/3258813934776446100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=3258813934776446100' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3258813934776446100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/3258813934776446100'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2008/11/going-home.html' title='Going home'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-1657737662863461600</id><published>2008-11-23T01:22:00.003+05:30</published><updated>2008-11-23T01:33:34.857+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='superpc'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>Super PC's now availaible off-the-shelf</title><content type='html'>It seems that the trend of &lt;a href="http://fastra.ua.ac.be/en/index.html"&gt;building supercomputers out of multiple gpu's in one pc&lt;/a&gt; is catching on. I really like this idea and now nvidia is &lt;a href="http://www.nvidia.com/object/tesla_supercomputer_wtb.html"&gt;offering&lt;/a&gt; pre-built and qualified systems on those lines. But yes, they come with Tesla series of cards instead of the cheaper geforce cards.&lt;br /&gt;&lt;br /&gt;Come on AMD,  get your OpenCL implementation working so that we can enjoy &lt;a href="http://rpg-314.blogspot.com/2008/11/amds-fastra-now-possible.html"&gt;&lt;span style="font-weight: bold;"&gt;much&lt;/span&gt;&lt;/a&gt; faster super-pc's.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-1657737662863461600?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/1657737662863461600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=1657737662863461600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1657737662863461600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/1657737662863461600'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2008/11/super-pcs-now-availaible-off-shelf.html' title='Super PC&apos;s now availaible off-the-shelf'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-79281343907295800</id><published>2008-11-22T22:24:00.002+05:30</published><updated>2008-11-22T22:28:57.649+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='compression'/><title type='text'>Good texture compression review</title><content type='html'>I cam across &lt;a href="http://www.fit.com.ru/Surveys/TextureCompression/index.htm"&gt;this&lt;/a&gt; very nice review of texture compression. He covers the need for texture compression, and the typical techniques used for texture compression, their pros and cons. Though there are a few spelling mistakes here and there and he builds his case for texture compression around  AGP, an extinct bus. All in all, a nice review to aid your understanding of texture compression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-79281343907295800?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/79281343907295800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=79281343907295800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/79281343907295800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/79281343907295800'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2008/11/good-texture-compression-review.html' title='Good texture compression review'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-5293699405310302511</id><published>2008-11-18T23:39:00.004+05:30</published><updated>2008-11-19T00:20:17.693+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='low power'/><category scheme='http://www.blogger.com/atom/ns#' term='crazy idea'/><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><category scheme='http://www.blogger.com/atom/ns#' term='drivers'/><title type='text'>AMD's FASTRA now possible</title><content type='html'>I have &lt;a href="http://rpg-314.blogspot.com/2008/07/tech-wishlist.html"&gt;written&lt;/a&gt; before on how better tools are needed on the AMD side to do gpgpu stuff, in some &lt;a href="http://rpg-314.blogspot.com/2008/08/wish-3.html"&gt;detail&lt;/a&gt;. I had particularly pointed out the need for their drivers to support 4 4870x2 cards in a PC as it makes for a nice 9.6T toaster.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://techreport.com/discussions.x/15886"&gt;This&lt;/a&gt; announcement certainly means that they are stepping up their efforts, though a true C compiler remains in the foggy future. Further, &lt;a href="http://forums.amd.com/forum/messageview.cfm?catid=328&amp;amp;threadid=103174&amp;amp;enterthread=y"&gt;this&lt;/a&gt; thread says that they expect drivers to recognize them (the four cards that is) allright.&lt;br /&gt;&lt;br /&gt;I saw a few people eager to make such a toaster. Well, with that announcement, good luck guys.&lt;br /&gt;&lt;br /&gt;And &lt;a href="http://forum.beyond3d.com/showthread.php?t=50826"&gt;this&lt;/a&gt; suggests that a C-to-IL compiler may not be so far into the future either. Well, good luck guys, give us a C compiler quickly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-5293699405310302511?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/5293699405310302511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=5293699405310302511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5293699405310302511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/5293699405310302511'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2008/11/amds-fastra-now-possible.html' title='AMD&apos;s FASTRA now possible'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-982929381470443133.post-6465569064651754529</id><published>2008-11-14T22:10:00.002+05:30</published><updated>2008-11-14T22:14:16.890+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='isro'/><category scheme='http://www.blogger.com/atom/ns#' term='india'/><category scheme='http://www.blogger.com/atom/ns#' term='space'/><category scheme='http://www.blogger.com/atom/ns#' term='moon'/><title type='text'>India on the moon</title><content type='html'>Now there's a &lt;a href="http://timesofindia.indiatimes.com/Chandrayaan-I_Impact_Probe_lands_on_moon/articleshow/3714245.cms"&gt;tricolour&lt;/a&gt; on the moon. Great job, ISRO.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/982929381470443133-6465569064651754529?l=rpg-314.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rpg-314.blogspot.com/feeds/6465569064651754529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=982929381470443133&amp;postID=6465569064651754529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6465569064651754529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/982929381470443133/posts/default/6465569064651754529'/><link rel='alternate' type='text/html' href='http://rpg-314.blogspot.com/2008/11/india-on-moon_14.html' title='India on the moon'/><author><name>RPG</name><uri>http://www.blogger.com/profile/06976708620547905344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
