Cesar’s Vanilla Blog

White and creamy wtf

PMOG

Passively Multiplayer Online Game. That was a brown bag topic here at Mozilla, which I have rather forgotten a good portion of it. But the goal sticks; reward people for surfing the web.

The most attractive aspect of the game is that it is passive, which is rather unique. It doesn’t command, nor require your complete attention. So what’s the point?

In my day-to-day work schedule I rather view on a selected few sites. I may rarely visit more than a dozen sites. mozilla.org would be one, mozilla.com, xulplanet.com,… bugzilla, but that falls under mozilla.org… google.com,….google.ca,…. that’s about it. Far less than the dozen I estimated.

On my spare time, I visit my personal sites. I won’t outline them here, of course. I may visit a few more sites.

PMOG rewards people for exploration and exploitation. You earn points by visiting different websites, and exploit them by setting up ‘mines’ so other people lose points. You complete quests, which gives you even more points. (Is it just me, or is it starting to sound less like a passively multiplayer game?)

Once you have accumulated all these points, into the thousands, and tens of thousands, and heaven forbid the hundreds of thousands. You can have a beer, and say you waste your time surfing the internet.

PMOG is a firefox extension that tracks where you go on the web. As creepy as that initially sounds, they claim only to take the url and date/time and discarding the url afterwards. Although I wouldn’t earn many points. I don’t explore the web as much as some people do.

I took it out for a test run under a new profile, and did the drugs quest and the ‘tools of the web’-type quest. Although fun, its also very slow to load. I think the images are even pulled from the web.

One thing that is preventing me from using it, and others too, is the very nature that its tracking everywhere you go. Whether it discards the url afterwards is irrelevant (to me anyways). Although now its for targeted to people ‘like us’, I’m less than thrilled about something sending information to some foobot about where I go. Are my fears even justified? Have I no faith in these people? Everywhere I go, information can get tracked and logged.

June 25, 2007 Posted by | Mozilla, Seneca, Uncategorized | 1 Comment

How to fake success

I have finally approached the point where I can sign a directory (I’m still a kilometre off from signing an extension, and a galaxy away from being done). I got manifest.mf and zigbert.sf/zigbert.rsa to be created inside a META-INF directory.

Now before a celebration can take place, I have a confession to make. I cheated.

The problem I have, and that I will continue to have is that the functions I need aren’t in a library. They are used once, and have been placed inside a C file, and designed in such a way to make it difficult for it to be reused. So one way to get at them is to take the object files and link them with my library. Which turns out is a fantastic idea, and would save me a lot of valuable time.
Or so I thought. Later I find out that the main program (signtool.c) contains global variables that are being used by the very function I need. If I call the function directly, it blows up in a humiliating stacktrace.

What else is there to do? I wasn’t even sure if I was going in the right direction with this. There was one quick.. but unpleasant.. solution. Take signtool.o, and link it in with my library.

And that’s what I did.

I now call the function main(), and pass it arguments.

This process is identical to taking nsIProcess and calling the signtool from javascript. Which would have avoided doing any XPCOM work. But fuck, where’s the fun in that?

The solution of taking signtool.o and linking it with my library was not the most desirable solution to the problem (the way I see it). However, right now I am looking for any result to keep my spirits up.

Combining all the time and energy spent so far on Notary, it begs the question of whether I am taking a complicated solution to a simple problem.

I had another problem yesterday where it was failing to find a function that I was statically linking it (an undefined reference error). After quadruple checking the function signature, I wondered if a library wasn’t being linked that was being used by the function I needed, which could have been causing it (that’s a ridiculous theory once you think about it). So I began linking libraries, until I ran out of libraries and still had my problem. I later found out that I was trying to link C/C++ object files without ‘extern “C” {}’. I was beginning to suspect that I would have to copy+paste the function to my own files just to use it (which was stupid, I’ll admit).

The solution was simple, but I think sometimes it is human nature to take the complicated approach because we see it as a complicated problem. But all complicated problems are really a series of simple problems.

June 14, 2007 Posted by | Uncategorized | 1 Comment

XUL Explorer 0.4 is out

Finally, it’s here! Well, some of the stuff has been dumped in trunk within the past weeks, but its finally wonderful that we hit 0.4 (take that sunbird!). Even more wonderful is that I am now one of the contributors, which makes me feel warm and fuzzy. My extension testing patch has been cleaned up, pimped out, and integrated.

Big thanks to Mark Finkle for helping me out, and making this all possible. I don’t think I can handle both Firebug and Notary 🙂

We’re now looking for contributors and feedback. If you try it, you can probably pick out a bug or two, or a few inconsistencies. We look forward to bug reports, enhancements, and patches.

I don’t really have much more to say other than what already has been said in Mark’s blog. Other than go try it if your interested and never touched XUL but had an interest in it.

June 13, 2007 Posted by | Seneca, Uncategorized | Leave a comment

Inching towards completion

This week has been reasonably prosperous. I patched my patch, and hopefully it will land in trunk soon. Its been reorganized, localized, and wizard..-ized.

Another big plus is that I managed to get a simple XPCOM example working, which is a big step forward into signing directories.

One thing while starting to learning XPCOM is that even something that is simple as a function that takes a string and appends “Hello” to it is long and difficult to understand. The actual appending to a string is a single line, but you need an additional 40 lines to get JavaScript to talk to C++.

June 9, 2007 Posted by | Uncategorized | Leave a comment

Uneventful week

I was going to post a long bitchy rant titled “Why people who don’t write documentation go to hell”, but it would not accomplish anything.

Summary : What I need to do isn’t documented and isn’t obvious.

I have spent a nice week, all last week, reading and experimenting. This week, I am going to finish what I started on XULExplorer. Mainly because that is what I am going to present on Dev Day June 23rd. I need to start finishing the presentation so I can practice.

Notary is going to have to take a back seat, before I get completely sick of it. It has come down to a tough decision (failure is always an option). In the meantine, if anyone knows a XPCOM function that I can call from JS that signs zipped files and/or creates the META-INF/* files I need; suggestions?

June 4, 2007 Posted by | Uncategorized | Leave a comment