Happy Sunday

It's funny how mere icons can make me happy.  I saw these icons today as successful result of my recent crypto works.  They say Acrobat, Signable, Certified, Encrypted, Certification Signature, and Verified Signature.

For my client, above set of symbols means an encrypted, certified, and signed PDF document.  For me, it means I am happy.  As I learned over the years, regular doses of small happyness is what life is all about.

Books, Bookshelves, and Changes

Today, I had a need to write some crypto using OpenSSL and noticed that there was an O'Reilly book Network Security with OpenSSL.  I should have that I said.  Amazon had it for $27.97.  Barnes & Noble had it for $31.96.  I wanted to read it tonight.  So I called around and found one at Redwood City Barnes & Noble.  Weather was hot so I took my wife and son along.  When I got there and looked over the book, I noticed for the first time the list price: $39.95.

For the longest time, I used to visit bookstores like clockwork.  At least once a week.  Stacy's and Stanford Bookstore on University Ave used to be my favorite.  I must have dropped at least four figures at those bookstores over the years.  Then I stopped going and started buying over the Web.  My buying habit changed right away.  Instead of walking in with no particularly book in mind and walking out with a stack of newly interested books to read, I started ordering books on-demand, meaning AFTER I got interested.

I also stopped looking at the list prices.  Net result is that I am no longer willing to pay the list price for a book, not even one I want to read tonight.  Instead of paying $12 more than I need to, I am subscribing to O'Reilly's Safari Bookshelf.  Starter account with five book slot (concurrent access) is $10 per month or $110 per year.

I think it's a reasonable deal for average books, but not for keepers like the OpenSSL book.  Oh, well.  I am getting two weeks free so maybe I'll change again during that time and turn into a Safari maniac.  It's funny how seemingly drastic changes sneaks up on us and life moves on.

Update:

Looking ahead, I don't think bookstores will disappear but they will become showrooms for newly published books like the way car showrooms display the latest cars.  New books won't have a lot of peer reviews so best places to check them out will be at the bookstores.

Each book will have an RFID tag so ordering the book you like is as simple as taking the book upto a terminal to display the price and pressing a flashing red button.  At this point, your identity device (cellphone or Visa card) will beep asking you to confirm.  Acknowledge with a click and the order is sent.

Since bookstores needs to carry only a single copy of newly released books, wider variety of books will become available for browsing.  Clerks' will be freed from point of sales only to be kept busy returning books to the shelves.  RFID privacy concern is irrelevant in these bookstores because they will not leave the store.

As I mentioned above, book buying will become more on-demand and less impulse-based, so the business of creating demand will thrive.  Some of that demand will be created by professional book reviewers who sell their service/content to specialty book-peddlers like Amazon affiliates.

Since most of the profit will be in pre-order period in this scenario, book publishers will be able to predict demand much more accurately than before, affecting number of copies printed as well as raising the number of cancelled publications.  This in turn will bring authors, reviewers, and specialty book-peddlers together in a tigher working relationship to ensure greater demand.

Nice pile of bullsh*t, no?

Human Body Online

My thoughts on Virtual Memorial prompted me to revisit 3D graphics engines. 

Commercial 3D graphics engines are just too numerous for me to keep track of although most seem to agree that Id's Doom III engine and Epic's UnrealEngine2 represent state of art as of now.

While there are many open source 3D graphics engines, I thought these four stood out:

Nebula Device (Home, SourceForge, Wiki, Review, MIT License)

Crystal Space (Home, SourceForge, Review, LGPL)

ORGE (Home, SourceForge, Review, GPL)

I found no impressive screenshots to include, send me one.

Tenebrae (Home, SourceForge, GPL)

Tenebrae is a version of open source Quake engine with enhancements (stencil shadows and per-pixel lights) similar to those made by Id for Doom III.  While I doubt it is as good as the Doom III engine, visuals are stunning.

Needless to say, 3D graphics technology has advanced a great deal recently.  Still, if you look at the screenshots, you'll notice that the focus is on rendering bodies within buildings and landscapes.  As the title of this post indicate, I am more interested in bodies within bodies.

Like the classic movie Fantastic Voyage, I think a human body makes a great virtual world.  To do this, the 3D graphics engine must be able handle lots of curves because there are no straight lines inside a human body.  There are other complications too like lighting and tearing.

Imagine moving around inside a body to learn about how human body works.

Imagine getting a MRI and then exploring it from inside.

Imagine looking at your unborn child from within your wife's body.

Imagine doing surgery with tiny robots mimicking your actions as you do the same within the body.

Fantasic Voyage indeed.

Atom’s use of PUT and DELETE

I have been against the use of PUT and DELETE in the Atom API.  My reasoning is that PUT and DELETE support is spotty and use is rare which means they are not as proven as GET and POST.  Another concern I had was that those who were pushing for PUT and DELETE weren't looking at all sides of the problem.  For example, Atom wiki's CarrotVsOrange page which enumerates the issues listed only server-side platform support information.

Early this morning, I prepended "Server-Side" to that section's title and added another section for client-side.  By 4:30PM, the section has filled up and, although still incomplete, clearly shows some spotty support of PUT and DELETE on the client side.  It's a wonderful display of Wiki power.

There also also the proxy and firewall to consider.  I may create a separate section for that as well if others don't.

Please take a look and help out to complete the section (1.6).

Ten XForms Engines

If you are interested in future web technologies, read Ten Favorite XForms Engine article to get a snapshot of current XForms landscape.

While XForms has unusually large number of implementations at draft stage, I have little hope for XForms replacing DHTML.  Benefits of XForms are not compelling for most web applications and there are complications that prevent wide deployment as a web technology.

Server-side implementations hide XForms behind other readily deployable technologies by generating instance-specific DHTML from XForms.  Unfortunately, this approach alienates web designers and hands-on-the-metal developers who likes to have full control over DHTML.

Client-side implementation can be either installable or zero-footprint.  Install approach has the obvious distribution problem.  Zero-footprint approach, typically implemented as Java applets, Flash movie, or general DHTML-based engine often result in usuability problems such as forms loading slowly or sluggish UI.

I still think XForms can be of value in niche markets, but I see little chance of it taking off in horizontal markets unless Microsoft builds a XForms engine into IE, basically same story as SVG.  I mean what compelling incentives are there for Amazon, eBay, or Yahoo to deploy XForms?

Virtual Memorial: Visiting World Trade Center

My previous post on Virtual Protest and today being 9/11 made me think of Virtual Memorials.

A Virtual Memorial can be as rich as Star Wars Galaxy or EverQuest in full 3D or as simple as text-only MUD or MOO.  As long as it is immersive enough to captures the event in both space and time and let visitors interact with each other, technology doesn't matter.  Go there and maybe one can see the people who there and are no more.  Sit there along aside and experience the event unfold.

Inside the Virtual 9/11 Memorial, everyday is September 11th, 2001.  Inside Virtual Pearl Harbor Memorial, everyday is December 7th, 1941.  A place to go and remember the day.  Maybe share a line or two of thoughts with others.

IOU Micropayment

Ease of Use is a major factor in Micropayment, but no one knows for sure how much of a factor it is.

My guess is that if all that stands between the user and paid-content was a hyperlink titled "Read for 25¢ IOU", most people will click through.  Actually billing takes place when the amount owed to a particular site goes over certain amount ($10 sounds reasonable).  At 25 cents, that's 40 articles you can read before you are asked to pay.  I would guess further that most people who like to read will opt to pay the bill even if they decided to stop reading content at the site.  If they refuse to pay, then service is degraded in some way for the user.

The scheme outlined above will exhibit different results depending on the type of content and target audience.

Virtual Protest Ring Tone

In response to my RFID in Efficient Government post, Shawn of TextAmerica (no last name, probably Shawn Honnick) mentioned Stop RFID Moblog, a site for organizing a "virtual protest" around an actual protest taking place on 9/16 in Chicago.

Nice thought except the planned "virtual protest" seems rather wimpy.  Stop RFID Moblog suggests this:

Those of you who who cannot be there due to time and travel constraints can participate by protesting locally and sharing your protest sentiments virtually, right here.

Please email your anti-RFID protest photos and comments to this site via stoprfid.1@tamw.com. Please also send a copy to us at the following email address: protest@stoprfid.org.

Like I said, well intended but whimpy as a protest nor an attention getter.  I guess all those Think Different billboards Steve Jobs put up were wasted.

If I was organizing it, I would create a Virtual Protest Ring Tone, something that say something about the protest, a jingle or a chant, whatever.  Let people show their support by downloading it and installing it on their cellphones so people around the supporters will notice and ask

Why does your phone say STOP RFID instead of ringing?

Then every phonecall received turns into an opportunity to further the cause.  Charge for the ring tone if the cause is worthy and in need of money.  For TextAmerica, it would generate publicity and encourage meaningful use of ring tones.

<

p class=”textarea” dir=”ltr”>An obvious variation is "Howard Dean for President" ring tone.  Oh, well.  I am sure Howard has plenty of helpers to tell him about it.

More RFID Thoughts: Part 2

Like an errant RFID tag, I can't seem to turn off thinking about RFID.  Hopefully, thoughts on RFID will taper off over next few days.  Until then, I continue to flush them via this blog.

One detail I am missing is how a dense cluster of RFID tags can be read by a RFID reader.  For example, if individual pages have an RFID tag, how high can the stack of papers be and still be scannable with an RFID reader?  If 1000 RFID tags emitted 64 bits of information at the same time, can an RFID reader process them all?  Not likely.

An obvious yet imperfect solution is to program some random delay values into each RFID so chance of all of them firing at the same time will be lowered.  RFID reader also needs to read multiple times to be reasonably certain that every tag is read.  Is this how RFID works?

An interesting anti-RFID device is a random RFID generator that floods an area with randomly generated RFIDs.  While RFID manufacturers probably can't copyright ranges of 64 bit numbers, FCC is likely to outlaw such devices.  It's interesting to think about though.

One application of RFID maps location to individual RFIDs.  Nice and cheap positioning solution.  In this case, RFID reader is attached to some movable objects such as containers or crane arms.  But then sabotage is as simple as replacing real RFIDs with fake RFIDs.

Possibility of fake RFIDs bring up another question: how does RFID readers handle two conflicting responses?  If a fake RFID tag response faster than real RFID tag and RFID reader is programmed to accept the first one only, I can buy expensive goods cheaper.  Looks like one can't just grab something and walk out without a clerk making sure the RFID matches the merchandise.