Sunday, July 31, 2005

Finally, a good software patent :-)

Now, maybe we'll only have to filter out RSS ads from one source (or is that too much to ask? :-D )

Technorati tags: ,

Saturday, July 30, 2005

Rationalist Theology Redux

In the continuing saga of the elf/DH theological crisis, I present one more (not original, but no reference handy) way for a rationalist to deal with the issue of God having a physical impact on the universe, and yet continuing to be undetectable. We will be forced to accept God's existence as a postulate, but, remember, this is not contrary what this program set out to do, which was to make religious belief not contradict rational thought. The essential contradiction arises from our expectation that God will intercede in the universe, as evidenced by the text of our prayers. But, let us say that God acts through the actions of His people, not on His own. The laws of physics and experimentation are no longer a concern. People retain the freedom to do God's will or to oppose it. Meanwhile, prayer works to refocus our own energies on the communal and personal needs that are contained in the text. By asking God to intercede, we force ourselves to intercede (when the appropriate attention is paid to the words and ideas). Religious belief and religious action are one and the same. Unprovable, but, hopefully, not entirely contrary to reason.

The problems with this approach are twofold. First, it still requires that there have been a supernatural revelation in order for God's will to become known within the universe. However, it does not require continuing supernatural activity that may be contradicted by empiricism. Secondly, it is a cop-out, and, is theologically akin to deism.

And, now, along with DW, and at the suggestion of Dovid, we turn towards the mystical approach of the Tanya. A first-impressions post is coming soon.

Technorati tags: , ,

Blogging and “freedom of expression”

The issues of “freedom of expression” and “censorship” come up every now and then, even in the J-blog world. Since I started blogging, not even a year ago, they've come up in big ways at least twice. Cross-Currents deflected the issue, and now, we have the DovBear/Amshinover controversy.

A blog, though, is just that — a web log. Usually, a blog involves presenting one person's or a small group's views. Some blogs allow comments, some don't. Within the rules of the terms of service of the blog host, though, bloggers are pretty much free to say whatever they want. In that sense, a blog is its author's. Commenters and temporary bloggers are guests in the owner's house. Is the owner doesn't like the mud on the carpet, he can tell the guests to take off their shoes or leave the house. There is, by no means, a dearth of blogspace for people to write their own contradictory opinions, cross-linked, and tracked-back ad-infinitum. In that way, (unless they present themselves as balanced journalism) blogs do not have the same journalistic responsibilities of neutrality as television news or broadcast media. If there is any analogy to the established media, blogs more resemble an unfiltered op-ed or letters page. Blogs also do not have the same power to ban an idea as a repressive government or a repressive religious institution.

What this means is that readers have the rights to comment and complain.... and blog authors have the rights to ban each other as they please. Free expression is in no way hindered. If readers don't like a given blogger's policy, they may simply choose to write on their own, ignore a blog, remove it from their links lists, unsubscribe theie RSS/Atom reader, etc.

Technorati tags:

Friday, July 29, 2005


Scan of inscription

This came from the previous tenants in our apartment, who used the room we now use as a walk-in-closet as a shrine to (what we think is) Budda. When they left the apartment (two years ago), they left this hanging on top of the doorway on the inside of the closet. We have no idea what it says or means. For that matter, we don't even know what language it's in. Do you?

Technorati tags:

Thursday, July 28, 2005



LO(Even)L-er! (hat tip to shaya)

Blogger bug

If you hit the XHTML validation icon, you'll notice that my page no longer validates as strict XHTML 1.0. This is caused by a bug in Blogger's <$BlogMemberProfile$> that reared it's ugly head when I added a profile image. The automatically inserted <img /> tag is not terminated by a slash. I've reported the problem, and what course of action I take (removing the profile image/removing the Blogger profile, and rewriting it manually) depends on the response from Blogger support.

Technorati tags:

Keeping track of blogs?

So, here's one for all you blog-readers out there (you know, the 10 or so unique visitors per day who hit my site)... RSS/Atom aggregators are great for tracking when other blogs post, and when people actually use trackback, it tells you when you're being talked about, but — how do you keep track of where you've commented and when new comments are added?

Your memory? Is there some great killer-app that I'm missing out on?

Technorati tags: , ,

Got a color laser printer?

The Electronic Frontier Foundation needs your help to determine whether it's spying on you.

Technorati tags: , ,

Tuesday, July 26, 2005

Internet Explorer issues...resolved?

I think I fixed the issues with this page's CSS rendering on Internet Explorer (with only one disgusting kluge!). It will still complain about a syntax error, even though the syntax is correct, but it will render correctly.

Thanks to whoever put together this page of Internet Explorer rendering bugs and workarounds.

Technorati tags: , ,

Computer Interfaces III

(Third part of a series inspired by experiences in amateur tech support and the endless stream of articles yapping about how the time for desktop Linux is either never or next year. Yet another one was released recently.)
In the first part, we learned that people tend to work on the terms of machines, with the simple example of the telephone.
In the second part, we learned that computers blindly process numbers (and only numbers!) without understanding anything about their meaning or context. The corrolary is that if there are only two entities in a room, you and a computer, there is only one intelligent being there, and it better not be the computer.

Last time, I showed that a direct interface to all the machine's capabilities would be impractical. But, something's got to tell the machine what to do! Before we can discuss end-user interfaces, then, we'll have to digress into what the computer looks like to a programmer, (hopefully) in a simplified enough sense that an end-user (read: normal person) won't run away before he finishes reading this sentence. Briefly, this is the story of how the computer went from being a machine that could only be used by specialists to one that could be used by everyone.

The machine itself understands some numbers as operations, some numbers as — well — numbers, and some numbers as references to places it can find other numbers (for example, memory!), etc. So, the second-lowest level interface would be a set of word mnemonics that a human might understand that directly correspond to the numbers that are machine-readable. We call that assembly language. In assembly language, there is a one-to-one correspondence between a "mnemonic" and an operation. So, instead of:
1 45 62
I can say:
add var, 62
(note: I don't think this is an actual correspondence on any processor, it's a just a simplified example).

Now, let's say that someone develops a way for the computer to convert the "assembly language" mnemonics — which are gobbledygook to the computer — into the machine language that the computer will actually be able to process (incidentally, that type of program is called an assembler). Now, nobody will ever have to instruct a computer in machine language again. Hooray! The machine's interface has been simplified one step.

Notice that the mnemonics for the operations are now somewhat understandable, but, there's no intuitive way to connect any set of operations to the kind of result one expects out of a modern computer. Even the simplest of "operations" in human terms (say, asking the user to choose two numbers, adding them together and printing the result to the screen) may be hundreds or thousands of lines of assembly language code, meaning hundreds or thousands of machine instructions are executed in order to accomplish the task. Further, programming in assembly language requires very detailed knowledge of the computer internals. And that applies to trivial tasks, like writing one letter on screen. The assembly programmer/user needs to know exactly how the processor talks to the screen and what the screen (another very stupid machine) understands.

Before we can make computer programming a more general task, we'll need two more additions: high-level libraries and high-level languages. Most historical or semi-historical accounts would put high-level languages first, but, for my purposes, I think it's better to start with the idea of libraries. Let's say, for example, that I know how to write a character to the screen and you don't. So, I write a procedure that will write a character to the screen. Once that's done, I pass it to you and tell you how to use it. From then on, you no longer have to worry about the details of writing characters to the screen. You may then extend that concept, and write a procedure to write a whole string of characters to the screen. Similarly, let's say I don't know the details of how the hard disk hardware works, but you do. You can write me a procedure that will do it for me, and I won't have to worry about the hardware details. You can think of it as handing over a job to a specialist. It would be as if DW tells me to fix the air conditioner, retile the bathroom, and reside the house. I may not know how to do any of these things, but, I can call someone who does. Either way, from DW's perspective, the work was done. In the analogy, DW is the programmer who wants to write something complicated. I am functioning as a high-level library, and each contractor is functioning as low-level library that runs sets of machine instructions. DW and I still don't know how to retile the bathroom, but we got it done anyway by passing on the work to someone who does. That's how programmers work. They take basic libraries that are provided for them, and write other libraries that make use of those, and so on. At each step, we gain the ability to do something we couldn't do directly before, and we also lose sight of the details of how it's done.

So far, we've assumed that everything is written in assembly or machine language. But, let's say I could write a program (in machine or assembly language) that would translate even more-human-readable text into machine language. A construct like:

int a = b + c;

declares an integer variable that will hold some data named 'a' as the sum of other named variables 'b' and 'c'. Notice that there is no longer a one-to-one correspondence between the machine language and the high-level language. The machine language may not even have a concept of declaring a variable to be an integer. But, every machine has a different machine language. If I can write a compiler that will translate the high-level language into a particular machine language, though, I can even use the same high-level code on different incompatible machines! This portability comes with the caveat that I myself not use any operations in my program that aren't supported by all machines. That way, as long as I have a compiler that knows how to translate the code, it will work anywhere.

Until this point, the programmer had to know the details of how every component in the computer worked before he could control it. Now, with high level languages and high level libraries, the inner-workings are abstracted and generalized. Details are hidden, but new tools are available for the bigger picture of what the programmer wants the machine to do.

The high-level language is not a human language. Any high-level language construct must be entirely deterministic with no ambiguity. A dumb computer still doesn't understand anything about the context of the strings of numbers that represent the high-level language. And, in order to run it, it must end up in machine language.

I want you to step back for a moment from the details and notice what has been done. At each step, the programmer-computer interface has been abstracted. The nitty-gritty details of how the functionality is achieved have been lost, and entirely new (and useful) constructs have been generated. In the end, all of them get translated into the only language the computer understands -- machine language. Implicitly, by choosing a high level language and high level libraries, the programmer has traded off the detailed control of every operation that computer performs for the ability to spend time not dealing with those low-level details. Next time, I will actually discuss a user interface (really!).

Technorati tags: ,

Monday, July 25, 2005

Public Service Notice

Some readers may have noticed the style on my page went totally bonkers (displayed CSS code, incorrectly split up posts). You would have only noticed this problem if you used Microsoft's Internet Explorer. The KHTML (Konqueror/Safari) and Gecko (Mozilla/Firefox) renderers both drew the page correctly. The main problem was caused by a bug in IE that incorrectly turns off “standards compliant mode” if the !DOCTYPE declaration (that declares the document to be Strict XHTML 1.0) is not the first thing in the document. I had an XML/XML-stylesheet declaration at the top of the page, which is *correct* XML/XHTML. The page still doesn't look perfect in IE (most of the sidebar appears at the bottom of the page, and I haven't the foggiest idea of why), but the text should be readable. I would suggest, for this and other reasons (like security) that you switch to a different browser. Firefox is available for just about every platform in wide use, and can be freely downloaded from

Thanks shanna for pointing this out, as I would have never noticed otherwise.

Sunday, July 24, 2005

:-) = Patent infringement?

US Patent application #20050156873 was filed July 21, 2005 January 20, 2004, and made available online July 21, 2005. The basic lawyerese of the claim is

A method, comprising: selecting pixels to be used as an emoticon; assigning a character sequence to the pixels; and transmitting the character sequence to a destination to allow for reconstruction of the pixels at the destination.

Translated into English that means use of graphical representations of smileys in an instant messenger program. This one adds even more emphasis to what's wrong with the US patent system. It also underscores the danger of some “patent reform proposals” that change the rules for who is entitled to a patent from “first-to-invent” to “first-to-file”. Despite the proposals' best intentions, there will likely be a rush on the patent office with patents on trivial things that will become even harder to challenge (would prior art still matter at all?). While it's good that the procedure for challenging patents may be streamlined, the fact that the filer didn't invent it should be enough to knock down their exclusive use rights. Let alone that this patent covers an obvious extension of being able to send text and images over instant messengers.

Technorati tags: , , ,


Press the “next blog” button on the navigator on top of the page (and be sure to come back here after you're done.) Eventually, you'll run into something like this. Blog-spam. Yet another form of the computer generated crap that does nothing more than waste precious disk space, bandwidth, and time. To see just how prevalent it is, check out, the resource that contains entries for recent blog posts and is made nearly useless by spam. Sometimes, the computers get it right. The quote is from this evil spammer:

Spent time looking on the Internet for ssl accelerator? Seen those sites that use hype to sell their products? You can't miss hype, with its exclamation points, bold and capital letter, with the enthusiasm through the roof. But is all the hype really appropriate and will it really help you with your search for ssl accelerator ?

If you visit a lot of sites on the net regarding ssl accelerator, you'll begin to notice that the majority of them are exactly the same. Yes, they are selling different brands of ssl accelerator, but on top they are about as different as margarine and butter.

It was obviously intended to spam Google searches (and, maybe to comment-spam blogs). But, the quoted meta-spam was particularly entertaining.

Technorati tags:

Thursday, July 21, 2005


I just redid some of the CSS for this site. I kept the basic elements of the template, but removed all the orange in favor of blue (not a statement of politics, just aesthetics). I also made the link's styles (link, visited, mouse hover) consistent in all parts of the page. Some of it comes down to a personal preference for consistency. But, I have to ask. Is there anything *really* annoying in the look and feel of the site? So annoying it hurts your eyes (like hot pink and orange)?

I'm hip and elite and I have the code to prove it

... According to John C. Dvorak, that is. He wrote a two-screen long diatribe against Creative Commons in his PC Magazine column. Most of the mistakes in his column are corrected elsewhere (Joe Gratz does a particularly good job). I thought I'd put in what I think CC gains me. Basically, I want to be read. I want my work attributed to me, and I want others to be able to copy and improve on my work to their own desires. That's the essence of my Attribution-ShareAlike license. Granted, for a text-only blog, most quotes are probably small enough to be covered under fair use and never have any copyright issues, even if I didn't include the CC license. But, if anyone does want to copy off all my work in its entirety, it's fine with me. I'd be flattered.

Dvorak spends about a paragraph wondering why some bloggers/artists differentiate between commercial and noncommercial use. He says:

This means that others have certain rights to reuse the material under a variety of provisos, mostly as long as the reuse is not for commercial purposes. Why not commercial purposes? What difference does it make, if everyone is free and easy about this? In other words, a noncommercial site could distribute a million copies of something and that's okay, but a small commercial site cannot deliver two copies if it's for commercial purposes. What is this telling me?

It's telling you that you can use, distribute and/or modify someone else's work, as long as you don't intend to make money off it. If a third party wanted to use it for profit, they'd have to negotiate permissions with the copyright holder. The agreement might include a share in the profits that party would make off the author's work. If someone just wants a copy, or to improve on the work, no further negotiations required. Seemed simple and fair to me. "Mostly" — don't know where he got that from. Incidentally, it's something I don't do (I don't see anyone selling my blog anytime soon, either), but I can understand it.

The no derivative works (NoDerivs) tag is something he doesn't discuss at all. Again, I don't use it, but I see why it's there. An author may want wide distribution, but may think that derivatives would corrupt his/her work. This is, I think, especially relevant for opinion pieces.

He also makes a big deal about CC:public domain. Looks to me like a lot of words about nothing. Yes, it's true that you don't need CC to assign a work to the public domain. A simple notice will suffice. But, CC does add a recognizable logo and (optional) computer-readable RDF code that identifies a digital work as being in the public domain.

His grand finale really takes the cake though:

Years ago, to gain a copyright, you had to fill out a form and send in the material to the Library of Congress. Now you just use the word "copyright," add your name and a date, and publish it. What could be easier? Apparently simplicity was more than some people could handle, so they invented Creative Commons to add some artificial paperwork and complexity to the mechanism. And it seems to actually weaken the copyrights you have coming to you without Creative Commons.

Firstly, he misstates how one currently obtains a copyright (the real answer: write something down). Secondly, he confuses the “simplicity” for the author with simplicity for obtaining rights to a work. Let's say Dvorak were to run away to a cave tomorrow. How would I obtain rights to redistribute his column? (As if I'd want to). It would remain locked in copyright for nearly two generations.

I'm in full agreement with Dvorak that today's copyright durations are too long, and the terms are overly restrictive. But, until those laws change, choosing Creative Commons is part of the solution.

Technorati tags: , ,


Is this the tactical transition?

Technorati tags: ,

Wednesday, July 20, 2005

The economics of Microsoft

This July 17 NY Times article (watching an ad/registration required) has been passing its way around the blogosphere, and I thought I'd put in my 2 pennies. Ordinarily, one would expect that one who produces a bad product would quickly be thrown out of a free market. Spyware, adware and virus infections are not a natural consequence of running a computer. They are symptoms of bugs and badly designed software. However, it seems that Microsoft has managed once again to turn the flaws in its product into a revenue stream. After all, of the $400 cost of a new computer, somewhere between $50-$100 is going to Microsoft. By introducing products like their own anti-virus and anti-spyware tools (and, belatedly including a firewall into their operating system), they've managed to convince users that they're making an effort to improve computer security. But, the “blockers” are mere patches for a bigger problem, namely, the original bad design of the system. Meanwhile, through upgrades and subscription based services, the user ends up paying for the company's mistakes. So, it is to Microsoft's advantage not to continue selling licenses for broken software, because users will keep eating it up!

And, this, despite the existence of alternatives! May I ask who's to blame for the vicious cycle?

Technorati tags: , ,

Tuesday, July 19, 2005

Those Pesky Theological Questions

How does one who's “religious” and intellectually or scientifically inclined deal with the most basic of theological questions — the existence of God? Barring God coming out and saying “Hi”, a rationalist would posit by Ockham's razor that God does not exist. For the record, I would be satisfied with an answer that belief in God is not rational. The only problem is finding an answer that is not irrational.

One simple response would be agnosticism. But, I don't think it's spiritually satisfying. Another is faith based in fundamentalism. To say I am commanded to believe in God, and therefore I do. I can then happily join those who ban all questions of the matter, and on all ideas that may contradict my own preconceptions. But, that is certainly not intellectually satisfying. Must one turn off his brain to believe in a religion so based on study and learning?

As DW observed, one potential answer is that God exists wherever science can't probe (“the god of the gaps phenomenon”). Over time, God will shrink to insignificance.

The turn towards Eastern religions and pantheism is another response. Mis-nagid put it best: The New Age religions are a response to the god of the gaps phenomenon and the kicking of humans and earth off the self-centered pedestal. The sun is just another sun among trillions? The whole universe is god. Humans are just another animal? All animals are godly or full of "life-force."

As far as I understand it (not very well), a mystical approach separates Godly activity into a separate Divine space which is influenced by what happens in the earthly space. (Yes, I know that Dovid suggested that DW read Tanya, and I'm not rejecting the possibility that maybe mysticism has a better answer than rationalism).

In the end, though, if the concept of God is to have any meaning, He must be able to have some influence over the physical world. At one point, I (and, I assume others) posited that if God exists beyond space and time, He could know all possible outcomes of both seemingly random events and active decisions. Note that this position solves the predestination-free will problem. By knowing all possible futures, God knows the future, and free will is not challenged at all. But, that still leaves the question of how God influences events in the physical world. At the time, I answered that maybe a God who knows all possible futures could make small manipulations that sum up to the result He wanted. I no longer like my answer. It poses a testable (but very difficult to test!) hypothesis, and, may this degenerate into the “god of the gaps” position. According to our understandings of physics, even quantum events that are not deterministic should obey certain probability relations. If God manipulated the probabilities, then the understood physics would be contradicted by experiment.

I've also neglected to mention another possibility: that God does not influence events in the physical world, but that humans should serve Him in order to earn a place in a World To Come. This position begs the question of why we bother making requests that God influence the physical universe in the first place.

I'm sure that there's nothing new in this post; it is the foundation of everyone's basic continuous(?) theological crisis, right? Anyone?

Technorati tags: , ,

Monday, July 18, 2005

About this blog

Not satisfied with the comment page on navelofwine and Apikorsus Online (both aka my DW, "elf"), I started this blog back in November, 2004. I moved here in July, 2005.

In case you're curious (and you didn't already know), I've signed blog comments as "DH" or "elf's DH" since my Dear Wife (DW) starting blogging and referring to me as "DH" (for "Dear Husband") in her posts. The terms come from trashy womens' magazines. And, no, I'm not claiming to be the "Documentary Hypothesis." The origin of the name "The Apikorsus Companion" is quite obvious.

If you're reading this, it is very likely that you know who I am in the real-world. I ask you to please refrain from posting any real-world identifying information beyond what I have previously said about myself. Comments that contain real-life identifying information may be edited or deleted.

Everyone is welcome to comment in, and/or link to this blog. Unless you specify otherwise, I'll feel free to mutually add you to my friends list.


Sunday, July 17, 2005


This blog was started on Nov 8, 2004. Earlier posts and comments are located at the Apikorsus Companion version 1.0. Why did I move? While LiveJournal gave me a good start, I quickly outgrew the capabilities of the free accounts. Firstly, the inability to change the template was very annoying. Secondly, LiveJournal is very isolated from the rest of the blogosphere. It also tends to be approached by bloggers the way AOL is approached by everyone else on the Internet. While it has over 7 million registered users, they tend to only link to each other and be linked to through each other, and I wanted to have a wider audience. For my LJ friends, you may add this URL:
to your friends list at the bottom of the LiveJournal syndication page. Sorry, I don't have a paid/permanent account, so I can't make a new site feed via LJ.

Oh, for those of you who are scared of hot pink, the color scheme will be changing as soon as I get to it.