Pure speculation: MS servers for OSX?

October 21st, 2014

Why Microsoft CEO Satya Nadella Loves What Steve Ballmer Once Despised | WIRED

(Via KimN.)

Now, what if MS became the server supplier for Apple’s devices (OSX and iOS)? Apple doesn’t seem to want to be in that business, and IBM is doing something else.

TEDx Uppsala tickets open

October 19th, 2014

I’m copying over the promotional email I got. Note that the last day to apply for a ticket is October 24, 2014.


A Day of Mind-Blowing Talks and Personal Stories

 TEDxUppsalaUniversity will run their second event ever at Uppsala Stadsteater on Saturday, November 15. 

 Eight local and international speakers, ranging from scientists to authors to activists to musicians, will give unique, surprising and personal talks around the theme ‘Who Cares?’. Join us for a day of brilliant talks and workshops that will blow your mind and make you wonder: what do I really care about?

 TEDx is designed and organised entirely by local volunteers in Uppsala. The independently organised event will be held in the globally recognised TED style.

 And our guests are…..

 Speakers are being added to the event throughout the whole of October, and the list is still growing. Preliminary speakers include: 
  • Sofia Falk, a former undercover agent for the military who has since devoted her life to making organisations better for women
  • Ida Lod, Stockholm-based violinist and performer will give us a musical piece with a surprising twist
  • Otto Cars will talk about the dangers of infectious diseases in today’s world.
  • Alan AtKisson will tell us “how to create a long-term global art project that can involve thousands of people and change the world”
  • Malin Forsgren, who shelved her career to build the Swedish branch of worldwide organisation Operation Smile, which now provides half a million free health checks and 20 000 cost free operations every year to children with facial deformities, will talk about how “reason leads to conclusion, but emotion leads to action”.
  • Martin Wehlou will show us how he aims to revolutionise the way doctors make their everyday decisions.
  • Jan Chilar will give a short, practical talk “what does ‘clean’ mean?” will challenge our conception of how we should use chemicals in our lives. From bathing rituals of ancient Romans to sophisticated cleaning products of contemporary society, improvements in hygiene have always gone hand in hand with increased public health… but do we need all those cleaning products? What if our grandma was right when she told us to spray vinegar all around the house?
  • More to come!

Watch TEDxUppsalaUniversity live!

If you want tickets to the live event at Uppsala Stadsteater on Saturday, November 15 can apply on the TEDx Uppsala University website www.tedxuppsalauniversity.com from Monday, September 29.

The event will also be live streamed on our website during the event for those who want to be a part of TEDx live. Get a few friends together and watch a day of brilliant ideas and personal stories. Edited videos of each talk will be posted the week after the event. Check our websites, Facebook or twitter for this release.

Lakin Anderson, Film, Marketing & Media Coordinator, TEDxUppsalaUniversity 2014, Uppsala, Sweden  lakin@tedxuppsalauniversity.com +46 (0) 760 90 58 52

EU home affairs chief secretly worked with US to undermine new privacy laws

September 28th, 2014

EU home affairs chief secretly worked with US to undermine new privacy laws, campaigners claim — Tech News and Analysis: “The digital rights group Access has revealed an email that suggests outgoing EU Home Affairs Commissioner Cecilia Malmström collaborated with the Americans in a successful attempt to water down Europe’s new privacy laws.”

Rethinking the Electronic Healthcare Record – The Book

September 23rd, 2014

My book “Rethinking the Electronic Healthcare Record” is now out. You can get it almost anywhere, but the best description is on the Amazon.com page.

The blurb:

9789198170603-Case-2 epub

Current electronic healthcare record (EHR) systems utterly fail to assist doctors and nurses in their work; designed without recognizing the actual needs of those users, but rather solving mostly administrative problems instead. This failure results in an ongoing lack of safety and efficiency in care delivery. We need to do much better. This book lays out how an effective EHR system should be built to deliver effective support for a doctor throughout the phases of her profession, from how a doctor learns her profession, to how she examines a patient, analyzes clinical findings, reaches conclusions, and finally applies therapy. The result is accurate, economic, safe, and consistent healthcare.

Scrivener, BibDesk, LaTeX, and symlinks

June 30th, 2014


  • Writing in Scrivener on OSX
  • Using BibDesk for bibliography
  • Writing several different articles or books using the same BibDesk database
  • Getting the database into the local folder tree so that it is included in version control

Assume the database is at:


In Scrivener, use the following in the meta-data page, which is the first page in the manuscript:

Base Header Level: 1
Title: Rethinking the EHR
Author: Martin Wehlou, MD, CISSP
BibTeX: ../BibRef
mycopyright: 2014 Man in The Middle AB, Sweden.

Then, in the base folder of your book or article, create a symbolic link to the real BibDesk database file:

ln -s ~/Documents/BibDesk/Database/References.bib BibRef.bib

The “base folder” is the folder where your .scriv file is. Scrivener creates the .tex files in a subfolder, so that’s why you need the “..” before “BibRef” above. By the way, I called the link “BibRef” just to make it clearly different from the actual database name, but you can use anything you like. As long as it doesn’t contain blanks or strange symbols.

Now everything works and life is good.

Rethinking the Electronic Healthcare Record

June 24th, 2014

As mentioned before, I’m writing a book about how the EHR should be built and why. The latest, and possibly last, draft is available at:


This draft is significantly shorter and more focused than earlier drafts. I’ve also incorporated the “combinatorial matching” idea from L.L. Weed, and modified it to be more scalable. With that, I have a knowledge-based support and documentation system, with a complete flow from first patient contact to treatment. It goes way beyond what any current EHR systems do, and would be the help we need as doctors, instead of the drag of the current generation.

Any comments are welcome. My email can be found under the section “Draft Versions” in the manuscript. You can also comment on the blog itself, of course. At least during the first two weeks, then they’re closed (due to spam).

Swift, missing idea #1?

June 3rd, 2014

Going through “properties”, I’m not finding anything about private and public properties, or protected. I’m also not seeing anything about header files and class files, so at first blush it seems we can’t hide properties from other classes. How do we stop people from using the wrong properties?

That can’t be good. I must be missing something.

Swift, good idea #1

June 3rd, 2014

There’s a lot of good stuff in Swift, of course, but adopting Ruby’s block syntax seems a really nice idea. It’s called “trailing closures” in Swift, but it’s the same thing, as far as I can see. An example from the text:

let strings = numbers.map {
    (var number) -> String in
    var output = ""
    while number > 0 {
        output = digitNames[number % 10]! + output
        number /= 10
    return output

Everything between braces is the block, um.., trailing closure.

Excerpt From: Apple Inc. “The Swift Programming Language.” iBooks.

Swift, bad idea #3

June 3rd, 2014

Function types are declared like:

var mathFunction: (Int, Int) -> Int

In this example: mathFunction is a variable that can hold any function that takes two Int as parameters and returns one Int. Fine, so far.

Functions can take such functions as parameters and also return them. For instance, a function taking a function like the above as parameter would be declared as:

func printMathResult(mathFunction: (Int, Int) -> Int) 

A function returning a function taking a Bool as parameter and returning an Int could look like:

func chooseFunction(choice: Bool) -> (Int) -> Int

Notice how the two pointer operators (->) mean to entirely different things. The first indicates a return value, the second is part of the function signature of the returned value.

Let’s imagine what a function type would look like if it takes a function of an Int, returning an Int as parameters, and returns a similar function:

func confusingFunction(number: Int) -> (Int) -> (Int) -> Int

I may very well have written that wrong, but can you tell? This is totally different from old school C declaration of function prototypes, but I’m far from sure it’s any easier to understand. Maybe judicious use of “function types” (or “typedefs” as we used to call them 30 years ago…) could make this clearer.

Swift, bad idea #2

June 3rd, 2014

Function parameters now have distinct “internal” and “external” parameter names. The simplest form does away with named parameters when calling functions, that is, we can now do:

mysteriousFunction(15.2, "yeah, right", "only on a sunday", -1)

…just like in the good(?) old days of plain C/C++. Yes, you can force naming of parameters on the caller’s side, but it’s more work than the sloppy old way. Guess how often we’ll see that now? So, simple, inscrutable, and bug prone is the new default.