Links

pmuellr is Patrick Mueller

other pmuellr thangs: home page, twitter, flickr, github

Thursday, December 21, 2006

data not markup

Mike Champion's blog entry, XML 2006 Observations, ends with some thoughts/questions on JSON. Here are my answers.

'Urban Markup' by Gord Fynes

Will we see JSON substituting for XML in SOAP messages, RSS feeds, etc.?

Kind of, and no. I don't think we'll see a JSON flavored SOAP, but there's already such things as JSON-RPC, so for those SOAP usages that are RPC in nature, the answer is yes. For those SOAP usages that are document-oriented in nature, there are such things as RESTful JSON.

But it's a stretch to imagine taking on the work to enable JSON-flavored [XML-thing]. For those things that XML works well for, follow the old adage: if it ain't broke, don't fix it.

Asking about feeds is telling also. Markup (XML) is fantastic for augmenting text. I have a bias; I've been doing text markup for 20 years (nroff, tex, GML, BookMaster, HTML, XML). Nothing better than to be able to in-line visual or semantic augmentation with your text, because it's sooo inline. Readable. Imagining writing a document as a big JSON object, with text strings littered with objects indicating augmentation is ... horrifying.

But that's just the text. Feeds don't neccessarily carry just text (well, at least in the future they won't). If the feed content is data, then sure, why not JSON. And the feed meta-data itself probably also better lends itself to a data layout than XML.

So, my take is: XML for text, JSON for data. Until the day the computers take over the world, we'll always be needing text, somewhere, and XML is the answer. But I'd rather be specifying my data in a data definition language like JSON, compared to doing it in XML as wonky marked up narratives.

Will people store JSON persistently?

Yes. If folks are storing XML persistently, and that XML is used to describe data in some way, I will argue that you'll save space by converting to JSON. Unless you perhaps take into consideration the fantastic compression you can get on XML, because of the extreme verbosity (what ever happened to anonymous end tags?).

That will require JSON-flavored APIs, schema/"data contract" languages, query/transformation languages, apps, etc.

Sure. Guess what? A schema for JSON in JSON is pretty simple. And ... readable. Query/transformation languages? Yup. But they won't be languages built on JSON. They will be the languages we use to do our jobs; JavaScript, Java, PHP, Python, Ruby, C, C#, etc. Because JSON, like the programming languages we use, has built-in constructs for numbers, strings, arrays, hash tables, etc. With XML, you need to apply some other structure on top of the XML itself to get this level of semantic. And don't get me started on query/transformation languages. XSLT is ... hard. James Governor asked on the #redmonk irc channel the other day if anyone had thoughts on XQuery, and my response was: tried to read the docs once; much like C++, I figured it was too complex, so I decided to ignore it, and hope it will just go away.

I'm sure that lots of us at in the MS Data Programmability team are pondering what we should think and do about JSON.

Excellent. Keep us informed.


Photo 'Urban Markup' with a nice CC license, by Gord Fynes. Found using the Flickr's Create Commons Search.


Update: 2006/12/22: fixed a typo

Raven Rock

Vacation. Holiday. w00t!

Raven Rock State Park

On Wednesday, I took the opportunity to head down to Raven Rock State Park to do some light hiking. Gorgeous morning. Crisp. Empty park, when I got there. I only started getting a bit warm, with my jacket on, right before I got back to my car. Took a few pictures.

I'm always amazed when I tell people in the RTP area about Raven Rock, and so few people have heard about it. It's about an hour from the triangle. A nice park with a few miles of hiking trails, most of which take you down to the Cape Fear river. The main place to go is Raven Rock itself, which is a cliff on the river, which you get to via a long set of steps. There's some rocks to climb on for the kids.

North Carolina has a pretty good state park system, with a functional web site listing the parks by name, location via a map, current park conditions, and nice printable PDFs of the individual parks.

Raven Rock is pretty tame, itself, though I took my walking stick, and was able to (=forced to) put it to good use a few times negotiating steps on the trail, and rocks off the trail. For the more adventurous, Hanging Rock provides a fantastic view with a moderate hike. Stone Mountain is one of my favorites; walking stick required, and the landscape at the top of the mountain is strange and gorgeous. Both of those parks are a few hours from the triangle, but worth the trip.

leave developerworks?

'Firewall' by Lili Vieira de Carvalho

David Shields advises me to:

leave the firewall and use WordPress. It's more fun and more reliable outside the firewall. You'll also learn more from those who will only be able to read your blog because it is in the real world.

I'm not behind the IBM firewall. Developerworks is completely outside of the IBM firewall.

I switched from a blog at blogger to this blog at developerWorks about 3 months ago. Why switch? My new job entails doing some community outreach, so I thought it was appropriate to do some of that, via blogging, at an IBM site. And the price was right.

dWorks is currently using roller, and so I suppose there is some peer pressure involved now, since I occaisonally have a beer or coffee with "the Roller guy", Dave Johnson. But seriously, I do like roller, generally. Better than blogger, when I was using it.

There are some downsides with the current blogging situation:

  1. Our roller is set up to use Velocity as it's templating language.
  2. It supports tags, but can't automatically generate feeds based on the tags. Though you can hack that. My understanding is that this is resolved in a later (or future) release.
  3. I don't feel as 'free' to post purely personal stuff at the IBM site.

I also had a blog inside the firewall, and I will concur with Dave on all his points w/r/t those types of blogs. I don't have time to blog here the way I'd like to; managing another blog isn't very practical. Likewise, per one of the points above, I'd been thinking about setting up a separate personal blog, for those times when I wanted to get personal. But like an inside the firewall blog, it's another resource to manage, so I'm not going that route now.

I'm not sure that there are limitations on any IBMers creating blogs at developerWorks, so if any IBMers out there want a blog here, let me know, and I'll pass the info along to you. I just asked for one, and got it in two days. I asked for a wiki at the same time, and got that in one day (we use Confluence for our wiki software, which is fantastic).


Photo 'Firewall' with a nice CC license, by Lili Vieira de Carvalho. Found using the Flickr's Create Commons Search.

can't teach an old dog new tricks?

'Change Priorities' by Christine

On JSON, recently:

Dave Winer: IT'S NOT EVEN XML!

James Robertson: Yeah, I really want another parser in my application ...

I'm reminded of the 'debate' between evolution and intelligent design.


Photo 'Change Priorities' with a nice CC license, by Christine. Found using the Flickr's Create Commons Search.

Tuesday, December 19, 2006

Five things

Bill tagged me.

Five things you didn't know about me:

  1. That device I'm staring at while on my afternoon walks is not a Blackberry, I'm not reading email. It's a Palm Pilot, I'm reading Planet Intertwingly.
  2. I was a garbage man at my dorm, freshman year in college.
  3. My first computer was a PCjr.
  4. I was asked to leave St. Peter's Basilica in Vatican City, because I kept putting my hat on.
  5. I own a couple of pairs of pants.

Tag: John, Nick, Dave, Rick and Robert.

Tuesday, December 12, 2006

2006-12 International PHP magazine articles from IBMers

2006 December International PHP Magazine

In the December 2006 edition of the International PHP Magazine you'll find articles by some of my IBM colleagues:

  • PHP - A Language Implementer's Perspective - Experiments With the PHP Engine
    By Graeme Johnson and Zoë Slattery

    In this article we will describe some experimental work in building a PHP engine from existing virtual machine components. We were interested in seeing if we could reuse high performance VM components to create a high performance PHP implementation. We will talk about the process that we went through and what we learned about PHP along the way.

  • Service Component Architecture for PHP - Reusable Components and Effort-free Web Services
    By Matthew Peters

    In this article we will survey some of what Service Component Architecture (SCA) for PHP offers the programmer. We have high hopes that the combination of reusable components, which can be called either locally, or remotely via Web Services, with the same interface will be of interest, and that anyone who works with Web Services may be interested in the ease with which an SCA component can be deployed as a Web Service: a simple matter of adding annotations and dropping the component under the web server's document root.

Both Matthew and Graeme presented on these respective topics at the International PHP Conference last month.

Graeme; sorry I had to link you to my blog, I still can't find yours :-)

Friday, December 08, 2006

wii guitar

'I wanna be a guitar hero' by ckirkman

yummy ...

MIDI Control for Music with Wii Remote: Teaser

Must. Hookup. To. Guitar. (via Ableton Live via TonePort)

I can already imagine the hours of practice I will be avoiding.

Isn't it great when folks use standard componentry?


Photo 'I wanna be a guitar hero', with a nice CC license, by ckirkman. Found using the Create Commons Search Site.

Technorati Profile

Thursday, December 07, 2006

New personalized license plate

Thought I'd take the opportunity to teach the boys the concept of hexadecimal.

Wednesday, December 06, 2006

Thank you Mr. X

Dave Shields posted a blog entry the other day, "Yogi Yarns - On being lucky. First is not always best", in which he talks about his involvement in IBM's first official open source project, Jikes. Dave's current posts are a great read on open source in general. Highly recommended.

'Mr - X' by Luiz Carlos

I couldn't resist sending him a note though, about a small piece of source code that I managed to convince my IP Lawyer at the time, Mr. X, to 'give away'. This was 1994, and giving away source code wasn't something that normally happened in IBM at the time. Dave reposted my note in his blog.

Of course, the real credit goes to Mr. X. I swore I was going to give Mr. X a heart attack at some point, with all the "crazy talk" that I threw at him. For some reason, he actually listened to me during my tirades, and realized that this particular rant, of wanting to give some customers some relatively harmless / worthless code, was not a completely stupid idea, and ran with it. The resulting license that he had me add to the distribution bares a striking similarity to open source licenses you see today. Remember, this was 1994.

Of course, the real reason I responded was that it's impossible to resist someone saying a record can never be broken. The question is, who's going to break Mr X's record?

I'm also reminded of an opposite case. Way back when, this guy I'd never heard of, Ward Cunningham, had a program on his web site called WikiWikiWeb. I was facinated. So much so that I wrote a lame clone of it in REXX for OS/2. And then told Ward about it. This was about the same time, 1993 or 1994.

Ward emailed me a few months ago, asking me if I still had the source. I never distributed the source, because, that was something that simply wasn't done. I had written some of it at work; it was IBM property, I couldn't just give it away.

I had a fun night, that night I got the email, trolling through lots of my old source code. I have stuff going back to the early 90's. But I couldn't find my wiki clone. Sad. If I HAD given the code out, there'd be a much better chance of it still be available, somewhere.

Update: Mr. X is Greg Doudnikoff.


Photo 'Mr - X', with a nice CC license, by Luiz Carlos. Found using the Create Commons Search Site.

Thursday, November 30, 2006

choose JSON

'stop' by MarkNick

In Should You Choose RELAX or JSON Now?, Robert Sayre claims "100% of the data-oriented use cases can be served better and faster by JSON. No 80/20 truism."

+1

I've had a love / hate relationship with JSON over the last year, but I'm currently very positive on it. It has all the basic data types you need, and no more: numbers, strings, boolean, hash tables, arrays, and null. And it's not a document.


Photo 'stop', with a nice CC license, by MarkNick. Found using the Create Commons Search Site.