<?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-3619023968476701759</id><updated>2012-01-25T09:18:36.364-08:00</updated><category term='Canvas'/><category term='Twitter'/><category term='Games'/><category term='bullet.js'/><category term='Starcraft 2'/><category term='Javascript'/><category term='O3d'/><category term='Concept'/><category term='Physics'/><category term='Webstart'/><category term='WebGL'/><category term='Cern'/><category term='Html'/><category term='Java'/><category term='Metal'/><category term='Wloom'/><category term='Twaja'/><category term='Google'/><category term='Blog'/><category term='Applet'/><category term='Gfx'/><category term='Programming'/><category term='Doom3 Mod'/><title type='text'>Pl4n3s world</title><subtitle type='html'>Blog about Programming, Graphics, Games and Html5</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-3383267209272263965</id><published>2011-11-30T06:04:00.001-08:00</published><updated>2011-11-30T06:50:24.931-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wloom'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>Wloom - WebGl game, work in progress #7</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-pN3VeEqOY0E/TtY4P0jmH_I/AAAAAAAAAVQ/AdI_8eomfNY/s1600/wloom7.jpg" imageanchor="1" style="clear:right; float:right;margin:0px 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;"&gt;&lt;img border="0" height="300" width="480" src="http://2.bp.blogspot.com/-pN3VeEqOY0E/TtY4P0jmH_I/AAAAAAAAAVQ/AdI_8eomfNY/s480/wloom7.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;WebGl game &lt;b&gt;Wloom&lt;/b&gt; version 0.7 is here with following changes:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Jump&amp;run-gameplay&lt;/b&gt; is introduced.&lt;li&gt;&lt;b&gt;Core game abstraction.&lt;/b&gt; To ensure that the gameplay is working well and for better testing, the core game is a standalone module, which can be applied to different renderers. Wloom7 is essentially a webgl renderer for the core game. There is a second, very simple renderer, which displays the game as &lt;b&gt;blocks on a canvas&lt;/b&gt;.&lt;li&gt;The design of the npcs is inspired by &lt;b&gt;Starcraft2-banelings&lt;/b&gt;.&lt;li&gt;There are new sounds, made with &lt;b&gt;&lt;a href=http://code.google.com/p/sfxr/&gt;sfxr&lt;/a&gt;&lt;/b&gt;.&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:2em;line-height:1em;"&gt;&lt;a href=http://www.youtube.com/watch?v=ZCJNdM9M1mY&gt;&amp;#x25baYoutube&lt;/a&gt;&lt;br&gt;&lt;a href=http://plsw.net/webgl/wloom7/shooter.htm&gt;&amp;#x25baStart demo&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:0.7em;"&gt; (Chrome 9+, Firefox 4+)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:1em;line-height:1em;"&gt;&lt;a href=http://plsw.net/webgl/wloom7/fourbase.htm&gt;&amp;#x25baStart simple core game canvas demo&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-3383267209272263965?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/3383267209272263965/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=3383267209272263965' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3383267209272263965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3383267209272263965'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/11/wloom-webgl-game-work-in-progress-7.html' title='Wloom - WebGl game, work in progress #7'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-pN3VeEqOY0E/TtY4P0jmH_I/AAAAAAAAAVQ/AdI_8eomfNY/s72-c/wloom7.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-1218441678441323374</id><published>2011-08-24T09:34:00.000-07:00</published><updated>2011-08-24T09:52:32.830-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Gfx'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Drawing with Java</title><content type='html'>&lt;img style="float:left; margin:0 0 10px 10px;width: 300px; height: 150px;" src="http://2.bp.blogspot.com/-Q8zce-Vapb4/TlUobj6kSAI/AAAAAAAAATQ/G3AnkjoErbE/s400/radar.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5644462161941252098" /&gt;For &lt;a href=http://pl4n3.blogspot.com/search/label/Wloom&gt;Wloom&lt;/a&gt; I needed a transparent radar background image. Since I am not used to a vector-paint-programm, I 'drew' the image with java, by programming following small program. At first it creates an image, then it draws the radar shapes and saves everything as transparent png. Ingame the radar will look like &lt;a href="http://1.bp.blogspot.com/-iYEBIRtq_hs/TlUrdMzJHDI/AAAAAAAAATY/rAst3fURKwo/s1600/wloom71.jpg"&gt;this&lt;/a&gt;.&lt;pre style="font-size:0.9em;line-height:0.5em;color:#000099"&gt;import java.awt.*;&lt;br /&gt;import java.awt.image.*;&lt;br /&gt;&lt;br /&gt;public final class Drawer {&lt;br /&gt;  public static void main(String [] args) {&lt;br /&gt;    try {&lt;br /&gt;    BufferedImage i=new BufferedImage(300,150,BufferedImage.TYPE_INT_ARGB);&lt;br /&gt;    Graphics2D g=i.createGraphics();&lt;br /&gt;    &lt;br /&gt;    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);&lt;br /&gt;    &lt;br /&gt;    g.setColor(new Color(0,0,0,100));&lt;br /&gt;    g.fillArc(10,5,280,280,0,180);&lt;br /&gt;    &lt;br /&gt;    g.setColor(Color.black);&lt;br /&gt;    g.setStroke(new BasicStroke(5,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));&lt;br /&gt;    int r=140;g.drawArc(150-r,150-r-5,r*2,r*2,0,180);&lt;br /&gt;    g.drawLine(10,145,290,145);&lt;br /&gt;    g.drawLine(150,5,150,145);&lt;br /&gt;    g.setStroke(new BasicStroke(3,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));&lt;br /&gt;    r=95;g.drawArc(150-r,150-r-5,r*2,r*2,0,180);&lt;br /&gt;    r=45;g.drawArc(150-r,150-r-5,r*2,r*2,0,180);&lt;br /&gt;    g.drawLine(51,46,150,145);&lt;br /&gt;    g.drawLine(249,46,150,145);&lt;br /&gt;    &lt;br /&gt;    g.setColor(new Color(100,200,0));&lt;br /&gt;    g.setStroke(new BasicStroke(3,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));&lt;br /&gt;    g.drawArc(10,5,280,280,0,180);&lt;br /&gt;    g.drawLine(10,145,290,145);&lt;br /&gt;    g.drawLine(150,5,150,145);&lt;br /&gt;    g.setStroke(new BasicStroke(2,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));&lt;br /&gt;    r=95;g.drawArc(150-r,150-r-5,r*2,r*2,0,180);&lt;br /&gt;    r=45;g.drawArc(150-r,150-r-5,r*2,r*2,0,180);&lt;br /&gt;    g.drawLine(51,46,150,145);&lt;br /&gt;    g.drawLine(249,46,150,145);&lt;br /&gt;    &lt;br /&gt;    g.dispose();&lt;br /&gt;    javax.imageio.ImageIO.write(i,"png",new java.io.File("radar.png"));&lt;br /&gt;    } catch (Exception e) { e.printStackTrace(); }&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-1218441678441323374?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/1218441678441323374/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=1218441678441323374' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1218441678441323374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1218441678441323374'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/08/drawing-with-java.html' title='Drawing with Java'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Q8zce-Vapb4/TlUobj6kSAI/AAAAAAAAATQ/G3AnkjoErbE/s72-c/radar.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-3319652848531264935</id><published>2011-08-13T06:40:00.000-07:00</published><updated>2011-08-24T07:35:50.344-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wloom'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>Wloom - WebGl game, work in progress #6</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-kvTlkKHlGXg/TkZ_PAYoIUI/AAAAAAAAATI/EuAUg25lBsk/s1600/wloom60.jpg"&gt;&lt;img style="float:right;margin:0px 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;cursor:pointer; cursor:hand;width: 480px; height: 300px;" src="http://1.bp.blogspot.com/-kvTlkKHlGXg/TkZ_PAYoIUI/AAAAAAAAATI/EuAUg25lBsk/s480/wloom60.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5640335479106183490" /&gt;&lt;/a&gt;WebGl game &lt;b&gt;Wloom&lt;/b&gt; version 0.6 is here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:2em;line-height:1em;"&gt;&lt;a href=http://www.youtube.com/watch?v=pIOL2GCPv8s&gt;&amp;#x25baYoutube&lt;/a&gt;&lt;br&gt;&lt;a href=http://plsw.net/webgl/wloom6/shooter.htm&gt;&amp;#x25baStart demo&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:0.7em;"&gt; (Chrome 9+, Firefox 4+)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Changes:&lt;ul&gt;&lt;li&gt;&lt;b&gt;New content&lt;/b&gt;: map and templar model&lt;li&gt;&lt;b&gt;Basic scripted cutscenes&lt;/b&gt;. They are defined in a external map-script-file (same as AI,...), thus dont strain game core.&lt;li&gt;Minor changes, e.g. in previous version the whole map mesh was used for collision calculation. Now there is coarse collision mesh and a more fine-grained visible mesh.&lt;/ul&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-3319652848531264935?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/3319652848531264935/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=3319652848531264935' title='6 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3319652848531264935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3319652848531264935'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/08/wloom-webgl-game-work-in-progress-6.html' title='Wloom - WebGl game, work in progress #6'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-kvTlkKHlGXg/TkZ_PAYoIUI/AAAAAAAAATI/EuAUg25lBsk/s72-c/wloom60.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8364704749818843338</id><published>2011-07-26T11:08:00.000-07:00</published><updated>2011-07-27T04:16:02.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Canvas'/><title type='text'>Canvas experiment: Penrose Tiling</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-ZWJqC254OlQ/Ti8Ia8gXIbI/AAAAAAAAASg/oVwbMomEgL0/s1600/penrose.png"&gt;&lt;img style="float:left; margin:10px 20px 25px 0px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;cursor:pointer; cursor:hand;width: 400px; height: 286px;" src="http://4.bp.blogspot.com/-ZWJqC254OlQ/Ti8Ia8gXIbI/AAAAAAAAASg/oVwbMomEgL0/s400/penrose.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5633730917875261874" /&gt;&lt;/a&gt;I experimented with an algorithm which generates a penrose tiling. This pattern consists of 2 tiles: &lt;img src=http://plsw.net/canvas/penrose0.png height=20 /&gt; &lt;img src=http://plsw.net/canvas/penrose1.png height=11 /&gt;and is non-periodic (never repeats itself). &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:2em;line-height:1em;"&gt;&lt;a href=http://plsw.net/canvas/penrose.htm&gt;&amp;#x25baStart demo&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The current algorithm is still suboptimal, there remain gaps in the pattern. The algorithm works as follows: Before a tile is added, the local neighborhood is checked for upcoming conflicts. Since only a local environment is checked, there can still emerge conflicts (gaps) for the global pattern. To improve the algorithm, one could introduce heuristics or make it interactive: a user could remove pattern areas which contain gaps. Then the generating could be restarted in this areas. (The demo is inspired by an article in the journal &lt;a href=http://spektrum.de&gt;Spektrum d.W.&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8364704749818843338?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8364704749818843338/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8364704749818843338' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8364704749818843338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8364704749818843338'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/07/canvas-experiment-penrose-tiling.html' title='Canvas experiment: Penrose Tiling'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ZWJqC254OlQ/Ti8Ia8gXIbI/AAAAAAAAASg/oVwbMomEgL0/s72-c/penrose.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-1758779032749669890</id><published>2011-06-12T09:15:00.000-07:00</published><updated>2011-08-14T05:11:31.130-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wloom'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>Wloom - WebGl game, work in progress #5</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-iCswh-Fb-PU/TfTmanClDaI/AAAAAAAAAQY/gadeQ2YExaI/s1600/wloom5.jpg"&gt;&lt;img style="float:right;margin:0px 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;cursor:pointer; cursor:hand;width: 480px; height: 378px;" src="http://2.bp.blogspot.com/-iCswh-Fb-PU/TfTmanClDaI/AAAAAAAAAQY/gadeQ2YExaI/s480/wloom5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5617367980068638114" /&gt;&lt;/a&gt;WebGl game &lt;b&gt;Wloom&lt;/b&gt; version 0.5 is here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:2em;line-height:1em;"&gt;&lt;a href=http://www.youtube.com/watch?v=1oQQULwarVk&gt;&amp;#x25baYoutube&lt;/a&gt;&lt;br&gt;&lt;a href=http://plsw.net/webgl/wloom5/shooter.htm&gt;&amp;#x25baStart demo&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:0.7em;"&gt; (Chrome 9+, Firefox 4+)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Changes:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Latest version of &lt;a href=http://www.glge.org/&gt;GLGE&lt;/a&gt;&lt;/b&gt; library and a new feature of it, shadows on direction lights, is used. The issue of previous Wloom version, where shadows didnt work with Firefox 4, is resolved.&lt;li&gt;The Wloom demo this time is basically a complete game, where you can win or loose, with UI. The &lt;b&gt;game logic is pacman-like&lt;/b&gt;: You have to collect gems, but must avoid monsters. This time isoperspective is used. Game logic and ai is loaded dynamically from an own script file. As result Wloom represents a flexible base for various kind of games. The UI is done via CSS and also completely from external scripts.&lt;li&gt;A &lt;b&gt;new rendering mode 'Magic3d'&lt;/b&gt; is added. With it the scene is drawn twice, side by side, with camera offset. Now, if you cross the eyes, scenes should appear in 3d. All in all there are now 3 rendering modes: Glge, Simple and Magic3d.&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-1758779032749669890?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/1758779032749669890/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=1758779032749669890' title='6 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1758779032749669890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1758779032749669890'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/06/wloom-webgl-game-work-in-progress-5.html' title='Wloom - WebGl game, work in progress #5'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-iCswh-Fb-PU/TfTmanClDaI/AAAAAAAAAQY/gadeQ2YExaI/s72-c/wloom5.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-3930955141077375012</id><published>2011-06-06T18:12:00.000-07:00</published><updated>2011-06-07T09:25:37.230-07:00</updated><title type='text'>Andalusia pictures</title><content type='html'>Here are some pictures from recent vacation in Andalusia, Spain.&lt;br /&gt;&lt;a href="http://imageshack.us/photo/my-images/850/andalusien556.jpg/" target="_blank"&gt;&lt;img src="http://img850.imageshack.us/img850/8531/andalusien556.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/847/andalusien474.jpg/" target="_blank"&gt;&lt;img src="http://img847.imageshack.us/img847/3434/andalusien474.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/37/andalusien431.jpg/" target="_blank"&gt;&lt;img src="http://img37.imageshack.us/img37/5171/andalusien431.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/808/andalusien065.jpg/" target="_blank"&gt;&lt;img src="http://img808.imageshack.us/img808/4350/andalusien065.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/820/andalusien083.jpg/" target="_blank"&gt;&lt;img src="http://img820.imageshack.us/img820/5117/andalusien083.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/684/andalusien465.jpg/" target="_blank"&gt;&lt;img src="http://img684.imageshack.us/img684/2695/andalusien465.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/705/andalusien414.jpg/" target="_blank"&gt;&lt;img src="http://img705.imageshack.us/img705/3357/andalusien414.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/818/andalusien404.jpg/" target="_blank"&gt;&lt;img src="http://img818.imageshack.us/img818/5765/andalusien404.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/143/andalusien335.jpg/" target="_blank"&gt;&lt;img src="http://img143.imageshack.us/img143/5600/andalusien335.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/4/andalusien103.jpg/" target="_blank"&gt;&lt;img src="http://img4.imageshack.us/img4/7638/andalusien103.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/862/andalusien150.jpg/" target="_blank"&gt;&lt;img src="http://img862.imageshack.us/img862/7906/andalusien150.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;a href="http://imageshack.us/photo/my-images/715/andalusien279.jpg/" target="_blank"&gt;&lt;img src="http://img715.imageshack.us/img715/4603/andalusien279.th.jpg" border="0"/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-3930955141077375012?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/3930955141077375012/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=3930955141077375012' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3930955141077375012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3930955141077375012'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/06/andalusia-pictures.html' title='Andalusia pictures'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-9125646187160086232</id><published>2011-05-28T00:50:00.000-07:00</published><updated>2011-05-28T02:17:21.528-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='Canvas'/><title type='text'>Canvas experiment: Build order simulator</title><content type='html'>&lt;iframe style="float:right;margin:0px 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;border-width:2px;border-style:solid;border-color:#333333;" src="http://plsw.net/canvas/buildsim/buildsim.htm" width=400 height=250 scrolling="no" marginheight="0" marginwidth="0" frameborder="0"&gt;&lt;/iframe&gt;The demo simulates build orders as of RTS games (e.g. Starcraft2). Here buildorders are very simplified, there is only 1 structure, the &lt;b&gt;central&lt;/b&gt;; 2 unit types, &lt;b&gt;worker&lt;/b&gt; and &lt;b&gt;knight&lt;/b&gt;; and 1 resource, &lt;b&gt;gold&lt;/b&gt;. To build those, gold must be paid. Workers harvest gold. Centrals produce units, the more centrals and gold exists, the faster units can be produced. The history of the build is displayed as graph. If the simulation is restarted, history graphs of previous runs are kept and displayed too, this allows to optimize a builder order.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-9125646187160086232?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/9125646187160086232/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=9125646187160086232' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/9125646187160086232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/9125646187160086232'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/05/canvas-experiment-build-order-simulator.html' title='Canvas experiment: Build order simulator'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-479000559884196064</id><published>2011-04-27T05:09:00.000-07:00</published><updated>2011-04-27T05:40:32.612-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Blog/Diary concept, notes on JEditorPane</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-ipyT5q2AZpo/TbgImmIgIfI/AAAAAAAAAP0/ypI0GsnLnDc/s1600/blog.jpg"&gt;&lt;img style="float:left; margin:10px 20px 25px 0px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;cursor:pointer; cursor:hand;width: 300px; height: 482px;" src="http://1.bp.blogspot.com/-ipyT5q2AZpo/TbgImmIgIfI/AAAAAAAAAP0/ypI0GsnLnDc/s482/blog.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600235595799470578" /&gt;&lt;/a&gt;For notes on projects and other stuff I'm working on a blog/diary application. As other blogs the app maintains entries, that can be marked with tags. In the following some concepts are described.&lt;ul&gt;&lt;li&gt;&lt;b&gt;2 Renderers&lt;/b&gt;. Currently the blog has 2 renderers, which display the entries. Both are written in Java. The first (&lt;b&gt;[1]&lt;/b&gt; in the picture) is completely self-written. Thus arbitrary concepts can be tested with this renderer, e.g. taglines (more about that below). The second renderer (&lt;b&gt;[2]&lt;/b&gt; in the picture) uses html, which is displayed with the Java html component JEditorPane. This html frontend might be a starting point for a later online version of the blog.&lt;li&gt;&lt;b&gt;Sticky tags&lt;/b&gt;. For todo lists or important stuff to be rememberered always there are sticky entries (&lt;b&gt;[3]&lt;/b&gt; in the picture). They are implemented using a 'Sticky' tag. The blog renderer draws all entries with a 'Sticky' tag highlighted and on top of other entries.&lt;li&gt;&lt;b&gt;Checkboxes&lt;/b&gt;. For todo-lists checkboxes in entries might be useful, that can be checked if a task is done (&lt;b&gt;[4]&lt;/b&gt; in the picture). In this app checkboxes are implemented in the following way: The texts "[_]" and "[X]" within an entry make the blog-app render a unchecked/checked checkbox at this position within the text. If the checkbox is clicked the entry text is changed, "[_]" is replaced by "[X]", and a timestamp is added to the text. Clicking a checkbox thus is a special way of editing an entry. If the entry has a 'Todo' tag and if with a checkbox click all checkboxes of the entry are checked, the entry automatically looses the 'Todo' tag.&lt;li&gt;&lt;b&gt;Taglines&lt;/b&gt;. To visually distinguish entries of different topics (with different tags) there are taglines (&lt;b&gt;[5]&lt;/b&gt; in the picture). This are lines between entries of specific tags with a special color for each tag. The tag-text is drawn besides the entry with the same color. The lines blend out if they are drawn behind entries that dont carry the tag of the line. An older version of taglines is described in &lt;a href=http://pl4n3.blogspot.com/2009/09/blog-concept-with-taglines.html&gt;this previous blogpost&lt;/a&gt;.&lt;/ul&gt;Some general notes on &lt;b&gt;JEditorPane&lt;/b&gt;: This component is a part of the quite old Java Swing Api, hasnt changed in years and only supports Html 3.2. Nevertheless imho its a very useful lightweight html renderer (opposed to gecko/webkit bindings), useful for structured/formatted output or to render complex gui layouts. The standard approach to Gui layouts, LayoutManagers, is probably hard to implemented for this blog layout, with lots fonts, floating texts and tables.&lt;br /&gt;JEditor renders html-checkboxes as Swing component JCheckbox. This checkboxes can be accessed via jEditorPane.getComponent(i). This will return a java.awt.Container whose first component is the checkbox:&lt;pre style="font-size:0.9em;line-height:1em;color:#000099"&gt;JCheckbox jcb=(JCheckbox)((Container)jEditorPane.getComponent(i)).getComponent(0);&lt;/pre&gt;Now eg. listeners can be added to the Checkbox, that inform, if it is clicked. Following link helped to figure out checkbox access: &lt;a href=http://www.thatsjava.com/java-swing/12595/&gt;http://www.thatsjava.com/java-swing/12595/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-479000559884196064?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/479000559884196064/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=479000559884196064' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/479000559884196064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/479000559884196064'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/04/blogdiary-concept-notes-on-jeditorpane.html' title='Blog/Diary concept, notes on JEditorPane'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ipyT5q2AZpo/TbgImmIgIfI/AAAAAAAAAP0/ypI0GsnLnDc/s72-c/blog.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-7944367979538379642</id><published>2011-04-12T02:14:00.000-07:00</published><updated>2011-04-12T12:07:37.624-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wloom'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>Wloom - WebGl game, work in progress #4</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-zJz3EOEuN4Y/TaQYUPmCSKI/AAAAAAAAAPs/LoxNYxuff0o/s1600/wloom4.jpg"&gt;&lt;img style="float:right;margin:0px 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;cursor:pointer; cursor:hand;width: 450px; height: 273px;" src="http://1.bp.blogspot.com/-zJz3EOEuN4Y/TaQYUPmCSKI/AAAAAAAAAPs/LoxNYxuff0o/s450/wloom4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5594623373163514018" /&gt;&lt;/a&gt;WebGl game &lt;b&gt;Wloom&lt;/b&gt; version 0.4 is here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:2em;line-height:1em;"&gt;&lt;a href=http://www.youtube.com/watch?v=ts_idSQF0bI&gt;&amp;#x25baYoutube&lt;/a&gt;&lt;br&gt;&lt;a href=http://plsw.net/webgl/wloom4/shooter.htm&gt;&amp;#x25baStart demo&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:0.7em;"&gt; (Chrome 9+, Firefox 4+ &lt;span style="color:#555555"&gt;shadows currently dont work with ff here, this is under investigation..&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;New features:&lt;ul&gt;&lt;li&gt;&lt;a href=http://www.glge.org/&gt;GLGE&lt;/a&gt; library use. With this lib better gfx is possible. The use of the library is optional and can be toggled with a checkbox. So there are now 2 selectable gfx passes, the feature-rich GLGE one and the simple original. Thus the game should run on fast and slow computers. Maintaining different gfx passes helps to isolate gfx logic from game logic and thus should result in better programmcode. With GLGE there are following new gfx features:&lt;li&gt;Lights &amp; shadows,&lt;li&gt;Normal-, specular- and diffusemaps,&lt;li&gt;Particle effects.&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-7944367979538379642?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/7944367979538379642/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=7944367979538379642' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/7944367979538379642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/7944367979538379642'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/04/wloom-webgl-game-work-in-progress-4.html' title='Wloom - WebGl game, work in progress #4'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-zJz3EOEuN4Y/TaQYUPmCSKI/AAAAAAAAAPs/LoxNYxuff0o/s72-c/wloom4.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-4759909402512301692</id><published>2011-03-13T14:34:00.000-07:00</published><updated>2011-03-14T00:29:41.881-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wloom'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>Wloom - WebGl game, work in progress #3</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-VjXEukOHDXg/TX043vZGbfI/AAAAAAAAAPI/PgiAFAkNLH8/s1600/wloom3.jpg"&gt;&lt;img style="float:right;margin:0px 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;cursor:pointer; cursor:hand;width: 480px; height: 288px;" src="http://4.bp.blogspot.com/-VjXEukOHDXg/TX043vZGbfI/AAAAAAAAAPI/PgiAFAkNLH8/s480/wloom3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5583681643274989042" /&gt;&lt;/a&gt;Finally there is a new version of the WebGl game Wloom.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:2em;line-height:1em;"&gt;&lt;a href=http://www.youtube.com/watch?v=sjbWKds1E5U&gt;&amp;#x25baYoutube&lt;/a&gt;&lt;br&gt;&lt;a href=http://plsw.net/webgl/wloom3/shooter.htm&gt;&amp;#x25baStart demo&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:0.7em;"&gt; (Firefox 4+, Chrome 9+)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Following new features:&lt;ul&gt;&lt;li&gt;Skybox (the one I wrote about in a &lt;a href=http://pl4n3.blogspot.com/2011/02/skybox-algorithm.html&gt;previous blogpost&lt;/a&gt;)&lt;li&gt;New map with hills and a tunnel&lt;li&gt;Map reiterates infinitely, thus the world does not end :)&lt;li&gt;Basic ai (npcs move away, if they are near another character)&lt;li&gt;Attack (&lt;b&gt;key E&lt;/b&gt;), experimental fly mode (&lt;b&gt;key N&lt;/b&gt;)&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-4759909402512301692?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/4759909402512301692/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=4759909402512301692' title='5 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/4759909402512301692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/4759909402512301692'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/03/wloom-webgl-game-work-in-progress-3.html' title='Wloom - WebGl game, work in progress #3'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-VjXEukOHDXg/TX043vZGbfI/AAAAAAAAAPI/PgiAFAkNLH8/s72-c/wloom3.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8175063069807745619</id><published>2011-03-11T14:50:00.000-08:00</published><updated>2011-03-17T11:09:10.377-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='Starcraft 2'/><title type='text'>Starcraft 2 casts</title><content type='html'>In the last weeks I did spend some time watching Starcraft2 casts. I find them very entertaining to watch and they teach you to play. On the other hand watching alot casts is very time consuming. With this blogpost I will give an overview of my favorite casts. Following table contains name, url, unique features and, if existing, the main fraction and league-level the caster is playing. Because I watched casts only for the last weeks, the data assembled below might be incomplete or partly wrong. In this case please notify me and I will update things.&lt;br /&gt;&lt;table border="1" align="center"&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Notes&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Fraction/League&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=http://www.youtube.com/user/PsyStarcraft&gt;&lt;b&gt;Psy&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Partly very funny.&lt;/td&gt;&lt;td&gt;Zerg/Master&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=http://www.youtube.com/user/HDstarcraft&gt;&lt;b&gt;HD&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Basically awesome.&lt;/td&gt;&lt;td&gt;Zerg/Master&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=http://www.youtube.com/user/TotalHalibut&gt;&lt;b&gt;TotalHalibut&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;British accent. Partly very funny. Also other games like WoW.&lt;/td&gt;&lt;td&gt;Terran/Silver&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=http://www.youtube.com/user/HuskyStarcraft&gt;&lt;b&gt;Husky&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Reference. Different game-styles (e.g. 4v4).&lt;/td&gt;&lt;td&gt;Protoss/~Diamond&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=http://day9tv.blip.tv/&gt;&lt;b&gt;Day9&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Reference. Focus on in-depth (but also time consuming) analysis.&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=http://www.youtube.com/user/AhnarisStarcraft&gt;&lt;b&gt;Ahnaris&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Basically awesome.&lt;/td&gt;&lt;td&gt;Terran/Gold&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=http://www.youtube.com/user/remembertomorrow0&gt;&lt;b&gt;Destiny&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Very funny.&lt;/td&gt;&lt;td&gt;Zerg/Master&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=http://www.gomtv.net/&gt;&lt;b&gt;Gom Tv&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Great GSL pro games. Login (e.g. via Twitter), partly free to watch.&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Btw, the work on a new version of the WebGl game Wloom is almost finished. Thus there will be a new demo in a couple of days on this blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8175063069807745619?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8175063069807745619/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8175063069807745619' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8175063069807745619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8175063069807745619'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/03/starcraft-2-casts.html' title='Starcraft 2 casts'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-1310525435768528162</id><published>2011-02-05T02:40:00.000-08:00</published><updated>2011-02-06T07:11:43.923-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Gfx'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Skybox algorithm</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_t2tufYGoeLc/TU0rw39GTgI/AAAAAAAAAPA/Uml0vRxHV0w/s1600/blog.jpg"&gt;&lt;img style="float:left; margin:10px 20px 25px 0px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;width:400px;height:400px;" src="http://1.bp.blogspot.com/_t2tufYGoeLc/TU0rw39GTgI/AAAAAAAAAPA/Uml0vRxHV0w/s400/blog.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5570156432781102594" /&gt;&lt;/a&gt;&lt;br /&gt;For the Wloom project a &lt;b&gt;skybox&lt;/b&gt; was needed. A skybox is a large box around a scene, with sky texture. The textures of the 6 planes of the box can be calculated from a single picture. &lt;br /&gt;&lt;br /&gt;The algorithm for this transformation is outlined as follows: For every texture point of the box-planes calculate two angles relative to the center of the box: a horizontal angle &lt;b&gt;ax&lt;/b&gt;, where value 0 represents north, PI/2 east, PI south and 3PI/2 west; and a vertical angle &lt;b&gt;ay&lt;/b&gt;, with a range from value 0 (=top) to PI (=bottom). From the original picture the color at the coordinates of the two angles is now taken and drawn towards the texture-point of the box-plane. Below the exact algorithm, written in Java, is listed.&lt;pre style="font-size:0.9em;line-height:1em;color:#000099"&gt;for (int y=0;y&lt;=w;y++) &lt;br /&gt;for (int x=0;x&lt;=w;x++) {&lt;br /&gt;  double xh=x-w*0.5;&lt;br /&gt;  double lh=w*0.5;&lt;br /&gt;  double ax=PI/4+Math.atan2(xh,lh);&lt;br /&gt;  double ay=Math.atan2(Math.sqrt(xh*xh+lh*lh),-y+lh);&lt;br /&gt;  b.setRGB(x,y+w,getRGB(ax*biw/(PI*2),ay*bih/PI));&lt;br /&gt;  b.setRGB(x+w*2,y+w,getRGB((ax+PI)*biw/(PI*2),ay*bih/PI));&lt;br /&gt;  &lt;br /&gt;  ax=PI/4+Math.atan2(lh,-x+lh);&lt;br /&gt;  b.setRGB(x+w,y+w,getRGB(ax*biw/(PI*2),ay*bih/PI));&lt;br /&gt;  b.setRGB(x+w*2,y+w*2,getRGB((ax+PI)*(biw-0.5)/(PI*2),ay*bih/PI));&lt;br /&gt;  &lt;br /&gt;  double yh=y-lh;&lt;br /&gt;  ax=3*PI/4+Math.atan2(xh,yh);&lt;br /&gt;  ay=PI/2-Math.atan2(lh,Math.sqrt(xh*xh+yh*yh));&lt;br /&gt;  b.setRGB(x+w,y,getRGB(ax*biw/(PI*2),ay*bih/PI));&lt;br /&gt;  ax-=PI/2;&lt;br /&gt;  b.setRGB(x+w,y+w*2,getRGB(biw-1-ax*biw/(PI*2),bih-1-ay*bih/PI));&lt;br /&gt;}&lt;/pre&gt;The shown skybox is used in the next version of the WebGL game Wloom, which will be posted soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-1310525435768528162?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/1310525435768528162/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=1310525435768528162' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1310525435768528162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1310525435768528162'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/02/skybox-algorithm.html' title='Skybox algorithm'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_t2tufYGoeLc/TU0rw39GTgI/AAAAAAAAAPA/Uml0vRxHV0w/s72-c/blog.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-4417691722526739700</id><published>2011-01-27T12:42:00.000-08:00</published><updated>2011-03-14T00:29:56.815-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wloom'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>Wloom - WebGl game, work in progress #2</title><content type='html'>&lt;object width="480" height="385 "style="float:right;margin:0px 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/msDUEOECoiI?fs=1&amp;amp;hl=en_US&amp;amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/msDUEOECoiI?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;There is some progress with the webgl game 'Wloom'. Current state of the project can be seen in the video or as &lt;a href="http://plsw.net/webgl/wloom2/shooter.htm"&gt;running demo here&lt;/a&gt; (needs Chrome 9+, Firefox 4+). Following features have been added since the last blogpost:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Dynamic camera&lt;/b&gt; (e.g. in small rooms camera moves closer, so that the view is not clipped)&lt;li&gt;Map and model data are loaded from &lt;b&gt;external files&lt;/b&gt;. Its format is javascript, they are loaded with dynamically added script tags.&lt;li&gt;&lt;b&gt;Html audio&lt;/b&gt;. Currently it sounds on my pc with chrome 9 abit buggy (it seems some samples are not played and chrome crashes after some time). With Firefox 4 beta 6 sound works better here.&lt;li&gt;&lt;b&gt;Npc scripting&lt;/b&gt; with javascript. Since core game and npc scripts are written in the same language, javascript, integration is straightforward and simple. The code can be stored in map- or model-files.&lt;/ul&gt;Soon there will be updates on the project. Map(s) and gameplay shall be improved. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-4417691722526739700?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/4417691722526739700/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=4417691722526739700' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/4417691722526739700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/4417691722526739700'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2011/01/wloom-webgl-game-work-in-progress-2.html' title='Wloom - WebGl game, work in progress #2'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-5991243150840696590</id><published>2010-12-21T04:26:00.000-08:00</published><updated>2011-03-14T00:30:12.437-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wloom'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>Wloom - WebGl game, work in progress</title><content type='html'>&lt;object width="480" height="385" style="float:right;margin:0px 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Spm1vXVx_SU?fs=1&amp;amp;hl=en_US&amp;amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Spm1vXVx_SU?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;Currently I work on a game for WebGL named '&lt;b&gt;Wloom&lt;/b&gt;'. It shall be fastpaced, from egoperspective, with walkable architecture, maybe an egoshooter. Initially i wanted to call it 'Gloom', but that is taken by an amiga game. So in 'Wloom' the 'Wl' is short for WebGL, 'oom' is a reminiscence to another great game. :) On the right is a video of the current state. You can test the game (with a webgl-capable browser) &lt;a href="http://www.plsw.net/webgl/wloom1.htm"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;. Currently you can only run around with a protagonist and watch the map. Main controls are w,a,s,d,left,right, you can also look around with mouse drag. The WebGL-canvas automatically resizes with the browser, thus the game may run fullscreen.&lt;br /&gt;&lt;br /&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 132px; height: 132px;" src="http://1.bp.blogspot.com/_t2tufYGoeLc/TRCjaNBesMI/AAAAAAAAAOw/BTCcXVSVEBM/s400/tmoheadjs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5553118011115614402" /&gt;With this I wish the visitors of this blog Merry Christmas and a Happy New Year. Updates on this and other projects will be posted soon, but probably not before 2011.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-5991243150840696590?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/5991243150840696590/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=5991243150840696590' title='6 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5991243150840696590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5991243150840696590'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/12/wloom-webgl-game-work-in-progress.html' title='Wloom - WebGl game, work in progress'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_t2tufYGoeLc/TRCjaNBesMI/AAAAAAAAAOw/BTCcXVSVEBM/s72-c/tmoheadjs.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-660460155773875580</id><published>2010-11-26T19:28:00.000-08:00</published><updated>2010-11-27T10:54:34.886-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='Canvas'/><title type='text'>CanvasCraft - towards a web RTS game (²)</title><content type='html'>&lt;iframe style="float:left; margin:10px 20px 25px 0px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;" src="http://plsw.net/canvas/craft.htm" width=400 height=400 scrolling="no" marginheight="0" marginwidth="0" frameborder="0" align=left&gt;&lt;/iframe&gt;A &lt;a href=http://pl4n3.blogspot.com/2010/03/towards-webrts-project.html&gt;previous blogpost&lt;/a&gt; is also transcribed with 'towards a web RTS game'. There I focussed on webgl graphics. This time the &lt;b&gt;focus is the game core engine&lt;/b&gt;, thus here graphics are very simple, units are drawn as circles using canvas. Conceptually, once the game core engine is finished, one could combine both approaches and get a game demo with improved gameplay and graphics.&lt;br /&gt;&lt;br /&gt;&lt;img style="float:right; margin:0 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;width: 166px; height: 138px;" src="http://4.bp.blogspot.com/_t2tufYGoeLc/TPCBw7AywDI/AAAAAAAAAOo/VwGkRmYxZis/s400/canvascrafts.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5544073818767802418" /&gt;In this demo &lt;b&gt;units can be selected via mouseclick&lt;/b&gt;, by mouse-dragging a rectangle around some, or via numeric keys (e.g. shift-1 constitutes a group of previous selected units, key 1 then selects this group). Selected units can be moved by rightclicking on the ground or on another unit. By pressing key P the game pauses.&lt;br /&gt;&lt;br /&gt;There are &lt;b&gt;units of 2 different parties (blue-you/orange-computer)&lt;/b&gt;. If units of different parties approach they will fight each other. There are 2 unit-types: slow ranged and fast melee. The game is over, if all units of a party are gone. The filesize of the javascript code is ~12kB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-660460155773875580?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/660460155773875580/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=660460155773875580' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/660460155773875580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/660460155773875580'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/11/canvascraft-towards-web-rts-game.html' title='CanvasCraft - towards a web RTS game (²)'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t2tufYGoeLc/TPCBw7AywDI/AAAAAAAAAOo/VwGkRmYxZis/s72-c/canvascrafts.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-429882487936974600</id><published>2010-11-14T18:41:00.000-08:00</published><updated>2011-03-17T11:08:38.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='Starcraft 2'/><title type='text'>A lazy defensive terran strategy for Starcraft2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_t2tufYGoeLc/TOCex14cuWI/AAAAAAAAAOg/5rCPejf_jKo/s1600/sc2.jpg"&gt;&lt;img style="float:right; margin:0 20px 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 400px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;" src="http://2.bp.blogspot.com/_t2tufYGoeLc/TOCex14cuWI/AAAAAAAAAOg/5rCPejf_jKo/s400/sc2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5539602120780331362" /&gt;&lt;/a&gt;In this blogpost I describe, how I play Terran in Starcraft2 Multiplayer. The strategy is defensive, this way I try to avoid micromanagement, which I'm too slow for. When I last looked, my average APM (action per minute) was about 20. Battlecruisers play a big role, but also infantry. At first I summarize the strategy, then I describe some detail aspects.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summary:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Beginning build order: Scv, Scv, Supply depot, Scv, Barracks, Scv, Barracks, then Marines&lt;li&gt;Built up infantry (about 10 marines, 8 marauders) as defense. Make the infantry short-key 2. Besides constantly make Scv, Supply depots as needed, 2 Turrets around the Command center. Dont build too much Turrets, since fleet should do anti-air tasks soon.&lt;li&gt;Build Planetary fortress, a Starport, start building a fleet (a raven and some vikings) and make it shortcut 1.&lt;li&gt;Build a 2nd Command center, together with each base build 2 Turrets, 2 Refineries, and later Planetary fortress. Build up fleet (vikings, maybe few banshees, battlecruisers), level up fleet to the max (with 2 armories) Build about 5 Starports.&lt;li&gt;Build maybe 2 more expansions or more. Probably meet enemy, attack with fleet and infantry (key 1 and 2). If you have battlecruisers, attack as much with yamato cannon as possible, (this is almost the only micromanagement needed). If fleet is crushed, rebuild quick.&lt;li&gt;Hopefully defeat enemy.&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Detail aspects:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Often the enemy attacks early, then try to have a good infantry built up, keep infantry and fleet near the Turrets and Planetary fortress, so that they defend together, and very important: make some Scv's repair Planetary fortress during attack.&lt;li&gt;Thors: In the beginning I tried to attack with Thors. But they couldnt move everywhere like air units can, so I dont use them.&lt;li&gt;Make sure you have detectors. 2 Turrets for each base and Raven in the fleet.&lt;li&gt;Bunkers: In my first games my intial defense was too weak. First I tried to put the Marines into Bunkers, now I just build Marines more quickly with 2 Barracks and dont use bunkers.&lt;li&gt;Once I attacked enemy with medium fleet, made some damage but lost fleet, couldnt rebuild quick, lost game. Thus, attack only with maximum unit count and max upgraded. Make sure there are enough Starports and resources for quick fleet rebuild.&lt;li&gt;Sensor towers: I am not sure, if they are good. For the first base I usually build one. You see sooner, when the enemy attacks, and have more time to position fleet and infantry for the battle. On the other side from the towers the enemy knows your positions and might attack earlier.&lt;li&gt;Only build banshees in the beginning or when you have few resources, otherwise build Battlecruisers for ground and air defense.&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-429882487936974600?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/429882487936974600/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=429882487936974600' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/429882487936974600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/429882487936974600'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/11/lazy-defensive-terran-strategy-for.html' title='A lazy defensive terran strategy for Starcraft2'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_t2tufYGoeLc/TOCex14cuWI/AAAAAAAAAOg/5rCPejf_jKo/s72-c/sc2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-5062111307830868172</id><published>2010-11-09T08:24:00.000-08:00</published><updated>2010-11-09T16:51:04.547-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Html'/><title type='text'>Html Twitter control (public tweets, no auth)</title><content type='html'>&lt;iframe style="float:left;" src="http://plsw.net/twitter.htm" width=370 height=400 scrolling="no" marginheight="0" marginwidth="0" frameborder="0" align=left&gt;&lt;/iframe&gt;I plan to work on a &lt;b&gt;Twitter client for Javascript&lt;/b&gt;. The client should display tweets very compact and might have some features of a Java Twitter client, I blogged about &lt;a href=http://pl4n3.blogspot.com/search/label/Twaja&gt;previously&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;This tweet component is a first step. It shows the user-timeline of a given user plus tweets that the user replied to. It shows only public tweets, thus no auth is needed. You can enter another user to display its tweets, but the users tweets muts be unprotected, otherwise the tweets wouldnt be visible without auth.&lt;br /&gt;&lt;br /&gt;Next step towards a client would be to figure out, how the auth stuff works, which looks somewhat complicated.. x) More infos about that probably soon in this blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-5062111307830868172?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/5062111307830868172/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=5062111307830868172' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5062111307830868172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5062111307830868172'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/11/html-twitter-control-public-tweets-no.html' title='Html Twitter control (public tweets, no auth)'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-2030932937001732431</id><published>2010-11-02T17:45:00.000-07:00</published><updated>2010-11-23T06:12:55.501-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Html'/><title type='text'>Div sparks - Html decoration</title><content type='html'>&lt;div id="divc" style="border:1px solid rgba(0,0,0,1);margin-right:5px;float:right;background:#ccc;padding:2px;position:relative;width:400px;height:180px;font-family:Arial;box-shadow: 10px 10px 50px #333;-moz-box-shadow: 10px 10px 50px #333;-webkit-box-shadow: 10px 10px 50px #333;"&gt;Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.&lt;br /&gt;&lt;div style="float:right;width:150px;height:50px;postion:absolute;background:#eeeecc;border:1px solid rgba(0,0,0,1);padding:2px;box-shadow: 10px 10px 50px #333;-moz-box-shadow: 10px 10px 50px #333;-webkit-box-shadow: 10px 10px 50px #333;"&gt;Lorem ipsum dolor sit amet, consectetur adipisici elit&lt;/div&gt;Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;br /&gt;Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/div&gt;On the right is a &lt;b&gt;Div-spark&lt;/b&gt; example shown, demonstrating a decoration for Html-DOM-elements. This might be used to indicate that data is generated or just for esthetic reason. :) Technically div-elements are dynamically generated via javascript, with flashing background colors. The appearance of this div-elements, the "div-sparks", is defined by following structure:&lt;pre&gt;var data=[&lt;br /&gt;  {t:50,  r:0,g:250,b:0,a:1 },&lt;br /&gt;  {t:200, r:0,g:0,  b:0,a:0 ,spawn:1},&lt;br /&gt;  {t:0,   r:0,g:250,b:0,a:0 }&lt;br /&gt;];&lt;/pre&gt;where "t" stands for a duration, "r,g,b,a" define a color and the "spawn" flag starts creation of new sparks beside a current element.&lt;br /&gt;&lt;script type="application/x-javascript"&gt; var divc=document.getElementById('divc');var sparks=new Array();var sparkH={};var spaw=10;function sparkTrySpawn(x,y) {  if (sparks.length&gt;40) return;  if (sparkH[x+' '+y]) return;  var xp=x*spaw;  var yp=y*spaw;  if ((xp &lt; 0)||(xp &gt; 390)||(yp &lt; 0)||(yp &gt; 170)) return;  var c0=document.createElement('div');  c0.style.position='absolute';  c0.style.top=yp+'px';  c0.style.left=xp+'px';  c0.style.width=spaw+'px';  c0.style.height=spaw+'px';  c0.style.background='rgba(0,250,0,0)';  c0.t=0;c0.x=x;c0.y=y;  divc.appendChild(c0);  sparks.push(c0);  sparkH[x+' '+y]=c0;  var spat=new Array(spa.length);  var spalen=0;  for (var h=spat.length-1;h&gt;=0;h--) {    var t=spa[h].t*(Math.random()+0.5);    spat[h]=t;spalen+=t;  }  c0.spalen=spalen;c0.spat=spat;  ot=new Date().getTime();}var ot=0;var spa=[  {t:50,r:0,g:250,b:0,a:1},  {t:200,r:0,g:0,b:0,a:0,spawn:1},  {t:0,r:0,g:250,b:0,a:0}];function sparkle() {  var ct=new Date().getTime();  var dt=ct-ot;ot=ct;  if (sparks.length==0) sparkTrySpawn(5,0);  for (var i=sparks.length-1;i&gt;=0;i--) {    var s=sparks[i];    var t=s.t;    t=t+dt;    if (t&gt;=s.spalen) {      divc.removeChild(s);      sparks.splice(i,1);      sparkH[s.x+' '+s.y]=null;      if (Math.random() &lt; 0.2) sparkTrySpawn(s.x,s.y);      continue;    }    s.t=t;        var k1=0;    for (var k=0;k &lt; spa.length;k++) {      var th=s.spat[k];      if (t&lt;=th) { k1=k;break; }      t-=th;    }    var k0=(k1-1+spa.length)%spa.length;    var s0=spa[k0];    var s1=spa[k1];    var f=t/s.spat[k1];    var a=(f*s1.a+(1-f)*s0.a);    s.style.background='rgba('+Math.floor(f*s1.r+(1-f)*s0.r)+','+Math.floor(f*s1.g+(1-f)*s0.g)+','+Math.floor(f*s1.b+(1-f)*s0.b)+','+a+')';    s.style.border='1px solid rgba(0,0,0,'+a+')';    if ((s1.spawn&amp;&amp;(s.ok1!=k1))) {      if (Math.random() &lt; 0.2) sparkTrySpawn(s.x-1,s.y);      if (Math.random() &lt; 0.4) sparkTrySpawn(s.x+1,s.y);      if (Math.random() &lt; 0.4) sparkTrySpawn(s.x+2,s.y);      if ((Math.random() &lt; 0.7)||(sparks.length &lt; 5)) sparkTrySpawn(s.x,s.y+1);      if (Math.random() &lt; 0.7) sparkTrySpawn(s.x,s.y+2);    }        s.ok1=k1;  }  if (sparks.length&gt;0) setTimeout(sparkle,20); else setTimeout(sparkle,1000);}sparkle();&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-2030932937001732431?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/2030932937001732431/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=2030932937001732431' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/2030932937001732431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/2030932937001732431'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/11/div-sparks-html-decoration.html' title='Div sparks - Html decoration'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8644156906948596666</id><published>2010-11-01T11:23:00.000-07:00</published><updated>2010-12-02T23:16:34.006-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='bullet.js'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>WebGL/bullet.js Demo</title><content type='html'>&lt;a href=http://plsw.net/webgl/bot.htm&gt;&lt;img style="float:right; margin:0 20px 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 400px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;" src="http://3.bp.blogspot.com/_t2tufYGoeLc/TM8IPF9tGnI/AAAAAAAAAOY/3zv6Ll7b4qA/s400/botblog.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5534651522453674610" /&gt;&lt;/a&gt;The &lt;a href="http://plsw.net/webgl/bot.htm"&gt;demo&lt;/a&gt; shows two characters, the left is calculated using the physics library bullet.js, the right without physics. You can toggle the use of physics with a checkbox. On my Pc I get following framerates:&lt;table border="1"&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;with physics&lt;/td&gt;&lt;td&gt;without physics&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Chrome 8&lt;/td&gt;&lt;td&gt;&lt;b&gt;19&lt;/b&gt; fps&lt;/td&gt;&lt;td&gt;&lt;b&gt;59&lt;/b&gt; fps&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Firefox 4 beta 6&lt;/td&gt;&lt;td&gt;&lt;b&gt;~17&lt;/b&gt; fps &lt;span style="font-size:0.7em;"&gt;(heavily varying)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;60&lt;/b&gt; fps&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Its interesting, that there isnt the performance gap between Chrome and Firefox, that was observed in an &lt;a href=http://pl4n3.blogspot.com/2010/07/bulletjs-javascript-physics-engine.html&gt;earlier blogpost&lt;/a&gt;, anymore. The reason are improved javascript engines and webgl- instead of software-canvas output. Though the Firefox physics performance varies heavily (sometimes drops to 3fps), probably because of background optimizations, while Chrome display is smooth.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; bullet.js, together with this and 2 Canvas demos, is now also available here: &lt;a href=http://code.google.com/p/bulletjs/&gt;http://code.google.com/p/bulletjs/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8644156906948596666?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8644156906948596666/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8644156906948596666' title='9 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8644156906948596666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8644156906948596666'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/11/webglbulletjs-demo.html' title='WebGL/bullet.js Demo'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t2tufYGoeLc/TM8IPF9tGnI/AAAAAAAAAOY/3zv6Ll7b4qA/s72-c/botblog.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-3387216088509649441</id><published>2010-10-04T09:08:00.000-07:00</published><updated>2010-11-23T06:37:11.938-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Canvas'/><title type='text'>HistoryMaps: Migration period (Völkerwanderung) 150-500</title><content type='html'>&lt;iframe style="float:left; margin:0 20px 5px 0;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;" src="http://plsw.net/history.htm" width=400 height=400 scrolling="no" marginheight="0" marginwidth="0" frameborder="0" align=left&gt;&lt;/iframe&gt;On the left there is a first version of a &lt;strong&gt;HistoryMap&lt;/strong&gt;. HistoryMaps are a concept to display historic developments, both in place and time. They combine traditional maps, which display places but no different times, and timelines, which show timepoints but no referring places. This first HistoryMap shows movement of tribes and battles during the migration period (Völkerwanderung) 150-500. Below the properties of HistoryMaps and its GUI are described in detail:&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Shapes and timeline:&lt;/strong&gt; The content of HistoryMaps is made up of shapes (in this example there are bezier-curved shapes which represent tribes), which may be morphed between time-keyframes. The time is displayed in the upper timeline, a current time is highlighted. You can click or drag with the mouse the timeline to set the current time, the shapes will be morphed according to this time. Thus you can explore historic constellations at different times.&lt;li&gt;&lt;img style="float:right; margin:0 20px 10px 10px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;width: 124px; height: 137px;" src="http://1.bp.blogspot.com/_t2tufYGoeLc/TKvB0Hp7h4I/AAAAAAAAAOQ/5dykXZCodg8/s400/hist1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5524722469052319618" /&gt;&lt;strong&gt;Eventpoints:&lt;/strong&gt; In addition to shapes there are eventpoints displayed, marking historic events (here battles). Eventpoints are drawn together with their corresponding times. If you move the mouse over a point additional information for that event is displayed. If you click an event point, the current time will be set to the corresponding time. Thus you see the global historic context of the event. This marks a virtue of the concept: In usual historic maps events are mostly drawn only with local context.&lt;li&gt;&lt;strong&gt;Animation:&lt;/strong&gt; At startup and when you click the animation-button an animation is running, where current time moves over the timeline. This gives an overview of the history shown.&lt;li&gt;&lt;strong&gt;Timecolumns:&lt;/strong&gt; When you click the timecolumn-button a static display is shown, where the shapes are drawn in columns of different times. Thus you see a picture of the historic content of all times at once. This gives insights on durations of historic developments, one can distinguish short processes that only appear in few columns from longlasting ones that are drawn in more columns.&lt;li&gt;&lt;strong&gt;Completeness:&lt;/strong&gt; HistoryMaps may display the complete history of all places and all times. For this the current programm must be extended with zoom facility. Thus you could zoom in and out places (like GoogleMaps) and you could also zoom within the timeline to set a time frame of interest.&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-3387216088509649441?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/3387216088509649441/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=3387216088509649441' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3387216088509649441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3387216088509649441'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/10/historymaps-migration-period.html' title='HistoryMaps: Migration period (Völkerwanderung) 150-500'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_t2tufYGoeLc/TKvB0Hp7h4I/AAAAAAAAAOQ/5dykXZCodg8/s72-c/hist1.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-3846582892763355278</id><published>2010-08-28T17:46:00.000-07:00</published><updated>2010-11-23T06:35:17.099-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Canvas'/><title type='text'>Canvas graph demo, Usecase: Football results</title><content type='html'>&lt;div style="background-color: rgb(200, 200, 200); float: left; margin: 3px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;margin:4px 20px 10px 0px;"&gt;&lt;a id="gt00" href="javascript:setI(0,0);" style="color: black; font-size: 1em;"&gt;FC Hansa Rostock&lt;/a&gt;&lt;br /&gt;&lt;a id="gt01" href="javascript:setI(0,1);" style="color: rgb(170, 170, 170); font-size: 1em;"&gt;Kickers Offenbach&lt;/a&gt;&lt;br /&gt;&lt;a id="gt02" href="javascript:setI(0,2);" style="color: rgb(170, 170, 170); font-size: 1em;"&gt;Wacker Burghausen&lt;/a&gt;&lt;br /&gt;&lt;canvas id="canvas0" width="200" height="150" style="position: relative;"&gt;&lt;/canvas&gt;&lt;/div&gt;&lt;div style="background-color: rgb(200, 200, 200); float: left; margin: 3px;box-shadow: 5px 5px 30px #333;-moz-box-shadow: 5px 5px 30px #333;-webkit-box-shadow: 5px 5px 30px #333;margin:4px 20px 10px 0px;"&gt;&lt;a id="gt10" href="javascript:setI(1,0);" style="color: black; font-size: 1em;"&gt;St. Pauli&lt;/a&gt;&lt;br /&gt;&lt;a id="gt11" href="javascript:setI(1,1);" style="color: rgb(170, 170, 170); font-size: 1em;"&gt;HSV&lt;/a&gt;&lt;br /&gt;&lt;a id="gt12" href="javascript:setI(1,2);" style="color: rgb(170, 170, 170); font-size: 1em;"&gt;FC Bayern München&lt;/a&gt;&lt;br /&gt;&lt;canvas id="canvas1" width="200" height="150" style="position: relative;"&gt;&lt;/canvas&gt;&lt;/div&gt;On the left there is a interactive canvas graph demo, showing football results. You can switch highlighted graphs by mouse-clicking on the corresponding description. Since all the javascript is written in one line, all content of this blogpost could be uploaded to blogspot, there is no iframe needed here. Soon there will be a more advanced canvas demo and I'm also working on a webgl+bullet.js demo. Stay tuned! :)&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; I made the graphs animate and added functionality: If the mouse moves over the graph, detail information is displayed.&lt;br /&gt;&lt;br /&gt;&lt;script type="application/x-javascript"&gt;var oa=[  { a: [[0,3,6,6,9,12,15,18,19,19,22,25,28,29,32,35,35,38],[0,3,6,9,12,15,16,19,19,22,25,28,29,32,32,35,36,36],[0,0,1,2,2,3,3,6,7,10,11,11,14,15,18,18,18,18],],    as: [['','3:0 VfR Aalen','1:0 Rot-Weiss Erfurt','0:3 VfB Stuttgart II','2:0 TuS Koblenz','2:0 Werder Bremen II','7:2 SpVgg Unterhaching','2:0 SV Babelberg 03','1:1 Wacker Burghausen','2:3 Kickers Offenbach','2:1 Eintracht Braunschweig','3:1 Carl Zeiss Jena','2:1 1. FC Heidenheim','2:2 Dynamo Dresden','2:1 1. FC Saarbruecken','2:1 SV Sandhausen','0:2 Bayern München II','2:1 Wehen Wiesbaden'],         ['','2:0 1.FC Saarbrücken','2:0 SV Sandhausen','4:1 Bayern München II','2:1 SV Wehen Wiesbaden','2:1 Jahn Regensburg','3:3 Rot Weiss Ahlen','2:0 VfR Aalen','1:3 Rot-Weiss Erfurt','3:2 Hansa Rostock','1:0 TuS Koblenz','3:1 Werder Bremen II','1:1 Unterhaching','2:1 SV Babelsberg','3:4 Wacker Burghausen','2:0 VfB Stuttgart II','2:2 Braunschweig','0:1 Carl Zeiss Jena'],         ['','1:4 SV Sandhausen','1:1 Bayern München II','1:1 SV Wehen Wiesbaden','0:2 Jahn Regensburg','1:1 Rot Weiss Ahlen','0:1 VfR Aalen','1:0 Rot Weiss Erfurt','1:1 FC Hansa Rostock','3:1 TuS Koblenz','1:1 Werder Bremen II','1:2 Unterhaching','2:0 SV Babelsberg','1:1 VfB Stuttgart','4:3 Kickers Offenbach','0:3 Braunschweig','2:3 Carl Zeiss Jena','1:4 Heidenheim']],    ih:0,dots:[],doti:-1,first:true },  { a: [[0,3,3,3,4,7,7,10,13,13,13,13,13,14],[0,3,6,7,8,8,8,11,14,15,15,18,18,18],[0,3,3,4,5,8,8,8,11,12,15,16,19,20]],    as: [['','3:1 SC Freiburg','0:1 1899 Hoffenheim','0:1 1. FC Köln','1:1 HSV','2:1 Borussia Mönchen Gladbach','1:3 Borussia Dortmund','1:0 Hannover 96','3:2 1 FC Nürnberg','0:2 VfB Stuttgart','1:3 Eintracht Frankfurt','0:3 FC Schalke 04','0:1 Leverkusen','1:1 Wolfsburg'],        ['','2:1 FC Schalke 04','3:1 Eintracht Frankfurt','1:1 1. FC Nürnberg','1:1 FC St. Pauli','1:3 VfL Wolfsburg','2:3 Werder Bremen','2:1 FC Kaiserslautern','1:0 1.FSV Mainz','0:0 Bayern München','2:3 1 FC Koeln','2:1 1899 Hoffenheim','0:2 Dortmund','2:3 Hannover'],         ['','2:1 VfL Wolfsburg','0:2 1. FC Kaiserslautern','0:0 Werder Bremen','0:0 1. FC Köln','2:1 1899 Hoffenheim','1:2 1. FSV Mainz 05','0:2 Borussia Dortmund','3:0 Hannover 96','0:0 HSV','4:2 SC Freiburg','3:3 Borussia Mgladbach','3:0 Nürnberg','1:1 Leverkusen']],     ih:0,dots:[],doti:-1,first:true },];var mx=0,my=0,mid='42';function mouseMove(ev) {  mid=ev.target.id;  if (ev.layerX || ev.layerX == 0) {     mx = ev.layerX;    my = ev.layerY;  } else if (ev.offsetX || ev.offsetX == 0) {     mx = ev.offsetX;    my = ev.offsetY;  } } function draw(ci) {  var cid="canvas"+ci;  var canvas = document.getElementById(cid);  if (!canvas.getContext) return;  var ctx = canvas.getContext("2d");    ctx.fillStyle = "rgb(200,200,200)";  ctx.fillRect(0,0,canvas.width,canvas.height);      var o=oa[ci];  var a=o.a;  var ih=o.ih;  var dots=o.dots;  var border=5;  if (o.first) {    o.first=false;    canvas.addEventListener('mousemove',mouseMove,false);  }  var ymax=-10000;  var ymin=10000;  for (var h=a.length-1;h&gt;=0;h--) {    var a0=a[h];    for (var i=a0.length-1;i&gt;=0;i--) {      var y=a0[i];      ymax=Math.max(ymax,y);      ymin=Math.min(ymin,y);    }  }  var t=new Date().getTime();  if (!o.t) o.t=t;  var dt=t-o.t;  if (dt&gt;100) {    o.t=t;    var a0=a[ih];    o.doti++;if (o.doti&gt;=a0.length) o.doti=0;    var d={      x:border+o.doti*(canvas.width-2*border)/(a0.length-1),      y:border+(canvas.height-2*border)*(1-(a0[o.doti]-ymin)/(ymax-ymin)),      t:t};    dots.push(d);  }  var col1='rgb(170,170,170)';  ctx.strokeStyle=col1;  ctx.lineWidth=3;  var hh=a.length;  var tm=500;  for (var h=a.length-1;h&gt;=0;h--) {    hh--;    if (hh==ih) hh--;    var isM=false;    var as0;    if (h==0) {        ctx.lineWidth=1;      for (var i=dots.length-1;i&gt;=0;i--) {        var d=dots[i];        var th=t-d.t;        if (th&gt;tm) { dots.splice(i,1);continue; }        ctx.fillStyle='rgba(0,150,0,'+(1-th/tm)+')';        ctx.beginPath(); ctx.arc(d.x,d.y,th*15/tm,0,Math.PI*2,false);        ctx.fill();      }      hh=ih;ctx.lineWidth=3;ctx.strokeStyle="black";       if (cid==mid) {        as0=o.as[hh];        if (as0) isM=true;      }    } document.getElementById('gt'+ci+hh).style.color=(h==0?'black':col1);    var a0=a[hh];    var mi=-1,md=10000;    ctx.beginPath();    for (var i=a0.length-1;i&gt;=0;i--) {      var x=border+i*(canvas.width-2*border)/(a0.length-1);      var y=border+(canvas.height-2*border)*(1-(a0[i]-ymin)/(ymax-ymin));      if (i==a0.length-1) ctx.moveTo(x,y); else ctx.lineTo(x,y);      if (!isM) continue;      var d=(x-mx)*(x-mx)+(y-my)*(y-my);      if (d&gt;400) continue;      if (d&gt;md) continue;      md=d;mi=i;    }    ctx.stroke();    if (mi!=-1) {      ctx.fillStyle="black";      ctx.fillText(as0[mi],5,15);    }  }  setTimeout(new Function('draw('+ci+');'),40);}function setI(ci,ih) {  oa[ci].ih=ih;  oa[ci].doti=-1;}draw(0);draw(1);&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-3846582892763355278?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/3846582892763355278/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=3846582892763355278' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3846582892763355278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3846582892763355278'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/08/simple-canvas-graph-demo.html' title='Canvas graph demo, Usecase: Football results'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-3358520263301851630</id><published>2010-08-14T03:57:00.000-07:00</published><updated>2010-09-26T18:07:45.768-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Twaja'/><title type='text'>Twitter client concept: Refer arcs</title><content type='html'>&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://www.plsw.net/gfx/twaja.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5505221545128854354" /&gt; In my current twitter client, to follow conversations between users, I often have to scroll and search to find the corresponding tweets. To make this process more comfortable (especially the search part), I introduced &lt;b&gt;refer arcs&lt;/b&gt; into a twitter client which visually connect tweets that probably refer to each other (replies, retweets). &lt;br /&gt;On the right there is an animated gif, which demonstrates this technique. The updated twitter client ('Twaja') will be downloadable soon.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Thoughts on other stuff.&lt;/b&gt; Three recent (in my opinion) questionable developments in computation:&lt;ul&gt;&lt;li&gt;&lt;a href=http://news.cnet.com/8301-30684_3-20013546-265.html&gt;Oracle sues Google over Java.&lt;/a&gt; Obviously the new owner has other priorities then the old one. Java might loose people working with it.&lt;li&gt;&lt;a href=http://googlepublicpolicy.blogspot.com/2010/08/joint-policy-proposal-for-open-internet.html&gt;Google and Verizon propose new policy to constrict net-neutrality.&lt;/a&gt; This might be a step toward the end of the open net.&lt;li&gt;&lt;a href=http://googleblog.blogspot.com/2010/08/update-on-google-wave.html&gt;Google stops Google Wave.&lt;/a&gt; After just a year this innovative project is canceled. Thats quite few patience, reminds of canceled Google Lively.&lt;/ul&gt;End of rant. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-3358520263301851630?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/3358520263301851630/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=3358520263301851630' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3358520263301851630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3358520263301851630'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/08/twitter-client-concept-refer-arcs.html' title='Twitter client concept: Refer arcs'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-3689997804929185120</id><published>2010-08-01T03:41:00.000-07:00</published><updated>2010-08-01T04:03:11.241-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>What I like about Javascript (compared to Java)</title><content type='html'>&lt;img style="float:left; margin:0px 20px 10px 0px;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://1.bp.blogspot.com/_t2tufYGoeLc/TFVLKYXoD1I/AAAAAAAAAMg/Q1HxrsR5zn8/s400/js.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5500385161615249234" /&gt;This list was assembled, while I was coding some Javascript projects (see blogposts below), and is of course only a subjective view:&lt;ul&gt;&lt;li&gt;&lt;b&gt;dynamic typing&lt;/b&gt;: simpler declarations, no casts, no interfaces, less keywords, simpler syntax (but I see possible drawbacks: its may be more error prone, and probably less runtime performant)&lt;li&gt;&lt;b&gt;"this" is mandatory&lt;/b&gt; to access object-variables, in java its optional. This is more clear semantics and promotes the use of local variables.&lt;li&gt;&lt;b&gt;simple and powerfull Array and Hashtable&lt;/b&gt; (instead of Java's multitude of Array,Vector,List,Collections..)&lt;li&gt;&lt;b&gt;prototype based object system&lt;/b&gt;. its more flexible than javas class based system, e.g. you can add methods to existing objects.&lt;li&gt;last but not least: &lt;b&gt;it runs everywhere&lt;/b&gt; in the browser, quite like java, but in a more straightforward and powerfull way (direct dom access, not like a plugin).&lt;/ul&gt;Still, Java keeps being great, but above points make Javascript very much interesting, imho.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-3689997804929185120?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/3689997804929185120/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=3689997804929185120' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3689997804929185120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/3689997804929185120'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/08/what-i-like-about-javascript-compared.html' title='What I like about Javascript (compared to Java)'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_t2tufYGoeLc/TFVLKYXoD1I/AAAAAAAAAMg/Q1HxrsR5zn8/s72-c/js.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8345752822300130068</id><published>2010-07-31T04:17:00.000-07:00</published><updated>2010-11-01T12:10:11.729-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='bullet.js'/><category scheme='http://www.blogger.com/atom/ns#' term='Physics'/><title type='text'>bullet.js - Javascript Ragdoll Physics</title><content type='html'>&lt;a href=http://plsw.net/ragdoll.htm&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://4.bp.blogspot.com/_t2tufYGoeLc/TFQGm43qNDI/AAAAAAAAAMY/FXxDtap_5Co/s400/bulletjs0.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5500028310096852018" /&gt;&lt;/a&gt;I ported more classes from JBullet to Javascript Physics engine &lt;b&gt;bullet.js&lt;/b&gt;, wrote some new and assembled a new canvas demo showing javascript ragdoll physics: &lt;a href=http://plsw.net/ragdoll.htm&gt;Click&lt;/a&gt;. Now almost all classes from JBullet are ported, except some for vehicle physics. The size of bullet.js is now about 330kB. The demo shows on my pc using Chrome ca. 40fps. The current drawing (software 3d using canvas) is not very performant, so soon there will be bullet.js+WebGl demos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8345752822300130068?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8345752822300130068/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8345752822300130068' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8345752822300130068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8345752822300130068'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/07/bulletjs-javascript-ragdoll-physics.html' title='bullet.js - Javascript Ragdoll Physics'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t2tufYGoeLc/TFQGm43qNDI/AAAAAAAAAMY/FXxDtap_5Co/s72-c/bulletjs0.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-6488467760338882291</id><published>2010-07-16T17:27:00.000-07:00</published><updated>2010-11-01T12:10:37.621-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='bullet.js'/><category scheme='http://www.blogger.com/atom/ns#' term='Physics'/><title type='text'>bullet.js - Javascript Physics Engine</title><content type='html'>&lt;a href=http://plsw.net/bullet.htm&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://3.bp.blogspot.com/_t2tufYGoeLc/TELy5Xk5yfI/AAAAAAAAAME/VQC-yy9qGV4/s400/bulletjs.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5495221562740689394" /&gt;&lt;/a&gt;I finished porting parts of the JBullet and Vecmath library from Java to Javascript. As the result there is another 3D Physics Engine for Javascript named &lt;b&gt;bullet.js&lt;/b&gt; (because its based on the Bullet Physics Engine). Its size is about 200kB. &lt;a href=http://plsw.net/bullet.htm&gt;Here&lt;/a&gt; is a canvas-demo, showing the engine in action. The demo consists of the same animation with 20 boxes as the java physics demo, I posted &lt;a href=http://pl4n3.blogspot.com/2010/05/java-physics-demo-boxes.html&gt;before&lt;/a&gt;. Thus one can compare the different performances. On my computer I get following frames per second:&lt;ul&gt;&lt;li&gt;Java: &lt;b&gt;300 Fps&lt;/b&gt;&lt;li&gt;Javascript Chrome: &lt;b&gt;45 Fps&lt;/b&gt;&lt;li&gt;Javascript Firefox 4b1: &lt;b&gt;10 Fps&lt;/b&gt;&lt;li&gt;Javascript Firefox 3.6: &lt;b&gt;3 Fps&lt;/b&gt;&lt;/ul&gt;This shows 2 points. Point 1: Google Javascript is quite performant, Mozilla must still improve things. Point 2: Although Javascript execution speed has great improved in the last years, there is still a big performance gap wrt. Java. Maybe javascript will never run as fast as java, because of its dynamic nature/typing? Time will tell. :)&lt;br /&gt;Anyways, currently there is a canvas demo, but the real purpose of a 3d javascript physics engine would be WebGl. So there will be WebGL demos soon on this blog.&lt;br /&gt;&lt;font color=#555555&gt;A issue exists with the javascript port: the boxes in the demo sometimes show strange behavior, they bump from the ground and fly through the air.. In the java demo they dont do that, so there must be a bug in the Javascript code. If there is someone who actually understands how the bullet engine works (I dont, I just ported it :) it would be nice, if I get help to find the bug.&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-6488467760338882291?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/6488467760338882291/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=6488467760338882291' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6488467760338882291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6488467760338882291'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/07/bulletjs-javascript-physics-engine.html' title='bullet.js - Javascript Physics Engine'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t2tufYGoeLc/TELy5Xk5yfI/AAAAAAAAAME/VQC-yy9qGV4/s72-c/bulletjs.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-5864967887737381476</id><published>2010-06-13T06:32:00.000-07:00</published><updated>2010-11-09T16:50:07.319-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>WebGL demo: normalmaps, shadows, scripting</title><content type='html'>&lt;a href=http://www.plsw.net/webgl/dom/dom.htm&gt;&lt;img style="float:left; margin:0 20px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_t2tufYGoeLc/TBTj4cx5tkI/AAAAAAAAAL8/J2sATzFDtsM/s1600/frontd.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5482257205354411586" /&gt;&lt;/a&gt; The &lt;a href=http://www.plsw.net/webgl/dom/dom.htm&gt;demo&lt;/a&gt; uses the &lt;a href=http://www.glge.org/&gt;glge-library&lt;/a&gt; and shows&lt;ul&gt;&lt;li&gt;normalmapping,&lt;li&gt;shadows and&lt;li&gt;scripted lights and animation&lt;/ul&gt; for WebGL. The building is inspired by a &lt;a href=http://de.wikipedia.org/wiki/Schweriner_Dom&gt;church in Schwerin&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-5864967887737381476?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/5864967887737381476/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=5864967887737381476' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5864967887737381476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5864967887737381476'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/06/webgl-demo-normalmaps-shadows-scripting.html' title='WebGL demo: normalmaps, shadows, scripting'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_t2tufYGoeLc/TBTj4cx5tkI/AAAAAAAAAL8/J2sATzFDtsM/s72-c/frontd.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-384537801464396108</id><published>2010-05-22T04:04:00.000-07:00</published><updated>2010-07-16T17:26:42.989-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applet'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Physics'/><title type='text'>Java Physics Demo: Boxes</title><content type='html'>&lt;div style="background-color:#aaaaaa;padding:10px;float:right;border-width:1px;border-style:solid;border-color:#000000;"&gt;&lt;font size=+2&gt;&lt;b&gt;&lt;a href=http://plsw.net/boxdemo.htm&gt;Start applet.&lt;/b&gt;&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;This demo uses parts of the the &lt;a href=http://jbullet.advel.cz/&gt;JBullet&lt;/a&gt; and the Vecmath library. I extracted essential classes and put them all into &lt;a href=http://www.plsw.net/BoxDemo.java&gt;1 java source file&lt;/a&gt;. Thus this demo dont needs external libraries.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;On Objectstacks&lt;/b&gt;&lt;br /&gt;I also changed the used JBullet parts, so that they dont use &lt;b&gt;Objectstacks&lt;/b&gt;. Objectstacks were introduced to manage temporary objects in a threadsafe way. There are 3 possibilities to deal with temporary objects:&lt;ul&gt;&lt;li&gt;1) Just instantiate a temporary object as you need it. Problem: this can result in a lot instantiated objects, garbage collector has alot todo, runtime performance might drop. Though, intelligent jit-compilers could possibly handle multiply temporary instantiations and could in a way inline them..&lt;br /&gt;&lt;li&gt;2) Add (private) auxiliary objectvariables to the class. You can use this objects in computation and dont need to instantiate new ones. Problem: if different threads invoke the same method at the same time, an object could be used twice, with unexpected results. This approach is not thread-safe.&lt;br /&gt;&lt;li&gt;3) Use objectstacks. Retrieve auxiliary objects from a pool and return them to the pool, when computation is over. This way in most cases only limited number of instantitions is needed (opposed to possibly unlimited instantiations in approach 1) and this method is threadsafe (opposed to approach 2).&lt;/ul&gt;The original JBullet library uses objectstacks. In this demo I omitted them, because the original approach requires an instrumentation step in the build process. During this step auxiliary classes are generated using an ant-build-file. A simple compile doesnt work. For sake of simplicity I thus dont use objectstacks here, but above second technique. Thus this demo is not thread-safe, but its usecase is only single threaded, so it doesnt matter.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How to build&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make sure, that a JDK is installed.&lt;br /&gt;&lt;li&gt;Put the &lt;a href=http://www.plsw.net/BoxDemo.java&gt;source file&lt;/a&gt; into a directory 'net/plsw/bullet'.&lt;br /&gt;&lt;li&gt;Compile it with 'javac net/plsw/bullet/BoxDemo.java'.&lt;br /&gt;&lt;li&gt;Run it with 'java net.plsw.bullet.BoxDemo'.&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-384537801464396108?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/384537801464396108/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=384537801464396108' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/384537801464396108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/384537801464396108'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/05/java-physics-demo-boxes.html' title='Java Physics Demo: Boxes'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-1631869702871022934</id><published>2010-05-10T07:24:00.000-07:00</published><updated>2010-11-09T16:48:43.990-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='O3d'/><category scheme='http://www.blogger.com/atom/ns#' term='Canvas'/><title type='text'>Canvas Game Demo: 4Rumble</title><content type='html'>&lt;iframe style="float:left; margin:0 10px 10px 0;" src="http://plsw.net/four.htm" width=400 height=400 scrolling="no" marginheight="0" marginwidth="0" frameborder="0" align=left&gt;&lt;/iframe&gt;As a small project besides a more complex 3d-project (soon more infos here) i wrote this &lt;b&gt;game demo for canvas and javascript&lt;/b&gt;. Its a remake of a flash game demo, named 4Rumble (&lt;a href=http://i67.photobucket.com/albums/h302/pl4n3/4Rumble2.swf&gt;click&lt;/a&gt;, &lt;a href=http://www.newgrounds.com/portal/view/333055&gt;click&lt;/a&gt;), i made a while back. In this Javascript demo there is currently only one character, Cursor-Left/Right make him run around. Cursor-Up/Down zooms in and out. A formerly flash demo ported to javascript, might be seen as statement in the current html5-instead-of-flash debate. Which leads to: &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Others stuff ramblings&lt;/b&gt;&lt;br /&gt;My opinion about the &lt;b&gt;Apple/Html5 vs. Flash&lt;/b&gt; debate (&lt;a href=http://www.apple.com/hotnews/thoughts-on-flash/&gt;click&lt;/a&gt;, &lt;a href=http://www.adobe.com/choice/&gt;click&lt;/a&gt;): I dont have much to do with apple and i dont have much todo with flash. So im not directly affected. Obviously, Html5 is more open and accessible, than flash, so I love to see it gain ground. On the other side I strongly dislike vendor-lockin on Iphone (and elsewhere, e.g. linux-ban on ps3). It kills creativity, the user should have the choice between different technologies. If native apps are better than those (compiled) with intermediate code, they will supersede naturally other apps. There is no need for prohibition. If apple would allow flash (or more importantly imo: java) on its devices, I maybe also wanted to have one. :)&lt;br /&gt;And now for sth. completely different: &lt;b&gt;Google makes O3d a WebGl-Javascript-library&lt;/b&gt;, the plugin-development is stopped. This is imo a good step since with WebGl there wont be a need for a browser-3D-plugin. Though, WebGl doesnt currently run everywhere (i.e. on i.e.), but &lt;a href=http://o3d.blogspot.com/2010/05/future-of-o3d.html&gt;according to google&lt;/a&gt; the plugin will still be available for at least a year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-1631869702871022934?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/1631869702871022934/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=1631869702871022934' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1631869702871022934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1631869702871022934'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/05/javascript-game-demo-4rumble.html' title='Canvas Game Demo: 4Rumble'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-6562982878920935528</id><published>2010-03-31T09:24:00.000-07:00</published><updated>2010-03-31T10:23:18.568-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Doom3 Mod'/><category scheme='http://www.blogger.com/atom/ns#' term='Cern'/><category scheme='http://www.blogger.com/atom/ns#' term='Twaja'/><title type='text'>Work in progress: Twaja, Doom3 experiments</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_t2tufYGoeLc/S7N3tJPWG0I/AAAAAAAAAJk/M7A01UJPq4E/s1600/treefog.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 269px;" src="http://4.bp.blogspot.com/_t2tufYGoeLc/S7N3tJPWG0I/AAAAAAAAAJk/M7A01UJPq4E/s320/treefog.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5454835191133903682" /&gt;&lt;/a&gt;Experimenting with trees and fog and the doom3 engine. The aim is to create a spooky single player level. The created content might be reused for other projects. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t2tufYGoeLc/S7N6FRVEBhI/AAAAAAAAAJs/TADj60fvt8I/s1600/twaja0.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 100px; height: 200px;" src="http://3.bp.blogspot.com/_t2tufYGoeLc/S7N6FRVEBhI/AAAAAAAAAJs/TADj60fvt8I/s200/twaja0.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5454837804645484050" /&gt;&lt;/a&gt;&lt;br /&gt;A second work in progress is Twaja, the Java Twitter Client. I updated the layout and introduced the top control area. Friend feed clustering is improved, so that successive tweets from the same source are displayed together. Thus the profile icon is only displayed once, and messages are shown more compact. More updates on these projects soon!&lt;br /&gt;&lt;br /&gt;Btw, congratulations @cern for the first 7TeV collisions and the beginning of the experiments. Now I must read more on particle physics to understand upcoming, hopefully interesting, results. There are nice live data animation websites on the current lhc-status: &lt;a href="http://lhc-webcast.web.cern.ch/lhc-webcast/index.html"&gt;click&lt;/a&gt;, &lt;a href=http://op-webtools.web.cern.ch/op-webtools/Vistar/vistars.php?usr=LHC1&gt;click&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-6562982878920935528?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/6562982878920935528/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=6562982878920935528' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6562982878920935528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6562982878920935528'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/03/work-in-progress-twaja-doom3.html' title='Work in progress: Twaja, Doom3 experiments'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t2tufYGoeLc/S7N3tJPWG0I/AAAAAAAAAJk/M7A01UJPq4E/s72-c/treefog.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-1485046056527230653</id><published>2010-03-17T18:17:00.000-07:00</published><updated>2010-03-18T09:42:29.050-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Does bytecode become obsolete?</title><content type='html'>Or, more provocative: &lt;b&gt;Will Javascript substitute Java?&lt;/b&gt; Java has a certain technical infrastructure, it utilizes &lt;b&gt;bytecode&lt;/b&gt;. This exists for following reasons: In the history of programming languages at first there where interpreted languages, e.g. Lisp or Basic. They where slow but portable. Then there came languages like c and c++, where source is compiled to systemspecifc binary. They were fast, but unportable. With Java and bytecode a quite fast AND portable solution emerged. Java source is compiled to system-independent bytecode, which then is executed by the java virtual machine. With later versions of Java, to increase execution speed, just-in-time (jit) compilers were introduced. They compile the bytecode on the fly to systemspecific binary, which than runs faster. Besides the ecosystems of compiled languages, interpreted languages persisted. Script languages like Javascript are there to e.g. control compiled programms or bytecode. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_t2tufYGoeLc/S6JUtcmIQdI/AAAAAAAAAJc/uAIXXhnLl1g/s1600-h/proglang.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 146px;" src="http://2.bp.blogspot.com/_t2tufYGoeLc/S6JUtcmIQdI/AAAAAAAAAJc/uAIXXhnLl1g/s320/proglang.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5450011638818685394" /&gt;&lt;/a&gt;Recently jit-compilers for javascript appeared (Google V8, Mozilla Tracemonkey). Thus Javascript becomes fast and portable, like java, but without bytecode. &lt;b&gt;Bytecode now seems to be an unnessary intermediate step during programm execution.&lt;/b&gt; Bytecode means more complexity  in IDEs and in language execution. If a jit-compiler works with sourcecode directly, not with bytecode, possibly more optimizations can be done (without the additional abstraction step bytecode). If you get the same results with a less complex solution, you should apply it. With faster script languages, also &lt;b&gt;there will be no need to separate programm logic into scripts and compiled functions&lt;/b&gt;. One advantage of bytecode might be that you can have different programming language compiled to it and than be executed on the same virtual machine. Like with JRuby, Jython, Scala than run on the java virtual machine. If you ommit bytecode and want to have the same flexibilty, the execution engine (with the jit-compiler), must be able to read different types of languages. Future will show if that is feasible.&lt;br /&gt;&lt;br /&gt;Aside from the technical aspect, lets look at usage fields of Java and Javascript. At first Java was meant to be for the desktop. This didnt fully work out, e.g. Java applets in general couldnt compete with alternative approaches like flash. Java though became very strong on the server. Javascript was also originally there for the desktop, with its improving performance and the new &amp;lt;canvas&amp;gt; html-tag it can increasingly compete with flash and java applets. As of lateley Javascript spread also to the server (e.g. node.js). Thus, also from this point of view, it seems, that Javascript pushes into Java territory.&lt;br /&gt;&lt;br /&gt;Two final notes: First, you may replace the term 'java' with 'c#/.net' (or other bytecode/intermediate language platforms) in this text. Second, this considerations only apply to the far future, currently java cannot be replaced by javascript, because of its superior stability, performance, distribution and api. Also, different languages/platforms will stay (in niches). In my perception java/c# (also called managed code) superseded c++ (unmanaged code), yet c++ still exists. In a comparable manner Javascript will displace Java/C#, but all will stay (for now).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-1485046056527230653?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/1485046056527230653/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=1485046056527230653' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1485046056527230653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1485046056527230653'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/03/does-bytecode-become-obsolete.html' title='Does bytecode become obsolete?'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_t2tufYGoeLc/S6JUtcmIQdI/AAAAAAAAAJc/uAIXXhnLl1g/s72-c/proglang.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8869125253247321046</id><published>2010-03-11T10:43:00.000-08:00</published><updated>2010-11-09T16:50:24.902-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>Towards a Web-RTS-Game</title><content type='html'>&lt;a href=http://www.plsw.net/craft.htm&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 337px; height: 276px;" src="http://4.bp.blogspot.com/_t2tufYGoeLc/S5k6LE-8ERI/AAAAAAAAAIM/j2Kpg9LADTY/s400/craft0.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5447449186272022802" /&gt;&lt;/a&gt;&lt;a href=http://www.plsw.net/craft.htm&gt;&lt;b&gt;Here&lt;/b&gt;&lt;/a&gt; is a demo for a real-time-strategy (RTS) game using &lt;b&gt;WebGL&lt;/b&gt;. Currently there is only very basic gameplay: you can select units using left mouse button and let them move around with the right mouse button. Following is planned for future releases:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Map and gameplay enhancements&lt;/b&gt;. Add strategy to the real-time &lt;img src=http://aditya.vm.googlepages.com/ksk-smile.png border=0 style="padding:0;margin:0;border:0;"&gt;&lt;li&gt;Use of &lt;b&gt;other html5 techniques&lt;/b&gt;, e.g. audio-tag for audio, websockets for multiplayer gameplay&lt;li&gt;&lt;b&gt;Custom content&lt;/b&gt; creation and modification. Users will be able to upload own units and maps to a central repository. Also AI of units might be controlled by editable user-scripts...&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8869125253247321046?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8869125253247321046/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8869125253247321046' title='17 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8869125253247321046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8869125253247321046'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/03/towards-webrts-project.html' title='Towards a Web-RTS-Game'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t2tufYGoeLc/S5k6LE-8ERI/AAAAAAAAAIM/j2Kpg9LADTY/s72-c/craft0.jpg' height='72' width='72'/><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-6334005396984891723</id><published>2010-02-27T06:33:00.000-08:00</published><updated>2010-11-09T16:49:20.020-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Canvas'/><title type='text'>Back from Cebu, Html5 game Sungka</title><content type='html'>&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 147px; height: 300px;" src="http://1.bp.blogspot.com/_t2tufYGoeLc/S4ktgwdensI/AAAAAAAAAGM/2_nIKXQKcb8/s400/090821+368_.jpg" alt="" id="BLOGGER_PHOTO_ID_5442931665441562306" border="0" /&gt;&lt;b&gt;I'm back from vacation.&lt;/b&gt; It was a very nice trip, here are three recommendations: &lt;b&gt;&lt;a href="http://www.altaceburesort-cordova.com/"&gt;Alta Cebu Resort&lt;/a&gt;&lt;/b&gt; - very nice place with internet and pool, &lt;b&gt;&lt;a href="http://www.qatarairways.com/"&gt;Qatar Airways&lt;/a&gt;&lt;/b&gt; - tasty food, free beer and whiskey &lt;img src=http://aditya.vm.googlepages.com/ksk-smile.png border=0 style="padding:0;margin:0;border:0;"&gt;, &lt;b&gt;&lt;a href="http://www.amazon.com/Warped-Passages-Unraveling-Mysteries-Dimensions/dp/0060531088"&gt;Warped Passages&lt;/a&gt;&lt;/b&gt; - interesting book on particle physics, maybe a good read to understand coming &lt;a href="http://lhc.web.cern.ch/lhc/"&gt;LHC&lt;/a&gt;-experiments.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://plsw.net/sungka.htm" width=250 height=50 scrolling="no" marginheight="0" marginwidth="0" frameborder="0" align=right&gt;&lt;/iframe&gt;&lt;b&gt;Working on new content:&lt;/b&gt; Games for Html5 (Canvas and/or WebGL). A first start is a implementation of the game &lt;b&gt;Sungka&lt;/b&gt; using Javascript and Canvas (overall size 3.5kB). You can play it directly in the right field above. Currently it wont run on IE, only with e.g. firefox and chrome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-6334005396984891723?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/6334005396984891723/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=6334005396984891723' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6334005396984891723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6334005396984891723'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/02/back-from-cebu.html' title='Back from Cebu, Html5 game Sungka'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_t2tufYGoeLc/S4ktgwdensI/AAAAAAAAAGM/2_nIKXQKcb8/s72-c/090821+368_.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8787837899453285727</id><published>2010-02-10T17:29:00.000-08:00</published><updated>2010-12-02T00:24:21.388-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><category scheme='http://www.blogger.com/atom/ns#' term='Html'/><category scheme='http://www.blogger.com/atom/ns#' term='Canvas'/><title type='text'>Html5-Canvas with variable size</title><content type='html'>I tried to make a Html-page with a Canvas-element, which fills the whole page or browser window. Following line&lt;br /&gt;&lt;font color=#0000aa&gt;&lt;pre&gt;&amp;lt;canvas width="100%" height="100%"&amp;gt;&lt;/pre&gt;&lt;/font&gt;didnt work. It produced a canvas with a dimension of 100x100 pixels. Following&lt;br /&gt;&lt;font color=#0000aa&gt;&lt;pre&gt;&amp;lt;canvas style="width:100%;height:100%" width="100%" height="100%"&amp;gt;&lt;/pre&gt;&lt;/font&gt;worked a bit better: the canvas filled the browser window. Though the canvas still had a size of 100x100 pixels, but it was scaled up to fit the page. To have a canvas that dynamically changes its size according to the browser window, I had to &lt;b&gt;set canvas.width and .height manually&lt;/b&gt;, like in this code snippet:&lt;br /&gt;&lt;font color=#0000aa&gt;&lt;pre&gt;var cont=canvas.parentNode;&lt;br /&gt;if ((canvas.width!=cont.clientWidth)||(canvas.height!=cont.clientHeight)) {&lt;br /&gt;  canvas.width=cont.clientWidth;&lt;br /&gt;  canvas.height=cont.clientHeight;}&lt;/pre&gt;&lt;/font&gt;Note: by setting e.g. canvas.width the canvas will be cleared, so the &lt;b&gt;resize must take place before the repaint&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b style="color:#ffbb00;"&gt;Update:&lt;/b&gt; If the canvas is used with &lt;b&gt;WebGL&lt;/b&gt;, the gl-viewport must be set to the new size.&lt;br /&gt;&lt;font color=#0000aa&gt;&lt;pre&gt;gl.viewport(0,0,canvas.width,canvas.height);&lt;/pre&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8787837899453285727?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8787837899453285727/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8787837899453285727' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8787837899453285727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8787837899453285727'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/02/html5-canvas-with-variable-size.html' title='Html5-Canvas with variable size'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8851068685376686284</id><published>2010-02-09T09:28:00.000-08:00</published><updated>2010-02-28T10:26:33.740-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Gfx'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><title type='text'>WebGL skeletal animation demo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.plsw.net/gnomwgl.htm"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 251px; height: 235px;" src="http://1.bp.blogspot.com/_t2tufYGoeLc/S3GbqPZlEqI/AAAAAAAAAGE/8S8CZGIyD4o/s400/webgl.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5436297375203529378" /&gt;&lt;/a&gt;Click &lt;a href=http://www.plsw.net/gnomwgl.htm&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt; to see it (you need a webgl-enabled browser). This WebGL-demo runs completely without external javascript libraries. All code (incl some basic matrix-computation-routines), mesh and animation data is stored within the Html file, only the Texture is loaded from an external Jpg. The demo is similar to the previous for O3D (&lt;a href=http://pl4n3.blogspot.com/2010/01/o3d-demo-with-skeletal-animation.html&gt;here&lt;/a&gt;), but there I use external libraries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8851068685376686284?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8851068685376686284/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8851068685376686284' title='13 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8851068685376686284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8851068685376686284'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/02/webgl-skeletal-animation-demo.html' title='WebGL skeletal animation demo'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_t2tufYGoeLc/S3GbqPZlEqI/AAAAAAAAAGE/8S8CZGIyD4o/s72-c/webgl.jpg' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-6195607262070904533</id><published>2010-02-02T16:01:00.000-08:00</published><updated>2010-08-15T03:27:31.354-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Webstart'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Twaja'/><title type='text'>Twaja 1.0.8 Release</title><content type='html'>&lt;img src=http://img526.imageshack.us/img526/3111/scr1p.jpg align=right&gt;A first version of the java twitter client &lt;span style="font-weight:bold;"&gt;Twaja&lt;/span&gt; is available for download &lt;a href=http://www.plsw.net/twaja/twaja.htm&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;. There are binaries and sources. Twaja may also run as applet or via Webstart.&lt;br&gt;Comments and critics appreciated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-6195607262070904533?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/6195607262070904533/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=6195607262070904533' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6195607262070904533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6195607262070904533'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/02/twaja-download-available.html' title='Twaja 1.0.8 Release'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-278210012175940089</id><published>2010-01-18T17:44:00.000-08:00</published><updated>2010-08-15T03:27:47.753-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Twaja'/><title type='text'>New project "Twaja"</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_t2tufYGoeLc/S212w43Fh1I/AAAAAAAAAF8/6YgEDMucetY/s1600-h/alster2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 255px; height: 320px;" src="http://4.bp.blogspot.com/_t2tufYGoeLc/S212w43Fh1I/AAAAAAAAAF8/6YgEDMucetY/s320/alster2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5435130907575289682" /&gt;&lt;/a&gt;&lt;br /&gt;Im working on a new project named &lt;span style="font-weight: bold;"&gt;Twaja&lt;/span&gt;. It will be a Twitter-client written in Java. The name is based on the words 'Twitter' and 'Java' and means 'Your' in russian.&lt;br /&gt;&lt;br /&gt;There are a lot of twitterclients available, is there a need for another one? I currently use &lt;a href="https://addons.mozilla.org/de/firefox/addon/5081"&gt;Echofon&lt;/a&gt;, which is comfortable and fast, but lacks some features I'd like to use. On the other hand there are other, more complex clients with more features, but they usually have a large footprint. Basically I havent found the ideal client for me, so I started to write an own. It will have the features, which I find important and it will have a small footprint.&lt;br /&gt;&lt;br /&gt;It will be written in Java and will use the small &lt;a href="http://www.winterwell.com/software/jtwitter.php"&gt;jTwitter-api&lt;/a&gt;. It thus might run as an applet within a Website, but most likely as an Desktop-application (using Java Webstart). The Gui will not be based on Swing or SWT, but only on AWT, which has the smallest footprint. Here are some characterics and proposed unique features of &lt;span&gt;Twaja&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Combine friends feed and search&lt;/span&gt;. While I like to follow tweets of my friends I sometimes also want to follow tweets regarding certains topics from everybody, which can be found through twitter-search, e.g. using tags. The client will be able to display both, friend feeds and search results in an equal way.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Ranking&lt;/span&gt;. Sometimes, when I was offline for a while, there are hundreds of unred tweets, which are uncomfortable to browse. There should be a form of ranking in the client, so that you e.g. can read tweets only from 'important' users..&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Innovative display&lt;/span&gt;. I will try to implement some new display ideas. E.g. tweets with tags may be displayed grouped with Taglines. Thus one can easy distinguish between tweets of different topics. I wrote about the concept of taglines &lt;a href="http://pl4n3.blogspot.com/2009/09/blog-concept-with-taglines.html"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;Soon there will be more screenshots and infos available on &lt;span&gt;Twaja&lt;/span&gt;. Stay tuned! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-278210012175940089?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/278210012175940089/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=278210012175940089' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/278210012175940089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/278210012175940089'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/01/new-project-twaja.html' title='New project &quot;Twaja&quot;'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t2tufYGoeLc/S212w43Fh1I/AAAAAAAAAF8/6YgEDMucetY/s72-c/alster2.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-5373913575775460729</id><published>2010-01-13T16:13:00.000-08:00</published><updated>2010-05-22T05:37:28.775-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Gfx'/><category scheme='http://www.blogger.com/atom/ns#' term='O3d'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>O3D demo with skeletal animation</title><content type='html'>&lt;a href=http://www.plsw.net/o3d/demo.html&gt;&lt;img src=http://img684.imageshack.us/img684/1606/gnom.jpg align=right&gt;&lt;/a&gt; This &lt;a href=http://www.plsw.net/o3d/demo.html&gt;demo&lt;/a&gt; shows skeletal, key-frame-based animation with Google O3D. All mesh- and animation data is stored within a html-file (~60kB) and processed via javascript. Only the texture is loaded from an jpg-file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-5373913575775460729?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/5373913575775460729/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=5373913575775460729' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5373913575775460729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5373913575775460729'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2010/01/o3d-demo-with-skeletal-animation.html' title='O3D demo with skeletal animation'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8549244520319930409</id><published>2009-12-24T02:03:00.000-08:00</published><updated>2009-12-24T06:21:05.275-08:00</updated><title type='text'>Happy Holidays to everyone</title><content type='html'>especially to the visitors :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8549244520319930409?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8549244520319930409/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8549244520319930409' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8549244520319930409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8549244520319930409'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/12/happy-holidays-to-everyone.html' title='Happy Holidays to everyone'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-5538405661912647821</id><published>2009-12-15T17:09:00.000-08:00</published><updated>2009-12-27T14:28:42.066-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Doom3 Mod'/><title type='text'>Doom3 demo with custom contents and explosions</title><content type='html'>&lt;object width="600" height="372"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bRvV64xB0L0&amp;hl=de_DE&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/bRvV64xB0L0&amp;hl=de_DE&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="600" height="372"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Some screenshots:&lt;br /&gt;&lt;a href=http://img46.imageshack.us/img46/6714/demo00203696.jpg&gt;&lt;img src=http://img69.imageshack.us/img69/6714/demo00203696.jpg&gt;&lt;/a&gt;&lt;a href=http://img13.imageshack.us/img13/5581/shot00006oc.jpg&gt;&lt;img src=http://img197.imageshack.us/img197/2913/shot00006da.jpg&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=http://img690.imageshack.us/img690/5209/shot00027r.jpg&gt;&lt;img src=http://img51.imageshack.us/img51/7199/shot00027t.jpg&gt;&lt;/a&gt;&lt;a href=http://img192.imageshack.us/img192/5892/shot00019o.jpg&gt;&lt;img src=http://img13.imageshack.us/img13/5141/shot00019il.jpg&gt;&lt;/a&gt;&lt;br /&gt;An older Version of the video:&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=VGfbFXkyNlw"&gt;&lt;img src=http://img42.imageshack.us/img42/9162/expl.jpg width=336&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-5538405661912647821?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/5538405661912647821/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=5538405661912647821' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5538405661912647821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/5538405661912647821'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/12/doom3-clip-with-custom-contents-and.html' title='Doom3 demo with custom contents and explosions'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-1476441482697152077</id><published>2009-11-28T03:19:00.000-08:00</published><updated>2010-05-22T05:34:09.555-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applet'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='Webstart'/><title type='text'>Rubik Cube</title><content type='html'>&lt;a href=http://pl4n3d.appspot.com/main/rubik&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 308px; height: 144px;" src="http://4.bp.blogspot.com/_t2tufYGoeLc/SzIcSHiTaXI/AAAAAAAAADc/8RRJ1tYkt6o/s400/rubik2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5418424399266277746" /&gt;&lt;/a&gt;I'm working on a &lt;a href=http://pl4n3d.appspot.com/main/rubik&gt;Rubik Cube Applet&lt;/a&gt;. It shall help me to solve that puzzle. The Applet size is about 9kb. The Applet also runs via &lt;a href=http://www.plsw.net/rubik.jnlp&gt;Webstart&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-1476441482697152077?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/1476441482697152077/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=1476441482697152077' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1476441482697152077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1476441482697152077'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/11/rubik-cube.html' title='Rubik Cube'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t2tufYGoeLc/SzIcSHiTaXI/AAAAAAAAADc/8RRJ1tYkt6o/s72-c/rubik2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-1924217933757369003</id><published>2009-10-06T18:16:00.000-07:00</published><updated>2010-01-21T01:53:35.502-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Metal'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Black Metal Discographies</title><content type='html'>&lt;a href=http://img36.imageshack.us/img36/1504/blackmetal2.png&gt;&lt;img border=0 align=right width=50% src=http://img36.imageshack.us/img36/1504/blackmetal2.png&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Working on a visualisation of discographies. Albums are ordered according to their releasedate. Thus you can see at a glance, which were created at the same time. Also this graphic points out, how long bands exists and when they had their (non)productive phases. I plan to make visualisations for more bands and different kind of metal/music, but currently I listen mostly to blackmetal :)&lt;br /&gt;&lt;br /&gt;More generally I work on a tool to visualize historical data (here album releases), that are clustered by topics (here by the bands). More about such a general tool will be posted in the future. Stay tuned :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-1924217933757369003?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/1924217933757369003/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=1924217933757369003' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1924217933757369003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/1924217933757369003'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/10/black-metal-discographies.html' title='Black Metal Discographies'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-4116992124614248116</id><published>2009-10-04T09:26:00.000-07:00</published><updated>2009-10-04T09:28:36.773-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Doom3 Mod'/><title type='text'>Texture update</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img401.imageshack.us/img401/2262/shot00017m.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 266px; height: 442px;" src="http://img401.imageshack.us/img401/2262/shot00017m.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Worked a little on the texture of the templar model for a doom3 mod.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-4116992124614248116?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/4116992124614248116/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=4116992124614248116' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/4116992124614248116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/4116992124614248116'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/10/texture-update.html' title='Texture update'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-223049241777948291</id><published>2009-09-20T14:45:00.000-07:00</published><updated>2009-09-20T14:52:25.352-07:00</updated><title type='text'>Doom3 Mod - Work in Progress</title><content type='html'>Working on a mod for the doom3 engine. Here is gif of some unfinished content:&lt;br /&gt;&lt;img border=0 src=http://img27.imageshack.us/img27/8457/tgatogif.gif&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-223049241777948291?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/223049241777948291/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=223049241777948291' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/223049241777948291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/223049241777948291'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/09/doom3-mod-wip.html' title='Doom3 Mod - Work in Progress'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8338157494832012987</id><published>2009-09-12T05:53:00.000-07:00</published><updated>2009-09-12T05:55:33.861-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gfx'/><title type='text'>Odosketch, first drawing</title><content type='html'>my first drawing using http://sketch.odopod.com/:&lt;br /&gt;&lt;embed src="http://sketch.odopod.com/flash/OdoSketch.swf?sketchURL=/sketches/93000.xml&amp;userURL=/users/12298&amp;bgURL=/images/bigbg.jpg&amp;mode=embed" AllowScriptAccess="always" bgcolor=#EDE7DB menu="false" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="600" height="338"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8338157494832012987?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8338157494832012987/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8338157494832012987' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8338157494832012987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8338157494832012987'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/09/odosketch-first-drawing.html' title='Odosketch, first drawing'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-2093581396350441157</id><published>2009-09-08T13:14:00.000-07:00</published><updated>2010-05-22T05:36:02.934-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Blog Concept with Taglines</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_t2tufYGoeLc/Sqa8SVCUcBI/AAAAAAAAACg/bI5kmF-Co8M/s1600-h/blog.png"&gt;&lt;img align=right style="cursor:pointer; cursor:hand;width: 349px; height: 400px;" src="http://2.bp.blogspot.com/_t2tufYGoeLc/Sqa8SVCUcBI/AAAAAAAAACg/bI5kmF-Co8M/s400/blog.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5379193828011175954" /&gt;&lt;/a&gt;&lt;br /&gt;Thinking about a new layout-concept for blogs with tags.&lt;br /&gt;&lt;strong&gt;Problem:&lt;/strong&gt; In a blog with multiple entries with multiple different tags its hard to view/distinguish entries that share same tags.&lt;br /&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;Colored lines, &lt;strong&gt;Taglines&lt;/strong&gt;, each representing a tag, connect entries which have same tags.&lt;/li&gt;&lt;li&gt;Taglines for different tags have different colors and different horizontal position.&lt;/li&gt;&lt;li&gt;Entries are vertically ordered depending on creating time, newest entries above. Entries are horizontally shifted regarding their tags.&lt;/li&gt;&lt;/ul&gt;This concept improves the reading of blog-entries, wich belong together, while all entries remain visible. On the right side is an screenshot of an example-implementation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Some concept-details:&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;The sorting of the tags, i.e. and the horizontal position and color of their taglines, depends on creation time of entries. Thus taglines of newer entries appear on the left side. Since entry shifting also depends on the tags, newer entries will also appear on the left side. This results in a good read-flow. Alternatively tag-sorting might depend on other criteria like tag-importance, thus most entries with most important tags would appear on the left side.&lt;/li&gt;&lt;li&gt;While taglines connect entries which share the corresponding tag, they may cross entries without that tag. Then they are displayed as if they lay under that entry, not connecting it.&lt;/li&gt;&lt;li&gt;The screenshot also shows a minimap, which may improve overview, if there are a lot of entries. There could also be a legend showing the color of the tags, and corresponding entry-counts.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-2093581396350441157?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/2093581396350441157/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=2093581396350441157' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/2093581396350441157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/2093581396350441157'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/09/blog-concept-with-taglines.html' title='Blog Concept with Taglines'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_t2tufYGoeLc/Sqa8SVCUcBI/AAAAAAAAACg/bI5kmF-Co8M/s72-c/blog.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8694485175037317329</id><published>2009-08-03T16:53:00.000-07:00</published><updated>2010-01-21T01:54:39.013-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Doom3 Mod'/><title type='text'></title><content type='html'>Another snapshot of Doom3 mod - work in progress.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t2tufYGoeLc/Snd59XmUkVI/AAAAAAAAAB4/tIWig_FJtI0/s1600-h/shot00014.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_t2tufYGoeLc/Snd59XmUkVI/AAAAAAAAAB4/tIWig_FJtI0/s400/shot00014.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5365891576248963410" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8694485175037317329?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8694485175037317329/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8694485175037317329' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8694485175037317329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8694485175037317329'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/08/another-snapshot-of-doom3-mod-work-in.html' title=''/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t2tufYGoeLc/Snd59XmUkVI/AAAAAAAAAB4/tIWig_FJtI0/s72-c/shot00014.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-8508342311212976701</id><published>2009-08-01T08:47:00.000-07:00</published><updated>2010-05-22T05:33:25.034-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Metal'/><title type='text'>On 'Gods of War' by Manowar</title><content type='html'>Got the the Manowar CD 'Thunder in the Sky'. Its quite good, with less orchestra-stuff compared to the latest album 'Gods of War'. Here a list of my fav songs from 'Gods of War':&lt;ul&gt;&lt;li&gt;Sleipnir&lt;li&gt;Sons of odin&lt;li&gt;Gods of war&lt;li&gt;Odin&lt;/ul&gt; The other 12 tracks of the album are mostly instrumentals or ballads with lots of cheesy orchestra-stuff, but those 4 rock :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-8508342311212976701?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/8508342311212976701/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=8508342311212976701' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8508342311212976701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/8508342311212976701'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/08/on-gods-of-war-by-manowar.html' title='On &apos;Gods of War&apos; by Manowar'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-6595381940023128262</id><published>2009-07-28T04:38:00.000-07:00</published><updated>2010-01-21T01:55:06.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Doom3 Mod'/><title type='text'></title><content type='html'>Working on circular stairs for a Doom3 mod.. In the pic some some zombies standing on them :)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img35.imageshack.us/img35/882/shot00010h.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 840px; height: 525px;" src="http://img35.imageshack.us/img35/882/shot00010h.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-6595381940023128262?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/6595381940023128262/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=6595381940023128262' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6595381940023128262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6595381940023128262'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/07/working-on-circular-stairs-for-doom3.html' title=''/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-7933516037311457614</id><published>2009-03-04T03:22:00.000-08:00</published><updated>2010-09-08T11:01:07.603-07:00</updated><title type='text'>Renewed website</title><content type='html'>&lt;iframe align=left src="https://spreadsheets.google.com/viewanalytics?formkey=dEJvSzFBbENLc2JUa2FPcEpZNVRhNXc6MQ" width="500" height="350" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;I renewed an alternative website, which you find here: &lt;a href="http://pl4n3.wordpress.com"&gt;http://pl4n3.wordpress.com&lt;/a&gt; You can still vote &lt;a href=https://spreadsheets.google.com/embeddedform?formkey=dEJvSzFBbENLc2JUa2FPcEpZNVRhNXc6MQ&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Test&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-7933516037311457614?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/7933516037311457614/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=7933516037311457614' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/7933516037311457614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/7933516037311457614'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2009/03/renewed-website.html' title='Renewed website'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-7092045198525219611</id><published>2008-07-09T05:27:00.001-07:00</published><updated>2008-07-09T05:27:28.887-07:00</updated><title type='text'>Google Lively</title><content type='html'>&lt;iframe src='http://embed.lively.com/iframe?rid=2637495392515025498' width='460' height='400' marginwidth='0' marginheight='0' frameborder='0' scrolling='no'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-7092045198525219611?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/7092045198525219611/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=7092045198525219611' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/7092045198525219611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/7092045198525219611'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2008/07/google-lively.html' title='Google Lively'/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3619023968476701759.post-6840368288667998578</id><published>2008-01-15T17:52:00.000-08:00</published><updated>2010-01-21T01:56:33.625-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gfx'/><title type='text'></title><content type='html'>Hello World. This Blog is started. Comments and Critics are appreciated.&lt;br /&gt;Here are some older pics, i painted:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t2tufYGoeLc/SzLS1UWN65I/AAAAAAAAAEM/URQNbzvDT2k/s1600-h/treecloud.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://3.bp.blogspot.com/_t2tufYGoeLc/SzLS1UWN65I/AAAAAAAAAEM/URQNbzvDT2k/s400/treecloud.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5418625115116923794" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_t2tufYGoeLc/SzLS1a3KHgI/AAAAAAAAAEE/L_5np15QiZQ/s1600-h/tmo5.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 359px; height: 400px;" src="http://4.bp.blogspot.com/_t2tufYGoeLc/SzLS1a3KHgI/AAAAAAAAAEE/L_5np15QiZQ/s400/tmo5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5418625116865699330" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_t2tufYGoeLc/SzLS1Ngpn-I/AAAAAAAAAD8/zhDBzg0G5mQ/s1600-h/skull.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://2.bp.blogspot.com/_t2tufYGoeLc/SzLS1Ngpn-I/AAAAAAAAAD8/zhDBzg0G5mQ/s400/skull.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5418625113281634274" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3619023968476701759-6840368288667998578?l=pl4n3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pl4n3.blogspot.com/feeds/6840368288667998578/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3619023968476701759&amp;postID=6840368288667998578' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6840368288667998578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3619023968476701759/posts/default/6840368288667998578'/><link rel='alternate' type='text/html' href='http://pl4n3.blogspot.com/2008/01/hello-world.html' title=''/><author><name>pl4n3</name><uri>http://www.blogger.com/profile/07521483139208164051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_t2tufYGoeLc/TF7itSEXFeI/AAAAAAAAANI/bQTn8w2diuQ/S220/icon.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t2tufYGoeLc/SzLS1UWN65I/AAAAAAAAAEM/URQNbzvDT2k/s72-c/treecloud.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
