Monday, October 15, 2012

Android orientation observations

I really really enjoy my Nexus 7, and I'm excited about the prospect of a 10" Android tablet from Google. At first blush, the tablet appears to be a personal device, but I have to say, it's so easy to share... I can hand it to you and say, "look at this": shared. I can sit down on the couch with one of my children on each side and we can watch cooking videos together: shared.

This is not OLPC... this is One Tablet per Couch, and I think that's a really important distinction, until the tablet supports local development, which I don't think it ever will.

I like the portrait-centred form factor, and I am frustrated by applications that flop around when I lay the tablet flat. I've talked about this before; when I look at the tablet I see a perfect place to prototype and play board games, for which you need to lay the tablet flat. A Monopoly board doesn't have portrait or landscape orientation. People sit around it and interact with it equally. This should also be true of a table when it is laid flat, and it can never be true of a mouse-driven device. Never. That's the power of touch.

At this point, I see the tablet having 3 basic modes, and I hope application design moves in this direction: portrait mode is for typical operation, like reading books or web pages, etc; certain types of content (video, text annotation, high quality images) break out into landscape automatically - I'll re-orient the device and share with the people around me when this happens; and laid flat, any other orientation is inconsequential - it's a free for all.

Please comment... this makes absolute sense to me, but maybe differs from other people's tablet experience.

My other quibble at this point, coming from a board game lover: SVG support in Ice Cream Sandwich and Jellybean is good, but not great. I would love to see an Android OS that provides better support for SVG filters and SVG DOM manipulation using WG XPath - but that's a subject for another day.

Tuesday, September 04, 2012

HL7: Open Standard

Monumental news this morning - the HL7 standard for healthcare messaging is becoming a much more free and open standard, providing standards and IP at no cost to implementers. I started to suspect this was in the works when Graham Grieve negotiated with HL7 to make the HL7 FHIR standard available at no cost for the draft edition, and then "we'll see about the normative edition". The discussions to make this happen go back at least two years, but of course this has been a common complaint about HL7, that cost of IP may be an impediment to implementation.

Not entirely sure I agree with that, since I see evidence suggesting this has not happened; however, for new initiatives like FHIR to gain traction on smaller local projects, and in particular in the growing area of mobile health, any such impediments need to be lowered.

I love working with HL7 and I love working with the members of both HL7 International and HL7 Canada/ Canada Health Infoway, and I have to say, this is truly fantastic news.

Keith Boone's post

Saturday, September 01, 2012

The real honeypot is in the Google Docs link...

Piers Hollott shared Keith Boone's post with you.
Wow! This is some radical transparency... Including Meaningful Use Common Data Sets
Keith Boone
The real honeypot is in the Google Docs link...
Healthcare Standards: Stage2 Final Rule Crosswalk from MeaningfulUse Objectives to Standards
Last time around, I put together a crosswalk from Objectives to Certification, and from Certification to Standards. This time, it's all in one spreadsheet. Sorry for the tiny type, it's quite a bit of...
View or comment on Piers Hollott's post »

My Review of Learning PHP, MySQL, JavaScript, and CSS, 2nd Edition

Great intro to key web technologies
By phollott from Vancouver Island, BC on 9/1/2012

4out of 5
Pros: Easy to understand, Clear
Best Uses: Intermediate
Describe Yourself: Developer
I recently read two books from O'Reilly Books dealing with JavaScript: "Learning PHP, MySQL, JavaScript, and CSS" and "Learning JavaScript Design Patterns" by Addy Osmani. The first book is a great introduction to four often essential technologies for getting things done on the web - I only wish this book covered managing XSLT using Sablotron in PHP 5.0 in more depth, but this is due to personal bias - in a past life, I built some cool things using these 5 technologies.

The design patterns book was also a very good read, though, I used it more of a refresher of design patterns in general - the patterns in this book were for the most part based on the standard Java design patterns, covering some of the nuances of classical vs. prototypal inheritance.

But let's face it, Object-based Development using JavaScript is obscure subject matter, and Osmani's book has some really indispensable advice: see how these patterns are applied within the JQuery library, which contains the best application of JavaScript Design Patterns you will find. This is truly great advice.

Which brings me circuitously to JQuery creator John Resig, for whom I have immense respect; and his latest foray into simplifying JavaScript to make it easier to use as a readily available first language, which I endorse completely. One thing I appreciated in "Learning PHP, MySQL, JavaScript, and CSS"... no semicolons!


But really, as long as you put separate statements on separate lines, there are virtually no situations where semicolons are essential. And in fact, I found the example code in Robin Nixon's book Much easier to read than the example code in Osmani's book. I may just have been converted to the darkside.

I highly recommend both of these books.

Friday, August 10, 2012

JavaScript: Your New Overlord

Piers Hollott shared J. Albert Bowden's post with you.
Shared due to presence of Crockford #javascript  
J. Albert Bowden
JavaScript: Your New Overlord
View or comment on Piers Hollott's post »
Google+ makes sharing on the web more like sharing in real life. Learn more.
Join Google+
You have received this message because Piers Hollott Unsubscribe from these emails.
You can't reply to this email. View the post to add a comment.

Wednesday, August 08, 2012

Yet another odd idea

Here's an idea, combining the Intent-based event model in Android with Infinite Jest style hyperfiction. What if you wrote a short novel, or rather series of short novels, and instead of using ePub or PDF or whatever, you used an Android application, targeting people's Android devices. Each novella would be say, 15,000 words long, but they would communicate with each other using intents to create footnotes out of a shared index, distributed over multiple texts. So you install one book and you get a 15,000 word novel. You install two books, and you get two 15,000 word novel, each of which has 5,000 words worth of footnotes. You install a third book and you get three 15,000 word novels, each with 10,000 words worth of footnotes.

Would you have to write all 4 concurrently, though?

Monday, July 23, 2012

HL7 FHIR Aggregation

Really good explanations recently on Grahame Grieve's weblog recently describing HL7 FHIR (Fast Healthcare Interoperability Resources) from the perspective of v2, CDA and v3 implementation.

FHIR for v3 and CDA implementers
FHIR for v2 implementers

One thing I am still trying to understand is the issue of aggregation, which is accomplished using Atom feeds, which in itself makes a lot of sense, and may have all sorts of side benefits, though it is a little frustrating if your browser (ie Opera) tries to handle the aggregation as though it were a blog feed... but there are two kinds of aggregation we must consider here one when we aggregate a number of like resources, for instance as the result of a non-deterministic search, and the other when multiple types of resource are aggregation into a Message (for v3) or Document (for CDA) Resource.

I find this confusing because it appears that position is used within the Atom syndication to determine which Resource to use as the transport wrapper. Still trying to wrap my head around this. Should prove to get interesting very quickly.

Tuesday, July 10, 2012

My Review of Mobile JavaScript Application Development

Mobile JavaScript Hybridization

By Piers Hollott from Victoria, BC on 7/10/2012


4out of 5

Pros: Well-written, Easy to understand

Best Uses: Intermediate

Describe Yourself: Developer

I have just finished reading a review copy of Adrian Kosmaczewski's book on Mobile Development using JavaScript, and I highly recommend it, particularly if you are faced with a decision about mobile development frameworks and you have a team which is already familiar with hybridized JavaScript approaches like JQuery or GWT.

After dealing with some basic groundwork, Kosmaczewski devotes a solid chapter to each of the prevailing uses of JavaScript in the mobile arena: HTML5 with JavaScript, JQuery Mobile, Sencha Touch, and PhoneGap. While there are advantages to all of these approaches, the prevailing wind seems to indicate use of JQuery Mobile if you are already invested in JQuery, and Sencha Touch if you are building an enterprise-size solution.

Either of these approaches - actually, all of these approaches - will allow you to deploy to multiple platforms, which is a key component of JavaScript hybridization: ubiquity. The difficulty I have personally encountered is the flip side of the ubiquity coin, flexibility. JavaScript may be everywhere, but can also become everything, and this can lead to paralysis.

An example of this: I have recently been working on some development in with mobile SVG, which is becoming more and better supported on various mobile platforms. SVG is not hard to work with, and rolling your own application to do exciting things is enjoyable if you like that sort of thing; however... do you use HTML with embedded SVG? HTML5? Just SVG with E4X/EcmaScript (which is just JavaScript, really)? or Raphael.js, or Sencha Touch, which encapsulates it?

At some point, you just need to stick your paddle in the water and see which way the current takes you. And Kosmaczewski's book is a good starting point.


Promoting health? It's all in the game | ...

I really want to see this sort of technology succeed, in part because it demonstrates so much the principle of  "genius of the and" - gamification of health not involves the patient more with his own diagnosis and care, it can also provide his healthcare team with better, more regular check in points, as well as an access point for delivery of timely information. For healthcare to be successful, it needs to follow a pattern like this.

Okay, I'm a techie, and I can't help thinking on that level... this approach to delivery of information follows an, albeit loose, Model View Control (MVC) pattern - identifying what information is required to trace healthcare needs, then coordinating between patients' and practitioners' ability to view this information and respond to it, and formalizing a channel of communication between patient and practitioner, outside office hours.

Bertalan Meskó, MD
Promoting health? It's all in the game | Reuters
LONDON (Reuters) - Meet Roxxi - a feisty and fully-armed virtual nanobot. Billed as medicine's mightiest warrior, she's fighting an epic battle deep inside the human body where she launches rapid-fire...

Saturday, February 25, 2012


I firmly believe that most internet memes are quite silly, but the bit about Windows and "Con" is kind of spooky.

3,001 THINGS YOU DIDN'T KNOW!!! - 1) The moon smells like gunpowder. 2) The creator of the Nike Swoosh symbol (Caroline Davidson) was paid only $35 for the design. 3) You can't create a folder called "Con" in Microsoft Windows. 4) The formula for Coca-Cola has never been patented. 5) Al Capone once said, I am like any other man, all I do is supply a demand. 6) There are five states in United States with no sales tax. They are Alaska, Delaware, Montana, New Hampshire, and Oregon. 7) Calcium in bones absorbs X-Rays the most, so bones look white on the radiograph. Fat and other soft tissues absorb less, and look gray. 8) Bruce Lee was the Hong Kong 'cha cha' dance champion in 1958. 9) Erotica is sexually oriented material that is not considered "pornographic" to the viewer. 10) Elvis Presley was a black belt in karate. 11) Amphetamines are similar to cocaine, the main difference being that they are synthetic, longer acting, and cheaper to buy. 12) A DVD has an about 100 year life span. 13) Every person, including identical twins, has a unique eye and tongue print along with their finger print. 14) It takes six months to build a Rolls Royce, and 13 hours to build a Toyota. 15) The words "naked" and "nude" are not the same thing. Naked implies unprotected. Nude means unclothed. 16) James Bond's creator, Ian Fleming, was a real spy for the British Navy during the World War II. 17) You're born with 300 bones, but when you get to be an adult, you only have 206, why? Because they fusion one to another. 18) A shrimp's heart is in its head. 19) All the numbers on a roulette wheel add up to 666. 20) A lump of pure gold, the size of a matchbox, can be flattened into a sheet the size of a tennis court. 21) Ernest Vincent Wright wrote a novel with over 50,000 words, none of which containing the letter "E". 22) Birds are largely unaffected by spicy things, like chilies, as they are not sensitive to capsaicin, the hot stuff in chilies. 23) The Bible devotes some 500 verses on prayer, less than 500 verses on faith, but over 2000 verses on money and possessions. 24) Rubber bands last longer when refrigerated. 25) Americans, on average, eat 18 acres of pizza every day. 26) The White House has 35 bathrooms, 3 elevators, 132 rooms, and 412 doors in it. 27) The ashes of the average cremated person weigh 9 pounds. 28) Identify a fake: The second hand on an authentic Rolex watch doesn't tick, it moves smoothly. 29) Pluto is no longer considered a planet, it is now known as a 'Dwarf Planet'. 30) Months that begin on a Sunday will always have a "Friday the 13th." 31) The Leaning Tower of Pisa has never been straight. 32) Alcohol can be detected in the blood as quickly as 40 minutes after your 1st drink. 33) The Olympic gold medal must contain at least six grams of gold. 34) Breasts contain no muscle tissue, so there's no exercise that can change their shape. 35) A Boeing 747 airliner contains 6,000,000 parts. 36) U.S. bills are 2.61 inches wide, 6.14 inches long, and are .0043 inches thick and weigh 1 gram. 37) The microwave was invented after a researcher walked by a radar tube and a chocolate bar melted in his pocket. 38) Apples are more effective at keeping people awake in the morning than caffeine. 39) Believe it or not but during the average human life, you will consume 70 assorted bugs as well as 10 spiders as you sleep. 40) Al Capone's business card said he was a used furniture dealer. 41) Cellulitis is a bacterial infection of the deepest layer of your skin. 42) Warm up before exercise. Cold, stiff muscles and ligaments are more susceptible to injury. 43) Footprints of the astronauts who landed on the moon should last at least 10 million years since the moon has no atmosphere. 44) Alfred Hitchcock had no belly button as it was eliminated during surgery. 45) The Titanic was the first ship to use the S.O.S signal. 46) It cost $7 million dollars to build the Titanic, and $200 million to make a film about it. 47) Every day 200 million couples make love, 400,000 babies are born, and 140,000 people die. 48) In 1980, a Las Vegas hospital suspended workers for betting on when patients would die. 49) Antarctica is the only land on our planet that is not owned by any country. 50) Jewelers Tiffany & Co., based in New York, is responsible for making the Super Bowl trophy. 51) The first credit card was issued by American Express in 1951. 52) Prince Charles and Prince William never travel on the same airplane as a precaution. 53) Paraskavedekatriaphobia is the fear of Friday the 13th. 54) The Mona Lisa has no eyebrows. It was the fashion in Renaissance Florence to shave them off. 55) It takes glass one million years to decompose, which means it never wears out and can be recycled an infinite amount of times. 56) One ragweed plant can release as many as one billion grains of pollen. 57) Heavy marijuana use lowers men's testosterone levels and sperm count and quality. Pot could decrease libido and fertility in some heavy smoking men. 58) Dogs...

Friday, February 17, 2012

PSAs from Canada Health Infoway

I keep seeing these PSAs from Canada Health Infoway. They're kind of compelling.
View or comment on Piers Hollott's post »
Google+ makes sharing on the web more like sharing in real life. Learn more.
Join Google+ and mortuary refrigerators

Quoted for #refrigerator...

Sears: Online department store featuring appliances, tools, fitness equipment and more
Find everything you need to make your house a home at From Craftsman tools to Kenmore appliances, fitness equipment to lawn and garden supplies, with our easy online shopping, the things yo...

Tuesday, February 07, 2012

Siri and Wolfram Alpha

I don't use Siri, and it really goes against my nature... I have a screen in front of me all day, so why add impedance mismatch through speech? What Wolfram Alpha offers, though, is the ability to share mathematical proof through a URL, and to a math geek, that's pretty cool.
"Siri accounts for about a quarter of the queries fielded by Wolfram Alpha"-Steve Lohr

Wolfram, a Search Engine, Finds Answers Within Itself
Wolfram Alpha Pro's creator wants his "computational knowledge engine" to appeal to more than math and science enthusiasts.
View or comment on Piers Hollott's post »

Neat. Mindwheel port for Windows posted by developer


Mindwheel was an impressive interactive fiction created by Synapse/Broderbund back in 1984, authored by former Poet Laureate Robert Pinsky. I am currently reading Pinsky's translation of Dante's Inferno, and it is interesting how lyrical, and yet claustrophobic and in places even creepy Mindwheel can be, much like Pinsky's Inferno.

This download is a Windows port, and what's really cool is it has been made available by Steve Hales, the lead developer for the project, and apparently also designed the audio sub-system in the ultra cool T-Mobile SideKick. From his about page:

"If anyone remembers: Fort Apocalypse , Slime, Dimension X, I coded and designed them with Ihor Wolosenko. I also coded and co-designed Mindwheel with Robert Pinksy, the famed poet and author. Working with Robert changed the way I read and write words forever. He was writing History of my Heart during the development of Mindwheel, so they have familiar themes. You can even get a deeper meaning behind Mindwheel, by reading this book. Although, he claims, they are not connected."

Mindwheel | Igor's Software Laboratories
Created in 1983, 1984. This was a mind blowing experience. My first experience with many computer science concepts that are commonplace now. Object oriented programming, Virtual Machines, AI, language...

Monday, February 06, 2012

Hot processing!

Great story from Ken Holman, quoted for coolness and also for #refrigerator...

Hot processing!
So I'm standing here at my desk preparing my UBL 2.1 PRD3 D1 package and I have two very long XSLT transformations to run. One takes 98 minutes and the other takes 124 minutes, running in Java in BSD on my Unibody MacBook 2.66GHz I7 (dual core; quad process). Input file 10Mb; output files total 183Mb.
I used to run these two tasks sequentially, but I today checked out "Activity Monitor" and discovered that while each transformation starts off using about 250% CPU time (sharing processors while building the memory structures), they quickly become single processor 100% (±2%) only (while traversing the memory structures).
So I decided to run them simultaneously instead of sequentially, saving me (theoretically) close to 98 minutes since most of the time appears to be at 100% and when they are both running Activity Monitor says they are both running at 100%.
So far so good ... but within minutes the fans on my machine get too noisy to talk over! I check the status bar and, sure enough, both fans are running >6000rpm. My fans so very rarely make any noise, so this is very noticeable and annoying.
My very wise wife suggests I go to the kitchen and get the flat-bottomed aluminum frying pan to place under my machine, upside down so the flat part of the pan is full on the bottom of the Mac. Maybe two minutes later the fans are running <4000rpm and we can talk without raising my voice over the fan.
Well, now as I'm typing this Google+ post the frying pan is getting hot! The fans are up to 4800rpm again and slowly rising.
So, I've just gone to the kitchen, brought out a second aluminum frying pan, put that one under the Mac, and put the first frying pan into the refrigerator to cool down for the next swap. Within a minute the fan is back down <4000rpm.
My review and editing of the above takes five or 10 minutes. Already this pan is heating up as it isn't as substantial as the first pan ... fan speed up to 4400rpm ... but the first pan will be cold by the time I need to swap again.
Such a simple improvement! Wish I'd thought of it.
View or comment on Piers Hollott's post »

Wednesday, January 11, 2012

Tim Bray on dynamic typing, Android, Java

See, this is why I respect Tim Bray's opinions so much; because he is a tireless member of my post-SGML/functional programming tribe. For instance, see this post on static vs. dynamic typing, and why it's not such a big deal with mobile Java for Android. I particularly like this comment, though:

"From: Tim Converse (Dec 29 2011, at 10:32)

"The Java language in particular suffers from excessive ceremony and boilerplate. Also it lacks important constructs such as closures, first-class functions, and functional-programming support."

This is a very concise version of the case for Scala over Java."

ongoing by Tim Bray · Type-System Criteria
Starting some time around 2005, under the influence of Perl, Python, Erlang, and Ruby, I became convinced that application programs should be written in dynamically-typed languages. You get it built f...

Tuesday, January 10, 2012


EmbassytownEmbassytown by China Miéville
My rating: 5 of 5 stars

"Embassytown is a fully achieved work of art." High praise from Ursula LeGuin (in her Guardian review), one of the writers who have really driven the potential for Science Fiction as artform. Best book I have read so far this year, for what that's worth, Embassytown is a maverick read, setting out a subtle but profound agenda, and then carrying it through to a stunning conclusion, much like Suzette Haden-Elgin's Native Tongue or Anthony Burgess's Clockwork Orange. If you have read it already, read the first few chapters again - it's amazing the detail employed to carefully inch the story forward, play it backward, then when all the pieces are in place, unleash it.

Miéville is known for his disapproval of the high fantasy genre, and this is the complete opposite of that, dealing with language not as a way of identifying class and race, but undermining this notion, as in the works of Burgess, Burroughs or Lessing, demonstrating how language creates class, language creates race, language creates culture, and then, going on to demonstrate, quite graphically, how language is also, to quote Burroughs, "a virus sent from space" - a destructive addiction.

China Miéville has always been a deep and deeply intelligent writer. Embassytown shows that he is, simply, a great writer who should not be ignored.

View all my reviews

Embassytown by China Miéville – review

Monday, January 09, 2012

XML Prague 2012 conference sessions

XML Prague 2012 conference sessions:

  • Opening Keynote - Jeni Tennison 
  • The eX Markup Language? - Eric Van der Vlist
  • XML and HTML Cross-Pollination: A Bridge Too Far? Robin Berjon and Norman Walsh
  • What XML can learn from HTML; also known as XML5 - Anne Van Kesteren
  • Panel discussion on HTML/XML convergence - Norman Walsh
  • XProc: Beyond application/xml - Vojtch Toman
  • Understanding NVDL - the Anatomy of an Open SourceXProc/XSLT implementation of NVDL - George Bina
  • JSONiq: XQuery for JSON, JSON for XQuery - Jonathan Robie, Matthias Brantner, Daniela Florescu, Ghislain Fourny and Til Westmann
  • Corona: Managing and querying XML and JSON via REST Jason Hunter
  • Treating JSON as a subset of XML: Using XForms toread and submit JSON - Steven Pemberton
  • RESTful XQuery - Standardised XQuery 3.0 Annotations for REST - Adam Retter
  • Compiling XQuery code into Javascript instructionsusing XSLT - Alain Couthures
  • Implementing an XQuery/XSLT hybrid - Evan Lenz
  • Transform.XQ: A Transformation Library for XQuery 3.0 - John Snelson
  • Building Bridges from Java to XQuery- CharlesFoster
  • My first XSLT editor - Tony Graham
  • A Wiki-based System for Schema and Data Evolution - Lorenzo Bossi and Alberto Trombetta
  • Standards update XPath/XSLT/XQuery 3.0 - Michael Kay and Jonathan Robie
  • Closing keynote - Michael Sperberg-McQueen