background preloader

HTML

Facebook Twitter

Asteroids. Iso. SproutCore. Impact. Play Drop! Bindings Overload. Technical Debt. This article will discuss what Technical Debt is from a Flash/Flex developer perspective, how it negatively affects my Scrum projects, and what are some of the prescribed ways to prevent it.

Nothing ground breaking here folks, just corroboration that TD IS a major problem, and not even Scrum is immune. What is Technical Debt? Martin Fowler has a good summary about what Technical Debt is. Here are 2 quotes from his wiki: You have a piece of functionality that you need to add to your system. Git-r-done vs. doing it right. Another quote which describes the metaphor: …doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt.

He goes on to mention that unlike money, you cannot effectively measure technical debt. Signs of Technical Debt There are various signs of Technical Debt. System fragility examples include when you move a login button, the entire login form doesn’t work. Another is when you fix a bug. 3 times. Pullback & Reassess Done? Integers are Your Friends. Two weeks ago Bruce and I released JSGameBench version 0.1.

Today marks the release of version 0.2, a much faster and cleaner version. We continue to learn both from tightening the code and from the strong HTML5 community. Version 0.2 reinforces our belief in HTML5 as a strong, horizontal platform for games and highly interactive applications across the web. Benchmarking In order to talk about browser performance, we needed to standardize. For OS X: a MacBook Pro laptop, currently OS X 10.6.6, 4GB of RAM, 2.66 GHz Intel Core i7, and NVIDIA GT 330M with 512MB of RAM.For Windows: a Lenovo T410s laptop, currently Windows 7 Enterprise, 4GB of RAM, 2.53 GHz Intel Core i5, and NVIDIA NVS 3100M with 512MB of RAM.

Both of these laptops are significantly less powerful than the Mac Pro the original tests were run on. More is Better Thanks to help from the HTML5 community, JSGameBench has roughly doubled performance in the most widely used browsers in only two weeks. Some Thank Yous Mobile Differences. Elevator Action. Speedy Sprites. WebGL Water.

Loading... Made by Evan Wallace This demo requires a decent graphics card and up-to-date drivers. If you can't run the demo, you can still see it on YouTube. Interactions: Draw on the water to make ripples Drag the background to rotate the camera Press SPACEBAR to pause and unpause Drag the sphere to move it around Press the L key to set the light direction Press the G key to toggle gravity Features: Raytraced reflections and refractions Analytic ambient occlusion Heightfield water simulation * Soft shadows Caustics (see this for details) ** * requires the OES_texture_float extension** requires the OES_standard_derivatives extension Tile texture from zooboing on Flickr. Browsers performance. The Backlog. Caveats I continually abuse 2 terms below, Backlog and Sprint. Sprints don’t have to be 2 weeks, but for the sake of simplicity, I assume they are. Also, Backlogs contain user stories, not requirements or features.

However, I assume for the sake of this article your features are already formed into user stories. Finally, I assume that once I capture a requirement, it’s thrown into the Backlog. I actually have a document which holds the validated requirements, which I then later formalize into user stories, and then put those officially into the real Backlog. Review: What is a Backlog? First, a review. While a requirements document may say “The application needs to allow users to register and login”, the Product Backlog would probably have that as 4 line items: Upon entering [product URL], and the user isn’t logged in, they’ll be presented with a login screen.

There are a lot more user stories you can write, or even refining the ones above. Review: Sprint Backlog What Are We Building? 1h keynote. WebGL : the future. Two weeks ago, Cory, Conor and I released version 0.2 of JSGameBench with increased performance and more refined recommendations. Today, with the release of version 0.3, we get our first taste of the future of high performance web applications: WebGL. The Glorious Future, Here Now WebGL is designed to allow browsers to render 3D scenes within the 2D canvas element. More importantly, the WebGL implementations currently deployed take advantage of the 3D hardware on your machine, fully accelerating both 2D drawing and compositing, with excellent results. Recall our scores from two weeks ago, where the our Windows 7 test machine hit 1,482 sprites with Firefox 4 and Chrome 10 on OS X pushed 288 sprites. Compare to the WebGL results: WebGL provides a dramatic performance gain on OS X, with Chrome 11 hitting a new record 4,394 sprites and Firefox 4 pushing 2,061.

Note that JSGameBench is not using WebGL to accelerate 3D content. WebGL A canvas element to target. Is WebGL Ready for Prime Time? Memory. Welcome back. Since version 0.3 was released, we’ve seen great progress across the browser landscape. Internet Explorer 9 was released. Internet Explorer 10 opened platform preview. Firefox 4 and Mobile Firefox both emerged from beta, bringing WebGL functionality to desktop and mobile. Exciting times! Textures, Textures, and More Textures With WebGL available on both Chrome and Firefox and impressive sprite performance from all of the mainstream browsers, we wondered about another piece of the browser performance pipeline: textures.

On desktop, we modified JSGameBench to run a repeated sprite test, increasing texture load by 1MB each time. The results were striking: This graph shows relative sprite performance as texture memory increased. Internet Explorer 9 repeatedly demonstrated the same pattern: steady performance to 10 MB, a run with a 50% performance decline, fast runs again to 15 MB, then a steady decline from 15 MB on. Finally, there’s Chrome 11 on OS X. But What About Mobile? Biolab Disaster. Crafty.