<?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/"
	>

<channel>
	<title>Rob Sayre&#039;s Mozilla Blog &#187; Uncategorized</title>
	<atom:link href="http://blog.mozilla.com/rob-sayre/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/rob-sayre</link>
	<description>This Must Be the Place (Naive Melody)</description>
	<lastBuildDate>Wed, 14 Oct 2009 22:47:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Desktop Google Wave on the Nokia N900</title>
		<link>http://blog.mozilla.com/rob-sayre/2009/10/14/desktop-google-wave-on-the-nokia-n900/</link>
		<comments>http://blog.mozilla.com/rob-sayre/2009/10/14/desktop-google-wave-on-the-nokia-n900/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 22:47:32 +0000</pubDate>
		<dc:creator>rsayre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/rob-sayre/2009/10/14/desktop-google-wave-on-the-nokia-n900/</guid>
		<description><![CDATA[Nokia N900 running Google Wave.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.engadgetmobile.com/2009/10/14/nokia-n900-can-ride-the-google-wave/">Nokia N900 running Google Wave</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/rob-sayre/2009/10/14/desktop-google-wave-on-the-nokia-n900/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feature Freeze Update: 18 months</title>
		<link>http://blog.mozilla.com/rob-sayre/2009/10/13/feature-freeze-update-18-months/</link>
		<comments>http://blog.mozilla.com/rob-sayre/2009/10/13/feature-freeze-update-18-months/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 03:23:39 +0000</pubDate>
		<dc:creator>rsayre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/rob-sayre/?p=410</guid>
		<description><![CDATA[I&#8217;ve been wondering how that feature freeze would work out for quite a while. Not very well, it seems. The situation does suit those who can send a private request to the editor and have it turn up in the spec. I can see why Microsoft wants to add things without a bunch of questions [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been <a href="http://blog.mozilla.com/rob-sayre/2008/02/21/thoughts-on-whatwg/#comment-7642/">wondering</a> how that feature freeze would work out for quite a while. Not very well, it seems. The situation does suit those who can send a private request to the editor and have it turn up in the spec. I can see why Microsoft wants to <a href="http://diveintomark.org/archives/2009/10/05/distributed-unicorns-and-ponies">add things</a> without a bunch of questions from toxic personalities who work at big competitors. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/rob-sayre/2009/10/13/feature-freeze-update-18-months/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content Security Policy</title>
		<link>http://blog.mozilla.com/rob-sayre/2009/09/30/content-security-policy/</link>
		<comments>http://blog.mozilla.com/rob-sayre/2009/09/30/content-security-policy/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 00:33:57 +0000</pubDate>
		<dc:creator>rsayre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/rob-sayre/2009/09/30/content-security-policy/</guid>
		<description><![CDATA[CSP is just about ready.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://people.mozilla.org/~bsterne/content-security-policy/index.html">CSP</a> is <a href="http://blog.mozilla.com/security/2009/09/30/a-glimpse-into-the-future-of-browser-security/">just about ready</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/rob-sayre/2009/09/30/content-security-policy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spin Control</title>
		<link>http://blog.mozilla.com/rob-sayre/2009/09/09/spincontrol/</link>
		<comments>http://blog.mozilla.com/rob-sayre/2009/09/09/spincontrol/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 19:22:45 +0000</pubDate>
		<dc:creator>rsayre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/rob-sayre/?p=400</guid>
		<description><![CDATA[This little script takes Spin Control output from a running process and tries to demangle the symbols to get sample stacks. It was just a quick hack. Someone make it better!
I used the script to file bug 515447. You can use it by turning on Spin Control and running it on the text file output. [...]]]></description>
			<content:encoded><![CDATA[<p>This little script takes <a href="http://en.wikipedia.org/wiki/Apple_Developer_Tools#Spin_Control">Spin Control</a> output from a running process and tries to demangle the symbols to get sample stacks. It was just a quick hack. Someone make it better!</p>
<p>I used the script to file <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=515447">bug 515447</a>. You can use it by turning on Spin Control and running it on the text file output. I don&#8217;t know why Spin Control can&#8217;t find the symbols itself. There are also some other options for running <code>atos</code> that probably don&#8217;t need a running process. You&#8217;ll need a build that has symbols, like the Shark-enabled nightlies do.</p>
<pre>
from __future__ import with_statement
from subprocess import Popen, PIPE

firefox_pid = 85034
spin_file_path = "/Users/sayrer/Desktop/spinout.txt"

class memoize:
  def __init__(self, function):
    self.function = function
    self.memoized = {}

  def __call__(self, *args):
    try:
      return self.memoized[args]
    except KeyError:
      self.memoized[args] = self.function(*args)
      return self.memoized[args]

@memoize
def findSymbol(word):
    # run atos
    cmd = ["atos", "-p", str(firefox_pid), word]
    proc = Popen(cmd, stdout=PIPE)
    stdout, stderr = proc.communicate()
    return stdout[0:-1]

def demangle(words):
    output = ""
    for word in words:
        if word.startswith("0x"):
            word = findSymbol(word)
        output += " " + word
    return output

with open(spin_file_path) as a_file:
    for line in a_file.readlines():
        indent = len(line) - len(line.lstrip())
        words = line.split()
        print line[0:indent], demangle(words)
</pre>
<p>Feel free to improve.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/rob-sayre/2009/09/09/spincontrol/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finger Trees</title>
		<link>http://blog.mozilla.com/rob-sayre/2009/09/07/finger-trees/</link>
		<comments>http://blog.mozilla.com/rob-sayre/2009/09/07/finger-trees/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 02:39:08 +0000</pubDate>
		<dc:creator>rsayre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/rob-sayre/2009/09/07/finger-trees/</guid>
		<description><![CDATA[part 1 and part 2.
looks like some of the commenters say these aren&#8217;t quite finger trees. ok.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://scienceblogs.com/goodmath/2009/05/finally_finger_trees.php">part 1</a> and <a href="http://scienceblogs.com/goodmath/2009/05/finger_tree_update_i_forgot_so.php">part 2</a>.</p>
<p><small>looks like some of the commenters say these aren&#8217;t quite finger trees. ok.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/rob-sayre/2009/09/07/finger-trees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome to David Anderson</title>
		<link>http://blog.mozilla.com/rob-sayre/2009/08/27/welcome-to-david-anderson/</link>
		<comments>http://blog.mozilla.com/rob-sayre/2009/08/27/welcome-to-david-anderson/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 21:06:40 +0000</pubDate>
		<dc:creator>rsayre</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/rob-sayre/?p=395</guid>
		<description><![CDATA[David joins Mozilla full-time after a stint as an intern from Worcester Polytechnic Institute and then some contracting. His work focuses mainly on TraceMonkey and its Nanojit component. He blogs at http://www.bailopan.net/blog/. 
Please join me in welcoming David!
]]></description>
			<content:encoded><![CDATA[<p>David joins Mozilla full-time after a stint as an intern from <a href="http://www.wpi.edu">Worcester Polytechnic Institute</a> and then some contracting. His work focuses mainly on TraceMonkey and its Nanojit component. He blogs at <a href="http://www.bailopan.net/blog/">http://www.bailopan.net/blog/</a>. </p>
<p>Please join me in welcoming David!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/rob-sayre/2009/08/27/welcome-to-david-anderson/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
