Divestment

It’s been an age since I last updated this blog. The changing nature of my work and the increased opportunities for adventures with my family have taken the time I used to spend on writing articles and posts. With our kids heading off to college in the Fall, I would like to return to communicating more if only because writing for a public audience has a tendency to improve your own thinking and also others have sometimes found what I write to be of use.

One big investment I’ve been making over the past weeks is starting to make significant shifts in where I spend my time and money online towards emerging technologies like Substack and Bluesky and away from Amazon, Meta, and Musk-owned brands in particular. I’m taking a pragmatic approach, keeping those products that are hard to do without for now but existing those that are secondary to my day to day life. For example I cancelled Instagram and Threads, but am keeping Facebook for now but choosing not to log in and deleting the apps and notifications from my phone.

We’re also looking at making changes in where we shop, where we get medical care, etc. This is not just responding to the poor behavior of the people who run these properties, but also to the decline in quality of experience that monetization efforts have driven. In particular, while I have some concerns about Google as an enterprise, the SEO and placed ads in Google results swamp most useful content, making the internet like a highway covered in billboards through which you can no longer enjoy the landscape. I’ve been trying Duck Duck Go as my primary search engine and finding that it’s good enough for my purposes, does not have the same SEO-heavy biases, and that I don’t really miss Google much anymore.

I’ll be writing more about how to diversify your online footprint and what some good alternatives are in the coming weeks. In the meantime, I’m sending my best wishes to everyone who is being negatively impacted by the current social and political changes.

MyIBD and Personalized Learning highlighted by Harvard Business Review

Heather Kaplan of the Cincinnati Children’s Hospital, with a little help from the rest of us, published a highlight of the state of our work on the Personalized Learning System via HBS’s online blog.  The article emphasizes the patient-physician collaboration model we’ve been working on and that I teased at MedicineX last week.

http://blogs.hbr.org/2013/10/a-personalized-learning-system-for-improving-patient-physician-collaboration/

My Dissertation Defense Announcement

Title
Crowdsourcing Health Discoveries: from Anecdotes to Aggregated Self-Experiments

Time & Location 

July 26th, 1:00 PM, E14-244

Thesis Supervisor

Frank Moss, Professor of the Practice of Media Arts and Sciences, MIT

Committee 

Henry Lieberman, Principle Research Scientist, MIT
Peter Szolovits, Professor of Computer Science and Engineering, MIT

Abstract

Nearly one quarter of US adults read patient-generated health information found on blogs, forums and social media; many say they use this information to influence everyday health decisions. Topics of discussion in online forums are often poorly-addressed by existing, clinical research, so patient’s reported experiences are the only  evidence. No rigorous methods exist to help patients leverage anecdotal evidence to make better decisions.

This dissertation reports on multiple prototype systems that help patients augment anecdote with data to improve individual decision making, optimize healthcare delivery, and accelerate research.  The web-based systems were developed through a multi-year collaboration with individuals, advocacy organizations, healthcare providers, and biomedical researchers. The result of this work is a new scientific model for crowdsourcing health insights: Aggregated Self-Experiments.

The self-experiment, a type of single-subject (n-of-1) trial, validates the effectiveness of an intervention on a single person. Aggregating the outcomes of multiple trials can improve the efficiency of future trials and enable users to prioritize the sequencing of trials for a given condition. Successful outcomes from many patients will yield evidence to motivate future clinical research.  Aggregated Personal Experiments enables user communities to replace anecdotes with repeatable trials that can be run in the context of their daily life.  The properties and viability of the model were evaluated through user studies, secondary data analyses, and experience with real-world deployments.

You can check it out at http://www.personalexperiments.org

 

What can a concerned citizen do in the face of injustice?

The juxtaposition of verdicts in the Zimmerman and Alexander cases, and the unapologetic, non-reflective response of most of our political leadership leaves me wondering what I, as a concerned citizen I can do in the face of a pervasive national moral cowardice. As a citizen of a republic, I could choose to move to Florida or Mississippi and cast my vote against the representatives of injustice, misogyny, ignorance and racism who seem to frequent the media. But would that really have an impact proportionate to the personal sacrifice involved? Unlikely.

Continue reading “What can a concerned citizen do in the face of injustice?”

Advanced inspector middleware for Clojure nREPL

Last night I promoted a new nREPL middleware project, ‘nrepl-inspect’, derived from the javert library.

nrepl-inspector on GitHub

This repository contains:

  • an Emacs client file that extends nrepl.el, and
  • a rich generic middleware inspector that runs under nREPL.

Key features include:

  • ‘C-c C-i’ inspects the var at point, or any value returned by eval of an arbitrary expression in the current buffer’s active namespace,
  • a simple model for recursing into sub-objects based on a value index map maintained in the middleware during serialization of the value, and
  • a rendering method extensible for custom types.

My goal is to be able to stack navigate a Datomic database given an Entity, the example in the repository should support that with just a little more work.

Please note, while I use this in my day to day development, but it’s not yet well packaged and has been minimally tested.  It currently does not truncate maps or sequences, so please don’t inspect ‘(repeat 1)’!

Clojure Debugging ’13: Emacs, nREPL, and Ritz

[NOTE: The release of cider deprecates much of the content here.  I will post an update on Clojure Debugging ’14 early in the near year]

I’m ramping up for a new set of development projects in 2013 and 2014.  My 2010 era setup with slime and swank-clojure is unlikely to remain a viable approach throughout the project.  I’ve decided it is time to join the nREPL community as well as take advantage of some of architecture innovations there which may make it easier to debug the distributed systems I’m going to be working on.

Features I’m accustomed to from common lisp slime/swank:

  • Code navigation via Meta-. and Meta-,
  • Fuzzy completion in editor windows and the repl
  • Documentation help in mini-buffer
  • Object inspector.  Ability to walk any value in the system
  • Walkable backtraces with one-key navigation to offending source
  • Evaluate an expression in a specific frame, inspect result
  • Easy tracing of functions to the repl or a trace buffer (in emacs)
  • Trigger a continuable backtrace via watchpoint or breakpoint

Only the first three of these features is available in the stock nrepl.  The rest of this post will discuss how to setup a reasonable approximation to this feature set in Emacs using nREPL middleware providers as of May 2013.

Continue reading “Clojure Debugging ’13: Emacs, nREPL, and Ritz”

Agile Software Metrics

The rise of dynamic software development methodologies such as Extreme Programming or Agile Programming, reflect the inherent dynamism of modern software design.  The malleability of software, the rapid evolution of consumer and technology driven requirements, the difficulty of writing accurate specifications given all the unknowns, and the sheer complexity of the software ecosystem itself makes the ancient development waterfall from specification through execution and QA to release a hazardous and mostly futile affair.

Most software developments fail.  While the situation has improved over the last decade, this remains mostly true today.   Less than a third of all software projects meet their objectives in approximately the time expected.  Over 10% of all projects fail without deliver anything, and most of the rest under-deliver, are terribly late, or way over budget.

This blog post is a thinking-out-loud exploration of how modern Agile methods address these problems and how my thinking is evolving with regards to how success is defined and the probability of success maximized.

Continue reading “Agile Software Metrics”

Guided by the Evidence?

I was reading an article about the controversial Dr. Oz this morning when a quote from a doctor struck a nerve.  In reaction to Dr Oz’s embrace of alternative medicine, he stated: “I’m guided by the evidence.”   That’s a wonderful and comforting sentiment to any logical person.  We have a methodology called science which helps us move towards the truth through a repeated, disciplined process of experimentation.  This process allows us to build confidence in our opinions and actions when we have accumulated sufficient evidence or can appeal to previous authority.  The problem is that evidence in medicine is rarely imbued with absolute authority, yet the dogma of medicine is that peer-reviewed journal results are the primary guide to treatment. Clinical trials should be viewed as the starting point in the practice of medicine, not the destination.

Continue reading “Guided by the Evidence?”