Archive for the ‘Technology’ Category

Top 10 Concepts That Every Software Engineer Should Know

Tuesday, July 29th, 2008

Check out Top 10 Concepts That Every Software Engineer Should Know. The key point here is concepts. These are (arguably) part of the foundation that all good software engineers should have:

  1. Interfaces
  2. Conventions and Templates
  3. Layering
  4. Algorithmic Complexity
  5. Hashing
  6. Caching
  7. Concurrency
  8. Cloud Computing
  9. Security
  10. Relational Databases

From a practical point of view, this still comes down to a Selecting Books About Programming issue. This list is just more focused on specific software technologies and techniques.

So many books, so little time...

UPDATE (7/30/08):

Here's a career related post with some good advice: Becoming a Better Developer.  Learn a New Technology Each Month (#5) seems like a little much. I guess it depends on what your definition of "learn" is.

Selecting Books About Programming

Monday, May 26th, 2008

This is tough to do. There are tons of technical books out there. Also, now that the Internet can instantly answer just about any question, the path of least resistance leads to arguments like this: Why I don’t read books.

There is no right or wrong when in comes to learning methods. It's a personal preference. I'm a book reader, but I can understand how Internet content (blogs, articles, etc.) has made it easy for people that don't like books (for whatever reason) to acquire relevant knowledge.

The availability of "Best" lists are abundant. For example:

OK, so once you get past the classics (Code Complete 2, The Pragmatic Programmer, Design Patterns, etc.) where do you go from there?

I will typically invest in books on emerging technologies that I want to fully understand (a recent one was Windows Presentation Foundation Unleashed -- highly recommended). The real challenge is finding a book that doesn't suck. Reviews and recommendations by other readers, like from the sites above, are the best resources.

My other vetting technique is standing (and reading) for long periods of time in the nerd-book section of a bookstore. There's no substitute for browsing the pages of a real book. The one that's still in your hand when your SO drags you towards the exit is probably the best one to buy.

Are you asleep at the wheel?

Saturday, May 17th, 2008

I guess I'm a sucker for EEG related technology (see all my HCI posts). So when I run across an article like A baseball cap that reads your mind I can't help but comment on it.

A baseball cap that reads your mind

Unlike other "mind reading" systems that make unrealistic claims, I can see this research and wireless technology leading to something quite useful. The ability to discern closed eyes and drowsiness by the presence of alpha waves (8-12 Hz) in human EEG is well known.

Developing an affordable product that provides a timely audible alert to a driver that's about to fall asleep could have a huge impact. From (beware, this is a PowerPoint presentation) Fatigue and Automobile Accident Risk:

The US Department of Transportation estimates that 100,000 accidents reported are due to drowsiness and/or fatigue. These crashes result in 1550 deaths annually (4% of traffic fatalities) and $12.5 billion in monetary losses.

Even the annoyance of false alerts would be worth the lives saved. And of course it's convenient that a lot of truck drivers already wear baseball caps.

iPoint Presenter

Monday, March 3rd, 2008

The human-computer interface (HCI) will continue to be a major challenge for the future. The iPoint Presenter is an approach that makes a lot of sense. It's been depicted as the future of computer interaction in movies like Minority Report and could easily be imagined as the next generation Wii.

Unlike the EEG-based "mind reading" devices that I've discussed before, this technology could be made affordable and reliable, so it holds much more promise. Plus that, it's very cool.

UPDATE (3/5/08):

This is HCI related anyway: University of Bremen’s Brain-Computer Interface: The future world is here. This is an interesting approach for helping the disabled. LEDs are flashed at specific frequencies which causes the visual cortex to respond in a corresponding manner. When the person looks at that one LED or another the EEG response is detected and initiates the desired activity or makes the associated selection (e.g. letters or numbers).  The communication rate is slow, but this is a realistic technique nevertheless.

Health Care Delivery: The Checklist

Tuesday, January 22nd, 2008

There was a link in Joel's recent Five whys post that I found to be a fascinating read: A New Yorker article called The Checklist.

Intensive Care

This got me thinking about how (and if) technology could facilitate the Checklist. The requirements aren’t really very high-tech:

The checklists provided two main benefits, Pronovost observed. First, they helped with memory recall, especially with mundane matters that are easily overlooked in patients undergoing more drastic events. … A second effect was to make explicit the minimum, expected steps in complex processes.

Dr. Pronovost’s efforts were successful because he was able to identify a single well focused process that ended up having a significant ROI. Within the complex workings of an ICU, the checklist ensured minimal compliance.

Point of care computing is ready-made for this type of task, and has many obvious advantages over a paper-based system. As the article points out, even with its dramatic results and minimal cost, adoption is slow. One reason may be:

…where I.C.U. nurses and doctors are in short supply, pressed for time, overwhelmed with patients, and hardly receptive to the idea of filling out yet another piece of paper?

In reality though, the problem isn’t the piece of paper, and technology will also not improve the situation much. I think Dr. Pronovost hits the nail on the head with this statement (my highlight):

The fundamental problem with the quality of American medicine is that we’ve failed to view delivery of health care as a science. The tasks of medical science fall into three buckets. One is understanding disease biology. One is finding effective therapies. And one is insuring those therapies are delivered effectively. That third bucket has been almost totally ignored by research funders, government, and academia.

Well said.

UPDATE (2/11/08):

See: HIStalk Interviews Peter Pronovost MD PhD, Johns Hopkins University.

Dr. Pronovost's reaction to HSS Office for Human Research Protection deciding that the "list method" was unethical and that the program had to stop: "Shocked." No duh! Also, the discussion regarding the increased error rates associated with computerized physician order entry (CPOE) is great -- yet another call for standardization.

UPDATE (2/29/08):

Just ran across this: The Checklist Saga: Victory! It seems that OHRP had a change of heart after all. It's great news when common sense (a.k.a. sanity) prevail!

Software and Services: A stress reliever?

Sunday, January 13th, 2008

Here's a quote from the post: Is this the future of Software and Services?:

...in healthcare these same types of solutions will save lives...as well as reduce stress levels...don't fear the technology that could some day save your life or the lives of others...

Yes, Software as a Service (SaaS) is a real technology that has a number of pros and cons. All major EMR/EHR software vendors effectively use server-based systems in order to protect data and provide disaster recovery.

The referenced video is essentially a Microsoft advertisement for their Windows Mobile and Surface technologies. This is cool stuff, but I don't see how it's going save lives. I also doubt it will reduce the stress levels of clinicians.

If you're interested in SaaS topics, here are some good resources:

TED Presentations: Jeff Hawkins on Brain Theory

Saturday, November 10th, 2007

I found two related posts today:

The content of the Larry Lessig talk is interesting, but it's the presentation that's unique and engaging. The remixed videos are great.

In looking through some of the other TED offerings and I ran across a 2003 Jeff Hawkins presentation on Brain theory. I've been interested in his software company, Numenta, for a while now. They have implemented a hierarchical temporal memory system (HTM) model which is "a new computing paradigm that replicates the structure and function of the human neocortex." The talk is a broader look at why it has taken so long to develop a framework for how the brain works.

Jeff Hawkins has had an interesting career in non-neuroscience areas (pen-based and tablet computing, Handspring). Hopefully his memory-prediction model of human intelligence will lead to improved artificial intelligence software systems.