{"id":18,"date":"2007-09-17T15:01:36","date_gmt":"2007-09-17T15:01:36","guid":{"rendered":"http:\/\/www.crazygaze.com\/blog\/archives\/18"},"modified":"2010-06-06T11:07:52","modified_gmt":"2010-06-06T11:07:52","slug":"multiplatform-issues","status":"publish","type":"post","link":"https:\/\/www.crazygaze.com\/blog\/2007\/09\/17\/multiplatform-issues\/","title":{"rendered":"Multiplatform issues"},"content":{"rendered":"<p>While porting my sound engine to other platforms I came across several platform limitations.<br \/>\nThe easier one, turned out to be Win32 and Windows Mobile, of course. The harder ones, Symbian and Palm.<br \/>\nWhat I&#8217;ve learned so far is that when coding multiplatform code, its really hard to keep the design as we want. We often need to hack stuff to defeat platform limitations.<br \/>\nWith the limitations I knew about, I started refactoring and changing the design of the library. When I had all set, to avoid Symbian limitations, and started the Palm port, more problems!<br \/>\nThe lack of documentation on some platforms doesn&#8217;t help either.<br \/>\nIt&#8217;s really frustrating this kind of situation when we have scarce documentation, follow the rules, and it still fails. A lot of trial and error, where along the way we find small platform quirks which are not documented, or deeply buried in the documentation.<br \/>\nI&#8217;ve done a lot of refactoring, to account for the limitations I already knew about while at the same time keeping a reasonably clean design, but then I found more limitations on Palm.<br \/>\nIt&#8217;s time for more refactoring to overcome more limitations!<br \/>\nI usually like to say&#8230;<br \/>\n<em>If it can be done, I can do it.<\/em>&#8230; But it may take a while! \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>While porting my sound engine to other platforms I came across several platform limitations. The easier one, turned out to be Win32 and Windows Mobile, of course. The harder ones, Symbian and Palm. What I&#8217;ve learned so far is that when coding multiplatform code, its really hard to keep the design as we want. We [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[3],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7jpe0-i","_links":{"self":[{"href":"https:\/\/www.crazygaze.com\/blog\/wp-json\/wp\/v2\/posts\/18"}],"collection":[{"href":"https:\/\/www.crazygaze.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.crazygaze.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.crazygaze.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.crazygaze.com\/blog\/wp-json\/wp\/v2\/comments?post=18"}],"version-history":[{"count":0,"href":"https:\/\/www.crazygaze.com\/blog\/wp-json\/wp\/v2\/posts\/18\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.crazygaze.com\/blog\/wp-json\/wp\/v2\/media?parent=18"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.crazygaze.com\/blog\/wp-json\/wp\/v2\/categories?post=18"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.crazygaze.com\/blog\/wp-json\/wp\/v2\/tags?post=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}