<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>wonderwhy-er blog</title>
	
	<link>http://blog.wonderwhy-er.com</link>
	<description>Web, RIA, GAMES</description>
	<lastBuildDate>Mon, 12 Dec 2011 17:46:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/wonderwhy-er/blog" /><feedburner:info uri="wonderwhy-er/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Write once, run everywhere is dead?</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/uc9c7-_LhwU/</link>
		<comments>http://blog.wonderwhy-er.com/write-once-run-everywhere-is-dead/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 14:40:53 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=597</guid>
		<description><![CDATA[As usual I am slow to write about such things. So last week Adobe fired hundreds of people and announced that they are giving up on Flash for mobile browsers. There is already much written about it. Lot of  &#8220;Flash is dead&#8221; buzz on tech sites which sounds to me like an ill informed. Some [...]]]></description>
			<content:encoded><![CDATA[<p>As usual I am slow to write about such things. So last week <a href="http://www.engadget.com/2011/11/08/adobe-to-lay-off-750-workers-restructure-around-digital-media/">Adobe fired hundreds of people</a> and <a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html">announced that they are giving up on Flash for mobile browsers</a>. There is already much written about it. Lot of  &#8220;Flash is dead&#8221; buzz on tech sites which sounds to me like an ill informed. Some closer to Adobe people, who actually work in RIA, have a lot more sane views on the question. <a href="http://www.bytearray.org/?p=3744">Here</a>, <a href="http://www.peterelst.com/blog/2011/11/09/et-tu-adobe-flash-player-homicide/">here</a> and <a href="http://www.peterelst.com/blog/2011/11/09/et-tu-adobe-flash-player-homicide/">here</a> <a href="http://gamasutra.com/blogs/AnatolyRopotov/20111109/8260/Let_there_be_Flash.php">among</a> the <a href="http://flexblog.faratasystems.com/2011/11/14/the-rumors-of-flash-players-death-are-greatly-exaggerated">others</a>.</p>
<h2>My views and reactions</h2>
<p>My first reaction was &#8220;Well, now Flash as we know it is dead&#8221;. Or more precisely it got a terminal illness. On other side what exactly changed? Right now really nothing. Flash was not really used on Android browsers.</p>
<p>So what changed is promise. Before, may be somewhat unofficially Flash had a &#8220;Write once,  run everywhere&#8221; promise. You could do desktop, browser, mobile apps with it. But now&#8230; Even though flash was not really used on mobile browsers it was somewhat there. Now promise is no more. And it is very important for future prospects. And it probably will undermine demand for Flash from marketing sources.</p>
<h2>Mobile killed web</h2>
<p>Reading posts and comments around this Adobe move I was trying to gather up things that happened since iPhone came out. And it seems to me that its not only about  iOS killing Flash. Its about mobile revolution fragmenting the web.</p>
<p>Simple example are popular web services. How many versions of their interfaces there are? Up to five. Web version for desktop and for mobile. And native versions for desktop, iOS and Android. Though native desktop app is a rare beast. On other hand on mobile web version may not be rare but its rarely used if native app exists. For one thing with app you do not need to login, app remembers tour credentials.</p>
<p>Some even prophesying that mobile web is dead, people prefer app stores and native apps instead. And for good reasons.  HTML5 if far from being able to compete with full-blown apps experience.</p>
<h2>Right tool for the job</h2>
<p>One trend that is stable among big Flash developers is to say &#8220;right tool for the job&#8221; and &#8220;differentiate yourself by learning new stuff&#8221;. In a way what they say is that Flash is becoming a more niche thing and if you want to have many jobs and projects to pick from you better to expand your skills and tools in to other niches as well.</p>
<p>I started to learn both HTML/JS/CSS and Flash some 8 years ago. Made few ugly sites in HTML, made few small toys on Flash and one ugly site. And started to do more and more with Flash. Why? It could a lot more, it was a lot easier and more consistent too. It was fun. So I picked Flash because it was easier, more fun, and it was a profession with a lot less competition at least locally while there was demand. But even then Flash was a niche tool. But its niche was and still is cool. It was all about animations, flashy interfaces, multimedia rich tools in a browser, games, interactive and generative art in browser like a demoscene. So by picking this I was in a way filtering what kind of work will come my way, and this kind of work felt a lot more fun and interesting then making some internet shops and usual visit card text/image sites. I also loved web, open, without gatekeepers, with lot of opportunities on making something.</p>
<p>Now after 8 years not much have changed, I would rather say that demand for Flash even boomed over last years but in realm of social games. And now checking for available works for Flash developers it feels like 70% or more are social games related. While other 30% are marketing related.</p>
<p>For over a year I was starting to feel that Flash niche stops to be that fun for me and I want to be able to do more. Slowly started to learn other web technologies. After a year, and now with announcement of Adobe&#8230; I must say that for me nothing changed in standard web technology world. HTML/CSS/JS improved a lot. I at last can make imageless pretty looking sites and interfaces. It feels good. But when it comes to actually making a complete rich app with data input/output, sounds, complex interactions and consistently with good performance across all browsers&#8230; Its still the same pain it was years ago or so it seems to me&#8230;</p>
<p>So for me, more exploration is on side of servers and simple sites, for rich app experience in browser Flash was and will  be for near years my tool for the job.</p>
<p>But that&#8217;s years. Probably few. What&#8217;s then? I do feel a need to expand my experience as a professional developer. And I see two choices before me. One I talked about above, as web developer. Another one I see is as mobile app developer, aether native or reusing my Flash skills and doing AIR apps.</p>
<p>As I said above, I picked Flash because it was fun and works coming my way were fun with it. As I see future of web development for me right now seems like not fun. At least rich apps future. Flash will be fading away everywhere where HTML5 can pick up, but it will be usual HTML hell of consistency, performance, missing features and hacking all around it. It will be a work with unfinished product. It seems to me its still too early to seriously get in to the HTML5.</p>
<p>While if we speak about native mobile apps&#8230; It seems to me that out of everything that happens in software development world right now mobile apps are most fun. An uncharted waters with many interesting possibilities. Many also prophesying that mobile is future of computing and that desktop is dead. Anyways, this market is poised to grow. So fun possibilities in growing market.</p>
<p>Yet it is a world with gatekeepers, world attached to success of certain firms like Apple and Google and what they do. Now by picking technology like HTML5 or Flash you already become somewhat dependent. Web standards while better still are dependent on all major players decisions too. Just look at IE, WebGL, WebM cases. But on mobile platforms you are even more dependent,  just remember Apple change of rules with 30% cut from in app purchases that put many apps in to a tricky position. Like Amazon&#8230;</p>
<h2>Conclusions</h2>
<ul>
<li> Flash is not dead, it will stay alive as long as HTML5 will not pick up on all features Flash has, and it is long from it, 2 years at best, 10 at worst(I hope it will be faster), even then Flash may still manage to somehow stay ahead. So Flash seems to me still like a best option for cross platform RIA, especially with possibility to publish AIR apps in to iOS and Android markets.</li>
<li>There is no single tool to satisfy all use cases. I would like to do it all, mobile apps, web apps, explore all possibilities, yet HTML5 is not ready, Flash has it holes and uses cases and native apps usually are even more niche and attached to platforms.</li>
</ul>
<p>So I am confused. There is no single job out there that can provide you with broad enough possibilities, picking one feels wrong, trying to do it all feels wrong too.</p>
<p>So it is a stormy time with unclear horizon and without any safe cove to drop an anchor in to wait out. And I don&#8217;t see other options then to jump around, trying different new things, finding junior jobs in mobile or web to broaden skills, still doing Flash, and hoping that future will become more clear soon.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/GzojkQK9cmvgYq68z-MSdn6WjIc/0/da"><img src="http://feedads.g.doubleclick.net/~a/GzojkQK9cmvgYq68z-MSdn6WjIc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GzojkQK9cmvgYq68z-MSdn6WjIc/1/da"><img src="http://feedads.g.doubleclick.net/~a/GzojkQK9cmvgYq68z-MSdn6WjIc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=uc9c7-_LhwU:xrSiNukl8Ao:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=uc9c7-_LhwU:xrSiNukl8Ao:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=uc9c7-_LhwU:xrSiNukl8Ao:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=uc9c7-_LhwU:xrSiNukl8Ao:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=uc9c7-_LhwU:xrSiNukl8Ao:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=uc9c7-_LhwU:xrSiNukl8Ao:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=uc9c7-_LhwU:xrSiNukl8Ao:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=uc9c7-_LhwU:xrSiNukl8Ao:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=uc9c7-_LhwU:xrSiNukl8Ao:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=uc9c7-_LhwU:xrSiNukl8Ao:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=uc9c7-_LhwU:xrSiNukl8Ao:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=uc9c7-_LhwU:xrSiNukl8Ao:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=uc9c7-_LhwU:xrSiNukl8Ao:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=uc9c7-_LhwU:xrSiNukl8Ao:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/uc9c7-_LhwU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/write-once-run-everywhere-is-dead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/write-once-run-everywhere-is-dead/</feedburner:origLink></item>
		<item>
		<title>Thinkering with JavaScript error handling</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/pffhh5Iyo14/</link>
		<comments>http://blog.wonderwhy-er.com/thinkering-with-javascript-error-handling/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 21:54:09 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[My Stuff]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=593</guid>
		<description><![CDATA[Thinkering around with AI-Class subs browser decided to try and collect some feedback from visitors. It does get few hundred visits a day. From my previous experience with Flash I do know that its good idea to collect errors from visitors in the web. It may work perfectly on all browsers and all machines you [...]]]></description>
			<content:encoded><![CDATA[<p>Thinkering around with AI-Class subs browser decided to try and collect some feedback from visitors. It does get few hundred visits a day. From my previous experience with Flash I do know that its good idea to collect errors from visitors in the web. It may work perfectly on all browsers and all machines you can get your hands on but quite often it will not work on some other machines, in rare cases almost on all machines except ones you tested on. It may be internet connection, debug environment or some other small difference.</p>
<h2>Local error handling and try/catch</h2>
<p>As any modern language today JavaScript does have this crucial construct. Just wrap your code like this</p>
<pre class="brush: javascript; gutter: true">try{
  //your code
} catch(error) {
   //handle your error
}</pre>
<p>And handle your error in catch block. Now as far as I can say this works everywhere. Differences start with what error object contains:</p>
<ul>
<li>In any browser it contains message property, usually some description on what went wrong, but message itself differs by browser for same errors</li>
<li>It also may contain stack property. As far as I can say Chrome and Firefox have it. IE and mobile browsers don&#8217;t. It usually contains info on where error occurred, which script on which line</li>
</ul>
<p>And that&#8217;s about it with local error handling. Its a good thing to use to wrap around unstable or untested segments of code and provide some fall back in case something goes wrong. And that&#8217;s what I did initially. But that&#8217;s not always enough. Some people had problems while I was not getting anything in my log. So I needed something more global.</p>
<h2>Global window.onerror</h2>
<p>Luckily JavaScript has global error handler. And it looks like this:</p>
<pre class="brush: actionscript3; gutter: true">window.onerror=function(message, url, line){
   //handle your error
   return true;//if you return true it overrides default browser error message, at least it should
}</pre>
<p>Here is some documentation on it on <a title="window.onerror on Mozilla Developer Network" href="https://developer.mozilla.org/en/DOM/window.onerror">MDN</a>. Now this thing gets all errors that happen on your page (at least it should, may differ by browser and situations). Sadly mobile browser do not support it <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Also on all browsers that support this it returns script url and line number where error occurred. For example if error happened in some third party library you will get it here. And its a good thing.</p>
<p>Now what I somewhat dislike about JavaScript so far is that it lacks good language references similar to PHP or AS3. Best out there seems to be one at <a href="https://developer.mozilla.org/en-US/docs">MDN </a>but its somewhat lacking. Also it may be little bit biased towards Firefox implementation. Would be good if it was in wiki form or had comments for each page. Thing is that I spent quite some time searching for info on how well supported window.onerror is, is it even part of JavaScript standard or not and some other things.</p>
<p>For example I was getting many errors that looked like this:</p>
<blockquote><p>message: script error, line: 0, url:</p></blockquote>
<p>Empty errors that say nothing&#8230; Great. After lot of searching found it <a href="http://stackoverflow.com/questions/5913978/cryptic-script-error-reported-in-javascript-in-chrome-and-firefox">here</a>. Turns out that if you have scripts from other domains then errors in them are reported without any useful information. And I was using jquery and swfobject from Google CDN. Initially thought that its a good thing. Less traffic for my site and probably faster load times from Google CDN for users. Sadly if it leads to such errors that say nothing it probably does not worth it. In the end I switched to locally hosted scripts. Will see if there are any improvements.</p>
<p>Anyways. This approach is very good because you don&#8217;t need to go around and put try/catch everywhere. Plus you catch errors even from 3rd party libraries. A good thing. Still for actually handling errors and providing fallback in case of something going wrong its better to use try/catch in right places. This one is good for actually logging errors and preventing browser default behavior on errors.</p>
<h2>Example</h2>
<p>And if you want to see and test this here is small <a href="http://www.wonderwhy-er.com/Experiments/JSGlobalErrorHandling/">example</a>. You can also check <a href="http://www.wonderwhy-er.com/ai-class/">AI-Class subs browser</a> source for code I actually use to collect and report errors.</p>
<h2 class="brush: actionscript3; gutter: true">P.S User Agent</h2>
<p>Also, its good thing to actually collect User Agent info on server side too for this, some errors are inherent only to some browsers or platforms. Like I do get some errors from iOS devices obviously having issues with YouTube Flash player.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/jbi6Qt5FZEB_Uw2H1_EAvwox5kU/0/da"><img src="http://feedads.g.doubleclick.net/~a/jbi6Qt5FZEB_Uw2H1_EAvwox5kU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jbi6Qt5FZEB_Uw2H1_EAvwox5kU/1/da"><img src="http://feedads.g.doubleclick.net/~a/jbi6Qt5FZEB_Uw2H1_EAvwox5kU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=pffhh5Iyo14:-zMvUeeBR2M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=pffhh5Iyo14:-zMvUeeBR2M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=pffhh5Iyo14:-zMvUeeBR2M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=pffhh5Iyo14:-zMvUeeBR2M:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=pffhh5Iyo14:-zMvUeeBR2M:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=pffhh5Iyo14:-zMvUeeBR2M:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=pffhh5Iyo14:-zMvUeeBR2M:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=pffhh5Iyo14:-zMvUeeBR2M:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=pffhh5Iyo14:-zMvUeeBR2M:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=pffhh5Iyo14:-zMvUeeBR2M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=pffhh5Iyo14:-zMvUeeBR2M:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=pffhh5Iyo14:-zMvUeeBR2M:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=pffhh5Iyo14:-zMvUeeBR2M:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=pffhh5Iyo14:-zMvUeeBR2M:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/pffhh5Iyo14" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/thinkering-with-javascript-error-handling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/thinkering-with-javascript-error-handling/</feedburner:origLink></item>
		<item>
		<title>AI-Class subs browser update + source code</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/gNHdIcvMY7Y/</link>
		<comments>http://blog.wonderwhy-er.com/ai-class-subs-browser-update-source-code/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 15:16:46 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[My Stuff]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=589</guid>
		<description><![CDATA[Continuation to previous post. Update Third batch of lectures and homework&#8217;s is out for Stanford AI-Course and I just updated the page and data for it. Changes: Switched captions layout from list to tables, now does not look broken on smaller screens Added link to about, so far just my previous blog post about this(yeah, [...]]]></description>
			<content:encoded><![CDATA[<p>Continuation to <a href="http://blog.wonderwhy-er.com/subs-browser-for-stanford-ai-class/">previous post</a>.</p>
<h2>Update</h2>
<p>Third batch of lectures and homework&#8217;s is out for Stanford AI-Course and I just updated the page and data for it.</p>
<p><strong>Changes:</strong></p>
<ol>
<li>Switched captions layout from list to tables, now does not look broken on smaller screens</li>
<li>Added link to about, so far just my previous blog post about this(yeah, I am lazy to make a separate about page for it</li>
<li>Added update date to data, shown at the top of the page now</li>
</ol>
<p><strong>Remaining issues:</strong></p>
<ol>
<li>No iOS support, not planed too, I am under impression(which may be false) that its too much hassle to provide Flash-less alternative to YouTube JS API right now.</li>
<li>Broken under Android, was not intended for use on small screen anyways, not fixing it too</li>
</ol>
<h2>Source code</h2>
<p>Cut to the chase. Here is the <a title="Code repository for this small project" href="https://github.com/wonderwhy-er/Stanford-AI-Class-Subs-Browser">source code at GitHub</a>. Its intended mostly for those who want to make similar thing for other YouTube based courses or make an alternative language version(English only now).</p>
<p>And its my first use of GitHub so &#8220;Hello World&#8221; <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Anyways, most part of last week and weekend were taken by:</p>
<ol>
<li>Trying to make PHP scrapper for subs which failed</li>
<li>Remaking my Flash/AS3 code in to AIR app project so that people could work with it(had it in fla Flash authoring format before which worked well only in debugging environment)</li>
<li>Formatting and adding comments to source code</li>
</ol>
<p>Source code is published under MIT license, use it however you like but I will be thankful for mentioning where it came from <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>P.S</strong> Any help with PHP script, or more precisely, finding a way to download captions for YouTube videos trough PHP is welcome.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/55ocD-5bERNG3dgDB5FwviX5agU/0/da"><img src="http://feedads.g.doubleclick.net/~a/55ocD-5bERNG3dgDB5FwviX5agU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/55ocD-5bERNG3dgDB5FwviX5agU/1/da"><img src="http://feedads.g.doubleclick.net/~a/55ocD-5bERNG3dgDB5FwviX5agU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=gNHdIcvMY7Y:45jgHIkVkE0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=gNHdIcvMY7Y:45jgHIkVkE0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=gNHdIcvMY7Y:45jgHIkVkE0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=gNHdIcvMY7Y:45jgHIkVkE0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=gNHdIcvMY7Y:45jgHIkVkE0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=gNHdIcvMY7Y:45jgHIkVkE0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=gNHdIcvMY7Y:45jgHIkVkE0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=gNHdIcvMY7Y:45jgHIkVkE0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=gNHdIcvMY7Y:45jgHIkVkE0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=gNHdIcvMY7Y:45jgHIkVkE0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=gNHdIcvMY7Y:45jgHIkVkE0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=gNHdIcvMY7Y:45jgHIkVkE0:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=gNHdIcvMY7Y:45jgHIkVkE0:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=gNHdIcvMY7Y:45jgHIkVkE0:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/gNHdIcvMY7Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/ai-class-subs-browser-update-source-code/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/ai-class-subs-browser-update-source-code/</feedburner:origLink></item>
		<item>
		<title>Subs browser for Stanford ai-class</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/lZb1Tuq1gTc/</link>
		<comments>http://blog.wonderwhy-er.com/subs-browser-for-stanford-ai-class/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 20:07:58 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[My Stuff]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=579</guid>
		<description><![CDATA[Introduction So, last week Stanford ai-class has started. Immediately found out that not being able to read  question for quizzes in text was a problem. And clicking trough video to see it in the subs was not that fun aether. Immediately got an idea to fix that for myself and make an exercise in HTML/JS/CSS [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>So, last week Stanford ai-class has started.</p>
<p>Immediately found out that not being able to read  question for quizzes in text was a problem. And clicking trough video to see it in the subs was not that fun aether. Immediately got an idea to fix that for myself and make an exercise in HTML/JS/CSS out of it (I am kind of slowly learning it all trough small projects like this for last year).</p>
<h2>Try number one: <a title="Wiki page about bookmarklets" href="http://en.wikipedia.org/wiki/Bookmarklet">bookmarklet</a></h2>
<p>First, I remembered of bookmarklets. Small javascripts saved as a bookmark which you can &#8220;execute&#8221; inside any page. Developers often put in some small useful codes to inject in to pages for analysis  or some other reasons.</p>
<p>After checking ai-class page and requests found out from where player gets subs. Whole link is large and contains lot of unnecessary parameters, experimenting with it  shrunk it down to smaller size. And <a title="AI-Class, Unit 1 Lecture 2 Course Overview subs xml" href="http://www.youtube.com/api/timedtext?key=yttt1&amp;name=English%20via%20dotsub&amp;caps=asr&amp;lang=en&amp;v=Q7_GQq7cDyM">here</a> how it looks.</p>
<p>Then googled around a little for ways to make a cross domain request from JavaScript. Thing is that for security reasons in JavaScript making such requests is prohibited while for Flash a cross domain policy exists that allows domain owners to specify who can gain access. Found out that there is a partial workaround <a title="Little example" href="http://ajaxian.com/archives/using-yql-as-a-proxy-for-cross-domain-ajax">trough Yahoo! YQL</a>.</p>
<p>In the end I failed with that idea as there is no way to really figure out which video is playing right now on ai-class site. At least trough JS/HTML. May be it is possible to somehow query YouTube player for that.</p>
<p><strong>P.S</strong> Killed lot of time on hacking 3 levels of escaping of quotes. First quotes were for anchor href attribute in which bookmarklet code goes. Then quotes inside that code. And third quotes level in that YQL request <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  I hate escaping!</p>
<h2>Try number two: <a title="PHP library for transfering data, can be used to make server to server http requests" href="http://php.net/manual/en/book.curl.php">php curl</a></h2>
<p>Next quick try was to test PHP curl and see if I can retrieve subs from those urls on server side and make a page out of it. Tried, failed, after lot of fighting with JS on previous step gave up fast. And I don&#8217;t have idea how to &#8220;debug&#8221; curl http requests on server side anyways.</p>
<h2>Try number three: Flash local app</h2>
<p>Well after some fighting with JS and PHP I fall back to dark side <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  I am Flash developer for last 5 years soo&#8230; Something like an hour and I got this:</p>
<p><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/10/forblog.jpg"><img class="alignnone size-full wp-image-581" title="AI-Course subtitles app" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/10/forblog.jpg" alt="" width="600" height="238" /></a></p>
<p>Just an app where I paste link to AI-Course video and get their subs formatted for reading.</p>
<p>Until homework started this was enough for me.</p>
<h2>Try number 4: <a title="API of how to embed and control YouTube player from JavaScript" href="http://code.google.com/apis/youtube/js_api_reference.html">YouTube JS Api</a> + XML</h2>
<p>While doing home works I realized that only text for current video is not enough. Seeing people making lecture notes helped that realization. So I needed ability to get all subs together and search trough them. But wait, text is not enough. Jumping to other videos I need to quickly refresh my knowledge is a &#8220;must&#8221; too.</p>
<p>That&#8217;s how idea started to form, I rewrite my app to take in all videos and subs for them. Output it in one XML. Use it as data source for a page. And add YouTube player controlled from JavaScript  to the mix.</p>
<p>First things I went to check was how to get list of ai-class lectures automatically. I am a programmer and for me doing copypasting job is a disgrace. I better write a script to do it for me <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Poked around <a title="Zend YouTube API manual" href="http://framework.zend.com/manual/en/zend.gdata.youtube.html">Zen GData library for PHP and its YouTube API</a>. Turned out it was not so good for what I needed and there was easier way just trough <a title="Link to first 50 vidoes of ai-class channel on YouTube" href="http://gdata.youtube.com/feeds/api/users/knowitvideos/uploads/?start-index=1&amp;max-results=50">links like this</a>. Sadly it only lists public videos, so no homework&#8217;s. And also order is mixed, ended up parsing video names for ordering. Also turned out that only video owner can get subs trough their API <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  So my hacky way of spoofing player requests seems to be the only way.</p>
<p>Anyways, rewrote my Flash app to get all videos from there, sort them, get subs for each trough old method and output an <a title="XML with all lecture IDs and subtitles for them" href="http://www.wonderwhy-er.com/ai-class/ai-class.xml">XML like this</a>. Also ended up adding homework video ids by hand.</p>
<p>And then started making site:</p>
<ul>
<li>Made a PHP page with YouTube player and scripts to control it. Fast and easy.</li>
<li>Used SimpleXML in PHP to parse XML and output a list of lectures with subs. Easy again.</li>
<li> And then part I don&#8217;t like about current standard web development came, layout trough CSS. It got lot better in last 5 years but its still feels like hacking around achieving what you need trough not intuitive means. That&#8217;s why Flash won me over 7 years ago <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
</ul>
<p>P.S I actually love CSS selectors idea, just layout part feels broken. And I love jQuery for bringing selectors to JS.</p>
<h2>Result</h2>
<p><a href="http://www.wonderwhy-er.com/ai-class/">And here is the result:</a></p>
<ul>
<li>You can open or close lectures separately. Or close/open them all together.</li>
<li>You can read whole transcripts of lectures and search trough them trough standard browser means.</li>
<li>And you can click on button to the right of each line to jump to that video on that moment. Magic! <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
</ul>
<p>There are still some problems though:</p>
<ul>
<li>Firstly, using lists for layout here seems to be a bad idea. Should have used table with two columns instead. Will try soon.</li>
<li>There are some issues under Mac/Safari with referencing YouTube Player. As I am under winds can try stuff only blindly.</li>
<li>And script for making an XML still is in Flash/AS3, will need to spend some time trying to port it to PHP, not sure it will work.</li>
</ul>
<h2>Source code</h2>
<p>Ok, you can read more about source code in <a href="http://blog.wonderwhy-er.com/ai-class-subs-browser-update-source-code/">next post</a> or go straight to <a href="https://github.com/wonderwhy-er/Stanford-AI-Class-Subs-Browser">GitHub repository where it is</a>.</p>
<p>&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/DM5tCKehpNMM2mhICrlObri8TFQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/DM5tCKehpNMM2mhICrlObri8TFQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/DM5tCKehpNMM2mhICrlObri8TFQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/DM5tCKehpNMM2mhICrlObri8TFQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=lZb1Tuq1gTc:7YJnnP0o5_Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=lZb1Tuq1gTc:7YJnnP0o5_Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=lZb1Tuq1gTc:7YJnnP0o5_Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=lZb1Tuq1gTc:7YJnnP0o5_Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=lZb1Tuq1gTc:7YJnnP0o5_Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=lZb1Tuq1gTc:7YJnnP0o5_Y:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=lZb1Tuq1gTc:7YJnnP0o5_Y:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=lZb1Tuq1gTc:7YJnnP0o5_Y:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=lZb1Tuq1gTc:7YJnnP0o5_Y:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=lZb1Tuq1gTc:7YJnnP0o5_Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=lZb1Tuq1gTc:7YJnnP0o5_Y:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=lZb1Tuq1gTc:7YJnnP0o5_Y:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=lZb1Tuq1gTc:7YJnnP0o5_Y:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=lZb1Tuq1gTc:7YJnnP0o5_Y:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/lZb1Tuq1gTc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/subs-browser-for-stanford-ai-class/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/subs-browser-for-stanford-ai-class/</feedburner:origLink></item>
		<item>
		<title>Flash 11 is out</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/N_iEPbBrSq8/</link>
		<comments>http://blog.wonderwhy-er.com/flash-11-is-out/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 08:46:08 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=571</guid>
		<description><![CDATA[Actually it was yesterday, read about it on Google+ and already posted on Facebook about some of this. Download Flash 11 here. Check out Alternative Demos here. But news that struck me most were this. Epic Games is ready to release support of Unreal Engine 3 for Flash platform. And they showed Unreal Tournament 3  [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://epicgames.com/community/2011/10/unreal-engine-3-support-for-adobe-flash-player-announced/"><img class="aligncenter" title="Unreal Engine 3 in Flash 11" src="http://epicgames.com/community/wp-content/uploads/2011/10/UT3_Sanctuary_Flash_05.jpg" alt="" width="557" height="331" /></a></p>
<p>Actually it was yesterday, <a href="https://plus.google.com/114406572384204043190/posts/iQWRTM9z38r">read about it on Google+</a> and already <a href="http://www.facebook.com/wonderwhy.er/posts/123196451120204?notif_t=share_comment">posted on Facebook</a> about some of this.</p>
<p><a title="Get latest Flash" href="http://get.adobe.com/flashplayer/">Download Flash 11 here</a>.</p>
<p>Check out Alternative Demos <a href="http://alternativaplatform.com/en/showcase/">here</a>.</p>
<p>But news that struck me most were this. <a href="http://epicgames.com/community/2011/10/unreal-engine-3-support-for-adobe-flash-player-announced/">Epic Games is ready to release support of Unreal Engine 3 for Flash platform</a>. And they showed <a href="http://www.youtube.com/watch?feature=player_embedded&amp;v=IykhED4lAWM">Unreal Tournament 3  working in Flash</a> at Adobe Max 2011. Ouh boy what a year it will be for browser games. Unity shared a <a href="http://blogs.unity3d.com/2011/09/01/unity-and-flash-a-sneak-peek/">sneak peak</a> recently too, and now Unreal Engine.</p>
<p>Flash is well posed to become a console of the web but I have hard time figuring out how it all will play out. We still have Flash agnostic iOS, not all devices will work well with this, we still have traffic bottlenecks. Years back it was considered useless publishing a game ove 10Mb in size. Today? May be over 60mb is useless? We will see but considering that modern games rarely take less then a gigabyte of space and some up to a dozen of gigabytes, it will be interesting to see how developers work around this <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>P.S</strong> Also turns out there already is a <a href="http://apps.facebook.com/battlepunkshd/">game using Flash 11 on Facebook</a>. Its actually a re-release of older game developed on Java called Battle Punks.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Zgkm5qGIvKNAk0H-F8UFC8uZwKk/0/da"><img src="http://feedads.g.doubleclick.net/~a/Zgkm5qGIvKNAk0H-F8UFC8uZwKk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Zgkm5qGIvKNAk0H-F8UFC8uZwKk/1/da"><img src="http://feedads.g.doubleclick.net/~a/Zgkm5qGIvKNAk0H-F8UFC8uZwKk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=N_iEPbBrSq8:khhnJqF7ndQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=N_iEPbBrSq8:khhnJqF7ndQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=N_iEPbBrSq8:khhnJqF7ndQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=N_iEPbBrSq8:khhnJqF7ndQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=N_iEPbBrSq8:khhnJqF7ndQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=N_iEPbBrSq8:khhnJqF7ndQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=N_iEPbBrSq8:khhnJqF7ndQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=N_iEPbBrSq8:khhnJqF7ndQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=N_iEPbBrSq8:khhnJqF7ndQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=N_iEPbBrSq8:khhnJqF7ndQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=N_iEPbBrSq8:khhnJqF7ndQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=N_iEPbBrSq8:khhnJqF7ndQ:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=N_iEPbBrSq8:khhnJqF7ndQ:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=N_iEPbBrSq8:khhnJqF7ndQ:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/N_iEPbBrSq8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/flash-11-is-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/flash-11-is-out/</feedburner:origLink></item>
		<item>
		<title>Stanford University free online AI introduction course</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/YTF1zOybuTg/</link>
		<comments>http://blog.wonderwhy-er.com/stanford-university-free-online-ai-introduction-course/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 10:21:06 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[Books And Publications]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=561</guid>
		<description><![CDATA[Something like a month ago read that this year Standford University Professors behind their AI introduction course are planing to run a free online version  with video lectures, quizzes, homeworks and exam. As of today registration to this course is open. I am in. Are you?]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://www.ai-class.com/"><img class="aligncenter" title="Introduction to Artificial Intelligence" src="http://www.ai-class.com/media/img/artificial_intelligence_header.jpg" alt="" width="602" height="286" /></a>Something like a month ago read that this year Standford University Professors behind their AI introduction course are planing to run a free online version  with video lectures, quizzes, homeworks and exam. As of today <a title="Register here" href="https://www.ai-class.com/registration/">registration to this course is open</a>. I am in. Are you?</p>
<p style="text-align: center;">

<p><a href="http://feedads.g.doubleclick.net/~a/i_1upTi9NLy8MN8ia6Uex8aFU80/0/da"><img src="http://feedads.g.doubleclick.net/~a/i_1upTi9NLy8MN8ia6Uex8aFU80/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/i_1upTi9NLy8MN8ia6Uex8aFU80/1/da"><img src="http://feedads.g.doubleclick.net/~a/i_1upTi9NLy8MN8ia6Uex8aFU80/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=YTF1zOybuTg:U1GisfmEMdo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=YTF1zOybuTg:U1GisfmEMdo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=YTF1zOybuTg:U1GisfmEMdo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=YTF1zOybuTg:U1GisfmEMdo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=YTF1zOybuTg:U1GisfmEMdo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=YTF1zOybuTg:U1GisfmEMdo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=YTF1zOybuTg:U1GisfmEMdo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=YTF1zOybuTg:U1GisfmEMdo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=YTF1zOybuTg:U1GisfmEMdo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=YTF1zOybuTg:U1GisfmEMdo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=YTF1zOybuTg:U1GisfmEMdo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=YTF1zOybuTg:U1GisfmEMdo:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=YTF1zOybuTg:U1GisfmEMdo:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=YTF1zOybuTg:U1GisfmEMdo:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/YTF1zOybuTg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/stanford-university-free-online-ai-introduction-course/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/stanford-university-free-online-ai-introduction-course/</feedburner:origLink></item>
		<item>
		<title>Brands with personality</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/hkbTYp_HSwU/</link>
		<comments>http://blog.wonderwhy-er.com/brands-with-personality/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 18:44:18 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=553</guid>
		<description><![CDATA[After registering to Google+ I started to compare it to Facebook and it got me thinking on why I never really liked Facebook. Seems part of it is that some brands have a personality for me. And here decided to share personality I feel behind some of the brands. Apple Obviously one of brands with [...]]]></description>
			<content:encoded><![CDATA[<p>After registering to Google+ I started to compare it to Facebook and it got me thinking on why I never really liked Facebook. Seems part of it is that some brands have a personality for me. And here decided to share personality I feel behind some of the brands.</p>
<h2>Apple</h2>
<p>Obviously one of brands with biggest personality <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  I did not got involved with them until iPhone 3G, but after few months understood that its not my kind of product and firm. Finally switched recently.</p>
<p>Anyways my perception of them as a personality is &#8220;<strong>religious messiah</strong>&#8220;. Why? Well here is a list:</p>
<ul>
<li>Their keynotes remind me of those religious events, lot of emotion, tasty words and such.</li>
<li>Same with their <a href="http://www.youtube.com/watch?v=h0dUuHo58UE&amp;feature=player_detailpage#t=179s">shops openings</a> and design.</li>
<li>And another obvious reason is Steve Jobs, I guess no comments are needed. Well just check <a href="http://en.wikipedia.org/wiki/Reality_distortion_field">that</a>.</li>
</ul>
<p>But that&#8217;s all things I don&#8217;t care much about, I mean I bought a phone and forgot about it right? Well no, sadly Apple reminds of religious organization in some other ways that do touch me.</p>
<ul>
<li>They handle problems and issues in similar to church way, denial and hiding(though I guess it is about anyone oversensitive of his reputation and public image).</li>
<li>They want to make world simple for people by deciding what&#8217;s good and what&#8217;s bad for them, same as morals in religious books to some extent.</li>
</ul>
<p>In the end I disrespect such things and even though I do find their hardware and to some extent software to be of good quality.</p>
<h2>Facebook</h2>
<p>I would call Facebook a<strong> troubled teenager</strong>. One who lacks tact, is stalkerish and jealous. And here is why:</p>
<ul>
<li>Almost any change and new feature and <a href="http://mattmckeon.com/facebook-privacy/">policy change</a>  they roll out, they miscalculate with default privacy settings which feels as if they overreach. As if they invade your privacy and being young did not learn a tact of how to behave yet.</li>
<li>Of course Mark Zuckerberg himself adds to this giving his past of young rebellious hacker.</li>
<li>They also are jealous of their friends not <a href="http://www.tgdaily.com/business-and-law-features/57200-facebook-blocks-exporter-tools-for-google">allowing </a>people to leave to other party and take their friend with them.</li>
</ul>
<p>All this adds to uncertainty in that brand&#8230; Who knows what weird thing they will pull off next.</p>
<h2>Google</h2>
<p>As for this brand, I must say that until now I did not think or feel of it much in that sense. Google products always were just products that worked well, I never felt personality behind any Google product. They were just products and tools that were giving all choice and information to me. Not filtering, censoring, deciding etc. Also they always were a many headed hydra. Most of their products were weakly tied so you could use them separately or together. Not something I could say about Apple or Microsoft who try to tie their products together&#8230;</p>
<p>The only thing I ever felt behind Google in press that they felt like geeky idealists. But for now they were able to allow them selves this. I wonder if it will continue as Google tries to reinvent themselves, become <a href="http://googleblog.blogspot.com/2011/07/more-wood-behind-fewer-arrows.html">less experimenting</a> and tying their products together around same account system and Google+.  So may be they will show some personality soon. Hope they will not.</p>
<h2>Other brands and personalities</h2>
<p>Guess that&#8217;s it, do you feel any personality behind these brands or others? Feel free to comment and share that <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/4CMmysGb-1RjfNzfiFp15KuxDYc/0/da"><img src="http://feedads.g.doubleclick.net/~a/4CMmysGb-1RjfNzfiFp15KuxDYc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4CMmysGb-1RjfNzfiFp15KuxDYc/1/da"><img src="http://feedads.g.doubleclick.net/~a/4CMmysGb-1RjfNzfiFp15KuxDYc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=hkbTYp_HSwU:W43vSZVI8gE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=hkbTYp_HSwU:W43vSZVI8gE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=hkbTYp_HSwU:W43vSZVI8gE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=hkbTYp_HSwU:W43vSZVI8gE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=hkbTYp_HSwU:W43vSZVI8gE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=hkbTYp_HSwU:W43vSZVI8gE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=hkbTYp_HSwU:W43vSZVI8gE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=hkbTYp_HSwU:W43vSZVI8gE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=hkbTYp_HSwU:W43vSZVI8gE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=hkbTYp_HSwU:W43vSZVI8gE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=hkbTYp_HSwU:W43vSZVI8gE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=hkbTYp_HSwU:W43vSZVI8gE:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=hkbTYp_HSwU:W43vSZVI8gE:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=hkbTYp_HSwU:W43vSZVI8gE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/hkbTYp_HSwU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/brands-with-personality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/brands-with-personality/</feedburner:origLink></item>
		<item>
		<title>3 days in Google+</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/-fRSkUkVkq4/</link>
		<comments>http://blog.wonderwhy-er.com/3-days-in-google/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 20:37:58 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[My Stuff]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=536</guid>
		<description><![CDATA[So, three days ago I got an invite to Google+ I already heard about its roll out before, and actually was anticipating when deciding where to upload photos for public sharing (taken by my new Android Phone which is a separate story). Facebook is not public enough, I want to leave my DeviantArt account for [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Google+" href="https://plus.google.com"><img class="aligncenter size-full wp-image-545" title="google-plus-screenshot-570x300" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/07/google-plus-screenshot-570x3001.png" alt="Google+" width="570" height="300" /></a>So, three days ago I got an invite to Google+</p>
<p>I already heard about its roll out before, and actually was anticipating when deciding where to upload photos for public sharing (taken by my new Android Phone which is a separate story). Facebook is not public enough, I want to leave <a href="http://wonderwhy-er.deviantart.com/">my DeviantArt</a> account for Flash stuff mostly etc etc. So I went for <a href="http://picasa.google.com/">Google Picasa</a> app to organize my photos and upload some to <a href="https://picasaweb.google.com">Picasa Web Albums</a>. Little bit more about it later.</p>
<h2>What Google+ is</h2>
<p>In short I would say that Google+ is holy union of  Twitter+Blog+Facebook. Why? There is written <a href="http://gigaom.com/2011/07/11/is-google-a-bigger-threat-to-twitter-than-it-is-to-facebook">much</a> about various feature of Google+ on the wen but I will stop at those who appeal to me:</p>
<ul>
<li><strong>Privacy and visibility</strong>. Google+ has a built in people grouping called Circles which servers two purposes. Filtering network content by Circles. And filtering visibility of content you publish by Circles who will see this content. Second purpose allows you to both leave personal messages, share things with family, or share with anybody. In this sense it is more or less similar to Facebook. But Google+ has a broader visibility called &#8220;Public&#8221; which is accessible to whole Internet. And it is a Twitter/Blog like improvement over a Facebook that I always lacked. In these sense while Facebook is walled off and feeds on the web Google+ allows to give back to the web. It is a very significant and key feature to me.</li>
<li>  <strong>Asynchronous relationships</strong>. While Facebook allows only friends status, Circles are asynchronous. Someone can add you to their Circle, but you may not add him. What it means? He will &#8220;follow&#8221; your public posts but will not see posts you made for your circles. So it allows broadcasting relationship. Facebook allows this trough Pages though.</li>
<li><strong>+1</strong> a Facebook &#8220;like&#8221; competitor Google rolled out earlier. Now it gains a lot more sense for users to use as it is a fast small sharing of what you liked. So now users have reasons to do it. Now I do, while before I was not doing it.</li>
<li><strong>Authorship</strong>. Google raised a playing field around <a title="How to mark" href="http://insidesearch.blogspot.com/2011/06/authorship-markup-and-web-search.html">content author marking</a>. Now recognized authors behind content are shown in Google search results. I think it can have a pretty big consequences for accountability of content. Now you can go and see contents author public account on Google+, potentially see his interests, employers, bias <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
<li><strong>HangOut</strong> &#8211; a much mentioned feature based on a google video plugin. Managed to get a taste of it only yesterday. Some may call it a SkyPe killer but I don&#8217;t. It is an up to 10 people video chat app in a browser. My experience with it I could be put in short like &#8220;SkyPe made fun&#8221;. After it SkyPe feels like a strict, uptight business meeting application. I don&#8217;t know what Google did on usability(and I will need to investigate it later) but HangOut feels light, fast, and&#8230; fun&#8230; It feels like a party at friends place, you just jump in, start discussing, sharing, watching synchronized(rewinding and video itself) youtube video, jump out. Then jump in again. So, HangOut is not a SkyPe killer. They are different. You can&#8217;t use HangOut for some things you use SkyPe for and reverse is also true.</li>
<li><strong>Gorgeous public photo galleries</strong>. I did mention it above. <a href="https://plus.google.com/photos/105865352674761615254/albums">Here</a> are some photos taken by my SGS2 android phone. Not big implications with this feature, just best looking galleries I seen so far in social networks. Have a suspicion that it is Microsoft inspired as looks similar to Windows Phone 7 interface. But I guess Microsoft was inspired by some sites too.</li>
</ul>
<p>I think those are first things that come to mind after using Google+ for few days. I guess you can already see how with &#8220;public for web&#8221; posts it serves as twitter and blog, while with privacy and Circles it serves as a Facebook.</p>
<h2>What Google+ can become</h2>
<p>I talked about things on the surface. But some linger in the future or under the surface. It seems to me that with this move Google has chances of making internet truly social in a way Facebook never could  because of its more closed nature. Google+ gives back to the web. Also Google now can use +1 and authorship to effect search results and rankings. Which can solve some of Google search quality problems. I do hope though that they will allow turning +1 effect on and off to get &#8220;unbiased&#8221; results.</p>
<p>Also trough same +1 Google gets their hands on one of most crucial things for recommendations. Lists of things people like. Now Google can start providing similarity browsing and recommendations on all fronts. I do think that +1 in such context is the most important feature for Google, and us. Its a feedback we are giving to the Google so that it can improve its offering to us.</p>
<h2>Problems</h2>
<p>Nothing is perfect so here we go:</p>
<ul>
<li><strong>Its little bit confusing</strong>. Already seen people who are very computer savvy misunderstanding how asynchronous part of Circles work. What will your granny understand then?</li>
<li><strong>Privacy control is not fine grained enough</strong>. Like two examples from my experience. I post a public photo for web to see, and friend or even girlfriend posts a personal joke for example. Now whole world sees it. Why? Because comments inherit privacy status from parent post. So you are ending up with a choice of &#8220;too public&#8221; and &#8220;too censored&#8221; sometimes. Another example are people in your circles. You can choose what circles are shown(all or say celebrities you follow) and how public it is(only your family or whole world?). But you can&#8217;t make it so that whole world sees people you follow while your family sees all. And there are many other such small but very significant privacy control issues. Hope they will fix them. I sure am sending them feedback on all occasions <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  BTW their feed back is awesome, never seen anything like this.</li>
<li>There is also one two sided problem, <a href="http://en.wikipedia.org/wiki/Coupling_%28computer_science%29"><strong>dependency or coupling</strong></a>. One of biggest advantages over other firms Google always had is that its a multiheaded hydra. All projects drift independently not hurting and rarely improving each other. Well it started to change a little before but now it clearly comes to an end as Google+ seems to be posed to bring it all together. And some of us know how well it works for Microsoft, Yahoo and Apple. They ruin separate projects and user experience to tie  down their offering together, locking they users to use them together. I really hope it is not a fate that awaits Google and all its users. Though I already heard of bad consequences of this for some people. Mostly on a side of Google merging all kind of accounts across all its products in to one account.</li>
</ul>
<p>There is more of course, but service is only rolling out and I hope they are working on a clock of addressing it as I think Google+ has a big big potential. So far my feelings are similar to Google Wave roll out. I am very excited and pumped up as I never really liked Facebook, and do like Google+ a lot. But there is a crucial difference with Wave and Google+ for me. Wave was all cool and hypish as is Google+, but with Wave I entered few times, played with it and rarely returned since. Google+? I am using it each day now, publishing photos, cross posting from Facebook, started using +1, and am working on adding some of Google+ related feature to my blog and page. So, my use of it differs a lot, hope Google+ future will differ a lot too. So far there are claims that they already reaching 20 millions.</p>
<p>&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/VxlwlyfnqiqtGOiqmZHeJUTnC-0/0/da"><img src="http://feedads.g.doubleclick.net/~a/VxlwlyfnqiqtGOiqmZHeJUTnC-0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VxlwlyfnqiqtGOiqmZHeJUTnC-0/1/da"><img src="http://feedads.g.doubleclick.net/~a/VxlwlyfnqiqtGOiqmZHeJUTnC-0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=-fRSkUkVkq4:Rzh6qJ1Z9t8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=-fRSkUkVkq4:Rzh6qJ1Z9t8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=-fRSkUkVkq4:Rzh6qJ1Z9t8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=-fRSkUkVkq4:Rzh6qJ1Z9t8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=-fRSkUkVkq4:Rzh6qJ1Z9t8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=-fRSkUkVkq4:Rzh6qJ1Z9t8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=-fRSkUkVkq4:Rzh6qJ1Z9t8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=-fRSkUkVkq4:Rzh6qJ1Z9t8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=-fRSkUkVkq4:Rzh6qJ1Z9t8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=-fRSkUkVkq4:Rzh6qJ1Z9t8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=-fRSkUkVkq4:Rzh6qJ1Z9t8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=-fRSkUkVkq4:Rzh6qJ1Z9t8:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=-fRSkUkVkq4:Rzh6qJ1Z9t8:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=-fRSkUkVkq4:Rzh6qJ1Z9t8:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/-fRSkUkVkq4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/3-days-in-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/3-days-in-google/</feedburner:origLink></item>
		<item>
		<title>Year and a half as social game developer</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/olsIBFaHjjE/</link>
		<comments>http://blog.wonderwhy-er.com/year-and-a-half-as-social-game-developer/#comments</comments>
		<pubDate>Mon, 30 May 2011 22:30:00 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[My Stuff]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=506</guid>
		<description><![CDATA[Little bit more then a week ago I left my job at innoWate . Here wanted to share a little summary on what I did during my time there. I worked there since November of 2009. By ProcrastiTracker stats I was collecting since April 2010 I spent 2040 hours behind the computer out of which [...]]]></description>
			<content:encoded><![CDATA[<p>Little bit more then a week ago I left my job at <a title="innoWate" href="http://www.innowate.com/">innoWate</a> . Here wanted to share a little summary on what I did during my time there.</p>
<p>I worked there since November of 2009. By <a href="http://procrastitracker.com/">ProcrastiTracker</a> stats I was collecting since April 2010 I spent 2040 hours behind the computer out of which 800 were spent in Firefox, 500 in Flash builder and 250 in SkyPe. Interesting to keep track of such stuff, sometimes shows unexpected things.</p>
<h2>What I did there</h2>
<p>innoWate is Latvian firm that develops social games. Mostly they are targeted at Russian social networks but there are some ports to other international(Facebook), western and Asian networks as well.</p>
<p>During my time there are I worked on 3 projects and here they are:</p>
<h2>Awatars</h2>
<p><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/awatars.jpg"><img class="alignnone size-medium wp-image-510" title="awatars" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/awatars-300x225.jpg" alt="" width="226" height="169" /></a><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/1-cens.png"><img class="alignnone size-medium wp-image-513" title="1-cens" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/1-cens-300x272.png" alt="" width="187" height="169" /></a><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/3.png"><img class="alignnone size-medium wp-image-516" title="3" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/3-300x272.png" alt="" width="186" height="169" /></a></p>
<p>&nbsp;</p>
<p>It was my first project at innoWate. It was planed as series of games starting from avatar creator + various social stuff like giving gifts, poking and interacting with friend avatars in all kind of ways. Then games like <a title="Gorodki game" href="http://en.wikipedia.org/wiki/Gorodki">gorodki </a>and bowling should have followed. And they did till beta stage. Little bit later project was put on hold both because of technological issues and not much promise in what was coming out. I was transferred to more &#8220;promising&#8221; project.</p>
<p><strong>My responsibilities </strong>in this project were pretty wide and I liked that. Programming UI, working on serverside scripts and protocol, game features/mechanics programming, integrating to social networks and developing related features. Design and engine behind 3D stuff were made by another guy who was doing similar stuff for XBox games before.</p>
<h2>Sushi world</h2>
<p><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/1.jpg"><img class="alignnone size-medium wp-image-517" title="1" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/1-300x275.jpg" alt="" width="186" height="170" /></a><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/2.jpg"><img class="alignnone size-medium wp-image-518" title="2" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/2-300x275.jpg" alt="" width="185" height="170" /></a><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/4.jpg"><img class="alignnone size-medium wp-image-520" title="4" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/4-300x275.jpg" alt="" width="185" height="170" /></a></p>
<p>And here is second project I was involved in, a lot more people were working on it at once which brought lot more problems with sub version control and related stuff. Basically it was a restaurant type social game. You play as sushi restaurant owner, set up the place, hire and equip workers etc. Had some mini games like raising a turkey or simple fishing, various special events and quests and lot of other stuff.</p>
<p><strong>Here my responsibilities </strong>shrunk a little. Was working on UI and client side game features, client side bug tracking system, social network features and integration and often was responsible for game client update process aka keeping track of features and content that are going to live version etc.</p>
<h2>My Country</h2>
<p><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/mc1.jpg"><img class="alignnone size-medium wp-image-525" title="mc1" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/mc1-300x241.jpg" alt="" width="200" height="160" /></a><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/mc2.jpg"><img class="alignnone size-medium wp-image-526" title="mc2" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/mc2-300x241.jpg" alt="" width="200" height="161" /></a><a href="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/mc4.jpg"><img class="alignnone size-medium wp-image-527" title="mc4" src="http://blog.wonderwhy-er.com/wp-content/uploads/2011/05/mc4-300x241.jpg" alt="" width="200" height="160" /></a></p>
<p>Then last January I was switched to another team with &#8220;promising&#8221; project that was in development for some time already. This time it was a new city building game, something innoWate done well before with <a title="SuperCity" href="http://apps.facebook.com/supercity/">SuperCity</a> almost a year before. This time it was planed as a bigger, better looking and more complex city building game. Well I must say it is very pretty <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Eats too much of resource too though.</p>
<p><strong>My responsibility</strong> were social network features and integrations with related UI work. A more narrow field again. Mostly because by that time I had most experience with that stuff on client side while there were plenty client developers to fill other needs of the project(3 beside me).</p>
<h2>Hassles of social developer</h2>
<p>In the end I must say that working as social games developer is pretty crazy job. Firstly you are working with many technologies and platforms all of which have issues and may break something at some point:</p>
<ul>
<li>Currently games with complex graphics  are mostly made in Flash so its you client technology</li>
<li>You also use JavaScript/HTML to integrate with social networks and communication with Flash is a point of failure</li>
<li>You are working with many social networks and social APIs that are different,  buggy and have conflicts with browsers and other technologies you use sometimes</li>
<li> There is also your server side which is point of failure too, admin mistakes, spike in traffic, bug in software etc</li>
<li>And there are browsers</li>
</ul>
<p>All those technologies and platforms together make it very hard to predict where problem is when you find it. Is it client, your server, browser bug or social network issue or may be even something on your players side you can not reproduce from your side?</p>
<p>Then there are issues of social network APIs polish. Currently most firms make ports of their games to many social networks to maximize audience and profits. Segment is hot, things change rapidly and over this 1.5 of year Facebook was making significant changes to their API and policies scrapping old API altogether and introducing completely new and and different while changing how things work overall. And other networks are no different. Thus old ways games worked sometimes break or start to violate policies, or just become pointless. There are even some ridiculous cases when with all that hurry to do something new known bugs in APIs are not fixed for months. And after that they are not fixed because games already built on top of them and would break if they fix them&#8230; And no imagine if your game needs to work well on 4+ social networks and use their API feature to the max to attract and retain players. One hell of juggling.</p>
<p>Then there is testing. To have products with rare bugs means to invest in to testing. But how can you test something if pretty big part of those games are dependent on social networks, communication between users, use of various social network features. With some networks its a nightmare. You can&#8217;t use many features unless you game is approved but how can it be approved if many features are not testable by developers&#8230; In other networks there are pretty good testing environments. But joke is that when game is released from test environment it turns out that real world environment differs and things that worked in test state do not work after release. And its actually a moment when your game gets in to &#8220;new&#8221; category and thousands of people are coming to see a buggy release and leave a bad review. Feels bad unless you do not care about, and if you do not care about it then its probably even worse if you know what I mean <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Then there is things just specific to life of social game projects. Firstly they are released as not well tested, polished and balanced games and your users are used as testers. And that&#8217;s fine by me. Its not some AAA two years 100 million in budget project, its 1-3 months small team and small budgets project so that&#8217;s how they are developed. But then other stage of project life comes, iterative polishing and adding of new features, levels and other content. Thing is that you most keep people entertained so that they return to your game. So you need to prepare content and events for various celebrations and when there is none still think of something new each week. So new game releases come regularly with deadlines(what&#8217;s point of releasing new year content if new year already passed). I remember being at work for 12 hours sometimes before such important releases. Why the hassle? Well its competition with other games that will make interesting stuff on those events and thus will get players back. I guess TV channels have similar hassle, just not as regularly especially considering that same team is not preparing for whole world important events. There are months when each 1-2 weeks is important event somewhere.</p>
<p>Now what it all means from development point? That we are always late, that we are trying to cut corners, that its all a mess. Building on and around bad decisions that come to bite us later etc. In the end bad development process that goes against many things I believe about software development and also not knowing how to fix that all. Feeling powerless and as if this it is impossible to succeed in that environment. Though I do think that it is possible, just not like that, and sadly I do not know how. Anyways in the end it all is aether a turtore or you stop caring with in my book means stopping doing your job well.</p>
<h2>Leaving and what&#8217;s next</h2>
<p>So, since December I was thinking about leaving and kind of summarizing it all for myself. Little bit later as I mentioned above I was switched to My Country project and decided to leave it be for some time and see how things will go. Well they went the same so here we are.</p>
<p>Currently I am in self payed vocation for few months during which I do plan to start spending something like a half time(4 hours a day, 5 days a week) curing my &#8220;don&#8217;t care&#8221; attitude towards programming, games and web. There are bunch of things I want to learn and try and I can allow myself to do it now. As for other free time, vocation, friends, work unrelated courses. May be travel a little.</p>
<p>In the end I was not very active here for last months(though I did play with stuff a little at <a href="http://wonderfl.net/user/wonderwhyer/codes">wonderfl.net</a>) and am planing to slowly get back <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/qG96jAosW-JxzDhelovgO9H1asE/0/da"><img src="http://feedads.g.doubleclick.net/~a/qG96jAosW-JxzDhelovgO9H1asE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qG96jAosW-JxzDhelovgO9H1asE/1/da"><img src="http://feedads.g.doubleclick.net/~a/qG96jAosW-JxzDhelovgO9H1asE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=olsIBFaHjjE:imJbfuqLlXM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=olsIBFaHjjE:imJbfuqLlXM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=olsIBFaHjjE:imJbfuqLlXM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=olsIBFaHjjE:imJbfuqLlXM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=olsIBFaHjjE:imJbfuqLlXM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=olsIBFaHjjE:imJbfuqLlXM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=olsIBFaHjjE:imJbfuqLlXM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=olsIBFaHjjE:imJbfuqLlXM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=olsIBFaHjjE:imJbfuqLlXM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=olsIBFaHjjE:imJbfuqLlXM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=olsIBFaHjjE:imJbfuqLlXM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=olsIBFaHjjE:imJbfuqLlXM:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=olsIBFaHjjE:imJbfuqLlXM:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=olsIBFaHjjE:imJbfuqLlXM:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/olsIBFaHjjE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/year-and-a-half-as-social-game-developer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/year-and-a-half-as-social-game-developer/</feedburner:origLink></item>
		<item>
		<title>Audio visualization contest: Results and code on wonderfl</title>
		<link>http://feedproxy.google.com/~r/wonderwhy-er/blog/~3/9Pzp3Bs7s0E/</link>
		<comments>http://blog.wonderwhy-er.com/audio-visualization-contest-results-and-code-on-wonderfl/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 22:10:10 +0000</pubDate>
		<dc:creator>wonderwhy-er</dc:creator>
				<category><![CDATA[My Stuff]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://blog.wonderwhy-er.com/?p=491</guid>
		<description><![CDATA[Contest ended little bit more then a month ago and I ended up a winner. There are some other nice entries there too. And here is mine This is little post on how things went for me and some code sharing trough wonderfl.net site. Music Spectrum Circles I wrote about first experiments with spectrum in [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://actionscript-as-art.deviantart.com/blog/38316031/">Contest ended</a> little bit more then a month ago and I ended up a winner. There are some other <a href="http://actionscript-as-art.deviantart.com/gallery/27500011">nice entries</a> there too. And here is mine<a href="http://wonderwhy-er.deviantart.com/art/Music-Atom-195732488"><img class="aligncenter" title="Music Atom" src="http://fc08.deviantart.net/fs71/i/2011/032/e/d/music_atom_by_wonderwhy_er-d38j85k.png" alt="" width="200" height="200" /></a></p>
<p style="text-align: left;">This is little post on how things went for me and some code sharing trough <a href="http://wonderfl.net/">wonderfl.net</a> site.</p>
<h2 style="text-align: left;">Music Spectrum Circles</h2>
<p style="text-align: left;"><a href="http://wonderfl.net/c/wQ6o"><img class="alignleft" title="Music Spectrum Circles " src="http://wonderfl.net/images/capture/e/e6/e629/e6295871ce9e638c50c22fb474a7c0d64c5b816a_w.jpg?t=1298488597" alt="" width="205" height="100" /></a>I wrote about <a href="http://www.wonderwhy-er.com/swfs/flashShow.php?link=SoundCircle">first experiments</a> with spectrum in my <a href="http://blog.wonderwhy-er.com/audio-visualization-contest-spectrum-exploration/">second post</a> about this contest and exploration. Click on images to see wonderfl.net versions with source code. There is not much more to say about it then what I already said in that post. Simple, yet pretty cool <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: left;">
<p style="text-align: left;">
<h2 style="text-align: left;">Trails of Music</h2>
<p style="text-align: left;"><a href="http://wonderfl.net/c/72eV"><img class="alignleft" title="Trails of Music " src="http://wonderfl.net/images/capture/3/31/3150/31500fe3cdcd2359bf55a9a7ecabda6405067f1d_w.jpg?t=1298232092" alt="" width="205" height="100" /></a>After that I turned to sound signal itself. Was pretty pleased with results that ended up in my <a href="http://www.wonderwhy-er.com/HappyNewYear2011/MusicalFireworks.html">new year &#8220;postcard&#8221;</a> <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  With flaws but looked good.</p>
<p style="text-align: left;">Initially I was planing to make something more interactive where each user could add his actions along with music to get interesting results. Something like musical brush. After making some experiments with sound signal my view started to change a little. Allowing other people to express some creativity is cool but exploring what kind of experience what song provides with visualizer +  ability to replay that and share exactly same view with friends is equally important. Here I started to think that making visualizer so that it is same visualization for same song each time for any user is a good idea too. That way people could listen trough various songs and share names of those that looked especially cool so that others could see it too.</p>
<h2 style="text-align: left;">Music Atom</h2>
<p style="text-align: left;"><a href="http://wonderfl.net/c/iucN"><img class="alignleft" title="Breaking signal by frequencies" src="http://wonderfl.net/images/capture/8/81/8191/819140ab363defa54937799bd5edc170fc726530_w.jpg?t=1298413066" alt="" width="205" height="100" /></a>At that point I started to try to make my final entry of musical brush. But after some time I figured that I will not be able to do anything spectacular in time I had left till the end of the contest. Still I made few experiments using that concept and along the way made a step forward with musical signal. Thing I did was to use <a href="http://en.wikipedia.org/wiki/Fast_Fourier_transform">FFT</a> class from <a href="http://sites.google.com/site/sioncenter/">SION</a> library to get original signal spectrum, break it to as many sub segments I needed and then, using reverse FFT, get smaller separate signals in different frequency ranges. This way I hoped to get two things. More separate entities that react to music + parts of visualization that reacted to different parts of sound. First worked perfectly and second&#8230; Well depends on the song.</p>
<p style="text-align: left;">
<p style="text-align: left;"><a href="http://wonderfl.net/c/zBu2"><img class="alignleft" title="Music Atom" src="http://wonderfl.net/images/capture/f/f9/f988/f988d2f4d7741e1a1510eb598ba00994938c37c6_w.jpg?t=1299431010" alt="" width="205" height="100" /></a>In the end I gave up on brush idea and turned to playing around lines again. There were few things I did not like about Trails of Music and Musical Fireworks. Main problem was that line traveling around could end up near corners of the view. Also it all did not had any distinct form. Ideas to fix it were simple. Try some techniques that will make it not go too far from center of screen. Easiest ways were to just change coordinate system. Like apply Sin/Cos functions to lines coordinates so that they &#8220;bounce&#8221; elastically from corners of the screen. Looked not so well to be honest. Another similar thing would be <a href="http://en.wikipedia.org/wiki/Polar_coordinate_system">polar coordinates</a> and this one worked brilliantly. It made beams to inside a sphere which looked cool, it also made trajectories more interesting (like flowers). It also made amount of beams different for different parts of screen. They would spend more time traveling at sphere edge + they would far more often cross center of the sphere. Along with additive blend mode and smooth beam color change it made for a brilliant pictures.</p>
<h2 style="text-align: left;">The End</h2>
<p>And so that&#8217;s it. I must say I had much of fun and learned thing or two during those two months and have plans to play with those things further in various ways. Hope you found it fun too and found code interesting and useful too <img src='http://blog.wonderwhy-er.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/pmfJa5MsLkzUxYYa5wW4D-gnaTk/0/da"><img src="http://feedads.g.doubleclick.net/~a/pmfJa5MsLkzUxYYa5wW4D-gnaTk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/pmfJa5MsLkzUxYYa5wW4D-gnaTk/1/da"><img src="http://feedads.g.doubleclick.net/~a/pmfJa5MsLkzUxYYa5wW4D-gnaTk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=9Pzp3Bs7s0E:N-9dty72LUg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=9Pzp3Bs7s0E:N-9dty72LUg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=9Pzp3Bs7s0E:N-9dty72LUg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=9Pzp3Bs7s0E:N-9dty72LUg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=9Pzp3Bs7s0E:N-9dty72LUg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=9Pzp3Bs7s0E:N-9dty72LUg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=9Pzp3Bs7s0E:N-9dty72LUg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=9Pzp3Bs7s0E:N-9dty72LUg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=9Pzp3Bs7s0E:N-9dty72LUg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=9Pzp3Bs7s0E:N-9dty72LUg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=9Pzp3Bs7s0E:N-9dty72LUg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=9Pzp3Bs7s0E:N-9dty72LUg:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?i=9Pzp3Bs7s0E:N-9dty72LUg:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?a=9Pzp3Bs7s0E:N-9dty72LUg:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/wonderwhy-er/blog?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wonderwhy-er/blog/~4/9Pzp3Bs7s0E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.wonderwhy-er.com/audio-visualization-contest-results-and-code-on-wonderfl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.wonderwhy-er.com/audio-visualization-contest-results-and-code-on-wonderfl/</feedburner:origLink></item>
	</channel>
</rss>

