July/August in KDE PIM

Since the last report, dated the third of July, Version 21.08 (aka 5.18) of all the PIM applications was released. 31 contributors made more than 1,500 updates in the GitLab repos. And work continued apace on preparations for the new release of the Qt backbone on which KDE software relies.

Here is the news about recent activity affecting various components of the Personal Information Management system.


Glen Ditchfield continues to improve this tool for developers.

  • The Database Browser now fetches tables as soon as the user selects them.
  • The Job Tracker display of job creation timestamps has been revamped.

Common Libraries

Friedrich W. H. Kossebau made the following notable improvement to common core logic in release 21.08.

  • CreateResource class: ensure that all created resources & agents store the new settings data before reconfiguring themselves, so those data are available/accessible everywhere.
  • A similar patch was applied to the KMail Account Wizard. Friedrich has also been working to bring the automated unit tests for PIM components up to date. That effort is still in its early stages. If you enjoy a challenge, you may wish to help him verify that the revised unit tests are working correctly.


David Jarvie has been busy this summer.

  • Added a date selector option so the alarm list view can be filtered for a particular date.
  • KAlarm now shows a hamburger menu when the menu bar is hidden. The hamburger menu provides access to all KAlarm functions.
  • Fixed various issues when using right-to-left languages like Hebrew.
  • Patched the ‘Choose sound file’ dialog to make it work right on the XFCE desktop. The bug was caused by QFileDialog filters acting differently on different desktops. (Bug 437217)
  • Fixed alarms not triggering when a reminder has been configured. Also fixed follow-up reminders coming after the main event, which were not being deleted.(Bug 440200)
  • Repaired crash on KAlarm start-up when using multiple screens on Wayland. (Bug 439853)


Claudio Cambra continues to improve the appearance and functionality of the Kalendar component of PIM. Thank you, Claudio! Please stick with us after the Google Summer of Code project has been completed. We know you’ll continue doing great things. Your new KDE pals will be watching your blog, that’s certain.

MS® Exchange Server

Krzysztof Nowicki made a number of improvements and bug fixes to the Exchange (EWS) resource.

  • Implemented “chunked requests” for most operations on multiple items. Internally, Exchange doesn’t allow a single request to operate on more than 100 items. This has caused failures when trying to delete hundreds of e-mails in one operation, for example. With this change the operation is split into multiple requests.
  • Reworked server-triggered updates. These now run in the background, and don’t block the resource’s state machine interface with the Akonadi server. This makes the Exchange mailbox much more responsive.
  • Reduced the number of forced collection synchronizations resulting from conflicts with locally modified items. This significantly reduces unnecessary communication with the server, especially for large collections.
  • Added basic handling of the “server busy” state, which is encountered when Exchange receives too many requests from the EWS resource and needs to throttle back. Instead of hammering the server with requests, the resource now gracefully goes offline for a little while, then retries the operation later.
  • Temporary failures during collection syncs no longer result in a fallback to a full sync. Normally a failure during an incremental sync escalates to a full sync, but unrelated errors, such as expired OAuth authentications or server is too busy, should not trigger a full sync.
  • Collection sync state was moved from the configuration file to a list of per-collection attributes.
  • Implemented progress reporting for many operations, including the long-lasting full collections sync job.
  • Fixed device key OAuth authentication, which was broken by Microsoft® server-side changes.


Ingo Klöcker says that the main focus of development work in Kleopatra was on usability and accessibility improvements. Noteworthy changes include:

  • Let the user easily mark a certification key as their own when using it to certify another key.

Usability and accessibility improvements for Pinentry-qt:


Laurent Montel has been busy. Besides the normal administrative tasks (creating new branches in the repo, etc.) he has

  • Continued to prepare for KF6 (migrating deprecated code).
  • Continued to implement “confirm delete email”. This new plugin helps to ensure that users do not inadvertently delete messages they really wish to keep.
  • Updated PIM Data Exporter to include the configuration file for the new plugin.
  • Continued to patch some bugs.
  • Fixed bug 439218 – Quoted strings containing commas or brackets are not parsed correctly, causing message sending to fail.
  • Fixed bug 440041 – Sieve editor does not show the line numbers correctly.

David Bryant has at long last finished rewriting the KMail Handbook. It was a big job, because the last time anybody revised the Handbook was back in 2013. If there are any PIM components that could use some new or revised documentation, please let David know.


Volker Krause informs me that there’s a proposal for reworking how event reminders are handled. The proposal aims to unify this process in all our calendaring applications, and also for both desktop and mobile platforms. If the proposed changes affect you, feedback on the kde-pim mailing list is very welcome! There is also a Reddit thread where you can weigh in.

Carl Schwan has been busy improving various and sundry user dialogs.

Glen Ditchfield also made several notable contributions to KOrganizer.

  • A to-do’s completion status can now be changed after the item has been marked “complete”. (bug 397721)
  • The month print-out can now color events using their tags’ colors.
  • Journal entries can be marked “private” or “confidential”.
  • The journal print-out can exclude private and confidential entries.
  • The journal print-out is now sorted by date.
  • The Agenda view shortens holiday names to fit in the column headers when the columns are narrow. (bug 225498)
  • The Search dialog accepts more keyboard shortcuts. (bug 315894)

Help us make Kontact even better!

Take a look at some of the junior jobs that we have! They are simple, mostly programming tasks that don’t require any deep knowledge or understanding of Kontact, so anyone can work on them. Feel free to pick any task from the list, then get in touch with us! We’ll be happy to guide you and answer all your questions. Read more here …

Libertarian politics

I’ve always been an independent cuss. Maybe it’s from growing up way out in the Alaskan wilderness. Or maybe I was just born this way. For whatever reason, slogans like “Don’t Tread on Me” and “That government is best which governs least” have always resonated in my consciousness.

I first became aware of the Libertarian Party (LP) in 1980. When I went to vote in the general election that November, I saw a third choice for U.S. President and vice-President: Ed Clark / David Koch (Libertarian). I pulled that lever right away. There was no way I was going to vote for another four years of Jimmy Carter, no matter what the Allman Brothers said. And I wasn’t too keen on Ronnie Reagan, either; I had lived in California while he was the governor, and that had not been pretty (he was squarely behind Nixon’s “War on Drugs”, among other things). I figured anybody at all was an improvement on those two.

I didn’t pay much attention to politics during the 1980s. I was too busy fixing up our new house, studying for the last couple of actuarial exams (I finally became an FSA in 1988), and building the financial projection system at Security Life to pay much attention to politics. But by 1989 Kathryn and I were making enough money that income taxes were becoming a real concern. And a sense of political ferment was in the air: Douglas Bruce was pushing a tax limitation initiative known as the Taxpayers’ Bill of Rights, or TABOR; George “Read my Lips” Bush was making promises he did not keep; and Colorado governor Roy Romer was spending millions of taxpayer dollars to fight the citizens’ initiative process. Clearly the time to get involved had arrived.

I learned that the Libertarian Party of Colorado was holding its annual convention one weekend in April, 1990 at the Holiday Inn in Fort Collins. Walter Williams was the featured speaker. I sent my registration fee to Mary Margaret Glennie, rented a room at the Holiday Inn, and drove the 75 miles to Fort Collins late one balmy Friday afternoon. The convention was a lot of fun. There was quite a bit of earnest discussion about ways to “reclaim our lost liberty”, a whole lot of bickering over obscure points of Objectivist philosophy, and a deep sense of camaraderie. I left the convention with many new ideas whirling through my head.

I’m not easily convinced of anything. Some of the LP’s rules (the “pledge” and the “statement of principles”, in particular) struck me as a little bit nutty; not because I disagreed with the intent those statements express, but because I thought — as I still think — that they are poorly written. So I had to cogitate for a year or so before I actually signed up. Finally, in March of 1991, I joined “the party”. On Sunday, March 24, 1991, at the Colorado LP’s convention in Evergreen, I was elected Membership Director. By unanimous acclamation. Big surprise. I was the only nominee. I wasn’t really keen to take on the responsibility, but poor Lexy Dillon looked so weary that I felt somebody had to take the load off her shoulders. So I acted on a timeless principle we should all keep in mind:  If it is to be, it is up to me. And it was the Christian thing to do, to boot.

I served as membership director for four years straight. It was a lot of work at first: on my initial visit to the post office, I paid about $120 just to get all the LP’s returned mail out of hock. Gradually I got the mailing list whipped into shape. David Aitken was running a database management package under the Pick system on an IBM PC, so for the first year or so I would stop by his office on East Colfax after work and spend an hour or two doing data entry. Eventually I bought a modem (about $50 at a computer hardware store that had just opened at 6th and Lincoln) and a used monochrome monitor (14″, from Aitken, about $75) and set up a remote workstation in the basement at my house.

David Aitken was also running a bulletin board service, so once I got my modem configured I could just dial him up, log into the database management program, then do all the address corrections from home. This made my life a lot simpler, although Kathryn got upset with me more than once — I was dragging too much paper home with me from the post office. As I recall, that old modem ran at 2400 baud. That’s just 300 bytes per second. (Eventually telephone modems were capable of transmitting at 56,000 baud over a conventional dial-up connection; I didn’t get one of those fancy-dan modems until the year 2000).

Aitken’s bulletin board service was a precursor to the internet. It did not provide an interconnection to millions of other computers. But it did allow one computer to communicate with another one — very slowly — from just about anywhere in the world. (Although long-distance charges were pretty steep 25 years ago, with a thick enough wallet one could have accessed David’s Pick system from Abu Dhabi, in theory at least). Another local Libertarian, Joe Dehn, an MIT grad who lived in Littleton and who also served on the Colorado LP’s board of directors for a time, ran another dial-up service that provided a connection to LiberNet, which operated under FidoNet, and provided an on-line discussion forum for Libertarians all across America. It wasn’t fast, and it wasn’t fancy. No graphics at all. 7-bit ASCII characters only. But it was a step closer to the internet we all know and love so much today.

In November of 1994 I upgraded my system from a terminal and a modem to an IBM PC with a 16″ monitor (color, no less!) and an HP LaserJet printer. Security Life loaned me $4,800 at 0% interest to make the purchase. I had some trouble with the PC at first. It was a custom-built job with a SCSI hard disk, running Windows 3.1. Unfortunately, the guy who had built my PC had damaged the motherboard inadvertently by plugging my newly built box into an outlet subject to power surges. Murphy’s law bit me and my brand new PC. There was a big voltage spike in the neighborhood that day. The hidden damage to the motherboard caused intermittent short circuits, which in turn caused the system to crash randomly and unexpectedly. I finally got it all straightened out — after convincing the guy who built it that there really was a problem — and that box served me well (until about 2002, when the hard disk started getting a little bit squirrelly — I was assigning alternate tracks every couple of weeks).

In March, 1995 I lost my job at Security Life, as I’ve recounted elsewhere. In April I traveled to the LP of CO convention (held at the Holiday Inn in Fort Collins); I did not seek re-election to the board. Larry Hoffenberg took on the membership duties that year. And in 1996 I decided to stay on the sidelines a while longer (although I did attend the national convention in Washington DC, where I served as the Colorado Delegation’s chairperson). And I spent three days working at the LP’s booth at the state fair in Pueblo. That was a lot of driving (~115 miles each way).

In November of 1996 the voters approved amendment 15, the “Fair Campaign Practices Act”, which had been sponsored by a group called Citizens for Responsible Government (a bunch of socialists, basically). This new law required the LP of Colorado to file quarterly financial reports with Colorado state government. It also required candidates for public office to file a registration statement with the Secretary of State, even if they did not accept any campaign contributions from other people. If a candidate accepted money from others, he was required to file financial reports on a regular basis until all the contributed funds had either been expended or given away to other groups / parties / candidate committees. This new law really threw a monkey wrench into the works for the LP of Colorado. We were chronically underfunded and could not afford to pay an accounting firm to file the required reports. What was the party going to do?

Coming Next: More Libertarian activities, and I run for public office.

The Story of Hongi

Well, I haven’t posted anything in a long time. I’ve had some horrible problems with an older PC — more about those another day. Anyway, I had to create a new system, and in the process of importing my old data I ran across this little piece, from February, 1999. I wrote this up for the Colorado LP’s newsletter, the Colorado Liberty.

The Law of Unintended Consequences

A hundred and fifty years ago New Zealand was a wilderness, virtually untouched by European civilization. The English missionaries who were among the first to settle there were busily engaged in the business of bringing Christian civilization to the native Maori tribesmen. One of their early converts was a chieftain named Hongi who was by all accounts a most magnificent wild man — tall, strong, handsome, and plastered with tattoos according to the custom of his tribe.

The missionaries eventually ran short of money. Certain that Hongi would inspire curiosity and generosity among the church members back home, they decided to send him to England as part of a fundraising committee.

Hongi created an absolute sensation in England. Droves of people flocked to see him. He was admired not only for his commanding stature and powerful physique, but also for the unusual and colorful artifacts of Maori civilization surrounding him when he was on display. Tales of the harsh conditions confronting his people evoked great sympathy, and generous donations from dozens of congregations came rolling in.

As Hongi and the missionaries prepared to sail back to New Zealand a delegation of well-wishers headed by an envoy from the Queen bestowed a gift upon the Maori chieftain. They gave him a huge collection of shovels, rakes, and hoes, and many bags of seed, along with instructions on how these instruments should be employed. They urged Hongi to take these tools back home. They wished him all the best, and said they hoped he would use their gift to feed his people.

Hongi did in fact use that gift to feed his tribe, but not the way the missionaries hoped he would. When his ship put in at Sydney, Hongi sold the agricultural implements and the seed. He used the money to purchase rifles and ammunition. Returning to New Zealand, he taught his own tribe to use the white man’s weapons and then waged war upon his neighbors. Hongi and his people slaughtered hundreds of their Maori rivals, and in the best tradition of their kind, they cooked and ate each victim.

Hongi’s story is not an isolated incident. The pages of history bristle with similar if not quite so gruesome examples. Wherever and whenever men set out to make improvements in other people’s lives, they find themselves face to face with the ineluctable law of unintended consequences: Because the future is unknown and every human being has the power to make his own choices, my attempts to improve your situation will have consequences neither of us can imagine at the outset.

This is not to say that the human condition cannot be improved. Rather, the law of unintended consequences tells us that grand schemes for societal improvement often backfire. It says there are no magic bullets. It keeps us on our toes when social reformers are busily peddling panaceas and utopias. And it does its very best work when it moves us individually. Since I do not know what effect my efforts to improve my neighbors will have on them, there is only one sure way to make this world a better place — by doing what I can to improve myself.

Trouble in Paradise

Things were going amazingly well at Security Life of Denver (see “The world needs another blog” to read the preface to this post). Kathryn and I were both working there, and both of us loved our jobs. But there were several flies in the ointment.

The first one was internal to Security Life. Besides building, updating, and operating the financial projection system (which had been my primary task when I first started working at SLD), I began to write data collection and statistical analysis programs. Lots of them. People in the actuarial department came to depend on these reports. They provided useful information about the company’s business. But the marketing department hated the picture the data were painting. For instance, death claims on the policies written by the company’s largest agencies were running about 150% higher than the company was assuming they would be. And overall mortality was about 25% above expectations.

Eventually the guys in marketing came to hate me, personally. I insisted on using accurate mortality assumptions in the financial projections I prepared, and these showed us making substantially smaller profits than the company was targeting. The marketing people said we should assume that our mortality experience would eventually improve. I insisted on the accuracy of my analysis of actual claims data. An actuary can’t just pick assumptions willy-nilly. He must pick assumptions that reflect reality.

The second fly in the ointment was the Board of Directors at ING, a Dutch financial conglomerate. (25 years ago, Security Life was a wholly owned subsidiary of ING. That company’s US operations were subsequently renamed VOYA.) ING had allowed SLD to function as an autonomous entity for many years. But about 1990 a number of the old timers retired from the Board. The new appointees were eager to show how much they had learned at business school. They decided to shake things up by forcing Security Life to merge with Life of Georgia, another of their US subsidiaries. This led to a huge culture clash.

Kathryn took the first hit. Life of Georgia decided that Security Life would have to migrate away from the “Pacesetter” (aka ALIS) system that had been running on an IBM mainframe for 20+ years and move its automated systems to a network of PCs running a system that had not yet been developed. Soon Kathryn was traveling to Georgia on a regular basis to consult with the design team for this boondoggle (which ultimately came to nothing — the last I heard, SLD was still running Pacesetter on a S/390 box). By the spring of 1994 she had gotten her fill of the new management. After looking over our finances (our house was fully paid for), I concluded that we could get along just fine without her paycheck. So she quit her job in April of 1994, after 10 years with SLD.

At about the same time, the Dutch Board of Directors decided to put the executives from Life of Georgia in charge of the combined companies. That meant my boss, Bob Jenkins, had to report to Linda Emory, who was a real piece of work. Bob couldn’t take it for long — he transferred out of actuarial and took a job in the programming department. That left Dan Fritz, an affable fellow just a few years older than I, in charge of SLD’s actuarial department. Dan lasted about six months, just long enough to land on his feet at VALIC in Houston, Texas.

Having driven two dedicated and hard-working actuaries out of the company in just eight months, Mrs. Emory next turned her sights on me. Her proposition was simple. I could be promoted to Senior Vice President if I would take the reins for SLD’s actuarial department, provided that I would willingly sign off on the company’s annual statement for the year 1994. I told her that I would accept the appointment as SLD’s actuary with one proviso: the “surplus relief” reinsurance treaty with ING in Holland — which obligated Security Life to make annual payments of roughly $750,000, but which would never allow SLD to obtain any actual cash benefit — would henceforth be reported as a $15 million liability, and not as a $180 million asset. This was totally unacceptable to Mrs. Emory. In the end she assumed the title of Chief Actuary at SLD, and some young whippersnapper from Georgia who had absolutely no knowledge of Security Life’s book of business signed the annual statement that year.

In January of 1995 I was informed that my services would not be needed after the 31st of March. My job function was being phased out. If I agreed to stay the whole three months and train my replacement (say what?),  I would receive a very generous severance package amounting to roughly $75,000. So on April 1, 1995 I joined the ranks of the unemployed.

The world needs another blog

like I need another hole in my head. But I’m plunging in anyway.

Hello there. My name is David Bryant. Currently I’m living in Canyon Lake, Texas, with my wife Kathryn, my pug Tudie, my papillon Justin, and two parrots named Spanky (she’s a little rascal) and Boom-Boom (don’t ask why). Here are some pictures. Sorry, I don’t have any pictures of the birds handy. Maybe another day.

David, Kathryn, and Justin
My lovely wife Kathryn, our papillon Justin, and yours truly (in disguise).

And here’s a picture of Tudie the pug. I’m curious — how can I get these to display alongside each other? Research into WordPress internals is necessary, I guess.

Tudie the pug
Our little pug Tudie. Isn’t she cute?

I don’t have time to tell my whole life story, and you’re probably not interested anyway. So I’ll sketch this out pretty swiftly. I was born in Palmer, Alaska in 1951. I attended all 12 years of public school in Palmer, and graduated (first in my class) in May, 1969. I attended the California Institute of Technology in Pasadena, California, and received my Bachelor’s degree (BS(Ma)) in June, 1973. Since I was a math major and I was not interested in an academic career, I entered the actuarial profession, obtaining the professional designation Associate, Society of Actuaries (ASA) in November of 1974.

I worked for several insurance companies in Los Angeles while I was earning the ASA designation. I soon tired of the crowded freeways and the perpetual summer in southern California; in September of 1975 I started working for United American Life in Denver, Colorado. I liked the job at UAL, but good things never last long enough. UAL was acquired by Western Preferred Life in September of 1977. By March of 1978 I had had it with WPL’s dishonest — crooked as a dog’s hind leg is what I ought to say — management team and their fraudulent accounting practices. I resigned my position and took my concerns to the Colorado Insurance Department’s actuary, Anthony Fagiano. An investigation ensued, and in 1984 Western Preferred was  put into conservatorship; a couple of the executive officers even went to jail.

In September, 1978 I went to work for Western Farm Bureau Life Insurance Company (WFBLIC) as a computer programmer. I had already developed strong programming skills with IBM assembly language. Since WFBLIC was installing LIFE-COMM from Equimatics in Dallas, it was a good fit. While working at WFBLIC I fell in love with Kathryn, who was also an assembly language programmer. She left WFBLIC for Security Life of Denver in April of 1984. In July we got married, and in late August we bought the house at 520 South Corona Street, where we lived happily — if not always harmoniously — for almost 29 years.

520 South Corona, Denver, CO
Our old house in Denver’s Washington Park neighborhood: 520 South Corona Street.

While working for WFBLIC I eventually lost the sour taste that actuarial work at Western Preferred had left in my mouth. In mid 1983 I joined WFBLIC’s actuarial department. That got stale; in January of 1985 I went to work for ICH in the Denver Tech Center. That didn’t last long. ICH was almost as crooked as Western Preferred had been. Rather than hang around and get burned again, I joined the actuarial department at Security Life of Denver in March, 1985. At last I had found a really good actuarial job! Security Life was an A+ company with a distinguished history going back to 1935. And Dick Horn, the president, was an actuary with an excellent professional reputation.

My assignment at Security Life allowed me to combine my actuarial and programming skills: I was supposed to write a computer program to project the future cash flows and profits / losses expected to arise from the company’s existing block of business. At the time I started working there, Security Life was still running OS/MVT on a 360/50. After running a bunch of benchmark tests using both floating point and fixed point binary calculation routines, I decided to go with fixed point binary; the same calculations took 2½ times as long to execute when coded in floating point.

It took about a year of intense effort to build the new projection program. The old program had been written in COBOL and took 20 – 30 hours to project 30 years of future cash flows, profits, and losses. My new program got the job done in 5 – 6 minutes, a 99.5% reduction in run time. Of course, the fact that the old 360/50 had been replaced with a shiny new 4381 didn’t hurt the run time. But the main improvement I had made was to eliminate most of the I/O operations the old program performed. Instead of reading lots of rate files, I calculated cash values and reserves for individual policies on the fly. Disk I/O operations are about 1,000 to 10,000 times slower than the internal processing speed of a modern CPU; you can increase the CPU time quite a lot (say 400% to 500%) and, if you effect even a small reduction in total I/O operations, the program will run in much less elapsed time.

Coming next: Trouble in paradise, Libertarian politics, and the move to Texas.

Hello world!

Hello, everyone. My name is David Bryant, and I’m relatively new to this blogging business. Please bear with me as I work to get the hang of it.

WordPress apparently includes a handy-dandy commenting feature for blog posts. I wonder how well I can make that work. How about that! It worked correctly on the very first try. All I had to do was enter my comment in the box and press the button that said “Post Comment”. Voila! The comment is now appearing in my “Comments” list, and at the bottom of this page.

The next thing I need to do is to add some links in this page and in my “WordPress Interface” page so I can freely move between this blog post and my “non-blog” content.

I’m a little curious: can I embed a .php script in this page? Let’s give it a try.

Well, that failed rather spectacularly! WordPress didn’t like my .php script one little bit. It turned the header tag “<?php …” into an HTML comment, then let the rest of the script appear as text. So I guess embedded .php scripts are a no-no in WordPress. You learn something new every day.

OK, that’s about it for testing the features in this blog-posting software. It’s time to start blogging for real!


David, Kathryn, and Justin
My lovely wife Kathryn, our papillon Justin, and yours truly (in disguise).

Tudie the pug
Our little pug Tudie. Isn’t she cute?