Make Scroll Up and Scroll Down Symmetric

A handy tip from Wilfred Hughes:

Posted in General | Tagged | Leave a comment

A New Common Lisp Book

Lispers have traditionally eschewed regular expressions but the truth is that they are often useful and sometimes the most practical way to deal with a problem. Because of the bias against regular expressions, the CL specification does not include them.

Happily, there is a de facto standard implementation: CL-PPCRE written by Edi Weitz. Now Weitz is writing a book on Common Lisp. Amazon is claiming it will be released in December by Apress. It will be a collection of Lisp recipes.

As someone who has used many of Weitz's libraries—especially CL-PPCRE—I am really looking forward to the book. Weitz is a master and we can all learn a lot from him.

Posted in General | Tagged , | Leave a comment


Not that we needed any affirmation but the New York Times makes it official.

Posted in General | Leave a comment


Asok has a nice little utility called peep-dired that's available from MELPA. It's a Dired minor mode that displays the file at point in the dired buffer in another window. You don't have to select the file or do anything special. As you move to another file in dired with 【Ctrl+n】 or 【Ctrl+p】, the new file is displayed.

You can ignore certain files and there are commands for cleaning things up. Take a look at the REAME to see the details. If you have a workflow that involves scrolling through a list of files, you may find this package a real win. My workflows don't include this so I haven't used the utility. If you have experience with it, leave a comment.

Posted in General | Tagged | Leave a comment

SBCL 1.2.11 is Out

I downloaded, compiled, and installed SBCL 1.2.11, the latest monthly release of the SBCL system. When I ran the regression tests (on OS X 10.10.3) I got one failure. The main development platform is Linux so I'm assuming this is an OS X anomaly—I don't see anything on the Web about the failure. I'm not going to worry about it until next month's release.

This month's release has four enhancements and two bug fixes. As usual, we all owe to SBCL developers our thanks for the excellent job they do in making monthly releases of this fine tool.

Posted in Programming | Tagged , | Leave a comment

Digitization at the Hospital

Due to a sick family member, I recently had the occasion to spend time at one of our local hospitals. If you've ever been through that, you know that it involves a lot of waiting around, which gave me a lot of time to fill. Being a geek and interested in digitizing my own life, I found myself fascinated with how the hospital used digital methods to facilitate patient care and record keeping. As far as I can tell, different hospitals have engaged with digital methods to varying degrees so I'm definitely writing about a sample of one.

The most visible thing is that patient care records and the gathering of the data for them are almost completely digital. Every nurse has a WiFi enabled mobile workstation containing a computer and bar scanner. The nurses drag these with them wherever they go. When nurses need to give a patient some medication, they first scan the patient's wristband. The patient's name comes up on their workstation along with their chart. Next they scan the medication package and the computer verifies that the medication and dose is proper.

Although it's not obvious from the picture, the workstation's height is easily adjusted—think adjustable standing desk—so that they can lower the workstation, sit down, and work on patient charts. Any RN will tell you that their job is mostly about paperwork so they spend a lot of time working on those charts at their workstation.

Physicians don't have individual workstations but there are stationary computers scattered about the ward where they can enter their notes and instructions into the patients' charts. They generally do this right after seeing a patient so that the charts are always up to date. That's important because lots of different people are reading and taking guidance from the charts.

At least in my family member's case, a nurse or patient care technician came in to take vital signs every hour. Once again, the process is completely digital. They bring in another mobile cart that has a digital spot monitor and bar scanner on it. As with medication delivery, they first scan the patient's wrist band. Then they hook up the blood pressure, pulse, temperature, and other receptors and capture the patient's vitals. These are displayed on the monitor and automatically added to the patient's chart via WiFi.

Some patients require EKG monitoring. In those cases, the patient is wired as usual for an EKG but the leads go to a small WiFi device that transmits the results in real time to a monitoring station. At this hospital, the monitor stations are on a different floor and monitored by people with no other duties. If the device is disconnected (say for a shower or a medical procedure out of the ward) the nurses call the monitoring floor and tell them the patient will be off monitoring for a while. If the patient doesn't reappear on the monitors within a specific time, the monitoring personnel call the nurse to find out what the problem is. Again, these results are fed into the patients' charts.

One thing that struck me as odd is that the nurses' station had a pneumatic tube delivery system like those used at drive-in banks. I asked one of the nurses why they had this given that all their paperwork appeared to be digital. She said they used it for sending blood and fluid samples to the lab and for getting drugs from the pharmacy. She said they couldn't live without it because when it was down they had to hand deliver and retrieve those items. Given that this hospital had 8 floors, the utility of the system becomes clear.

The anomaly in all this digital record keeping was personnel type records such as schedules, time in and out for breaks, and duty assignments. As far as I could see by snooping at the nurses' station, these were kept on paper logs on clip boards just as they have been for years. I don't know why that isn't digitized too—it seems to me to be the easiest thing to keep as digital records even if only as a spreadsheet.

To my mind, this digitization of patient records is a huge step forward but a recent Vox article shows we have a long way to go. The first problem is that 40% of hospitals still aren't using digital records. The bigger problem is that the systems the hospitals use are incompatible so that records can't be shared. The ideal is that a physician anywhere in the country (or world for that matter) could pull up your records and see your medical history, what drugs you're taking, and any other medically pertinent information. Imagine yourself unconscious—an auto accident, say—and you can see how this might be a life saver.

I expect that things will get better. More hospitals will digitize—although there is resistance on the part of physicians because the systems can be hard to use—and standardized record formats will be developed so that the records can be more easily shared.

Posted in General | Tagged | Leave a comment

Lenovo Law Suit

Just as I predicted, the roosters have come home to roost.

Posted in General | Tagged , | Leave a comment

Pragmatic Emacs

Just yesterday, I wrote about Ben Maughan's Emacs Tip Mailing List and remarked that you could sign up for the mailing list if you liked but that due to widespread interest he was going to publish them as a blog. That blog is now online as Pragmatic Emacs.

Your best bet, if you're interested in the tips, is to subscribe to the RSS for the blog. That way you'll be sure to get the weekly tip and see the animated images that often go with them. As I said before, many of those tips are elementary but I've learned a couple of things—like using 【Ctrl+;】to scroll through spelling suggestions as I wrote about yesterday—so it's definitely worthwhile subscribing even if you're past the beginner/intermediate stage.

Thanks again to Maughan for making this resource available to us and to Artur Malabarba for giving us the original pointer to it.

Posted in General | Tagged | Leave a comment

Cycling Through Spelling Correction

The other day I wrote about Ben Maughan's Emacs Tips mailing list and recommended that you take at look at the Web site that also collects the tips1.

In case you didn't take my advice, I want to share part of one of his tips that told me something I didn't know. For years I've had flyspell-mode enabled in all my text-derived buffers. It's nice to get immediate notice when you've misspelled something. What happens is that the incorrect word is underlined in red and I have to type 【Meta+$】 to see the list of suggestions.

A far easier method that Maughan wrote about is to simply type 【Ctrl+;】 to cycle through the suggestions. That works really well because most often it's a simple misspelling and the first suggestion is the one you want. It seems like a small thing but I've saved a lot of effort since I learned about it.



If you're interested in being on the list, see Maughan's comment on my original post. He says he'll probably move it to a blog but in the mean time he's kindly offered to add anyone interested to the list.

Posted in General | Tagged | 1 Comment

Working Remotely

I've long been fascinated by the idea of remote work. It wasn't very long ago that the concept was foreign and completely out of the question to almost all employers. Happily, that's changing to the point where it's possible for developers to insist on remote work at least part of the time.

I recently stumbled across two articles that explore a couple of unique takes on the subject. In the first, Glen over at Tab Payments tells how he and a colleague spent a month in Chiang Mai working remotely. It was almost like a working vacation. A couple of the team left Toronto and spent some time working in Thailand. He's looking forward to doing it again. The article talks about how they already had a small tight team and that that resulted in a mostly problem free trip.

Whereas the Tab Payments team let part of their team work remotely for a while, the folks at Mobile Jazz took their whole team to the island of Koh Samui in Thailand to work remotely for a month. It worked so well that they're planning on another trip soon.

Both these articles talk about some or all of the development team working remotely for a short time. That's a middle ground between working in an office every day and working remotely full time. If you have an interest in this sort of thing, these two articles give an excellent way of testing the waters or just providing a pleasant experience for your team.

Posted in General | Tagged | Leave a comment