<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Scott Downe&#039;s Blog</title>
	<atom:link href="http://scottdowne.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://scottdowne.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 18:50:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='scottdowne.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Scott Downe&#039;s Blog</title>
		<link>http://scottdowne.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://scottdowne.wordpress.com/osd.xml" title="Scott Downe&#039;s Blog" />
	<atom:link rel='hub' href='http://scottdowne.wordpress.com/?pushpress=hub'/>
		<item>
		<title>OSD 700 project release 0.4</title>
		<link>http://scottdowne.wordpress.com/2012/01/28/osd-700-project-release-0-4/</link>
		<comments>http://scottdowne.wordpress.com/2012/01/28/osd-700-project-release-0-4/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 18:50:50 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=491</guid>
		<description><![CDATA[For school, I am doing project releases in courses OSD600 and OSD700. In OSD600 I completed three iterations, 0.1-0.3. Now in OSD700, I need to do 0.4-1.0. This post will outline what I did for 0.4. I&#8217;ve started by taking Firefox bug 677122 which was labeled as &#8220;not quite as easy&#8221;. I am always up [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=491&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For school, I am doing project releases in courses OSD600 and OSD700.</p>
<p>In <a href="http://zenit.senecac.on.ca/wiki/index.php/OSD700-DPS911-Winter2012">OSD600</a> I completed three iterations, 0.1-0.3. Now in OSD700, I need to do 0.4-1.0.</p>
<p>This post will outline what I did for 0.4.</p>
<p>I&#8217;ve started by taking Firefox bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=677122">677122</a> which was labeled as <a href="http://zenit.senecac.on.ca/wiki/index.php/OSD700-DPS911-Winter2012">&#8220;not quite as easy&#8221;</a>. I am always up for a challenge. For the tl;dr check my <a href="https://bugzilla.mozilla.org/attachment.cgi?id=592407&amp;action=diff">diff</a>.</p>
<p>I will talk about what I did right, what I did wrong, and what I learned.</p>
<p>Three main things I did in this release are:</p>
<p>Created a working Firefox build on Windows. Which was not quite as easy because of bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=718541">718541</a>. I ended up narrowing what was needed to get a working build, and adding my findings to the ticket. Now being able to reproduce this problem, in hopes that it can be used to track down the exact cause. The ticket is now fixed.</p>
<p>Got a working developer environment working on Windows with Visual Studio 2010. This took more time than I wanted, as I am so used to web development where things like firebug work right out of the box. In other courses and projects, the code base is small enough that I don&#8217;t need any real developer tools, except my mind.</p>
<p>The real work was done in bug 677122. I had three attempts on this, and will describe each one, and why the first two failed and last succeeded.</p>
<p>First attempt was to wire the <a href="http://mxr.mozilla.org/mozilla-central/source/layout/base/nsPresShell.cpp#3058">go to anchor code</a> to <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#2166">process media fragment code</a>. This failed because process media fragment should not be called out of context. It was originally a protected function, so that there should of been a red flag that this was going to fail. I moved it to public, then in the anchor code I would get a reference to the media element, and call ProcessMediaFragment, which would crash when trying to grab the <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#2898">mLoadingSrc</a>. I suspect this is due to the way the media element lives in the media document. I loaded up firebug and actually looked at it, and it did not even have a src attribute attached to it. Probably why it failed, as it was not completely what I wanted. I did manage to parse the fragment code so I knew the difference between a fragment and an anchor, which would be crucial in the third attempt.</p>
<p>Second attempt was to try to get around the loading src, by doing this at a different time, or by calling a different function. Both attempts failed for similar reasons. I don&#8217;t think the timing was even the problem, but the reference to the element itself. A media document&#8217;s video element is not complete, and should not be used as such. It is a different beast. I tried things like, <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#1052">LoadWithChannel</a> and <a href="http://mxr.mozilla.org/mozilla-central/source/content/base/public/nsIDocument.h#872">resetToURI</a> which both failed because they would access an element that was not what they expected it to be. Again, it doesn&#8217;t have a src attribute like most media elements. I also tried to do the work in the <a href="http://mxr.mozilla.org/mozilla-central/source/docshell/base/nsDocShell.cpp#7940">InternalLoad</a> function, before the anchor code. This failed for the same reasons, but did get me choking off the <a href="http://mxr.mozilla.org/mozilla-central/source/layout/base/nsPresShell.cpp#3058">GoToAnchor</a> code, which helped me find the next part.</p>
<p>Third attempt was actually putting together two elements from the failed attempts. I moved the check for anchor or fragment to the InternalLoad, where I choked off the anchor code. It was as simple as that. Check for fragment and choke of the anchor. Once done, let the rest of the code to continue on its way. I have created a <a href="https://bugzilla.mozilla.org/attachment.cgi?id=592407&amp;action=diff">patch</a> for this and submitted it for feedback in the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=677122">ticket</a>.</p>
<p>The biggest lesson I learned was a soft lesson. I should of probably asked for help between <a href="http://scottdowne.wordpress.com/2012/01/23/firefox-bug-677122-so-far/">Monday&#8217;s post</a> and <a href="http://scottdowne.wordpress.com/2012/01/25/update-on-firefox-bug-677122/">Wednesday&#8217;s post</a>. In retrospect, reading those posts now, I can see the naivety in my attempts. I was so positive about some of my solutions, and I can see it in my words. This will get better when I get more comfortable in the community, as I have been here before.</p>
<p>Some smaller lessons were more technical things about Firefox code. Like how to get a reference, cast it, string management, etc. These are things specific to Firefox code, and not really C++.</p>
<p>Warning, some of the links to Firefox source code will bitrot as the code changes and the lines where things live changes. Not sure of a better way to link to the source code.</p>
<p>Thanks for reading <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/491/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/491/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=491&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2012/01/28/osd-700-project-release-0-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
		<item>
		<title>Update on Firefox bug 677122</title>
		<link>http://scottdowne.wordpress.com/2012/01/25/update-on-firefox-bug-677122/</link>
		<comments>http://scottdowne.wordpress.com/2012/01/25/update-on-firefox-bug-677122/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 18:16:26 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=484</guid>
		<description><![CDATA[Last night I thought I made a lot of progress on Firefox bug 677122. Turns out, I just made some progress. I am building another option as I type this, so things may still be better than I think, but we&#8217;ll see. What I have accomplished is getting a reference to the video element, inside [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=484&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last night I thought I made a lot of progress on Firefox bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=677122">677122</a>. Turns out, I just made some progress. I am building another option as I type this, so things may still be better than I think, but we&#8217;ll see.</p>
<p>What I have accomplished is getting a reference to the video element, inside the video document, at the time the user clicks enter while selecting the address bar that has some media fragment data. Test video <a href="http://www.bluishcoder.co.nz/mediafrag/AudioAPI.webm#t=20,100">link</a>.</p>
<p>I also accomplished exposing the <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#2148">ProcessMediaFragmentURI</a> function to this scope. This was my initial goal, and what I hoped could be the finish line. That function should be doing all I need and This is a huge step, but there is one small problem. That function crashes if the video has already been loaded.</p>
<p>I am still wrapping my head around why this happens. What I do know:</p>
<p>The existing code only calls ProcessMediaFragmentURI inside the <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#2171">MetaDataLoaded</a>. So currently, this function is only ever called during a load.</p>
<p>So, from <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#2151">inside ProcessMediaFragmentURI</a>, <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#2878">GetCurrentSpec</a> is being called. It hits <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#2880">line 2880</a> and checks if something called mLoadingSrc is true. If the video is already loaded, this enters an object, and starts the process of a termination of the browser.</p>
<p>I have options. I can either investigate this termination, possible bug, and make the ProcessMediaFragment function work on loaded and playing videos. Or, I can figuring out how to properly call <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#1042">LoadWithChannel</a>, which will call ProcessMediaFragment inside a loading context. The later is what I am currently building, as it seem like the path of least resistance. But, I suspect it may not be the best solution in the end.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/484/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=484&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2012/01/25/update-on-firefox-bug-677122/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.bluishcoder.co.nz/mediafrag/AudioAPI.webm#t=20" length="13850685" type="video/webm" />
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
		<item>
		<title>Firefox bug 677122 so far</title>
		<link>http://scottdowne.wordpress.com/2012/01/23/firefox-bug-677122-so-far/</link>
		<comments>http://scottdowne.wordpress.com/2012/01/23/firefox-bug-677122-so-far/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 19:33:37 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=481</guid>
		<description><![CDATA[I have been working on Firefox bug 677122 and have come to a sort of cross roads. The problem in the bug is that a media fragment of a video document will not update changes unless you do a refresh of the page. The media fragment parsing happens once the video&#8217;s meta data is loaded, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=481&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have been working on Firefox bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=677122">677122</a> and have come to a sort of cross roads.</p>
<p>The problem in the bug is that a media fragment of a <a href="http://www.bluishcoder.co.nz/mediafrag/AudioAPI.webm#t=50,100">video document</a> will not update changes unless you do a refresh of the page.</p>
<p>The <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#2148">media fragment parsing</a> happens once the video&#8217;s meta data is loaded, which makes sense. So it is obvious why the fragment doesn&#8217;t get re parsed without a refresh. Something I did notice though, in the anchor <a href="http://mxr.mozilla.org/mozilla-central/source/layout/base/nsPresShell.cpp#3028">code</a> a string with the media fragment data does get passed in, but I have not found it using this data for anything. Seems like a waste, and to me it would make sense to just do all media fragment parsing then. One point, instead of two. I cannot simply refresh the video when it is already loaded, nor can I set the video&#8217;s playback position if it did not get loaded.</p>
<p>My options are to hook into the anchor code, parse for &#8220;t=10,100&#8243;, if we are a video doc, and video is loaded, call media fragment parser, if the video is not loaded, setup an event of some sort. One path to all &#8220;#&#8221; at end of URL, two ways to parse it (media fragment or anchor), loaded or not. Or, keep things the way they are, and just do half of what I said above; only update the fragment in the anchor parse if the video is already loaded.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/481/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=481&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2012/01/23/firefox-bug-677122-so-far/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.bluishcoder.co.nz/mediafrag/AudioAPI.webm#t=50" length="13850685" type="video/webm" />
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
		<item>
		<title>Hacking and debugging Firefox.</title>
		<link>http://scottdowne.wordpress.com/2012/01/23/hacking-and-debugging-firefox/</link>
		<comments>http://scottdowne.wordpress.com/2012/01/23/hacking-and-debugging-firefox/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 16:23:20 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=473</guid>
		<description><![CDATA[Last week I typed about building Firefox and navigating the source code. Today I will talk about how to hack and debug Firefox effectively. One of the first things I found was that most of my previous techniques would not fly in a code base this big. It is just not effective to insert a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=473&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last week I typed about <a href="http://scottdowne.wordpress.com/2012/01/15/building-firefox-and-firefox-source-code/">building Firefox and navigating the source code</a>. Today I will talk about how to hack and debug Firefox effectively.</p>
<p>One of the first things I found was that most of my previous techniques would not fly in a code base this big. It is just not effective to insert a log message and recompile. It will take too long to compile, and the data you log will just be too little too late. This technique may still be viable, but just in a limited space. I also have a technique for seeing what code does, by commenting it out, and running the program to see what the program no longer does. This is also not viable because of the size and compile time.</p>
<p>The simple technique of reading code will also only get you so far. This code is just too big; you need stack traces, breakpoints, and the ability to see the value of every variable in scope.</p>
<p>I tried two things to get the tools I needed to do this.</p>
<p>First I tried GDB (GNU Debugger). I am currently using Windows, so this was a bit of a challenge, and I got it kinda working. But, I still don&#8217;t think it was enough, because I could only get break points and stack traces; I did not get the ability to see variable values.</p>
<p>Second was to try Visual Studio. This was actually much easier than I expected. I used <a href="http://benoitgirard.wordpress.com/2011/05/27/using-visual-studio-2010-ide/">this guide</a>. I was happy to finally find some instructions that were not fragmented, but up to date and on my system and versions that I am running. So it all went smoothly, which I did not expect. This allows me to set a break point right in the source, run the program, and it will stop execution at those points and let me explore the scope and stack trace. This, along with <a href="http://mxr.mozilla.org/">Mozilla&#8217;s cross reference (MXR)</a> will allow me to hack and debug Firefox.</p>
<p>I now have a really nice workflow.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/473/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=473&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2012/01/23/hacking-and-debugging-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
		<item>
		<title>Building Firefox and Firefox source code</title>
		<link>http://scottdowne.wordpress.com/2012/01/15/building-firefox-and-firefox-source-code/</link>
		<comments>http://scottdowne.wordpress.com/2012/01/15/building-firefox-and-firefox-source-code/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:30:53 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=466</guid>
		<description><![CDATA[So starting on bug 677122. This is my first real Firefox bug. I figure I need to find the code that initiates the parser for the URI and also find the code that should refresh the URI, and re initiate the parser. I notice doing something similar with a URL anchor, changing it, then hitting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=466&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So starting on bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=677122">677122</a>. This is my first real Firefox bug.</p>
<p>I figure I need to find the code that initiates the parser for the URI and also find the code that should refresh the URI, and re initiate the parser. I notice doing something similar with a URL anchor, changing it, then hitting enter updates the page. So I should also find this code, and see how that happens.</p>
<p>The very first thing I did was went to view some source code. I went to <a href="http://mxr.mozilla.org/">Mozilla cross reference</a>. This is an online search and reference of the Firefox source code. I searched for &#8220;media fragment&#8221; and found <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsMediaFragmentURIParser.cpp">nsMediaFragmentURIParser.cpp</a>, and from there, found <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp">nsHTMLMediaElement.cpp</a>. Some really exciting code in the HTMLMediaElement code is <a href="http://mxr.mozilla.org/mozilla-central/source/content/html/content/src/nsHTMLMediaElement.cpp#2145">ProcessMediaFragmentURI</a>. This block of code calls the parser, and sets the video&#8217;s time based on the values returned from the parser. So now, I need to find the places that should also be doing this.</p>
<p>I think though, this is as far as I can go with simply reading source code like a novel. I have some code that looks interesting, and is a good place to start. It is time to start breaking the code. By that, I mean remove, change, or add some code in areas that look interesting, then compile the code, run it, and see if my changed code runs when I suspect it will run. To do this, I need to get the source, and be able to compile it.</p>
<p>I have done this before, I even have blog posts on doing this&#8230; but it was ages ago, but things have changed, and I need an update anyway, so I think I will start freshfrom the online <a href="https://developer.mozilla.org/en/Build_Documentation">build instructions</a>. I am doing this on a Windows 7, so that may add an extra level of complexity.</p>
<p>I need Visual Studio of sorts. I have Visual Studio 2010. I also need to download the Mozilla build tools for Windows. Once downloaded and installed, I run start-msvc10.bat, with the 10 being for that I use VS 2010. If I had VS 2008 I would of ran start-msvc8.bat, etc. All commands are run inside this shell.</p>
<p>Next I download the source code by running &#8220;hg clone http://hg.mozilla.org/mozilla-central&#8221;. My first attempt I got &#8220;abort: stream ended unexpectedly (got 98688 bytes, expected 125068)&#8221;. Second time, no errors, took forever.</p>
<p>Next is to build it. I do this by changing into the new directory mozilla-central, which was created when I did the last command. Then, I run &#8220;make -f client.mk&#8221; and wait. On my Windows laptop this took 30+ minutes, but it seemed to finish without a hitch. I may consider going through <a href="https://developer.mozilla.org/en/Developer_Guide/Mozilla_build_FAQ#Making_builds_faster">tips for making builds faster</a>, but for now, I will confirm that it worked. After the build is done, to confirm that it worked, I ran &#8220;obj-i686-pc-mingw32/dist/bin/firefox.exe&#8221;.</p>
<p>That concludes my adventures in building Firefox and exploring the source code. Next time, I will get into hacking and debugging. Then maybe making a diff and submitting a patch!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/466/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=466&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2012/01/15/building-firefox-and-firefox-source-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
		<item>
		<title>Popcorn.js xray goggles plugin.</title>
		<link>http://scottdowne.wordpress.com/2012/01/14/popcorn-js-xray-goggles-plugin/</link>
		<comments>http://scottdowne.wordpress.com/2012/01/14/popcorn-js-xray-goggles-plugin/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 05:44:09 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[webmademovies]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=463</guid>
		<description><![CDATA[On and off this week I have been fruitfully fumbling my way around the Hackasaurus xray goggles bookmarklet, in an attempt to use them in a popcorn plugin, while other things brew. A tl;dr demo. The idea is to execute the goggles between a time range, on an element defined by popcorn&#8217;s data. In the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=463&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>On and off this week I have been fruitfully fumbling my way around the <a href="http://hackasaurus.org/en-US/goggles/">Hackasaurus xray goggles bookmarklet</a>, in an attempt to use them in a <a href="http://mozillapopcorn.org/popcornjs/">popcorn</a> plugin, while other things brew.</p>
<p>A tl;dr <a href="http://scotland.proximity.on.ca/sdowne/popcorn.goggles2/plugins/goggles/popcorn.goggles.html">demo</a>.</p>
<p>The idea is to execute the goggles between a time range, on an element defined by popcorn&#8217;s data. In the case of the above demo, I used the video element for testing purposes.</p>
<p>Right now, it is in a demoing state, demoing the use of the goggles at a time range. It is not really in a practical usable state, as you cannot close the goggles, nor can you control the video as they are up; quite frustrating.</p>
<p>I am going to allow popcorn&#8217;s data decide what to do with the timing. It can either leave the video playing, pause the video for a set number of seconds, or simply leave the video paused until the user closes and hits play again.</p>
<p>I also need to re add some animation that I avoided for sake of getting it working. Doing this will be good practice for me, because I&#8217;ve never been much of a front end guy, but I have the artistic abilities that I just need to dust off.</p>
<p>The hardest part of this was using HTML5&#8242;s postMessage. I have never used it before, and was stuck for longer than I would of liked, but long enough to build character. I was attempting to send a postMessage to an iframe before the iframe was done loading, thus the iframe&#8217;s event listener was not yet defined, thus my postMessage fell on deaf ears.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/463/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/463/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/463/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=463&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2012/01/14/popcorn-js-xray-goggles-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
		<item>
		<title>Firefox media fragement tickets</title>
		<link>http://scottdowne.wordpress.com/2012/01/12/firefox-media-fragement-tickets/</link>
		<comments>http://scottdowne.wordpress.com/2012/01/12/firefox-media-fragement-tickets/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 19:47:41 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[webmademovies]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=454</guid>
		<description><![CDATA[So, to follow through with my last post, I have done some more research and have three potential bugs. First, It turns out media fragment is already done, which is exciting because now we can use it in Popcorn. Second, three bugs were blocked by it, which can now be done: [498253 677121 677122]. Reading [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=454&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So, to follow through with my last post, I have done some more research and have three potential bugs.</p>
<p>First, It turns out <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=648595">media fragment</a> is already done, which is exciting because now we can use it in <a href="http://mozillapopcorn.org/popcornjs/">Popcorn</a>.</p>
<p>Second, three bugs were blocked by it, which can now be done: [<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=498253">498253</a> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=677121">677121</a> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=677122">677122</a>].</p>
<p>Reading bug 498253, and it seems as of second quarter of last year, there were still on going spec changes.</p>
<p>677121 still interests me.</p>
<p>And, 677122 seems straight forward enough. A bug where it seems it is caching the media fragment start time, and a refresh is required to update the time. The steps to reproduce right from the bug:</p>
<p>1) Open http://www.bluishcoder.co.nz/mediafrag/AudioAPI.webm#t=50,100<br />
2) Change the fragment portion to be &#8220;#t=30.100&#8243; and press enter</p>
<p>Expected Results:</p>
<p>1) Start and End fragment of the video would be the new position of 30 and 100 respectively.</p>
<p>Actual Results:</p>
<p>1) The video does not change the start/end fragments. They stay at 50 and 100.</p>
<p>This one is still a good candidate.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/454/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/454/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/454/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=454&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2012/01/12/firefox-media-fragement-tickets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.bluishcoder.co.nz/mediafrag/AudioAPI.webm#t=50" length="13850685" type="video/webm" />
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
		<item>
		<title>OSD700 and back to school</title>
		<link>http://scottdowne.wordpress.com/2012/01/12/osd700-and-back-to-school/</link>
		<comments>http://scottdowne.wordpress.com/2012/01/12/osd700-and-back-to-school/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 18:00:51 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[webmademovies]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=450</guid>
		<description><![CDATA[Today I had my first day back to school, and first day back in Dave&#8217;s open source class. I&#8217;m currently working at CDOT with Dave still, which means I will still be working on Popcorn and Popcorn-Maker. But, for his class, I will need to do more work for him, but it cannot be CDOT [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=450&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I had my first day back to school, and first day back in Dave&#8217;s open source <a href="http://zenit.senecac.on.ca/wiki/index.php/OSD700">class</a>.</p>
<p>I&#8217;m currently working at <a href="http://zenit.senecac.on.ca/wiki/index.php/CDOT">CDOT</a> with <a href="http://twitter.com/#!/humphd">Dave</a> still, which means I will still be working on <a href="http://mozillapopcorn.org/popcornjs/">Popcorn and Popcorn-Maker</a>. But, for his class, I will need to do more work for him, but it cannot be CDOT work. It makes sense to me that I find Firefox bugs involving video spec, that way I can leverage these new tools into popcorn and popcorn-maker use.</p>
<p>So let&#8217;s look at bugzilla.</p>
<p>I made a general search under <a href="https://bugzilla.mozilla.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=&amp;content=media&amp;comments=0">&#8220;media&#8221;</a>. I wasn&#8217;t expecting anything to jump out, just wanted to see what I was dealing with. But, something did jump out at me.</p>
<p>Now, this <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=677121">ticket</a> might not be the starting point for my work, but it is definitely something I am interested in.</p>
<p>The general interest is media fragments. Which the above bug relates to, but does not mean I am not doing the above bug. More research is required.</p>
<p>I also have interest in general media spec bugs, and I&#8217;ll look for more to have some concrete bugs tomorrow night.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/450/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=450&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2012/01/12/osd700-and-back-to-school/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
		<item>
		<title>Popcorn.js has a new brother&#8230; Popcorn-Hacker</title>
		<link>http://scottdowne.wordpress.com/2011/11/13/popcorn-js-has-a-new-brother-popcorn-hacker/</link>
		<comments>http://scottdowne.wordpress.com/2011/11/13/popcorn-js-has-a-new-brother-popcorn-hacker/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 03:47:23 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[webmademovies]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=447</guid>
		<description><![CDATA[Anyone familiar with Popcorn.js, Popcorn-Maker, and bookmarklets checkout my demo. A bookmarklet is JavaScript that runs via the address bar. So, you can fill a link element in a webpage to instead run code. Click the link, runs the code. You can also drag said link into your bookmarks for later, and continual use. What [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=447&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Anyone familiar with <a href="http://popcornjs.org/">Popcorn.js</a>, Popcorn-Maker, and bookmarklets checkout my <a href="http://scotland.proximity.on.ca/sdowne/popcorn-hacker/">demo</a>.</p>
<p>A bookmarklet is JavaScript that runs via the address bar. So, you can fill a link element in a webpage to instead run code. Click the link, runs the code. You can also drag said link into your bookmarks for later, and continual use.</p>
<p>What I&#8217;ve done is created a bookmarklet that lets you view and edit any popcorn.js page real time.</p>
<p>There are a few caveats. 1. It cannot be done on any version of Popcorn before 0.4, because I need access to Popcorn.instances, but that doesn&#8217;t matter because it also needs p.media, which was introduced in 0.5. I also ended up using Popcorn.getScript, which is another dependency, but getScript is introduced before 0.5, so if we have instances and media, we&#8217;ll have getScript. 2. We need plugins with complete manifests. Manifests are like meta-data for plugins. It tells me what to expect, thus what I can enter into the form fields. Without a manifest, it is read only Popcorn. 3. Demos made from exec alone will not work. Exec isn&#8217;t really editable without writing JavaScript anyway.</p>
<p>Now that the academic parts of the post are out of the way, I shall ramble about my thoughts on the project. This thing, to me, is a good example of a hack. I took parts of code from one thing, and remixed them together to do something different. I had little regard for how it looked, just that it worked. So, I guess it is more of a proof of concept. I really want to take it to the next level, though. Give it an export of some sort, and more closely tie it in to Popcorn-Maker&#8217;s build tools. Other-wise, this is essentially a fork of Popcorn-Maker. Over time, it will be too different, and become a separate entity that needs to be maintained separately. In order to avoid this, we would have to do some changes to Popcorn-Maker. It has some flaws, things I had to hack around. One of the good things was Popcorn-Makers event system. Made it easy to tie in my new functionality without having to worry about what was happening in other parts. Something interesting I noticed doing this, Popcron-Maker is close to 40k lines of code. This includes HTML, CSS and remote scripts like JQuery. Still though, that&#8217;s a lot of lines.</p>
<p>A few good pages to try it on are: <a href="http://popcornjs.org/">Popcorn homepage</a>, The <a href="http://danharper.me/demo/a-look-at-popcorn/">demo</a> from this fantastic <a href="http://net.tutsplus.com/articles/news/a-look-at-popcorn/comment-page-1/#comment-387118">tutorial</a> on Popcorn itself, and the initial <a href="http://popcornjs.org/code/demos/semantic_video/">semantic video demo</a> from way back in 0.1 of popcorn. It&#8217;ll work on others, but there is code in the wild it will not work on, yet. I&#8217;m going to deploy the &#8220;fix it for one demo at a time&#8221; technique I learned doing work in <a href="http://processingjs.org/">Processing.js</a>. It&#8217;s great to have user generated content to test off of!</p>
<p>Now for an abrupt end to this post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/447/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=447&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2011/11/13/popcorn-js-has-a-new-brother-popcorn-hacker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
		<item>
		<title>Popcorn.js 1.0, mozfest, Popcorn.js Universal Subtitles parser</title>
		<link>http://scottdowne.wordpress.com/2011/11/06/popcorn-js-1-0-mozfest-popcorn-js-universal-subtitles-parser/</link>
		<comments>http://scottdowne.wordpress.com/2011/11/06/popcorn-js-1-0-mozfest-popcorn-js-universal-subtitles-parser/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 01:50:21 +0000</pubDate>
		<dc:creator>scottdowne</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[webmademovies]]></category>

		<guid isPermaLink="false">http://scottdowne.wordpress.com/?p=443</guid>
		<description><![CDATA[This weekend has been a blast. Yesterday Toronto time we released Popcorn.js 1.0 in London time.. or yesterday, I&#8217;m not sure, but anyway, it was super cool. We released with new docs made by David Seifried, a Mozilla based website for what Mozilla is doing with Popcorn, and a shiny new build tool, built by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=443&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This weekend has been a blast.</p>
<p>Yesterday Toronto time we released <a href="http://popcornjs.org/">Popcorn.js</a> 1.0 in London time.. or yesterday, I&#8217;m not sure, but anyway, it was super cool. We released with new <a href="http://popcornjs.org/documentation">docs</a> made by <a href="http://dseifried.wordpress.com/">David Seifried</a>, a Mozilla based <a href="http://mozillapopcorn.org/">website</a> for what Mozilla is doing with Popcorn, and a shiny new <a href="http://mozillapopcorn.org/build-tool/">build tool</a>, built by <a href="https://chrisdecairos.ca/">Chris De Cairos</a>.</p>
<p>I&#8217;ve been spending the weekend in London at the <a href="https://donate.mozilla.org/page/signup/festival-save-the-date">Mozilla Festival</a>. Been getting way more Popcorn attention than I expected or imagined! Been interesting hearing impressions and educating people on Popcorn.</p>
<p>I also spent some time at the festival hacking up a Popcorn.js <a href="http://www.universalsubtitles.org/en/">Universal Subtitles</a> parser, and demo. I have one work in here before. Back in 0.1 I did a internal parser for Universal Subtitles, and for a beta version of Popcorn-Maker, I implemented a parser for Universal Subtitles as well. This one though, should be the final, as it&#8217;s not longer living inside something, but lives on it&#8217;s own in modular space. I also decided to take some time to make it look nice with <a href="http://chirls.com/">Brian Chirls&#8217;</a> pop plugin! <a href="http://scotland.proximity.on.ca/sdowne/unisubs2/parsers/parserUniversalSubtitles/popcorn.parserUniversalSubtitles.html">Check it out</a>!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/scottdowne.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/scottdowne.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/scottdowne.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/scottdowne.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/scottdowne.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/scottdowne.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/scottdowne.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/scottdowne.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/scottdowne.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/scottdowne.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/scottdowne.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/scottdowne.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/scottdowne.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/scottdowne.wordpress.com/443/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=scottdowne.wordpress.com&amp;blog=14056265&amp;post=443&amp;subd=scottdowne&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://scottdowne.wordpress.com/2011/11/06/popcorn-js-1-0-mozfest-popcorn-js-universal-subtitles-parser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9b295c4ff211d10d006375d1625877e2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">scottdowne</media:title>
		</media:content>
	</item>
	</channel>
</rss>
