What and Why SML

"Dave" posted a brief comment about my SML post within 1 minute of posting it.  Wow!

Don Park is working on a new language that does some of what XML does, but is as simple as can be. 

SML is meant to be an alternate meatspace-friendly syntax for XML infoset.  So I am hoping to make it do everything XML does except cause wrinkles and hairloss.  Ambitious?  Nah.  Actually, I was playing with it as a 'front-end' to an XML viewer/editor.  With it, I am less likely to cringe when I open XML files.

SML: Second Try

In the last attempt to simplify XML, two key requirements were a) compatibility with XML, and b) minimalization.  This time, I removed the compatibility requirement and shifted to focus to user-friendly syntax: easier to read and write than XML.  First rought cut of the syntax is described informally and in brief below.  Please keep in mind that the syntax is incomplete but presented here to promote discussion and exploration.

New SML (Simple Markup Language) syntax is best described showing how an XML fragment example looks like in SML.

XML Version:

    <circle x="1.0" y="1.0" r="0.5">
        <fill color="#FF0000"/>
        <text>Hello</text>
        <text>World</text>
    </circle>

SML Version:

    circle x="1.0" y="1.0"
            r="0.5"
        fill color="#FF0000"
        text "Hello"
        text
            "World"

Key features are:

  1. no brackets around element names.  Instead, indentations are used to encode hierarchy Python-style.
  2. one element per line.
  3. textual data must be quoted.
  4. attributes are double indented.  They may be on the same line as their element for readability.  Structured attribute value may be supported.

[Note: I removed assignable content to avoid some confusions.]

Note that SML can be used just as a visual data format, to interactively read and write XML, and not as an data storage or transport format.  Additional features I am thinking of adding are:

  • triple quotes for multi-line textual data
  • C-style character escapes using backslash
  • # for comments and others (i.e. PI, namespace, aliases, etc.)
  • using line-continuation backslash chracter instead of double indent

Microsoft Under Estimates Open Source Threat

In their SEC 10-Q filing, Microsoft wrote

To the extent the open source model gains increasing market acceptance, sales of the company's products may decline, the company may have to reduce the prices it charges for its products, and revenues and operating margins may consequently decline

My personal view is that Microsoft is under estimating the threat, not only to itself, but also to the world economy.  Think of open source as a virus that has yet to fully transform itself.  Those who are trying to take advantage of open source movement, companies like IBM and Sun, are riding a tiger, unable to get off and destined to be feed its hunger.  As grassroot organizations, companies, and governments build and add to open source infrastructures, nature of the beast will change, destroying value faster than we can build it.

Open source is not like Pet Rock or Hoola Hoop.  Open source is more like Communism or Fascism in its nature.  Can anyone or anything stop it?  My current view is that only a total wreck of the world economy will stop it because open source is fueled by idealism and subsidies from outside the software industry.

If the reader thinks I am anti-open source, think again.  I like open source and continues to contribute to open source community.  What I am saying is that open source is as dangerous as wildfire and should be treated as such.  While destruction and evolution are often confused in times of fast changes, caution and skepticism may be our guiding light.

Amazing Microsoft

Earlier today, Microsoft replaced its XP SP1 with a version without Microsoft JVM.  Afternoon today, 4th Circuit Court of Appeals granted Microsft stay of Judge Motz's decision requiring Microsoft to ship Sun's JVM within 120 days.  That version was to be XP SP1b.  What does all this mean?  It means Windows platforms will not have Java VMs, not even the one from Microsoft.  Amazing.

Web Service Logic Faults

While everyone is bitching about lack of security as well as revenue in web services, there is a problem most people are overlooking: logic faults.  What are logic faults?  A logic fault is what should happen when an order for 5 million pounds of Ben & Jerry arrives from Siberia.  A logic fault is what should happen when someone's daily trade volume grows ten fold overnight.  A logic fault is what should happen if someone named Saddam Hussein orders one of those George Bush dolls.

PIN insecurity in Korea

In Korea, secret PIN is often used to protect credit cards, cash cards, and bank accounts.  Unfortunately, most people don't treat PIN as a personal secret and not only share it with others but routinely asks for it.

At Korean banks and credit card firms, application forms often have a field for the applicant to specify his or her desired PIN for the new account or card, exposing the PIN to bank branch employees as well as the data entry clerk.  In many recent credit card and cash card frauds in Korea, secred PINs were provided by bank employees.

At Korean merchants, point-of-sale devices allowing direct PIN entry by customers are often not available.  When a customer hands over their credit card to buy something, the clerk will not think twice about ask for its PIN.  So PIN is given verbally, allowing anyone standing near to hear.

This is a huge problem that only a combination of education and biometric can solve since even smartcards need PINs.

Fate of Mozilla?

With AOL's loss of $99 billion and recognizable faces like Steve Case and Ted Turner, I am wondering what will happen with Mozilla.  Thanks to Apple's Safari, KDE's KHTML renderer has gained a large mindshare over Mozilla's supposedly 'bloated' Gecko.  Can AOL afford to ignore performance advantages of KHTML-based browsers?  Mozilla is being squeezed between the Open Source and Microsoft.  When KHTML-based browsers start appearing within a few months — Sun and Oracle are two prime suspects — news media's hoopla over them will nail shut Mozilla's coffin.

Playing with java.nio

Today I am playing with java.nio, a new feature in JDK 1.4+ for non-blocking I/O and more like memory-mapped file.  I hacked together a simple HTTP server and am in the middle of load testing it.  After that I'll hoist Servlet-like API on top of it and do some more load testing.  Like everyone else, I haven't had much chance/excuse to play with java.nio, so this is good.  There are only a handful of java.nio-based software out there, one of them being UberMQ, a JMS implementation.  Jetty seems to be using it only in its load balancer.  Desktop web servers and proxies have to be pretty frugal with expensive system resources like threads and java.nio can cut down thread use drastically.  Its amazing how many busy a browser can get network-wise.  Just check your browser cache after an hour of browsing and you'll see what I mean.