24 Oct 2005 raph   » (Master)

Advogato spam

mathrick recently pointed out that some people are trying to abuse Advogato by posting spam, and suggested that I delete or disable the idiot's account.

Of course, I'll do that if it turns out to be a real problem, but in the meantime it's a pretty good test of Advogato's trust metrics, especially the newer one for comment rating. Because of the size-0 profile bug, it wasn't being recomputed in timely fashion, but it's back online now. And, happily, the offending page has a rating of "1" so it's suppressed altogether from the recentlog view linked from the front page (assuming you're logged in).

There are some improvements I really want to make to the rating mechanism, and may be able to get to them sooner rather than later. For one, I want the un-logged-in view to have some reasonable default (maybe mine :) for the trust metric seed, rather than showing the results unfiltered. I also want to do a dynamic trimming thing, so that lower-ranked blog entries get trimmed more aggressively than higher-ranked. Same thing for <img> tags, which are sadly missing from Advo blogs.

The Advogato trust metrics really do work. I must really suck at self-promotion, because it seems the rest of the world doesn't seem to notice or care. Ah well.

Resolution-independent UI

One of the features intended for MacOS 10.4 (Tiger) was resolution-independence in the UI. What actually shipped is pretty much a baby step in that direction, as opposed to something really usable.

Overall, it looks pretty much like what I proposed a year and a half ago. What I called the "pppx ratio" (pixels per px unit) is called the "scaling factor", and is accessible as the userSpaceScaleFactor method in Cocoa, or HIWindowGetScaleMode() in Carbon. Handling of legacy apps is also very much as I propsed. I wrote last April: "If the app is not LQ-aware, then as it asks for a display surface, the OS knows to give it one with 100 dpi "pixels", so that each pixel that the app draws shows up on the hardware as a 2x2 square of pixels". This is implemented in Tiger as Magnified Mode. A Carbon app signals its "LQ-awareness" by setting the kWindowFrameworkScaledAttribute flag at window creation time.

Even so, the results, as shipped on 10.4, aren't that good. Mortal users don't have any way of setting pppx, but developers can just open -a "Quartz Debug", then press apple-U to bring up a slider. I noticed that most apps shipping with the OS have "framework scaling" set, as opposed to just drawing in Magnified Mode, but many have artifacts. A few set the window height (but oddly enough, not the width) based on pixel, rather than px, units, so the window is chopped off at the bottom when the scaling mode is greater than 1. Quite a few (Safari especially) generally work, but have artifacts. A few seem to work well right out of the box (I didn't do a careful study, but Cocoa seemed to predominate here).

Text and vector graphics scale well, but bitmaps don't. And, indeed, all the Aqua UI elements are drawn as pppx=1 bitmaps, then scaled, so things don't look all that sharp. Similarly for web pages shown in Safari - all the bitmap graphics look really fuzzy in comparison to the text. I've said this before and will say it again: the Web desperately needs good standards for providing images at resolutions greater than 96 dpi. I say "desperately" because it needs them today to provide quality printing, but of course once the problem is solved it will work just as well for LQ displays as well.

One interesting note: when pppx=1, the display dpi is nominally 72 dpi, which was true of the original 9" Mac back in 1984. Yet, today, nearly all machines Apple ships have 100 dpi LCD screens. Setting pppx automatically by dividing the actual display resolution (queryable through a protocol spoken along the video cable) by 72 will typically result in a setting 33% too large. One solution is to make sure it always gets set manually (as I wrote a year ago, "The pppx ratio should be a global configuration parameter.") Another is to fudge the calculation. I guess we'll have to wait until 10.5 to see how Apple finally deals with all the usability issues.


I'm flying to Japan again from Nov 5-Nov 16. I'll have the last few days more or less free, so that would be a good time to meet up with Advogatans in Japan. Let me know (through my gmail address) if you're going to be around then.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!