<?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-1232515131248248547</id><updated>2012-02-16T01:28:11.200-08:00</updated><category term='snippet'/><category term='code'/><category term='javascript'/><category term='html'/><title type='text'>Rogueski</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rogueski.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1232515131248248547/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rogueski.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ant Whitlam</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-yvDGS9ofe6o/AAAAAAAAAAI/AAAAAAAAArI/42enwMrsvfE/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1232515131248248547.post-1938042290861516648</id><published>2012-01-24T07:57:00.000-08:00</published><updated>2012-01-24T07:57:08.148-08:00</updated><title type='text'>Update</title><content type='html'>Well as I said at the start of the year, I will be blogging more often and discussing things I am doing in more detail. It has been a while since I posted anything, but this isn't because I have forgotten.&lt;br /&gt;&lt;br /&gt;I am currently trying to write three new posts. Two of these are about some more Javascript code I have been working on, while the other is about something I noticed while playing some of the games I have been playing lately.&lt;br /&gt;&lt;br /&gt;I hope to have the first up soon, with the others following shortly after. Till then, check me out on Google+ for more bite-sized nuggets of information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1232515131248248547-1938042290861516648?l=rogueski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rogueski.blogspot.com/feeds/1938042290861516648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rogueski.blogspot.com/2012/01/update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1232515131248248547/posts/default/1938042290861516648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1232515131248248547/posts/default/1938042290861516648'/><link rel='alternate' type='text/html' href='http://rogueski.blogspot.com/2012/01/update.html' title='Update'/><author><name>Ant Whitlam</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-yvDGS9ofe6o/AAAAAAAAAAI/AAAAAAAAArI/42enwMrsvfE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1232515131248248547.post-660553493869772676</id><published>2012-01-04T10:39:00.001-08:00</published><updated>2012-02-03T04:15:54.644-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Debug this</title><content type='html'>&lt;div&gt;I have spent all afternoon trying to code a SOAP interface to an ASP.Net web service. The code looked sound, the SOAP package seemed to spec and I was getting data back from the service. However, the function was not processing the variables that I was passing to it. For 3 long hours I poured over the code, compared it to examples online and could not get it to work.&lt;br /&gt;&lt;br /&gt;Then I noticed the key, the error in this whole saga. There was a / on the end of my xmlns url. Eureka, the variables were processing and the application worked! &lt;br /&gt;&lt;br /&gt;Damn you forward slash... Damn you. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1232515131248248547-660553493869772676?l=rogueski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rogueski.blogspot.com/feeds/660553493869772676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rogueski.blogspot.com/2012/01/debug-this.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1232515131248248547/posts/default/660553493869772676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1232515131248248547/posts/default/660553493869772676'/><link rel='alternate' type='text/html' href='http://rogueski.blogspot.com/2012/01/debug-this.html' title='Debug this'/><author><name>Ant Whitlam</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-yvDGS9ofe6o/AAAAAAAAAAI/AAAAAAAAArI/42enwMrsvfE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1232515131248248547.post-2076465147716612568</id><published>2012-01-03T06:46:00.000-08:00</published><updated>2012-01-09T05:54:55.954-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippet'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Browser Frames Per Second</title><content type='html'>&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Today I worked on a little javascript application that would hopefully test the different speeds at which each browser can process my code. Borrowing from my Games programming education I chose to use a simple Frame Per Second style counter. The following code sets up a commonly used Game Loop that aims for a constant 30 &lt;b&gt;updates &lt;/b&gt;per second, leaving the rest of the time to rendering. Using this style of loop we can move items around the screen at a constant speed, irrespective of the render speed or frame rate.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The one thing I did notice straight away was the different performance in each browser. This is no way conclusive or a real representation of final results, but by just using this simple loop I managed the following frames per second:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;On work PC&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;IE8 - 65fps - 0.4 process time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Chrome v16 - 201fps - 0.17 process time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;On Home PC&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Chrome v16 - 250fps - 0.13 process time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;IE 9 - 252fps&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;- 0.13 process time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Hopefully this simple loop could be used in all sorts of different&amp;nbsp;scenarios. I was intending to use it to implement a kinetic slide to my map application. However this could easily be the basis of an HTML5 canvas game in the future. As you can see though, different hardware configurations can lead to different results, as the code is processed on the client machine.&lt;/span&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;title&amp;gt;FPS&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;body onload='start();'&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;div id='fps'&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;var currTime = new Date().getTime();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;var secondTime = new Date().getTime();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;var prevTime = new Date().getTime();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;var frameCount = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;var UPDATES_PER_SECOND = 30;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;var fps = null;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;function update(secs) { }&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;function draw(secs) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; frameCount++;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; if (currTime &amp;gt;= secondTime + 1000) { // for each second &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; fps = document.getElementById("fps");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; if (fps != null) fps.innerText = frameCount + " : " + (Math.round(secs*100) / 100);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; frameCount = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; secondTime = currTime;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;}&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;function mainLoop() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;currTime = new Date().getTime();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;var elapsecs = parseFloat(currTime - prevTime) / UPDATES_PER_SECOND;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; // function use the elapsed seconds as the calulating factor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;update(elapsecs);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;draw(elapsecs);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; prevTime = currTime;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; setTimeout("mainLoop()", 1); // use setTimeout to reset the Call Stack&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;}&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;function start() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;mainLoop();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1232515131248248547-2076465147716612568?l=rogueski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rogueski.blogspot.com/feeds/2076465147716612568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rogueski.blogspot.com/2012/01/browser-frames-per-second.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1232515131248248547/posts/default/2076465147716612568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1232515131248248547/posts/default/2076465147716612568'/><link rel='alternate' type='text/html' href='http://rogueski.blogspot.com/2012/01/browser-frames-per-second.html' title='Browser Frames Per Second'/><author><name>Ant Whitlam</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-yvDGS9ofe6o/AAAAAAAAAAI/AAAAAAAAArI/42enwMrsvfE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1232515131248248547.post-3762063711756440471</id><published>2012-01-01T07:39:00.000-08:00</published><updated>2012-01-01T07:39:29.218-08:00</updated><title type='text'>New Year New Blog</title><content type='html'>Well its another new year and I thought I would celebrate this occasion by posting a new blog. My aim for the coming year is to continue to blog a lot more than I was before, which shouldn't be hard as that was hardly at all. I hope to discuss the games I am playing, news and developments I am working on at the time. For now though I will leave you with a Happy 2012 and hope that this year is better than the last.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1232515131248248547-3762063711756440471?l=rogueski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rogueski.blogspot.com/feeds/3762063711756440471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rogueski.blogspot.com/2012/01/new-year-new-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1232515131248248547/posts/default/3762063711756440471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1232515131248248547/posts/default/3762063711756440471'/><link rel='alternate' type='text/html' href='http://rogueski.blogspot.com/2012/01/new-year-new-blog.html' title='New Year New Blog'/><author><name>Ant Whitlam</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-yvDGS9ofe6o/AAAAAAAAAAI/AAAAAAAAArI/42enwMrsvfE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
