Archives for 2008

del.icio.us/dossy links since March 10, 2008 at 09:00 AM

del.icio.us/dossy (RSS) links since March 10, 2008 at 09:00 AM:

Great progress made on npgnash.dll

getgnash.org logo

What have I been furiously hacking on the last few nights? Gnash, the GNU Flash player. Specifically, I’ve been doing a lot of hacking on support for Win32. More specifically, I’ve been working on npgnash, the plugin that embeds Gnash inside Firefox using the Mozilla NPAPI.

I’m not going to get into the ugly details of what I went through to get as far as I have, but I’ll summarize it as: a hell of a lot harder than it ought to have been. I’ll save my rant for why C++ sucks, so badly, for another day. What you really want to see are screenshots, I know!

First, here’s the entry for npgnash from Firefox’s about:plugins page:

Firefox about:plugins showing npgnash

Okay, big deal, so I can load a DLL. Here’s npgnash playing gravity.swf from the Gnash testsuite, right in the browser:

npgnash playing gravity.swf from the gnash testsuite

Who doesn’t love a big bouncing smiley-face animating across their browser, right? But, the true test is playing my favorite YouTube video … to test with, at least:

npgnash playing a YouTube video

Yup, that’s no joke … it’s a screenshot of npgnash playing a YouTube video inside Firefox 2.0.0.12 on my WinXP machine. It’s using the Anti-Grain Geometry (AGG) rendering engine, along with SDL/ffmpeg for audio … and they both work, albeit not very well, yet.  Still, not bad for three or four days of hacking, right?

Despite all this progress and these screenshots, it’s still not ready for general-purpose use, yet. The underlying Gnash code is still isn’t fully re-entrant/thread-safe and the cleanup code isn’t fully baked so I can’t even load one SWF after another without it crashing. I also haven’t implemented any mouse/keyboard support, so you can’t actually use any of the player buttons you see in the YouTube video, etc., yet.

Still, it’s a great start and hopefully by the time the 0.8.3 release is ready in a few months, there will be a lot more forward progress.

Tags: , , , ,

del.icio.us/dossy links since March 3, 2008 at 09:00 AM

del.icio.us/dossy (RSS) links since March 3, 2008 at 09:00 AM:

del.icio.us/dossy links since February 25, 2008 at 09:00 AM

del.icio.us/dossy (RSS) links since February 25, 2008 at 09:00 AM:

Netcraft 2008 survey shows AOLserver is far from dead

The Netcraft February 2008 Web Server Survey says:

Unusually, America Online’s open source AOLserver sees tremendous growth, jumping from 35 thousand to 105 thousand sites in just one month. AOLserver is a multithreaded, Tcl-enabled web server which can be used for large scale, dynamic web sites, but has not seen the release of a new version since 2006. The majority of the new sites served by AOLserver are hosted in Poland.

This isn’t going to make any headlines, but for all those doubters out there who keep wondering who actually uses AOLserver, check out that growth.

The sad thing is, we could easily game the Netcraft survey by doing a few simple things:

  1. Register to become an ICANN accredited domain registrar.
  2. Offer domain registration at-cost, to offer the lowest possible prices to get customers.
  3. Offer free web domain parking or static file only hosting, all on AOLserver.

The costs involved would be around $10K for the first year, plus the cost of the actual AOLserver hosting, plus the $70K working capital in reserve to meet ICANN’s requirements. This could all be set up on Amazon EC2/S3 to avoid having to provision real hardware as the customer demand grows.

Of course, what would be the point? Would having more significant numbers in the Netcraft surveys give AOLserver more credibility? I sure hope not–that would be foolish.

(via Mark Mcgaha)

Adding an “Unsubscribe” button to Google Reader using Greasemonkey

Yesterday, Maki asked on Twitter, “I would love to have a ‘Quick unsubscribe’ button for Google Reader…a greasemonkey script would be terrific. Anyone wanna do one?” Of course, it seems I have a thing for hacking out little web toys for people I know on Twitter, so I gave it a whack.  Here’s the result:

Here’s a screenshot showing what it does:

Google Reader Unsubscribe button screenshot

It’s a pretty simple script. The hardest part was reverse-engineering Google Reader’s packed/minified JavaScript, but that wasn’t too hard.

Do you have a useful idea for a web toy? Perhaps if you run it by me and it interests me, I’ll hack on it for you, too.

Tags: , , ,

LOL meme makes John 4 better

The gospel lesson this past week was on John 4, where Jesus meets the Samaritan woman. Our church uses this lectionary insert which uses the NRSV translation of the Bible. As our pastor read the gospel lesson, I couldn’t help but LOL at verse 11:

11The woman said to him, ‘Sir, you have no bucket, and the well is deep. Where do you get that living water?

The first thought my mind produced, was, “Jesus, you has no bukkit.” I couldn’t help it, my mind went into full LOL mode. This was the internal dialogue that went on inside my head:

JESUS: GIMME DRINK.
WOMAN: LOL! WTF?
JESUS: GIMME DRINK, NAO!
WOMAN: O RLY? U HAS NO BUKKIT. HOW U GET WATER?
JESUS: YA RLY! I DRINK UR MILKSHAKE! I DRINK IT RITE UP! WE CAN BE BFF!
WOMAN: NO WAI! GIMME WATER!

JESUS: I BEEN WATCHIN U FAP.
WOMAN: OMG! I SEE WHAT U DID THAR.

Yeah, pray for my immortal soul, or something.

(Before all you bright people point it out, yes, I know about the LOLcat Bible and there’s even a translation for John 4 already.)

Tags: , , , ,

del.icio.us/dossy links since February 18, 2008 at 09:00 AM

del.icio.us/dossy (RSS) links since February 18, 2008 at 09:00 AM:

Hand-decoding tcpdump’ed SNMPv1 packets

I can’t go into too many details about what I’m working on right now, but it involves processing SNMP requests and generating SNMP responses. The hard part is that I’m writing all my own code to parse and process them, as I can’t use the Net-SNMP library to do it for various reasons. (Trust me, I wish I could.)

What makes this so much fun (not!) is having to debug and troubleshoot my code by hand-decoding the SNMP messages, captured off the network using tcpdump. If you’ve never done this, I’d compare it to performing long division on really large numbers. It’s not particularly hard, but it sure is tedious. Here’s an example of a pair of request/response packets that I’ve hand-annotated:

Screenshot of hand-annotated tcpdump of an SNMP request/response pair

Yeah. This certainly isn’t one of the glorious parts of software development. But, it needs to be done, right?

Tags: ,

Just in time to make me go “d’oh!”

Yesterday, I griped about Mahalo not fitting my definition of social search. Today, the latest release of Mahalo Follow is announced on the Mahalo Blog. In my previous blog post, I asked:

Is there a product out there that combines all this data and uses it to enrich search results in realtime?

Wouldn’t you know it, but that’s exactly what the latest version of Mahalo Follow tries to deliver, in a way. It will now rewrite a Google search results page (SeRP), injecting links from Mahalo data. This is exactly the kind of search engine enhancement that the algorithmic search engines really need. Well done, guys!

Of course, there’s still a huge gap of opportunity for improvement, here. Mahalo still isn’t leveraging the Web 2.0 network effect that is possible through social software. You can recommend a particular page to your friends and possible inclusion in the Mahalo data set. But, the real victory is when I can vote/indicate when I believe any particular search result is relevant or not for the search query I just performed. Then, to complete the circle, when I perform searches, highlight and/or bury the results based on what my friends have voted on.

In a way, the Spock folks have already implemented this, but have limited it to just people (for now?) … on a SeRP for a person on Spock, there’s a section called “Other Results from the Web” which is populated with results from Google. Then, as a registered Spock user, I can vote on each result as being relevant to me or not. Other users can similarly vote and the premise is that “wisdom of crowds” will enable the most relevant results to rise to the top. Mahalo could do the same through Mahalo Follow, by enabling voting/recommendations directly off the Google SeRP, and using that collected information to improve future search results.

What about the problem of people trying to “game the system”? That’s where the “social” part of social software combined with the network effect come into play. As long as the software either only uses my friends’ recommendations–and perhaps second-degree friends, but definitely not third-degree friends or further away–I can avoid being affected by people gaming the system by being selective about who I make friends with. Some folks will friend everyone they can possibly find, some will friend no one at all, but those who fall in between will receive the most benefit and that class of users should be the majority.

This is also where reputation and trust come into play in social software: a person who has a reputation of recommending good links and is otherwise trustworthy will attract followers as they will want to benefit from that person’s activity in the system. A person who tries to game the system will eventually be self-selected out by losing friends in the system, until they receive no benefit from trying to game it at all.

Overall, the latest change to Mahalo Follow is a great first step in the right direction, and I’m sure the Mahalo team is busy working on the next set of changes already. I just hope they keep pushing in the direction of making Mahalo a real Web 2.0 social search service. It could be game-changing for the Internet and the way we search.

Tags: ,