Category Archives: Tech

Tech

Lessons Learned: 2009 – Principles to Live By

The past year has been a tumultuous one — learning to raise a child, traveling all over the place, both by myself and with my family, finishing my Ph.D., starting a company and a couple of side businesses, and much more.

This year I finally started keeping track of lessons learned, not on a per-incident basis, but in the form of ‘principles to live by’ — things I’ve noticed forming a pattern over time. I’ll preface this list by saying that these principles apply to me specifically — I won’t say that they’re appropriate for everyone. However, they might give you something to think about in terms of your own best practices. None of this is original either, but out of all of the advice I’ve read, these things have really worked for me. Without further ado:

Brock’s Principles to Live By Based on Personal Experience

  • Don’t exercise until done with work for the day
  • Don’t drink alcohol until done with work for the day – yes that includes irish cream in the coffee and a beer if you go out to lunch with people and they’re having beers.
  • Exercise regularly, both strength and aerobic
  • Get enough sleep
  • Limit caffeine consumption to the equivalent of 2-3 cups of coffee per day, and none after lunch
  • Eat enough fiber
  • Plan your day
  • Don’t plan to do any work while watching an infant/toddler
  • Plan to clean/tidy/play while watching an infant/toddler
  • Limit work hours – work expands to fill the allotted time
  • Batch
  • Emphasize the positive, deemphasize the negative
  • Don’t complain
  • Know your goals
  • Say No
  • Don’t buy it if you can rent it, unless you’re going to use it regularly
  • Don’t keep it if you’re not going to use it regularly or unless it’s very hard to get. Give it away or sell it.
  • Give people the benefit of the doubt
  • Clean environment – clean mind
  • Keep an accountability partner
  • Where possible, never leave any preparation to the day of an event — things always seem to pop up that prevent last-minute prep
  • Avoid instant messaging. It makes it too easy for conversations to drag on. Use email for asynchronous and phone for synchronous conversation.
  • Act professional in business, and give the best you can at the fairest price you can. It will pay itself back quickly and repeatedly.
  • Wait for the upgrade. You don’t have the time or money to be an early adopter anymore.
  • Pack lighter. You can almost always buy something you need there.

Much of this learning has been done through and inspired by the “Think Try Learn” / Edison philosophy/platform, now at v1.0. I’ve learned some other, more specific things through that site, including how to really increase my strength and musculature quickly, and how true the “what gets measured gets managed” mantra is.

What have you learned this year? Do you have any “principles to live by”?

Excellent review of cardiac ionic models on Scholarpedia

Some of our lab’s “competitors” have a really nice article covering many many of the existing cardiac ionic models up on Scholarpedia, with illustrations and even java applets and movies.

The article is entitled Models of cardiac cell [sic].

Kudos to Drs. Fenton and Cherry for the excellent article, it looks like it was quite a lot of work to put together!

Installing python-qwt5-qt4 on Ubuntu Jaunty 64-bit

I needed the package mentioned in the title, but it fails to install due to some problems with the dependency configuration in the original package.

Following some instructions here and using the patch provided here (from this thread), I was finally able to get it working.

Here’s the resulting package.

python-qwt5-qt4_510dfsg-1ubuntu1_amd64

Steps to build:

Create some directory where you want to build this. Change to that directory. Then…

sudo apt-get build-dep python-qwt5-qt4

(installs dependencies for building)


sudo apt-get source python-qwt5-qt4

This should download the package source. Download the patch from the comment I linked to above, then change into the directory and patch the files. You may have to change the directory ownership so that your user can write to it (sudo chown -R yourusername .)


patch -p0 < ~/Inbox/pyqwt-final.diff

(of course your patch may be located in a different location)

Per the GPLv2, here's the patched source I used to build the .deb file (note -- I think you can just download this instead of patching it yourself).

brocks_patched_pywqt5_src.tar.bz2

Once it's patched, rebuild it with:

sudo dpkg-buildpackage -rfakeroot -uc -b

Go get a cup of coffee or whatever, it's a fairly involved build. When it's done, in the directory above you should find your .deb packages. A simple:

sudo dpkg -i python-qwt5-qt4_5.1.0.dfsg-2_amd64.deb

(replace the filename with whatever yours is, of course)

will install it for you. Hope this is helpful for someone, as I wasted a few hours trying to install this all from source and so on.

Second CSM Demo – Activation Mapping and More

Today the latest CSM demo video went live on the CardioSolv site. It showcases the use of our mapping interface, which makes it easy to create useful maps of activity in simulation models.

It’s currently non-trivial to show movies in papers, so instead we do time-lapse type things called activation maps. These show the activation times as a series of lines (‘isochrones’ or ‘isochronal lines’, meaning that all of the points on the line are activated at the same time) or bands of color representing the same thing. We can extend this to also show repolarization times, or non-sequential data such as action potential duration maps and dominant frequency maps.

Here’s a sample activation map of a wave moving across a sheet from right to left:

Activation Map Right to Left

Activation Map Right to Left

And here’s one of a spiral (this with 20ms isochrones):

Activation Map of a Spiral Wave

Activation Map of a Spiral Wave

To give you an idea of the correspondence between an activation map and a movie of the simulation, here’s a movie of that spiral:
Spiral Wave

There’s a lot more to this — for instance, deciding when a cell has activated or repolarized, and back-end processing. We use a program I wrote that does the analysis in parallel, making it rather quick to analyze even huge datasets, provided you have the computing power.

If you have any questions about the process I’d be happy to answer them here or on the CardioSolv post.

First CardioSolv Simulation Manager Demo

Today I’m really excited to finally show you something that’s been in the works, both in implementation and in the planning stages, for a long time. The CardioSolv Simulation Manager.

Running cardiac electrophysiology (and mechanics) simulations has traditionally been really complicated. It involved learning a bunch of UNIX command-line tricks, dealing with queuing systems and their associated script files, and so on. Furthermore, there are many, many options in a sophisticated cardiac simulator, and the novice user (and even the expert) can easily get lost in all of the choices.

We’ve taken years of experience setting up, running, and analyzing simulations to build a really cool (excuse my excitement) web interface that handles all of the dirty work, and guides the user through the important choices when running simulations.

The video below is my first demo. In it, I demonstrate how to create a plane wave moving across a sheet of tissue, then create a spiral wave, all from the web interface.

Continue reading