tag:blogger.com,1999:blog-32892612009-02-22T20:24:44.441-08:0070's futuristic technologyProgramming focused drivelAustinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.comBlogger104125tag:blogger.com,1999:blog-3289261.post-17156185977199942892008-09-24T21:56:00.000-07:002008-09-24T22:06:03.402-07:00<h2>OFace - Imagining an Identity Faceting Web Service</h2><p>In <a href="http://www.ozten.com/psto/2008/09/intended-audience-and-faceted-social.html">Intended Audience and Social Networks</a>, I wrote about the problem of audience in social networking software. Here’s a strawman solution to this problem.</p><p>I imagine several parts:<ul><li><b>FacetSwitch</b> - A device that lets you naturally and quickly indicate your current facets (or intended audiences)</li><li><b>OFace</b> - An identity faceting service</li><li><b>A dashboard</b> so that you can review and re-categorize items you’ve published against their current facets<li><b>Extensions</b> to existing systems to utilize this new information</li></ul></p><p>To test out these ideas I will be constructing a web service that will manage your various “facets” of your identity. These facets map to “channels” or audiences which you are writing for.</p><p>The FacetSwitch is a webpage, mobile app, or even a dedicated embedded device which has a very simple UI. It displays your currently used facets, your unused facets, and allows you to switch between them.</p><p>OFace or OpenFace would be a REST web service for managing mapping <a href="http://openid.net/">OpenId</a>s to URLs. The FacetSwitch would update and read from this service. Additionally the service is used to capture an individual’s facets facet which they were “speaking through” when they created or updated that url. It is orthogonal to existing services and ideally could be layered onto social networking software and other content creation tools either natively via <a href="http://oauth.net/">OAuth</a>, or as an extension. Two update modes can be imagined, a “ping” mode where content creation hooks into OFace and a “batch” mode where OFace periodically checks registered feeds and automatically facets items based on timestamp.</p><p>A Dashboard would be needed for users to review and correct faceting information as needed, but it would be used infrequently, as faceting should introduce very low overhead for users.</p><p>Integration into tools, at least as a prototype, would be via Greasemonkey or another browser addon. There are at least two client side extension points:</p><p>When authors create content, then OFace would be notified of the URL being operated on.</p><p>When viewers look at content or a feed of content, then they should see a halo or other indication of which facets are in effect and which could be “listened in on”. The content items would be filtered down to only content of interest.</p><p>I am thinking of attacking to start exploring these ideas within the domain of lifestreaming applications.</p><p>Initially security and privacy aren’t the main focus. It’s more to test the ideas of faceted identity and intended audience.</p><div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-1715618597719994289?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-84763580839358236772008-09-21T13:36:00.000-07:002008-09-21T14:07:31.863-07:00<h2>Intended Audience and Faceted Social Identities</h2><p>We are heading towards a more transparent society, but at the cost of overloading our readers, duplicating information, and giving up privacy. Social networking software increases this transparency as one is able to digitize more and more of our thoughts and life. Unfortunately most tools don’t have a proper way to manage ones <a href="http://en.wikipedia.org/wiki/Self-identity">self-identity</a> nor ones <a href="http://en.wikipedia.org/wiki/Social_identity">social identity</a>; it’s very difficult to get content to it’s target audience without overloading all audiences with unwanted information. Tools have various levels of privacy protection, which are infrequently used.</p> <p>We currently work around this issue in many ways: 
</p><ul><li>Creating multiple accounts in a service
</li><li>Using multiple services for the same task and tying one username to one target audience
</li><li>Using a shared account for a couple</li><li>Tagging content so that viewers can listen on a specific topic
</li><li>Reposting content to other networks</li><li>
Etc</li></ul><p>The reality of how healthy people operate in social environments is that interaction in the physical world is highly complex and nuanced. We are <a href="http://en.wikipedia.org/wiki/Dramaturgical_perspective">multi-faceted beasts</a>. At one moment we may be wearing our “Professional Web Dev” hat and the next wearing our “Barack Obama Supporter” hat. In the real world we often make this switches without noticing. We step out of a meeting and into the elevator and without missing a beat are able to "switch these hats". We negotiate social identities constantly for the benefit of our audience. If we communicated in an elevator the way we communicate online, it would be jarring and tedious.</p><p>We use Flickr to upload photos for different reasons: family, vacations, parties, work, foodlogs, art projects, political efforts, and supporting other publishing activities. Largely the various audiences and contexts which are the intended recipients are collapsed. Flickr lacks automated features to manage “channels” of audiences. If I upload a whiteboard diagram and a propaganda flyer, both end up in my photo stream. I can try to use tags, groups, or pools, to filter down my photos by audience, but this is labor intensive and may require too much coordination with the audience or other tools in my publishing toolchain. What is needed is a way to make these tools aware of “which hat” we are currently wearing and to only deliver content to the appropriate audience.</p><p>If I consume Jane’s <a href="http://lifestreamblog.com/about/">activities</a> via <a href="http://friendfeed.com/">FriendFeed</a> or a feed reader, I wanted it pre-filtered for her factes that interest me: Seattle, WebDev, BookReader, and DudeImDrunk. I want to never see some of her other content: ProudMom, SeahawksFan, and MyMusic. This is regardless of which tools Jane uses to author these posts: <a href="http://www.flickr.com">Flickr</a>, <a href="http://www.delicious.com"><a href="http://delicious.com/">del.icio.us</a></a>, <a href="http://twitter.com">Twitter</a>, etc.</p><p>I think the problem of capturing your current facet is related to other problems with social networking software: Information Overload, Information leaks, and Stalking. It’s possible that solving the faceted social identity problem may be a good foundation for solving the others.</p><div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-8476358083935823677?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com2tag:blogger.com,1999:blog-3289261.post-91506512321552169922008-09-19T11:38:00.000-07:002008-09-19T11:47:13.954-07:00Thanks <a href="http://ethanmiller.name/">Ethan</a> for letting me know the feeds to this blog where hosed last week. This is fixed, but some Feed Readers like Google Reader may still be caching the bad urls... If you try and subscribe and it won't work, try adding <a href="http://www.ozten.com/psto/atom.xml"><img src="http://www.ozten.com/i/feed-icon-28x28.png" width="28" heigth="28" border="0" alt="Atom Feed"/></a>.<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-9150651232155216992?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-33953940393003498862008-09-16T07:31:00.000-07:002008-09-16T08:25:07.870-07:00<h2>Changes</h2><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ozten.com/i/mozilla2.gif"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px;" src="http://www.ozten.com/i/mozilla2.gif" alt="Illustration from Mozilla party 1999" border="0" /></a> I am super duper excited to announce that I will be joining the <a href="http://blog.mozilla.com/webdev/">Mozilla webdev</a> team in October. I have been a fan and supporter of Mozilla products like <a href="http://www.mozilla.com/en-US/firefox/">Firefox</a> and <a href="http://www.mozilla.com/en-US/thunderbird/">Thunderbird</a> since I was just learning about unix and the internet back in Netscape Navigator 3.0 days.</p><p>Don't worry I (<a href="http://www.wigfur.com/">we</a>) will be staying in Seattle. I'll be part of a team of remote developers.</p><p>It is an honor to join this small feisty company who's vision is to push forward an open web that anyone on the planet can use and make their own. It's a <a href="http://www.mozilla.com/en-US/about/careers.html">corporation</a> and a <a href="http://www.mozilla.org/foundation/">non-profit foundation</a> which blends contributions from employees, contractors, and most of all volunteers. A large part of why Firefox 3 is a freaking awesome browser is it's community created add-ons and it's localization into something like 30 languages such as עברית or 中文 (简体).</p><p><img style="margin: 0pt 10pt 10px 0px; float: left; cursor: pointer; width: 110px; height: 105px;" src="http://www.ozten.com/i/firefox.png" alt="Firefox Logo" border="0" /><a href="https://addons.mozilla.org/en-US/firefox/">Add-ons</a> is a project supported by the webdev team. Some of my favorite add-ons are <a href="https://addons.mozilla.org/en-US/firefox/addon/748">GreaseMonkey</a>, <a href="https://addons.mozilla.org/en-US/firefox/addon/4125">It's All Text!</a>, and <a href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a>. GreaseMonkey allows users to "fix the web" without waiting for websites to make the fixes. A new project, <a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/">Ubiquity</a>, shows potential to make this even easier. It promise is to allow anyone that knows JavaScript to <a href="http://vimeo.com/1561578?pg=embed&amp;sec=1561578">create new browser features</a> from mashed up services, in a way that is more rapid and transparent to the developer.</p><p>Another benefit of working for Mozilla will be more openness and transparency. Everything Mozilla does is in the public eye and to serve the benefits of the community. I look forward to being more active in open source projects and participating more in building the shared web.</p><p><a href="http://www.flickr.com/photos/ozten/2848573317/" title="Hi-Spot Cafe grilled Veggie Sandwhich by oztenphoto, on Flickr"><img src="http://farm3.static.flickr.com/2262/2848573317_1d282be0bc_m.jpg" width="180" height="240" alt="Hi-Spot Cafe grilled Veggie Sandwhich" style="float:right; margin: 0pt 0pt 10px 10px;" /></a>Hopefully before I start in October, I will be revamping some aspects of my web publishing thingamajiggs; putting out more frequent updates, besides what <a href="http://www.flickr.com/photos/ozten/tags/foodlog">I have been eating</a>.</p><p>Another change, is that this fall I will be starting a thesis project, as I am slowly coming to the end of my Masters program. I will probably be working on improving social identity features in web applications ( social networking software ). So <a href="http://www.barackobama.com/issues/">lots of changes</a> all around.</p><div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-3395394039300349886?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com2tag:blogger.com,1999:blog-3289261.post-46231994321557448502008-09-10T09:28:00.000-07:002008-09-10T20:56:09.341-07:00<a href="http://www.flickr.com/photos/ozten/2847634456/" title="Olke's groovey shirt is my texture by oztenphoto, on Flickr"><img src="http://farm4.static.flickr.com/3001/2847634456_c7e1142209_m.jpg" alt="Spore Origin" align="right" height="240" width="160" /></a><p>There is a<a href="http://www.amazon.com/Spore-Mac/dp/B000FKBCX4/ref=pd_bbs_sr_1?ie=UTF8&amp;s=videogames&amp;qid=1221064117&amp;sr=8-1"> Spore </a><a href="http://www.eff.org/issues/drm">DRM</a> protest going on. 1,962 people have given the game 1 star out of 5. I find this hilarious. </p><p>The gaming, movie, and <a href="http://www.eff.org/pages/customer-always-wrong-users-guide-drm-online-music/">music</a> industries all have a horrible record with locking users out of their purchases. The are being "penny wise and pound foolish". Spore, according to the hype, interviews, and talks I have seen, is an amazing piece of art. It, like every breakthrough piece of art, has the potential to enter our collective culture, like Super Mario Bros or pong did.</p><p>Unfortunately, locking down these creations and eliminating chances for fair use, reduces the audience for your works. Greed kills that potential. The are a lot of video game fanatics. The average person will pay for a video game, but the <span style="font-weight: bold;">fanatic</span> will not only pay $50 bucks for the game, they will buy the t-shirts, the strategy guides, and the lunch box. Sure lots of kids with free time will go through the pain of finding and pirating video games, but that's why we have kids. Piracy is marketing, not lost revenue. </p><p>When I started being able to purchase mp3s more easily than buying CDs and ripping them, I bought a bitch-pile more digital music. I rarely purchase Movies and TV show, because I know that I am really only "renting" them due to DRM issues. I will really only purchase DRM video games for proprietary platforms: iPhone, Wii, etc. I don't notice the DRM there because it's a long lived platform, so I feel like I really own the game. </p><p>But will I go out and plunk down $50 bucks for Spore. Naw, the world is to fascinating and their is to much to do and create, to <a href="http://www.amazon.com/Spore-Mac/dp/B000FKBCX4/ref=pd_bbs_sr_1?ie=UTF8&amp;s=videogames&amp;qid=1221064117&amp;sr=8-1">rent a game for $49.99</a>.</p><div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-4623199432155744850?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-29823002024984793972008-07-30T22:17:00.000-07:002008-07-30T22:54:33.292-07:00A common pattern in web development is that you develop on platform X and then, eventually, begrudgingly, painfully, load up your work of art on platform Y to see how it fared. Even the most fastidious developer has to cycle through 'refresh' across N browsers and computers, to ensure that platform Y is still passing all your tests. I whipped up a new tool last night... <a href="http://www.ozten.com/code/iediot/">iediot</a>. A simple web page which takes a URL (to a test case or regression page right?) and reloads it every 30 seconds. Load it up on the other (virtual) machine which is running that layman's platform 'Y'. You can be merrily hacking away on platform X. Normally your test page will show no output, but when a test fails, or your code changes completely hosed platform Y, you will see an error message and only have to think about the last 30 seconds to identify what changed... instead of an hour, or a day, or ...? Heck load it up N times on N computers and resize the windows to be visible. Enjoy hacking away only on platform X, editing js libraries and their combined test runner page. Wish it did something else? It's on <a href="http://github.com/ozten/iediot/tree/master">github</a>. Inspired by Continuous Integration, xUnit, the letters I, and E.<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-2982300202498479397?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-17610123569984684842007-10-19T00:49:00.000-07:002007-10-19T00:52:28.291-07:00I've never played with automating Adobe products, even though I do like to play with graphical programming. Tonight for the first time I read the Adobe CS3 "Scripting Guide" pdf and gave it a go... Patty made a cool template which we use with our button making machine. It is always tedious to copy and paste a grid of buttons once you are happy with once instance... So I wrote this script which works with her template. <code><pre> function not(value){ return ! value; } var layers = app.activeDocument.layers; var layer = layers["Place Photo Here"]; if(layer == null || not(layer.locked)){ var origional = layer.placedItems[0]; for(var row = 0; row < 5; row++){ for(var col = 0; col < 4; col++){ if(row == 0 && col == 0){ //this is where original lives... }else{ var aCopy =origional.duplicate(); aCopy.left = origional.left + (col * 135); aCopy.top = origional.top - (row * 135); } } } }else{ alert("Expected a Layer \"Place Photo Here\"\nTo exists and be unlocked"); } </pre></code><div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-1761012356998468484?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-42956704154292851142007-08-22T09:49:00.000-07:002007-08-22T09:52:40.449-07:00<b>New SICP focused blog</b> Updates to my SICP progress and thoughts will be posted on <a href="http://ozten.livejournal.com/">my livejournal</a> account. I will continue general techie focused drivel here. <b>Seattle SICP Study Group kick off meeting Thrs</b><br> The <a href="http://groups.google.com/group/seattle-sicp-study-group">Seattle SICP Study Group</a> kick off meeting is this <a href="http://upcoming.yahoo.com/event/240788/">Thursday 8/23 at Big Time Brewery 7pm</a>.<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-4295670415429285114?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-29064784834936511202007-08-15T09:36:00.000-07:002007-08-15T09:41:54.671-07:00I attended UW Technical Communications "New Perspectives" last night. It was a great set of presentations about how we find ideas and what to do with them. <a href="http://depts.u.washington.edu/ddi">Emma Rose</a> talked about their search for problems in the former soviet union and finding mobile phone based solutions with her talk "Design Ethnography: The Art of 'Deep Hanging Out'". <a href="http://www.commoncraft.com">Lee Lefever</a> talked about a web application through the metaphor of throwing a party. His talk was titled "Your Online Community Is a Party Waiting to Happen". <a href="http://www.ingramlabs.com">Paul Ingram</a> gave the low-down on "Inventrepreneurship". <a href="http://www.zaaz.com">Jason Carmel</a> also entertaining was a talk about website optimization entitled "Effective Use of Kittens: Site Optimization and User Experience".<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-2906478483493651120?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com1tag:blogger.com,1999:blog-3289261.post-16208184090286157752007-08-09T09:50:00.000-07:002007-08-09T10:06:12.748-07:00Timeline: New Mac Laptop thingie... buy or wait <ol style="list-style: none"> <li>Jan 2001 Powerbook G4</li> <li>May 2001 iBook</li> <li>Jan 2002 14" iBook</li> <li>Jan 2003 12" Powerbook G4</li> <li>Sep 2003 new Alu 15" Powerbook</li> <li>Oct 2003 G4 iBook</li> <li>Jan 2006 15" Macbook Pro</li> <li>Apr 2006 17" Macbook Pro</li> <li>May 2006 13.3" Macbook</li> </ol> What I really want is a 7" or 10" UMPC thingie with multi-touch instead of keyboard and mouse. NAND flash hard drive for instant on/off. I want this to replace my PPC 12" Powerbook. I put together the above timeline using <a href="http://www.mactimeline.com/">MacTimeline.com</a> to answer the question... Hold out, or update for now with a new 13" Macbook. Hunch... Jan 2008 <a href="http://macworldexpo.com/live/20/">MacWorld San Fransisco</a>, Apple will release my dream "MacPad", so I should base my decision on a 4 to 5 month window. Looks like an upgrade for now, or perhaps go back to Ubuntu at home and try out a UMPC form factor tablet thingie.<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-1620818409028615775?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com1tag:blogger.com,1999:blog-3289261.post-186855285321403052007-07-29T22:24:00.000-07:002007-07-30T09:00:21.358-07:00<h2>Seattle SICP Study Group</h2> <img src="http://farm2.static.flickr.com/1261/923847509_ec7a0ccfd6_b_d.jpg" style="float:left; margin-right: 15px" width="253" height="1024" /> Attention Seattle area Programmers who are interested in learning Scheme or reading SICP. I am organizing a Structure and Interpretation of Computer Programs study group. We will working though the book, videos, etc related to the excellent book by Harold Abelson, Gerald Sussman, and Julie Sussman. The group meets up once and week as well as discussing online. We will cover roughly one section of the book per week. It should take about 16 weeks to cover most of the book. We will be keeping a brisk pace, Fall 2007 break in Nov 07 for a month and then back at it Spring 2008. If you are a graduate or undergraduate student, this would make a good independent study class or two class series. There is a great <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/index.htm">SICP curriculum</a> on MIT open courseware site. <a href="http://www.plt-scheme.org/">PLT Scheme</a> provides a great implementation for use during the study group. Nothing is set in stone for the Study Group structure. I started a Google Group initially created as "restricted" and the postings invisible to non-members. We should decide as a group what the final policies are. Interested? Questions? Email me <img src="/i/emailme.gif" width="186" height="50" alt="My email address, Sorry no link to avoid Spam" /> or join the Google Group: <a href="http://groups.google.com/group/seattle-sicp-study-group/">Seattle SICP Study Group</a> on Google Groups. <a href="http://technorati.com/tag/sicp" rel="tag"><img style="border:0;vertical-align:middle;margin-left:.4em" src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=sicp" alt=" " />sicp</a><div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-18685528532140305?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com2tag:blogger.com,1999:blog-3289261.post-87096331449460340302007-07-26T08:16:00.000-07:002007-07-26T08:25:20.697-07:00I gave a brown bag lunch at work yesterday on a bunch of ReST research I had done over the last few months. It went pretty well, but I didn't make it though all 34 slides. I uploaded the slides to <a href="http://www.slideshare.net/">Slideshare.net</a>. You can check it out <a href="http://www.slideshare.net/ozten/rest-vs-soap-yawn/">Rest vs SOA(P) ... yawn</a>. Or below I will embed the flash movie. It was also chosen as one of SlideShare's slideshows of the day and placed on their homepage. <object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=82630&doc=rest-vs-soap-yawn2289" width="425" height="348"><param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=82630&doc=rest-vs-soap-yawn2289" /></object><div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-8709633144946034030?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-9716989578793701912007-07-13T11:09:00.000-07:002007-07-13T11:17:51.610-07:00<span style="font-weight:bold;">Smell the taint</span> Okay, so I just lost 2 hours of my life that I will never get back do to a Ruby language feature and the built-in rss library's lack of a warning message. I had a test with a path to an RSS feed, <code>RSS:Parser.parse</code> would return a fully populated object, but once I ran the real code it failed. So I started to isolate the problem. The value coming out of the database looked the same as my test value.... wget, yep it's there.... <code>db_value.class # => String</code> <code>str_value.class # => String</code> <code>db_value == str_value # => true</code> <code>db_value === str_value # => true</code> Wow, there are the same! Why doesn't this work? So I had to edit rss/parser.rb as root (?!?) to add print statements to isolate where the parser was rejecting the database value... drum roll... <code>tainted?</code> Doh, String values obtained from un-trusted sources such as environmental variables, http requests, or databases are flagged tainted. A tainted string is equal to an untained string if the contents are the same. All I had to do was untaint the string before passing it to the parse method, but yikes.... There goes my 10:1 productivity ratio :) Taint is a very cool language feature. RSS parse method <b>really</b> should have logged a warning that it ignores tainted sources though!<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-971698957879370191?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-10833751894375080572007-07-05T16:13:00.000-07:002007-07-05T16:14:50.866-07:00Note to self... Pair up gps and phone with bluetooth. Add an output COM port and choose holux 240 device. Currently using COM 6. Playing with GPSDash, looking for a good way to log gps data throughout the day.<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-1083375189437508057?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-42912237516537037282007-07-04T00:11:00.000-07:002007-07-04T09:01:34.046-07:00lifestream versus Lifestream versus ??? I am having a blast searching for a replacement to my homepage. The most promising keyword so far has been lifestream. Note small 'l'. Capital 'L' Lifestreams are heavy duty introspection machines. The history of research goes back a couple decades... Heck even back to V. Bush. It's fraught with technical and social issues. That is a very cool application space, but not what I am looking for. These lowercase l lifestream applications are coming on fast and furious. They are much lighter weight and help aggregate already published public content into a time based feed. What I want dips into the "attention" space, lifestreams, and page widgets, but is none of them. I want a homepage robot. I want a meta-CMS that republishes my content into a nicely formatted homepage that highlights featured content, links to less interesting content like tweets or bookmarks on slow days, and generally keeps visitors to my homepage aware of <ol> <li>What I have done recently</li> <li>All the personal CMS ( other web apps ) that I use</li> <li>See my style applied</li> <li>Published to my homepage url </li> </ol> Imagine a magazine cover metaphor: <ol></li> <li>My most recent Flick photo tagged "featured" as the whole page background</li> <li>Website title splash across banner</li> <li>A list of featured items ( with small or medium sized images ) for various UGC tagged "featured"</li> <li>A "plus more" box with direct links to all my sources, with favicon bullet image </li> <li>In config mode I want to be able to weight feeds, my blogs, yelp posts, and flickrs over del.icio.us, twitters, etc. </li></ol> The lifestream web application will use atom / RSS as notification mechanism, but still needs to grab the original url to analyze tags and microformatted content. I don't care about the social networking angle for this app. Each CMS that I use can and should have a social networkign aspect to it, but this is just a homepage builder and needn't have this aspect. I don't want a small page widget ( iStalkr ), this should be a stand alone full page. It needs to have a well implemented RSS ingestor, so that it is timely and doesn't miss any inputs, nor double post, etc. Bottom line is I am looking for a homepage replacement and lifestreams are 85% of the way there. The search continues...<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-4291223751653703728?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-28918324820879608752007-07-04T00:07:00.000-07:002007-07-04T00:10:30.056-07:00My <a href="http://ozten.suprglu.com">SugrGlu</a> page hasn't been updating very frequently or consistently... Of course I haven't kicked in a donation, so I can't complain. It's a very cool site, but the limit to the number of feeds and Feed performance issues worry me.<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-2891832482087960875?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-81216946374725289822007-07-03T09:19:00.000-07:002007-07-03T09:24:42.068-07:00<a href="http://www.whereisme.com/">WhereIsMe</a> has a different way to layout your lifestream. Instead of just chronological, it first chunks by source. It has some sophisticated feed attributes. You can limit del.icio.us feeds to just a certain tag for example. You show the last 10 posts ( or less ). Overall adding feeds is very slick and easy. The instructions that they have for finding your flickr id or your twitter id are invaluable! This part tripped me up on other sites and I probably didn't setup some feeds correctly. For example twitter has Username and User id. Doh? Wha? But WhereIsMe shows instructions of how to locate this info. Of course this violates opaque urls, but I think rich lifestreams are going to be built on fragile links for the time being. <a href="http://www.whereisme.com/ozten">Where is Ozten?</a><div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-8121694637472528982?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-20855330468024178832007-07-02T09:51:00.000-07:002007-07-02T09:54:53.653-07:00<a href="http://www.noonhat.com/lunch/"><img src="http://www.noonhat.com/static/img/Noonhat_logo_small.gif"></a> <br><a href="http://www.noonhat.com/lunch/">Noonhat</a> is a great project by <a href="http://briandorsey.info/">Brian Dorsey</a>. Brian hosted the lightening talks at Mindcamp, and his presentation was one of the highlights. I signed up for lunch around Belltown... Let's see what kind of freaky lunch connections I make :) Try it out if you live/work in Seattle.<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-2085533046802417883?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-42241925500988613092007-07-02T08:55:00.001-07:002007-07-02T09:21:36.389-07:00<b>Mind Camp 4</b> <p>Was a lot of fun. It was my first time and I am glad I went. The I phones were well represented. I got a free copy of the myth of innovation and gave out many copies of my coloring book <a href="http://www.understandingterror.com">Understanding Terror coloring book</a>.</p> <p> <a href="http://flickr.com/photos/krishnan/686098626/"><img src="http://farm2.static.flickr.com/1190/686098626_c54f85036d.jpg" /></a><br />Photo by <a href="http://flickr.com/photos/krishnan/">Krishnan</a> The <a href="http://www.saturdayhouse.org">Saturday House</a> was well represented and we had aa good session on it. Can't wait for <a href="http://www.squakmt.com/">Bob</a> to open the Isaqua chapter. </p> <p>I lead a discussion on meta-content management systems. We came up with some good ideas and <a href="http://www.hell.org/">Mike</a>and <a href="http://www.zachhale.com/">Zach</a> were interested in working on project. I will keep searching a little more to make sure the semi-<b>perfect</b> thing doesn't already exists. My links on this topic are <a href="http://del.icio.us/ozten/lifestream">Under lifestream</a> for now.</P><div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-4224192550098861309?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-73842110599768386202007-06-27T13:19:00.000-07:002007-06-27T13:56:00.877-07:00<a href="http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html">Must read</a> by Steve Yegge which brings some closure to the whole NBL, eating marshmallows, etc thread. He ends the post talking about 'NBE' which I predict to be an emacs clone written in Rhino / DHTML. Perhaps something like <a href="http://robrohan.com/projects/9ne/">9ne</a>. Conceptually I think the Rhino on Rails effort is interesting. In concrete terms, it is a bit depressing... but I find myself in the same position at my day job, wishing to work with dynamic languages, and compromising with something that will target the JVM. It's so fascinating how we study and mine archaic technologies, only to cobble implementations together on top of our current static sub-optimal tools. Are computers inherently suited to Sisyphus-Oriented Programming, or do we lack vision? A similar effort, perhaps broader in scope, is the work that Peter Fisk is doing on <a href="http://vistasmalltalk.wordpress.com/">Vista Smalltalk</a>. Every day I check out his progress and am floored and inspired... but at the end of the day, why are we re-implementing Lisp and Smalltalk in Flash and Silverlight? There are amazing implementations of both of these languages, but they run out outdated platforms ( traditional operating systems ). I think the fundamental forces are controlling complexity, trust, managing risk, and fear of the unknown. Whatever platform we choose to build on top of gives us footing as well as imposing barriers on what is possible. You can plant your foot firmly on a rock, but you will have to climb a fortress, or you can stand in a ball of mud, where any expression is possible, but you might get lost. I am tired of walking on stepping stones lately...<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-7384211059976838620?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-23388167751165572422007-06-21T09:15:00.001-07:002007-06-21T09:17:05.498-07:00<a href="http://aws.amazon.com/ec2">Amazon EC2</a> Limited Beta has <small>finally</small> sent me an email that I will get access soon!<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-2338816775116557242?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-69062176341192865182007-06-05T09:11:00.001-07:002007-06-05T09:24:14.340-07:00LispWorks on x86_64 Ubuntu feisty I was just about to give up on trying to use <a href="http://www.lispworks.com/">LispWorks</a>, because I couldn't get the CAPI GUI to start up on my beefy Ubuntu machine. Things had gone fine on Mac OS X, but I hit a huge road block with lesstif2 / Open Motif 2.1 on Ubuntu. When I would start up <pre><code> ~/Library/LispWorks/lispworks-personal-5-0-1-x86-linux </code></pre> I got a <a href="http://www.lispworks.com/kb/f05daf889214217a80256c5a004c9b12.html">libXm.so</a> missing error <pre><code> Error during GUI startup: Could not register handle for external module X-UTILITIES::CAPIX11: libXm.so.1: cannot open shared object file: No such file or directory. </code></pre> or maybe it was libXm.so.2 ... Anywhoos, I Ubuntu already has lesstif2 installed, so I added /usr/lib to by LD_LIBRARY_PATH <pre><code> LispWorks(R): The Common Lisp Programming Environment Personal Edition Copyright (C) 1987-2006 LispWorks Ltd. All rights reserved. Version 5.0.1 Saved by LispWorks as lispworks-personal-5-0-1-x86-linux, at 09 Jan 2007 15:47 User auking on bigriver Error: Could not register handle for external module X-UTILITIES::CAPIX11: libXm.so.2: wrong ELF class: ELFCLASS64. 1 (abort) Quit process. Type :b for backtrace, :c to proceed, or :? for other options CL-USER 1 : 1 > </code></pre> Okay, so it found the library, but they are 64 bit... Ahh. There are no 32 bit libraries to install. Couple of days of trying different stuff when I had spare cycles. No dice. Finally early this morning I found <a href="http://www.lispworks.com/kb/f05daf889214217a80256c5a004c9b12.html">that editing</a> <code>lib/5-0-0-0/config/use-motif-library</code> to <pre><code> (:detect-version (("/usr/lib/libXm.so.2.0.1" :lesstif) ("/usr/lib/libXm.so.3.0.2" :motif)) :prefer-version :motif ) </code></pre> I was able to startup LispWorks on 64 bit linux.<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-6906217634119286518?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com3tag:blogger.com,1999:blog-3289261.post-29874268642199661432007-05-23T21:37:00.000-07:002007-05-23T21:42:02.800-07:00Installed mcclim-0.9.4 for openmcl. Used the asdf method. Had to launch X11 and run emacs and openmcl from an xterm. Then I <code> (require :clx) (require :mcclim) </code> and the demo's finally ran. Woo hoo. I am a bit concerned that I won't be able to make mcclim work on Windows XP, but I have no installed on Mac OS X and Ubuntu fiesty, so I will go ahead and learn how to do graphics with CLIM.<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-2987426864219966143?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-90511746745542828812007-05-09T22:05:00.000-07:002007-05-09T22:15:14.956-07:00<span style="font-size:100%;">Here</span><span style="font-size:130%;"><span style="font-size:100%;"> are my notes from </span></span><a href="http://video.google.com/videoplay?docid=-6972678839686672840"> A New Way to look at Networking</a> <span style="font-size:130%;"><span style="font-size:100%;">by </span></span> Van Jacobson<span style="font-size:-1;">. </span><span style="font-weight: bold;font-size:130%;" >Packet switching </span>old new focus on paths ====> focus only on endpoints conversations ====> packets Transitivity makes routing emerge they encapsulated the data and made a standard addressing structure to glue together networks <span style="font-weight: bold;font-size:130%;" >TCP/IP too successful???</span> Connected - binary either your in our your out Connecting requires - globally unique address that is stable minutes to hours Connection is heavyweight point to point ( conversation ) is supported, but TCP/IP hates broadcast <span style="font-weight: bold;font-size:130%;" >Problem space for TCP/IP</span> Connecting users who have access to one machine circuit and packet switched networks focus on getting two machines to talk <span style="font-size:130%;"><span style="font-weight: bold;">New Problem Space</span></span> One user has tons of machines A machine wants to read a named chunk of data ( web page, email, etc ) This is dissemination not conversation <span style="font-weight: bold;font-size:130%;" >Dissemination</span> Data is important, not the channel Data must be secured, not the channel Dissemination must be efficient, which it isn't with communication Currently users have to do the plumbing to make dissemination Protocol and medium agnostic - IP, zeroconf, multicast, pigeons) Anything with the data can respond Data is signed and optionally secured so receiver can verify integrity <span style="font-weight: bold;font-size:130%;" >Example</span> REQ <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://nytimes.com/today" target="_blank">http://nytimes.com/today</a> RESP <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://nytimes.com/today" target="_blank">http://nytimes.com/today</a> <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://nytimes.com/20060830/index.html" target="_blank">http://nytimes.com/20060830<wbr>/index.html</a> &lt;namemac&gt; &lt;datamac&gt; &lt;html&gt; ... &lt;/html&gt; <span style="font-weight: bold;font-size:130%;" >Design philosophy</span> Data has a name, not a location Integrity and trust are derived from data, not the channel <script><!-- D(["mb","Anything that moves in time or space is a pipe\u003cbr /\>\u003cbr /\>\u003d Communication \u003d\u003cbr /\>User communicates intent, so network can optimize\u003cbr /\>Request / response model gives user fine grained control over incoming\u003cbr /\>traffic QoS\u003cbr /\>Network is content focused, not conversation focused, so popular content\u003cbr /\>won\'t generate congestion\u003cbr /\>No distinction between bits on disc, on wire, or in memory\u003cbr /\>Nodes are nameless - wireless & sensor nets can use simple local\u003cbr /\>protocols like - flooding, proximity, diffusion, etc\u003cbr /\>Opportunistic transport - planes, trains, automobiles, as well as mobile\u003cbr /\>phones on people\u003cbr /\>\u003cbr /\>\u003d Security \u003d\u003cbr /\>Trust and data integrity are baked in - solves Phishing, Pharming, and\u003cbr /\>Spam\u003cbr /\>Trust is associated with data not SSL channels\u003cbr /\>Security of country improves, can\'t disrupt carrier pigeon\u003cbr /\>\u003cbr /\>\u003d Already solved \u003d\u003cbr /\>PGP\u003cbr /\>Repositories - &quot;instant PKI&quot;, &quot;UT Austin Snakebite&quot;\u003cbr /\>Data location - URL, search, epidemics, directed diffusion, filtered\u003cbr /\>\'small world\'\u003cbr /\>\u003cbr /\>\u003d Names and Naming \u003d\u003cbr /\>Augment names with time/version - cacheable, stable\u003cbr /\>Integrity preserving data segmentation - keep responses idempotent and\u003cbr /\>small\u003cbr /\>Nicknames and intentional names - &quot;all the open doors in building A&quot;\u003cbr /\>\u003cbr /\>\u003d Hard Stuff \u003d\u003cbr /\>Incentive structure ( flow & congestion control, sharing &amp;\u003cbr /\>redistribution incentives ) - leechers\u003cbr /\>Miscreant & freeloader detection - anonymity\u003cbr /\>Redistirbution - content routing, storage replacement strategies,\u003cbr /\>liability issues\u003cbr /\>Corrupted, invalid, or expired content - hints up the line\u003cbr /\>\u003cbr /\>\u003d Conclusion \u003d\u003cbr /\>Telephones - plumbing at wire level - phone number is a routing program\u003cbr /\>IP - plumbing at the data level - URL is a endpoint from another\u003cbr /\>endpoint\u003cbr /\>Dissemination Based Arch - push data plumbing down - Decentralized named\u003cbr /\>content\u003cbr /\>\u003cbr /\>Ad-hoc dissemination overlays - Akami CDN, BitTorrent, Sonos mesh, Apple\u003cbr /\>Rendezvous\u003cbr /\>\u003cbr /\>\u003cbr /\>\u003cbr /\>\u003c/div\>",0] ); //--></script>Anything that moves in time or space is a pipe <span style="font-weight: bold;font-size:130%;" >Communication</span> User communicates intent, so network can optimize Request / response model gives user fine grained control over incoming traffic QoS Network is content focused, not conversation focused, so popular content won't generate congestion No distinction between bits on disc, on wire, or in memory Nodes are nameless - wireless & sensor nets can use simple local protocols like - flooding, proximity, diffusion, etc Opportunistic transport - planes, trains, automobiles, as well as mobile phones on people <span style="font-weight: bold;font-size:130%;" >Security</span> Trust and data integrity are baked in - solves Phishing, Pharming, and Spam Trust is associated with data not SSL channels Security of country improves, can't disrupt carrier pigeon <span style="font-weight: bold;font-size:130%;" >Already solved</span> PGP Repositories - "instant PKI", "UT Austin Snakebite" Data location - URL, search, epidemics, directed diffusion, filtered 'small world' <span style="font-size:130%;"><span style="font-weight: bold;">Names and Naming</span></span> Augment names with time/version - cacheable, stable Integrity preserving data segmentation - keep responses idempotent and small Nicknames and intentional names - "all the open doors in building A" <span style="font-weight: bold;font-size:130%;" >Hard Stuff</span> Incentive structure ( flow & congestion control, sharing &amp; redistribution incentives ) - leechers Miscreant & freeloader detection - anonymity Redistirbution - content routing, storage replacement strategies, liability issues Corrupted, invalid, or expired content - hints up the line <span style="font-weight: bold;font-size:130%;" >Conclusion</span> Telephones - plumbing at wire level - phone number is a routing program IP - plumbing at the data level - URL is a endpoint from another endpoint Dissemination Based Arch - push data plumbing down - Decentralized named content Ad-hoc dissemination overlays - Akami CDN, BitTorrent, Sonos mesh, Apple Rendezvous<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-9051174674554282881?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0tag:blogger.com,1999:blog-3289261.post-28170849307223969672007-05-04T11:25:00.000-07:002007-05-04T11:50:51.124-07:00<h3><span style="font-weight: normal;">I am looking for a GUI technology for the Knitting simulation software I have been working on. Currently the GUI is written in Java, but I don't want to deploy such an unwieldy beast. I was thinking of writing the finished version in JavaScript with the canvas tag, or perhaps Flash.</span></h3> The backend is Common Lisp + Sqlite exposed through HTTP. Those Bruce Eckles ads allover the net have been giving me heart-burn. Aftering reading about all of the open source efforts at Adobe, I thought, what the heck, give Apollo a shot. After reading their marketing material, which make many of the promises that Java originally ( and still does ) make, I found this: <h3><a href="http://labs.adobe.com/wiki/index.php/Apollo:DeveloperFAQ#Does_Apollo_support_Linux">Does Apollo support Linux</a></h3> <blockquote>Apollo 1.0 will <span style="font-weight: bold;">not be available on Linux</span>. We plan to release Linux support shortly after the 1.0. release. </blockquote><blockquote>While we had originally planned to support Linux in the 1.0 timeframe, we have had to wait on the core Flash Player's support for Linux to be finalized. </blockquote> <p>Macromedia and Adobe have never supported open, cross platform development. It sounds like they will have as much trouble getting it right as Sun has.</p><p>The <a href="http://wiki.squeak.org/squeak/1865">Squeak browser plugin</a> is a real honest to God cross platform plugin. Why? Because the don't hand write the virtual machine for each platform, they use a code generator to generate it so that it is bit for bit compatible across platforms. Browser penetration of this plugin is probably smaller than than G W B's Iraq approval ratings, but it is an example of how to do cross platform runtimes.</p>Another attractive option is to build the ReST backend, build one superb frontend, say in Cocoa for Mac OS X, and then hope that others copy your frontend into Win32 and GTK, etc. All technologies are flawed, but I am really disapointed that Adobe/Macromedia is continuing their misteps. GPLing is a good first step, but isn't SWF still proprietary? Why didn't you release the Actionscript compiler? Why aren't you launching all platforms simultaneously? Why won't this technology make my bed for me in the morning?<div class="blogger-post-footer"><img src="http://www.ozten.com/i/obama_4color-2.gif" width="384" height="124" /><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3289261-2817084930722396967?l=www.ozten.com%2Fpsto%2Findex.php'/></div>Austinhttp://www.blogger.com/profile/17907770218961186024noreply@blogger.com0