prozac is currently certified at Journeyer level.

Name: Mr. Frazzlebottom
Member since: 2000-01-18 15:29:18
Last Login: N/A

FOAF RDF Share This



I have changed my name to Mr. Frazzlebottom

Oh, I terminated my "project" simply because it was lame.

I've been trying out Live Journal, Computer Angst and find LJ to be odd but interesting. also: Feed Them to the Lions


Recent blog entries by prozac

Syndication: RSS 2.0

I think Advogato is (now was, alas) a Really Cool Thing.

I always wondered, was the source code behind this website freely available?

Hopefully it will be. Or, if not, passed on to someone else.

Long live Advogato.

Never In A Million, Jillion Years

Never in a million, jillion years will I understand software engineers.

Everyday I struggle with this archaic, 20 year old, inefficient, bothersome, idiotic, so-called Menu System that Windows -- and Linux -- uses.

That horrible, terrible, rotten, "pull-down, scroll-by-mouse" menu is so bad.

Here is what I mean. You can check for yourself, right now. Go on and click your web-browser's "Bookmarks" menu (or "Favorites" if you go IE). ("Oooo, shiny ones!" *)

A list of "links" comes over the browser's web-page -- this web-page -- and some "links" bring up side lists of more "links" which can include more side lists of "links" which...

Yeah, so? you say. Well, perhaps it is me. But guess what a hand and rotating pointing device likes to do?

It likes to go in circles doesn't it? Circles and angles; angles about, what, 45 or 135 degrees? Yeah. Circles and angles. But maybe it's just me.

I click on "Bookmarks" and I get a pull-down list. I click on a link that brings up a side list of more links, and guess what I am forced to do in order to make further clicking work? That's right. I have to move the pointing device exactly 90 degrees to the right (and sometimes left). Exactly 90 degrees.

Okay, not exactly if and only if I move the pointing device really, really fast over into the sub list. But I keep forgetting to move fast enough, or I move too far, or too shallow, or I move too slow and then it acts as if I paused and if that happens of another sub-link another side menu pops up. Menus come and go like mad, appearing here, there, I go to click, but another menu takes over, and I go back and miss again... ARRRRRRRRRRGGGGHHHHHH!!!!!!!

I'm sorry, but I feel that I have to swear. Crap! (Well, I ain't much of a curser.)

Adobe, as an example of the worst offender, has the most horrible menu structure ever designed. Ever. It is so bad, I waste hours a day. Hours, just messing around trying to get it right.

Oh, there's keyboard short cuts, you say. You mean, like "Control-P"? "Alt-F-S"? "Control-Alt-Shift-S"? If only my memory were not so bad.

Here is a simple fix

Get rid of the "pause" to open a menu or sub-menu. Make them appear only by clicking. So, I click, the list comes down, I click again and a sub-list comes out -- and here's the fix part -- stays out until I click again! Never goes away until I click again! Problem solved!


But, perhaps it's just me.

* This reference, "Oooo, shiny ones!", is from a character in the PC Video Game, Baldur's Gate. I love that game, and not just for it's D&D game play. I love that game for it's INTERFACE! With one exception, it's interface is intuitive and painless for me to use. Fuck I wish software engineers would actually treat the high-resolution graphics capable Operating Environments computers in the 21st Century has as high-resolution graphics capable Operating Environments!

28 Jun 2006 (updated 28 Jun 2006 at 17:01 UTC) »
Proposal For a Global UBE Opt-Out Database


I manage a small IT department, and part of the work involves helping users deal with SPAM. Since we have hosted e-mail service that uses OpenWebMail, I basically just enable Blocklist Filtering and SpamNabber, which gets most, but not all, SPAM out of the user's way. But also, those avenues sometimes mark legitimate e-mail as SPAM.

So, to check for legitimate e-mail being directed as SPAM, I periodically manually review SPAM flagged e-mail. It is easy enough to see the legitimates among the SPAM in a list showing From and Subject. Occasionally I have to actually read the e-mail.

And I have an idea of a service that would submit e-mail addresses to a database of existing Opt-out services.

What started me out on this was the influx of many SPAMs referring to similar "targeted dating services." Odd, I thought, until I noticed that they were all from a related UBE-er, These UBE SCUM SPAM on other's behalf. In this case, several dating services.

Interestingly, following the obvious Opt-out link in the SPAM led to being removed from the third party's services and not the SCUM UBE's services. I had to do a little extra work through a small maze of links at and before finding

Also, these Revenue Uplink scum are scum because they harvested the e-mail address they spammed.

Anyway, I finally got to the Opt-out link, and did so, and was driven to ads in an IFRAME along the way too! Most of these UBE SCUM actually do supply a Website form to submit and address to Opt-out.

For grins, that day I followed several more Opt-out processes. About half of them provide a small maze of re-directing passages all different too.

The Proposal For a Global UBE Opt-Out Database

I would like to offer a service that would compile a list of UBE-ers that support Opting-out. It would just be a list of those UBE-ers to whom I can submit an e-mail address to. It would have a database of the UBE-er and how to submit an e-mail address for removal.

For example, a person would go to (not a real Website) and then submit their e-mail address. The website would then use it's database of UBE-ers' with an Opt-out mechanism, and then submit the e-mail address to each and every one of those UBE-ers.

Boom. That's it.

This Almost Exists

I am looking around for something like this, but found nothing yet, only references to "How to Opt-out" instructions.

There is the FTC's "How To" ( and there is a website that sort of look like it may be of help but is poorly designed at Center for Democracy and Technology (

And Spamhaus has a reference to Opt-out (

And there is a paper mailing "How To" from Privacy Rights Clearinghouse (

But I have not seen anything that would opt-out for me.

[the rest of this entry is just informational]

About SPAM

SPAM generally comes in two flavours, outright fraud and UCE. Fraudulent SPAM tries real hard to hide its source, uses misspelled words, stupid subjects, absurd e-mail addresses, sometimes has no body except for embedded images, etc. Fraudulent SPAM never has "remove" or "unsubscribe" references. Most of these are scams and sellers of fraudulent services and/or products, or just promote some obscure stock.

UBE is unusually not about fraudulent services or products. About half of UBE are by companies that just think sending UBE is okay. The rest are UBE services hired by companies to advertise on their behalf. These latter are basically defrauding their clients by pretending to send to Opt-in databases. Almost all of these UBEs have "remove" or "unsubscribe" references.

About From: Fields

I have noticed a few things about the From header. E-mail with a From field that has a name that is not reflected in the address is always suspicious, such as:

"Andres Hardin" <>

As long as newsletters and Opt-in advertisers use a properly formatted From address, I can spot 99% of SPAM vs. legitimate e-mail from the From fields alone.

Here are some examples of properly formatted From fields:

DSL from Yahoo! <>
Staples Rewards <>
"BizQuest Newsletter" <>

But, then some fraudulent SPAM uses okay looking addresses, like:

"Daisy Haas" <>

And then there are idiot e-mail hosting companies such as AOL, Comcast and Yahoo, that do not enforce proper address formats and allow simply They could at least enforce an addr-spec address enclosed in angle brackets!

17 Oct 2005 (updated 26 Oct 2005 at 17:29 UTC) »
An Introduction To Anal Programming with a Working Example Program in PHP*
(Or, I Never Met a Class I Didn't Dislike)

This entry attempts to document a programming paradigm I call Anal Programming (AP). AP represents nothing "new" in the way of programming design or theory, introduces no new buzzwords or acronyms (beyond AP), uses no fancy procedures or documentation, nor requires any adherence to any particular "style". AP is simply writing code in as straight forward a manner as possible with an emphasis on the combination of three universal aspects of programming:

  1. Efficiency
  2. Versatility
  3. Comprehension

The first thing to note about AP is that the three aspects must be taken (and used) together, in that code that is efficient but not comprehensible is not Anal. Code that is very efficient and extremely comprehensible would be an abject failure if it is not also versatile (as these terms are defined within the aspect of Anal Programming).

The Definitions of the three "Universalities"

Efficiency -- in the case of AP -- is not to be confused with minimumality, i.e. it is not simply least number of machine cycles, characters or number of lines. Efficiency, here, is all encompassing -- which is why, but not solely, it comes first in the list. Efficiency is the sum of the code taken in "block" size pieces and is a measure of code quality in the context of versatility and comprehensability. Efficiency is recursive but does not require recursion.

Versatility is a measure of how useful the code is as well as how easy it is to use the code and as well how easy it is for the code to be used. This last aspect -- "for the code to be used" -- is not a trite euphemism, but a requirement of Anal Programming. This triad of use -- Usefulness, Usage and Use -- will require more definition. Usefulness is self-explanatory; code that does something measurably useful to you. Usage is a measure of access, installation, configuration, modification, editing, and requirements. Use is the interface, the API, or even just the function list; think of this use as the programmer's use of the code. In larger abstract terms, one can think of PERL and PHP as Versatile programming languages in this regard as they generally meet all three elements of these definitions of "use". (PERL: "There is more than one way to do it." AP: "There should be enough ways to do it.")

Comprehension is last in the list because one might almost think of the formula Efficient + Versatile = Comprehsible. However, if one spends all his/her time and effort on efficiency (as the least amount of characters and expressions and blocks) and versatility (as complex classes, function overloading, etc) one can easy produce non-comprehensible code. In fact, it is all to easy to produce non-comprehensible code. Ideal comprehension means understanding at a glance. Though it can be difficult to achieve, it is hardly impossible. By working with E + V = C in mind one will find that producing Comprehension is achievable when Efficiency is combined with Versatility.

Where Anal Programming Fits with Regard to other Programming Paradigms

Sometimes someone needs to dash off some code to "scratch and itch". In that case, that someone should do what ever he or she wants to do to accomplish the goal. One would not use AP just to fix something.

Sometimes someone needs to adhere to an existing paradigm -- a driver, an extension of a class or library, and extension of a language, an add-on (or add-in) to an existing program. In all those cases one would not use AP.

AP is a discipline. AP is a discipline based upon practicality (and perhaps even pragmatism).

One would not use AP with OOP.

UML is the antithesis of AP.

The Drawbacks of Anal Programming

Before I get into actual coding and programming practices I must mention that achieving all three of the aspects defined above comes at a price: a lot of work. One must be willing, for AP requires it, to constantly re-think, re-examine and re-write his or her code. In fact, it might be that early purveyors of AP will be re-writing most of the time as old programming practices will get in the way (more on this later in "Actual AP Coding and Programming Practices").

Within the AP paradigm one would not hesitate to completely re-implement something -- the format of a configuration file for example -- right in the middle of a project, if in doing so would decrease complexity and increase either efficiency or versatility. One would do so even if the reduction would be just one global variable.**

Within the AP paradigm one would not simply choose one database (unless one had to for reasons mentioned in "Where Anal Programming Fits with Regard to other Programming Paradigms"), but would code so that ANY database could be used.***

Simply put, AP is a lot of work.

Actual AP Coding and Programming Practices

Before starting out on a road to Anal Programming one would have to throw away, forget, vanquish, utterly annihilate all high-falutin concepts such as "Reusability" and "Oriented" and "Elements" and "Patterns". One would never write "anchored exception declarations to solve problems with checked exceptions and reusable software elements" within the AP paradigm. One must remove one's "pre-programming" when implementing as AP. There is only one thing of utmost importance in AP - efficient, versatile and comprehensible code.

Here is a small example of an AP program. PHP Form Handler. (It is, as most AP projects, not finished and parts will be re-implemented at a later date.)


Anal Programming


* In this preliminary post I leave out the critical examination of the example. A critical examination and analysis will, of course, be required. Perhaps I can finish this essay with a few months.

** I will concede already that AP would never be adopted in a corporate setting.

*** Within the AP paradigm one would not hesitate to have an "encapsulation of an encapsulation" to achieve this.

28 Sep 2005 (updated 26 Oct 2005 at 16:44 UTC) »
GRUE - Globally Recognized User Environment

In this entry I outline a new Web technology. It may already exist. I just have not seen it done.

It is my dislike of poorly designed technology that drives me to write this rant.

I dislike virtual brickwalls. Like trying to fix or to understand a programming problem only to find that access to the people most likely able to help you are behind technological barriers.

Are Internet based technical forums really so "vandalized" by anonymous users that in order to participate one must always have to Register?

I registered to places like Advogato and Freshmeat to be a member of a community.

But oh so many times I want to enter into an online forum simply to ask a question. Always doing so after searching the Web (and sometimes books and magazines as well) turns up no answer. Usually these forums are hardware or software related, like a Dell computer, or Adobe software; something for which I do not want to "join up" because I am a "Dell Groupie" or an "Adobe Fan", but to simply ask something of someone closer to the technology than I have been able to get to. (More on this later.)

And this is the typical forum register process:

  1. Adjust Web Browser settings to allow cookies for the site.
  2. Click on the "Register" link.
  3. Sometimes at this point find out that Javascript needs to be allowed also. *
  4. Reload/re-click on the "Register" link if Javascript was required. *
  5. Fill out initial data: Enter user name, E-mail address, Password, etc. **
  6. Click on the "Submit" link. *
  7. Restart process if Javascript was required at this step only. *
  8. If Web Site does not use email address for user names, restart process if user name already exists. ***
  9. Wait for a confirmation e-mail.
  10. Respond to the confirmation e-mail.
  11. If all went well you can now post your question.

I have gone through this process several times. An many times only in order to ask my one or two questions, read the feedback, offer resulting feedback, never to appear again.

I do not like this process. It is so... archaic. We have the technology to automate this entire process. That is what computers are for!

So, the Globally Recognized User Environment would be similar to the Globally Recognized Avatar.

Now, I am someone who has trouble understanding most RFCs, so I can't write one myself, but I can outline the technology:

The Web Browser would have a setting for your GRUE (you see why I picked the name ;-), i.e. you would enter your E-mail Address and Password -- that is it. (There would probably be more, optional data, like User Name.) The password would then be stored as a one-way hash.

When you go to a GRUE enabled Web Site, you would hit a link like: "Register with GRUE Account".

Then, and this is the good part, you would only have to make sure cookies are enabled, the Web Site would:

  1. Get your GRUE data (e-mail and hash)
  2. Get your password

It would then verify you by comparing your typed in password with your hashed password; if OK it would allow you to post.


Obviously, the transmission of the password is in the clear, and this may be a gaping security hole -- I'm not experienced enough to know if this is something that can not be overcome other than HTTPS -- but most Websites already do this anyway.

This, GRUE - Globally Recognized User Environment thingy is just an idea. And ideas are always free to be used. (If this is a valid idea I'd love to see it pursued by someone in the Free Software Community.)

I will further elaborate at times future. See also, perhaps: GRUE.



* Web Browsers such as Firefox which allow fine-tuned Javascript restrictions (rather than just broad allow/disallow like IE) means that alowing Javascript all the time is safer.

** The amount of data required to be input varies. Most technical sites require simply ID and Password; some more generic sites require many pieces of information.

*** Some Web Sites have horrible data verification processes. I've encounter one that had two pages of forms before checking for existing user names. Obviously, e-mail addresses are guaranteed to be unique and most sites use it.

47 older entries...


prozac certified others as follows:

  • prozac certified ashp as Journeyer

Others have certified prozac as follows:

  • strlen certified prozac as Apprentice
  • beppu certified prozac as Apprentice
  • Iain certified prozac as Apprentice
  • kelly certified prozac as Apprentice
  • ajv certified prozac as Apprentice
  • ib certified prozac as Apprentice
  • lerdsuwa certified prozac as Apprentice
  • amars certified prozac as Journeyer
  • kai certified prozac as Journeyer
  • pvanhoof certified prozac as Journeyer

[ Certification disabled because you're not logged in. ]

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!

Share this page