<?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-4510189196231878002</id><updated>2011-12-08T13:03:36.327-08:00</updated><category term='documentation'/><category term='swing'/><category term='justiceforall'/><category term='movies'/><category term='ZOMBIES'/><category term='metallica'/><category term='gingersnap'/><category term='scifi'/><category term='weirdness'/><category term='boost'/><category term='iso'/><category term='fedora'/><category term='benchmark'/><category term='blood'/><category term='gnu'/><category term='gpa'/><category term='api'/><category term='date'/><category term='graphviz'/><category term='dvd'/><category term='png'/><category term='horror'/><category term='1680x1050'/><category term='quadtree'/><category term='yum'/><category term='excel'/><category term='opengl'/><category term='python'/><category term='avi'/><category term='kilgard'/><category term='truetype'/><category term='script'/><category term='gimp'/><category term='performance'/><category term='physics'/><category term='csv'/><category term='inkscape'/><category term='vector'/><category term='c++'/><category term='msaa'/><category term='linux'/><category term='freetype'/><category term='ant'/><category term='java'/><category term='wallpaper'/><category term='sourceforge'/><category term='british'/><category term='bsd'/><category term='ffmpeg'/><category term='music'/><category term='lisp'/><category term='font'/><category term='dvdauthor'/><category term='tga'/><category term='cameras'/><category term='awt'/><category term='lights'/><category term='texture'/><category term='IHATEZOMBIES'/><category term='c99'/><category term='java2d'/><category term='fun'/><category term='dagger3d'/><category term='ubuntu'/><category term='tea'/><category term='balls'/><title type='text'>Tom9729's Blog</title><subtitle type='html'>One of the things I do instead of sleeping</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-417492096629098556</id><published>2010-08-16T17:34:00.000-07:00</published><updated>2010-08-16T17:37:49.923-07:00</updated><title type='text'>Adding Users In Leopard</title><content type='html'>How to add a user from the command line in Leopard (since it's apparently too much for Apple to include useradd-esque scripts).&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dscl localhost -create /Local/Default/Users/zack&lt;br /&gt;dscl localhost -create /Local/Default/Users/zack UserShell /bin/zsh&lt;br /&gt;dscl localhost -create /Local/Default/Users/zack RealName "Zack"&lt;br /&gt;dscl localhost -create /Local/Default/Users/zack UniqueID 502&lt;br /&gt;dscl localhost -create /Local/Default/Users/zack PrimaryGroupID 1000&lt;br /&gt;dscl localhost -create /Local/Default/Users/zack NFSHomeDirectory /Users/zack&lt;br /&gt;dscl localhost -passwd /Local/Default/Users/zack changeme&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Also to look at what UIDs already exist...&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dscl localhost -list /Local/Default/Users UniqueID&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Scripting this is trivial but I am lazy. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-417492096629098556?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/417492096629098556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2010/08/adding-users-in-leopard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/417492096629098556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/417492096629098556'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2010/08/adding-users-in-leopard.html' title='Adding Users In Leopard'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-5592149256812909966</id><published>2010-04-30T12:01:00.000-07:00</published><updated>2010-04-30T12:07:03.178-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gimp'/><category scheme='http://www.blogger.com/atom/ns#' term='vector'/><category scheme='http://www.blogger.com/atom/ns#' term='inkscape'/><category scheme='http://www.blogger.com/atom/ns#' term='justiceforall'/><category scheme='http://www.blogger.com/atom/ns#' term='wallpaper'/><category scheme='http://www.blogger.com/atom/ns#' term='1680x1050'/><category scheme='http://www.blogger.com/atom/ns#' term='metallica'/><title type='text'>Metallica vector art wallpaper</title><content type='html'>Couldn't find a good Metallica wallpaper so I went and made one using Inkscape and Gimp, and the And Justice For All cover.&lt;br /&gt;&lt;br /&gt;1680x1050&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_st4ZM9d9TGU/S9spzfRhe2I/AAAAAAAAAE0/C3A1hXEbko4/s1600/justice_for_all_no_metallica_bluish_gradient_1680x1050.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_st4ZM9d9TGU/S9spzfRhe2I/AAAAAAAAAE0/C3A1hXEbko4/s320/justice_for_all_no_metallica_bluish_gradient_1680x1050.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5466008537289292642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Will provide other sizes upon request. I also made a version without the gradient although it doesn't look as cool so I'm not going to post it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-5592149256812909966?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/5592149256812909966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2010/04/metallica-vector-art-wallpaper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/5592149256812909966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/5592149256812909966'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2010/04/metallica-vector-art-wallpaper.html' title='Metallica vector art wallpaper'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_st4ZM9d9TGU/S9spzfRhe2I/AAAAAAAAAE0/C3A1hXEbko4/s72-c/justice_for_all_no_metallica_bluish_gradient_1680x1050.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-716993274090120774</id><published>2010-04-29T23:13:00.000-07:00</published><updated>2010-04-29T23:16:59.900-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='graphviz'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='boost'/><title type='text'>Boost + Graphviz</title><content type='html'>BGL is a template library which (I think) means that everything is just a bunch of header files. The Graphviz stuff apparently needs to be compiled though, and while I installed all of the Boost stuff through my package manager (Fedora 12) apparently I did not get this Boost/Graphviz stuff.&lt;br /&gt;&lt;br /&gt;Here are the steps I went to build libbgl-viz.so, which can be linked to in order to run the graphviz examples. This is probably all documented somewhere but I could not find very clear instructions anywhere. Also it's worth noting that if you build a dynamic library you will probably have to distribute it with your application as you can't rely on it being in the Boost distribution (because it's not)!&lt;br /&gt;&lt;br /&gt;1) Download boost-1.4 source.&lt;br /&gt;&lt;br /&gt;2) Go to boost/libs/graph/src.&lt;br /&gt;&lt;br /&gt;3) g++ -c *.cpp -I../../../ -Wno-deprecated -fPIC&lt;br /&gt;&lt;br /&gt;4) g++ -shared -o libbgl-viz.so *.o&lt;br /&gt;&lt;br /&gt;5) Next steps are optional if you do not want to install system-wide.&lt;br /&gt;&lt;br /&gt;6) sudo chown root:root libbgl-viz.so&lt;br /&gt;&lt;br /&gt;7) sudo mv libbgl-viz.so /usr/lib/&lt;br /&gt;&lt;br /&gt;8) Try building some of the examples, you will need to link with boost_graph, libbgl-viz, and boost_regex. If you get any errors try playing with the order.&lt;br /&gt;&lt;br /&gt;9) Go party!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-716993274090120774?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/716993274090120774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2010/04/boost-graphviz.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/716993274090120774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/716993274090120774'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2010/04/boost-graphviz.html' title='Boost + Graphviz'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-1118442727547418014</id><published>2010-01-11T02:04:00.000-08:00</published><updated>2010-01-11T14:37:26.133-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lights'/><category scheme='http://www.blogger.com/atom/ns#' term='msaa'/><category scheme='http://www.blogger.com/atom/ns#' term='dagger3d'/><category scheme='http://www.blogger.com/atom/ns#' term='c99'/><category scheme='http://www.blogger.com/atom/ns#' term='balls'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='cameras'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='kilgard'/><title type='text'>Cameras, lights, and balls!</title><content type='html'>Another bunch of little updates.&lt;br /&gt;&lt;br /&gt;* Mostly finished the virtual camera system. It supports multiple cameras with 5 and 6 degrees of freedom. Basically 5DOF = translational degrees of freedom along the XYZ axes and two additional degrees of rotational freedom (pitch and yaw). This is your typical FPS camera.&lt;br /&gt;6DOF is all of that plus roll, more useful for flight sim-type games. The only thing I really think I have left to add is support for strafing. Also I think it would be kind of neat to have a wrapper around gluLookAt() that creates a camera and sets the proper orientation, because a lot of the examples I am looking at use it.&lt;br /&gt;&lt;br /&gt;Camera example, mouse controlled flying 5DOF camera through a field of cubes.&lt;br /&gt;&lt;a href="http://img195.imageshack.us/i/cubefield.jpg/"&gt;&lt;img src="http://img195.imageshack.us/img195/3300/cubefield.th.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* Enabled MSAA (multisample anti-aliasing) by default. Added support for backface culling.&lt;br /&gt;&lt;br /&gt;* Renamed all function from the format &lt;i&gt;dX&lt;/i&gt; to &lt;i&gt;dgX&lt;/i&gt; to avoid conflicts with the physics library I am looking to use (ODE).&lt;br /&gt;&lt;br /&gt;* Restructured source/include directories so that it is much more organised. Also I wrote a new configure script that should work better than the old one, supports folders in source directory, etc.&lt;br /&gt;&lt;br /&gt;* Added some memory allocation macros.&lt;br /&gt;&lt;br /&gt;* Mostly implemented a virtual light system (inspired by Mark Kilgard's multilight example). Still need to add support for shadows, spotlights, and materials.&lt;br /&gt;&lt;br /&gt;Port of Kilgard's multilight example to Dagger3D.&lt;br /&gt;&lt;a href="http://img686.imageshack.us/i/multilight.jpg/"&gt;&lt;img src="http://img686.imageshack.us/img686/5965/multilight.th.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* Brought one of my old experiments back to life. Basically it is a 2D box, you press the space bar and balls get dropped with semi-random initial velocities. Gravity affects the balls and they can bounce off each other. Difficult to do efficiently (I did not).&lt;br /&gt;&lt;br /&gt;Semi-animated screenshot of bouncing ball experiment.&lt;br /&gt;&lt;a href="http://img36.imageshack.us/i/ballsd.gif/"&gt;&lt;img src="http://img36.imageshack.us/img36/4670/ballsd.th.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Starting work on a simple GUI system that will probably only include some very basic stuff, mainly buttons, text, and maybe some very very simple input fields.&lt;br /&gt;&lt;br /&gt;Also looking into writing a resource =&gt; header file compiler, so that you can include (for example) a texture or font inside an executable.&lt;br /&gt;&lt;br /&gt;Ahhhh I totally need to go to bed now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-1118442727547418014?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/1118442727547418014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2010/01/cameras-lights-and-balls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/1118442727547418014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/1118442727547418014'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2010/01/cameras-lights-and-balls.html' title='Cameras, lights, and balls!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-5159100833804170392</id><published>2009-12-30T18:45:00.001-08:00</published><updated>2009-12-30T18:51:19.622-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gingersnap'/><category scheme='http://www.blogger.com/atom/ns#' term='freetype'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='tea'/><category scheme='http://www.blogger.com/atom/ns#' term='dagger3d'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='truetype'/><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='sourceforge'/><category scheme='http://www.blogger.com/atom/ns#' term='c99'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><title type='text'>Fancy text &amp; documentation!</title><content type='html'>First order of business is that the &lt;a href="http://dagger3d.svn.sourceforge.net/viewvc/dagger3d/trunk/dagger3d/doc/api/html/index.html"&gt;API documentation&lt;/a&gt; for the SVN version of Dagger3D is now online. For a good overview of everything, check out the dagger3d header. A few files are still missing documentation, but expect that to change in the next few days!&lt;br /&gt;&lt;br /&gt;Second item is that I got a little carried away playing with the font code. Basically I added inline colours and real tab support. Read about it &lt;a href="http://dagger3d.svn.sourceforge.net/viewvc/dagger3d/trunk/dagger3d/doc/api/html/a00007.html#ae83d4e76de05372fd3bad25d77f05e1f"&gt;here&lt;/a&gt;, see screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;a target='_blank' href='http://img130.imageshack.us/i/fontexample.jpg/'&gt;&lt;img src='http://img130.imageshack.us/img130/5548/fontexample.th.jpg' border='0'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pastebin.com/fe41fdc5"&gt;Source for example in screenshot.&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Also today I received in the mail six grand boxes of gingersnap tea.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-5159100833804170392?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/5159100833804170392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2009/12/fancy-text-documentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/5159100833804170392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/5159100833804170392'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2009/12/fancy-text-documentation.html' title='Fancy text &amp; documentation!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-2005104001690602459</id><published>2009-10-12T22:20:00.001-07:00</published><updated>2009-12-30T18:52:39.479-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='gnu'/><category scheme='http://www.blogger.com/atom/ns#' term='gpa'/><title type='text'>GPA Calculator in Lisp</title><content type='html'>&lt;a href="http://pastebin.com/f76150dc1"&gt;Quick GPA (out of 4.0) calculator I wrote in Lisp awhile back.&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-2005104001690602459?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/2005104001690602459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2009/10/gpa-calculator-in-lisp.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/2005104001690602459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/2005104001690602459'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2009/10/gpa-calculator-in-lisp.html' title='GPA Calculator in Lisp'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-6593035768765291636</id><published>2009-08-20T20:35:00.000-07:00</published><updated>2009-10-12T22:19:04.149-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='png'/><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='tga'/><category scheme='http://www.blogger.com/atom/ns#' term='dagger3d'/><category scheme='http://www.blogger.com/atom/ns#' term='c99'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Performance comparison of TGA and PNG</title><content type='html'>I've been doing a little research into the TGA and PNG formats. Dagger currently supports both, something I'd like to change as it is completely unnecessary.&lt;br /&gt;&lt;br /&gt;Both support RGBA and are lossless which are pretty much my only requirements.&lt;br /&gt;&lt;br /&gt;TGA is simple to load, but the files are usually two to three times larger than the equivalent image saved as a PNG. PNG on the other hand is a compressed format so the files are pretty small, but loading is much more complex and I've resorted to using a PNG library that is several times larger than Dagger...&lt;br /&gt;&lt;br /&gt;There is no reason to support two different formats with essentially the same feature set, therefore I would like to cut one of them out of Dagger. The problem so far has been deciding which one.&lt;br /&gt;&lt;br /&gt;I can live with TGA's large file sizes, what I'm mainly concerned about is loading performance. I originally thought that loading compressed images would be faster because disk IO is  slow. To test this I wrote a quick benchmark that loads a 512x512x24 image 100 (I also tried 1000 but the results were mostly the same) times and then takes the average load time for each format. It turns out that in all of my tests loading a TGA is 2.5-3.5 times faster than loading the equivalent PNG.&lt;br /&gt;&lt;br /&gt;The code and the images can be found &lt;a href="http://dagger3d.svn.sourceforge.net/viewvc/dagger3d/trunk/dagger3d/devel/tga_png_benchmark/"&gt;here&lt;/a&gt;. Make sure that you configure &amp;amp; compile Dagger with.&lt;br /&gt;&lt;blockquote&gt;./configure DEFS=-DD_TEXTURE_DISABLE&lt;br /&gt;make&lt;br /&gt;&lt;/blockquote&gt;The test was performed several times on both 32bit and 64bit machines (Fedora 11).&lt;br /&gt;&lt;br /&gt;TGA loading was performed by Dagger, PNG loading was performed by whatever version of libpng ships with Fedora.&lt;br /&gt;&lt;br /&gt;Edit: After changing my loader to use GL_BGR(A) instead of manually swapping pixel components, TGA loading is now roughly 12 times faster than PNG loading. Wow.&lt;br /&gt;&lt;br /&gt;Late edit: Not sure how scientific this was. Increasing the number of times I loaded a texture showed that eventually PNG beats TGA. Unsure what exactly this means, but I'm probably going to go with PNG afterall seeing as how for the time being some kind of image compression is still important.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-6593035768765291636?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/6593035768765291636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2009/08/tga-vs-png.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/6593035768765291636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/6593035768765291636'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2009/08/tga-vs-png.html' title='Performance comparison of TGA and PNG'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-6143255417902071512</id><published>2009-07-26T19:45:00.000-07:00</published><updated>2009-07-26T19:59:04.744-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='java2d'/><category scheme='http://www.blogger.com/atom/ns#' term='quadtree'/><category scheme='http://www.blogger.com/atom/ns#' term='swing'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='ant'/><category scheme='http://www.blogger.com/atom/ns#' term='awt'/><category scheme='http://www.blogger.com/atom/ns#' term='bsd'/><title type='text'>Quadtrees (in Java)!</title><content type='html'>I've been working on a &lt;a href="http://en.wikipedia.org/wiki/Quadtree"&gt;quadtree&lt;/a&gt; implementation for a couple of weekends now. My first attempts were in Python, but I eventually got something working in Java (mostly because I wanted an excuse to learn Ant :-).&lt;br /&gt;&lt;br /&gt;Here is what it looks like so far...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_st4ZM9d9TGU/Sm0WXt626jI/AAAAAAAAABA/sxR3dBCCZAA/s1600-h/qtreegui1.jpg"&gt;&lt;img style="cursor: pointer; width: 311px; height: 320px;" src="http://4.bp.blogspot.com/_st4ZM9d9TGU/Sm0WXt626jI/AAAAAAAAABA/sxR3dBCCZAA/s320/qtreegui1.jpg" alt="" id="BLOGGER_PHOTO_ID_5362967327987395122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Only supports inserts right now, so not very useful, but I will add motion in the next version.&lt;br /&gt;&lt;br /&gt;You can download the source code &lt;a href="http://dagger3d.svn.sourceforge.net/viewvc/dagger3d/branches/dagger3d-0.2/devel/QTreeGui.tar.gz?view=tar"&gt;here&lt;/a&gt;. The license is BSD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-6143255417902071512?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/6143255417902071512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2009/07/quadtrees-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/6143255417902071512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/6143255417902071512'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2009/07/quadtrees-in-java.html' title='Quadtrees (in Java)!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_st4ZM9d9TGU/Sm0WXt626jI/AAAAAAAAABA/sxR3dBCCZAA/s72-c/qtreegui1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-3805259618439280899</id><published>2009-07-09T13:55:00.000-07:00</published><updated>2009-07-20T08:08:36.550-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='csv'/><category scheme='http://www.blogger.com/atom/ns#' term='weirdness'/><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='date'/><title type='text'>The Joys of MS Excel</title><content type='html'>Today I added export-to-csv functionality to the app I'm working on (so people can dump data to Excel and do whatever the hell they want with it).&lt;br /&gt;&lt;br /&gt;Spent about twenty minutes trying to figure out why certain fields in Excel were showing up as "########" instead of "2009/10/11" (for example).&lt;br /&gt;&lt;br /&gt;Apparently Excel does this when a cell without spaces is deemed to be too long. Weird.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-3805259618439280899?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/3805259618439280899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2009/07/joys-of-ms-excel.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/3805259618439280899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/3805259618439280899'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2009/07/joys-of-ms-excel.html' title='The Joys of MS Excel'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-9140781121573086300</id><published>2009-04-10T18:15:00.000-07:00</published><updated>2009-08-21T08:39:31.364-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><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='dvd'/><category scheme='http://www.blogger.com/atom/ns#' term='yum'/><category scheme='http://www.blogger.com/atom/ns#' term='iso'/><category scheme='http://www.blogger.com/atom/ns#' term='avi'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='dvdauthor'/><title type='text'>AVI to DVD script</title><content type='html'>A script I wrote to convert a movie (specifically AVI) to a format that you can easily burn to a DVD and watch in your DVD player.&lt;br /&gt;&lt;br /&gt;It's an improved version of &lt;a href="http://www.realtimeedit.com/blog/2007/10/07/avi-to-dvd-script-linux-ubuntu/"&gt;this script&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Make sure you install ffmpeg, dvdauthor, and mkisofs before you try it. To do this in Fedora 10 you would type &lt;span style="font-weight: bold;"&gt;sudo yum install ffmpeg dvdauthor mkisofs&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;To convert the movie &lt;span style="font-weight: bold;"&gt;example_movie.avi&lt;/span&gt; to a DVD, one would do &lt;span style="font-weight: bold;"&gt;sh avi_to_dvd.sh example_movie.avi movie.iso&lt;/span&gt;. This will take a very long time (especially for long movies). When it is done you should be left with a nice fancy ISO file that you can burn to a DVD with your favorite burning program.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;br /&gt;&lt;br /&gt;Note: This will consume large amounts of /tmp space so do not use this if your hard drive is nearly full. Also if for some reason the script dies before it gets a chance to clean up it's temporary work, navigate to /tmp and delete folders starting with &lt;span style="font-weight: bold;"&gt;avi-to-dvd&lt;/span&gt;.&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;blockquote&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# Convert an AVI to a ready-to-burn DVD iso.&lt;br /&gt;#&lt;br /&gt;# Author: Tom Arnold&lt;br /&gt;# License: Public Domain&lt;br /&gt;# Requires: ffmpeg, dvdauthor, mkisofs, and lots of space in /tmp&lt;br /&gt;# References: http://www.realtimeedit.com/blog/2007/10/07/avi-to-dvd-script-linux-ubuntu/&lt;br /&gt;&lt;br /&gt;INPUT="$1"&lt;br /&gt;OUTPUT="$2"&lt;br /&gt;FFMPEG="ffmpeg"&lt;br /&gt;DVDAUTH="dvdauthor"&lt;br /&gt;MAKEISO="mkisofs"&lt;br /&gt;RM="rm -rf"&lt;br /&gt;TEMP="/tmp/avi-to-dvd-$RANDOM"&lt;br /&gt;&lt;br /&gt;if [ $# -ne 2 ];&lt;br /&gt;then&lt;br /&gt;  echo "Usage: avi_to_dvd [INPUT] [OUTPUT]"&lt;br /&gt;  exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;## Make a folder in /tmp for us to do work in.&lt;br /&gt;mkdir $TEMP&lt;br /&gt;&lt;br /&gt;## Convert the movie to DVD format (NTSC).&lt;br /&gt;$FFMPEG -i "$INPUT" -y -target ntsc-dvd -sameq -aspect 16:9 "$TEMP/out.mpg"&lt;br /&gt;&lt;br /&gt;## Create the DVD.&lt;br /&gt;$DVDAUTH --title -o "$TEMP/dvd" -f "$TEMP/out.mpg"&lt;br /&gt;$DVDAUTH -o "$TEMP/dvd" -T&lt;br /&gt;&lt;br /&gt;## Make the actual ISO image.&lt;br /&gt;$MAKEISO -dvd-video -o $OUTPUT "$TEMP/dvd"&lt;br /&gt;&lt;br /&gt;## Clean up.&lt;br /&gt;$RM "$TEMP"&lt;br /&gt;echo "Done!"&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4510189196231878002-9140781121573086300?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/9140781121573086300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2009/04/avi-to-dvd-script.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/9140781121573086300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/9140781121573086300'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2009/04/avi-to-dvd-script.html' title='AVI to DVD script'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4510189196231878002.post-1007402550650303589</id><published>2009-04-09T21:35:00.000-07:00</published><updated>2009-04-09T22:06:58.539-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IHATEZOMBIES'/><category scheme='http://www.blogger.com/atom/ns#' term='ZOMBIES'/><category scheme='http://www.blogger.com/atom/ns#' term='blood'/><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='british'/><category scheme='http://www.blogger.com/atom/ns#' term='scifi'/><category scheme='http://www.blogger.com/atom/ns#' term='horror'/><title type='text'>28 Weeks Later</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.vectormagazine.co.uk/cgi-bin/upload/28_weeks_later.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 238px; height: 353px;" src="http://www.vectormagazine.co.uk/cgi-bin/upload/28_weeks_later.jpg" alt="" border="0" /&gt;&lt;/a&gt;This is undeniably one of the best (and most disturbing movies) that I have ever begun watching at approximately 6am.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;By the way I am going to talk about the ending, so if you haven't seen this yet and still plan to then for your own sake stop reading now.&lt;br /&gt;&lt;br /&gt;Anyway, I had several gripes with this movie.&lt;br /&gt;&lt;br /&gt;1) The human-to-zombie transformation seemed to vary in length depending upon who was infected. When Don became infected (gripe number two), we had to watch almost a full minute of him staggering around the room with foam coming out of his mouth before he actually became "one of them". Yet most of the other people who were bitten or spit on or whatever almost instantly turned into zombies.&lt;br /&gt;&lt;br /&gt;2) Don kissing his wife and turned into a zombie. Thinking about this more, I suppose it didn't occur to him that she was a carrier. I don't think anyone knew except the General and Scarlet, so it makes a little bit of sense that no guards would have tried to stop him from reaching her, after all she was his wife and he had that fancy little card that let him go anywhere in Sector 1. What really gets me is how Scarlet didn't immediately think "Well shit, this woman is a carrier maybe we should either A) kill her immediately or B) lock her in the room AND post guards that know enough not to let anyone in (especially Don)".&lt;br /&gt;&lt;br /&gt;3) A lot of scenes bordered on hilarious unless you stopped to think and place yourself within them (use your imagination kids). When the zombies chased someone they hauled ass and didn't care what it looked like, which coincidentally looked hilarious. That said, placing myself in that situation I would have been scared as shit and probably wouldn't have been very concerned about how stupid the zombies that were chasing me looked. The subway scene at the end looked like an episode of Ghost Hunters (yuck), but again "realism"; that would be pretty scary if you stop to think that A) it is pitch black and B) they were walking over a bunch of corpses.&lt;br /&gt;&lt;br /&gt;4) The ending was a little too ambigious. As heartless as it sounds, I don't really feel like escaping with (the now infected) Andy to France was such a good idea. The last scene leads me to believe that somehow Andy transmitted the disease to someone and the whole thing started over again. That, or Zombies broke through the Chunnel (which would just be stupid on the part of the military, I mean honestly just collapse it).&lt;br /&gt;&lt;br /&gt;5) The violence is (at times) excessive. Maybe it was realistic, but I'm pretty sure if I was in that room with Don and Alice I would be more concerned with GTFO than watching him pop her eyeballs (yuck).&lt;br /&gt;&lt;br /&gt;The soundtrack was so excellent that I am listening to it right now.&lt;br /&gt;&lt;br /&gt;Top 3 favorite scenes from the movie.&lt;br /&gt;&lt;br /&gt;1) The firebombing of London.&lt;br /&gt;2) When Flynn chops down like 50 zombies with his helicopter.&lt;br /&gt;3) When Doyle shoots the zombie that is about to bite Andy.&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/4510189196231878002-1007402550650303589?l=tom9729.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom9729.blogspot.com/feeds/1007402550650303589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom9729.blogspot.com/2009/04/28-weeks-later.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/1007402550650303589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4510189196231878002/posts/default/1007402550650303589'/><link rel='alternate' type='text/html' href='http://tom9729.blogspot.com/2009/04/28-weeks-later.html' title='28 Weeks Later'/><author><name>Tom</name><uri>http://www.blogger.com/profile/07374147874730619755</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_st4ZM9d9TGU/TK1b0thYWLI/AAAAAAAAAFM/pDyO4g5hvEU/S220/41480_1311020922_2342_n.jpg'/></author><thr:total>2</thr:total></entry></feed>
