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.
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.
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.
I’ve been following a great discussion on Susannah Fox’s blog today. The Lohr article that sparked her post and subsequent comments have taken up the position that Evidence Based Medicine tends to dismiss the role of intuition. I think that is true and reflects a cultural phenomenon that seeks a deus ex machina. Fads emerge and advocate for the latest savior (or rainmaker), eschewing the difficulties and hard work involved in engaging with truly complex, multi-factorial systems.
I’m reminded of a music professor who told my composition class that, “you can’t break the rules unless you first understand the rules.” I’ve thought about this for a long time, why is it you can’t be creative in ignorance of the rules? Ignorance of impossibility, after all, is often the fuel for innovation. Yet it seems to hold true that the best musicians don’t run away from convention, they master and move beyond it. Does a powerful command of the grammatical rules and literary traditions of English limit your creativity in writing? No, it hones and unleashes it!
In it’s ideal form, EBM is a foundation of evidence and rules that should empower and propel individual physician and patient creativity. In the quality improvement context the standard of care is there to help us avoid repeating other’s mistakes, not to tell us what to do under all circumstances. The prosaic landscape of diagnostics and therapeutics are governed by probability distributions over endpoint outcomes, but beyond this there remains endless room for innovative thinking and intuition because any time we come into connection with real people and real bodies, we exceed the ability of our formalisms to compute. We can only meet the challenge of other’s humanity through the lens of our own.
Four days ago I stopped getting mail from my academic mail account on my iPhone and Mac Mail. I was in a bit of a crunch so didn’t really pay attention since I still got some mail on my business and non-profit accounts in a unified Inbox. Imagine my surprise Monday when I realized I hadn’t received new and important e-mail since Thursday!
Apparently Gmail engineers fixed some bugs in the last month or two and when those changes propogated to my account, it changed the behavior of certain filters that were not, er, perfectly well defined. If you had filter (such as before:2011/01/01) to cause all messages before a certain date to skip the Inbox (which is useful when migrating from old accounts), then this may have happened to you. The Gmail Inbox feeds through Imap to the iPhone and Mac Mail clients, so they would no longer see new mail. The mail is still there, just under “All Mail” instead. Fix the filters, and life goes back to normal.
The Higgs Boson has finally made an appearance on stage at the LHC (large hadron collider)! Looks like the fireworks are in Europe this 4th of July. The last element of the standard model has been empirically confirmed leaving us with 12 constituent particles, 4 forces, and the Higgs boson for mass (not shown) to predict most of what we see in the observable universe.
Back in 1995 I had the good fortune to be sitting in the class of astrophysicist Alan Guth (http://en.wikipedia.org/wiki/Alan_Guth), co-inventor of Inflationary model of the Big Bang which explained the uniformity of the cosmic background radiation discovered by physicists Penzias (now at NEA!) and Wilson. Continue reading
A colleague recently emailed an argument that higher level computing providers like Heroku are doomed due to the “Fundamental Law of Another Mouth to Feed” where the margin requirements of the services these providers are reselling means they will eventually lose to someone without that margin in their supply chain. As with any asymptotic complexity argument, this is sound theoretical thinking, except it ignores the significance of constants in the equation. Following is a slightly cleaned up version of my response.