Firefox and Weave for Maemo

February 1st, 2010

In case you haven’t seen it yet, Mozilla released Firefox for the Nokia N900 along with Weave. I haven’t seen many detailed reviews yet. Know of a good one?

We’ve got more mobile stuff coming. It’s going to be exciting. It’s easy to see why lots of parties are excited to ship devices with Firefox to their users instead of “Browser”.

Chilling Effects

January 3rd, 2010

I think most of us on the net have encountered someone we don’t know at all who knows us a little too well.

That happened to me the other day, and it kind of freaked me out. I went and made most of my personal net footprint private (twitter, flickr, etc).

Didn’t last. It turns out I can’t live like that, so it’s all public again. How do you deal with this problem? I don’t think I’m ready to go all Steve Mann on the world.

Oh, and now I have a Google Profile, which reminded me of my public youtube profile.

Nokia N900 running Google Wave.

I’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 from toxic personalities who work at big competitors.

Content Security Policy

September 30th, 2009

CSP is just about ready.

Spin Control

September 9th, 2009

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. I don’t know why Spin Control can’t find the symbols itself. There are also some other options for running atos that probably don’t need a running process. You’ll need a build that has symbols, like the Shark-enabled nightlies do.

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)

Feel free to improve.

Finger Trees

September 7th, 2009

part 1 and part 2.

looks like some of the commenters say these aren’t quite finger trees. ok.

Welcome to David Anderson

August 27th, 2009

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!

Offered Without Comment

August 3rd, 2009

Sam Ruby: “It appears that the process is: no matter how clear and complete the proposal is, the response is the same: some variant of ‘I don’t understand’.”

Offered Without Comment

July 28th, 2009

Dan Connolly: “…I don’t see any argument that would convince a critical mass of the WG/market to support it in the near/medium term, so I wonder if pursuing is a good use of WG time.”