{"id":48,"date":"2008-10-04T22:06:11","date_gmt":"2008-10-04T20:06:11","guid":{"rendered":"http:\/\/blog.ansuz.nl\/?p=48"},"modified":"2008-10-04T22:07:10","modified_gmt":"2008-10-04T20:07:10","slug":"flash-on-the-beach-day-2-part-1","status":"publish","type":"post","link":"http:\/\/blog.ansuz.nl\/index.php\/2008\/10\/04\/flash-on-the-beach-day-2-part-1\/","title":{"rendered":"Flash on the Beach &#8211; day 2 (part 1)"},"content":{"rendered":"<p><strong>09.00-10.00 Aral Balkan<\/strong><br \/>\n<em>Grab the Low-Hanging Fruit (or 5 Rules for Hedonistic Creatives)<\/em><\/p>\n<p>I was too early to remember what his rules were. I did, however, take some notes of what striked me as interesting and worth knowing more about. I think the general idea of his talk was that we should not constrain our self to AS only, but also look at what else is out there. In other words: Think (and work) outside the box!<br \/>\nHave a look at Scratch for instance, a simple tool created by MIT to program. This might be really nice to do quick prototyping.<br \/>\nAnother thing I want to have a look at is the Python programming language and \/ or Ruby on Rails.<\/p>\n<p>Site: <a href=\"http:\/\/aralbalkan.com\/\/\" target=\"_blank\">http:\/\/aralbalkan.com\/<\/a><\/p>\n<p>References:<br \/>\n<a href=\"http:\/\/scratch.mit.edu\/\" target=\"_blank\">http:\/\/scratch.mit.edu\/<\/a> (Scratch)<br \/>\n<a href=\"http:\/\/ipython.scipy.org\/moin\/\" target=\"_blank\">http:\/\/ipython.scipy.org\/moin\/<\/a> (access to all python methods and docs through a command line iirc)<\/p>\n<p><strong>10.15 \u00e2\u20ac\u201c 11.15 Niqui Merret<\/strong><br \/>\n<em>Accessibility &#8211; beyond the basics<\/em><\/p>\n<p>A great talk about how to make Flash sites more accessible. Interesting to know is that Flex has accessibility turned off by default.<\/p>\n<p>Use the AccessibilityProperties class to control the presentation of Flash objects to accessibility aids, such as screen readers. After setting all the properties don\u00e2\u20ac\u2122t forget to call the Accessibility.updateProperties() method. Then check to see if MSAA is active, if it\u00e2\u20ac\u2122s not queue the accessibility updates, set a delay for about 2 seconds and try again.<br \/>\nFor pv3d it is advised to use the layers that are available in pv3d, though I think you could apply accessibility properties to any do3d.<\/p>\n<p>Site: <a href=\"http:\/\/niquimerret.com\/ \" target=\"_blank\">http:\/\/niquimerret.com\/ <\/a><\/p>\n<p>References:<br \/>\n<a href=\"http:\/\/code.google.com\/p\/accessible\/\" target=\"_blank\">http:\/\/code.google.com\/p\/accessible\/<\/a> (by Charles Brandt)<br \/>\n<a href=\"http:\/\/jadehopper.com\/\" target=\"_blank\">http:\/\/jadehopper.com\/<\/a><\/p>\n<p><strong>11.30 \u00e2\u20ac\u201c 12.30 Joa Ebert<\/strong><br \/>\n<em>Audiotool&#8217;s Private Parts<\/em><\/p>\n<p>Joa is just brilliant. His talk was about how they optimized a lot of the Hobnox Audiotool. It was for the utmost importance that performance would be as good as possible, cause any delay would cause a hick up in the audio.<\/p>\n<p>The first step was to improve how the cables between audio components were calculated. How you usually do that is in 3 steps.<\/p>\n<ol>\n<li>Create nodes representing each component<\/li>\n<li>Build a graph out of those nodes<\/li>\n<li>Use a path finder to determine best routes<\/li>\n<\/ol>\n<p>To optimize this they made use of the Quadtree method. An added benefit of this was that they could reuse it to see if there was already a component in a spot when the user drags a new component on the screen.<\/p>\n<p>The second optimization came from having a good look at garbage collection again. As you don\u00e2\u20ac\u2122t control when this is going to happen it can cause unwanted delays. Their solution was tricking the garbage collector by using object pools. This way there is no object creation and no object destruction at runtime.<\/p>\n<p>You have a list op pools with objects, kinda like this:<br \/>\nO &#8211;&gt; O &#8211;&gt; O &#8211;&gt; O.<br \/>\nYou take one out,<br \/>\nuse it,<br \/>\nand put it back at the end when you\u00e2\u20ac\u2122re done with it.<\/p>\n<p>The third optimization came from creating their own event system. It turned out that Flash\u00e2\u20ac\u2122s proprietary event system caused a lot of garbage collection to occur. By writing their own system they could stack events in the object pool, so no garbage collection would occur on events. Another benefit of writing their own event system was being able to implement it in their own way, a feature they added were winapi-like hooks.<\/p>\n<p>A final tip was to have a console for each project, it is so easy to have one for debugging.<\/p>\n<p>Site: <a href=\"http:\/\/www.joa-ebert.com\/ \" target=\"_blank\">http:\/\/www.joa-ebert.com\/ <\/a><\/p>\n<p>References:<br \/>\n<a href=\"http:\/\/www.hobnox.com\/audiotool.1046.html\" target=\"_blank\">http:\/\/www.hobnox.com\/audiotool.1046.html<\/a> (Hobnox Audiotool)<br \/>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Quadtree\" target=\"_blank\">http:\/\/en.wikipedia.org\/wiki\/Quadtree<\/a> (Quadtree)<br \/>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Object_pool\" target=\"_blank\">http:\/\/en.wikipedia.org\/wiki\/Object_pool<\/a> (Object pools)<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>09.00-10.00 Aral Balkan Grab the Low-Hanging Fruit (or 5 Rules for Hedonistic Creatives) I was too early to remember what his rules were. I did, however, take some notes of what striked me as interesting and worth knowing more about. &hellip; <a href=\"http:\/\/blog.ansuz.nl\/index.php\/2008\/10\/04\/flash-on-the-beach-day-2-part-1\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[32,33,31,30,29,28,27],"class_list":["post-48","post","type-post","status-publish","format-standard","hentry","category-random","tag-32","tag-33","tag-flash-on-the-beach","tag-flashonthebeach","tag-flashonthebeach08","tag-fotb","tag-fotb08"],"_links":{"self":[{"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/posts\/48","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":0,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/posts\/48\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/media?parent=48"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/categories?post=48"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/tags?post=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}