/home/jeff/blog

Sucking away valuable moments of your life ...

Expanding Ganglia RRD Files

| Comments

I figured this out trying to resize RRDs for Ganglia in a rrdcached-enabled environment, since expanding initial RRD parameters in gmetad doesn’t affect existing RRD files. Essentially you simply have to declare the RRA index and the expanded size, and this does the rest. rrdtool unfortunately doesn’t make it particularly easy to do this on a large scale, hence the scripting.

One-liner to expand RRDs:

/etc/init.d/gmetad stop; /etc/init.d/rrdcached stop ; 
  find . | grep rrd | while read X; do fix-rrd.sh "$X"; done ; 
  /etc/init.d/rrdcached start ; /etc/init.d/gmetad restart

fix-rrd.sh:

#!/bin/bash
# fix-rrds.sh
NEWRRDS="0:5856 1:20160 2:20160 3:52704 4:3740"
for RRD in $*; do
        echo -n "Processing $RRD ... "
        for RRA in ${NEWRRDS}; do
                A=$(echo $RRA | cut -d: -f1)
                B=$(echo $RRA | cut -d: -f2)
                echo -n "$RRA "
                rrdtool resize "$RRD" $A GROW $B 
                        mv resize.rrd "$RRD" && 
                        chown nobody "$RRD"
        done
        echo "done."
done

The Myth of Moral Hazards in Health Insurance

| Comments

The entire “managed health” component of the privatized healthcare system which we now “enjoy” in the United States descended from the HMO Act of 1973, signed into law by the President whom Hunter S Thompson had famously claimed “could shake your hand and stab you in the back at the same time”. The insurance system we have today, primarily built on the foundation of the profit-inducing-but-patient-screwing HMO system, has built in something called a “moral hazard”, which ostensibly provides the conservatives’ requisite “skin in the game“. For those unfamiliar with this concept, a simplified version of the basic premise is that forcing a patient to cover a certain amount of a medical procedure will decrease the “risk” than an insurance company will have to pay for a procedure.

Let’s stop right here, for a brief moment. The idea that an insurance company, being a for-profit entity with a primary obligation to their shareholders, rather than their clients, has an *incentive* not to pay for a procedure — well, it seems pretty awful. It’s one of the primary deficits in a for-profit health insurance scheme that the three primary parties involved (doctor, patient, insurance company) all have different objectives, which jive with each other (doctor wants to receive pay for care given, patient wants to receive care, and insurance company wants to pay as little as possible, if anything). You can see that the insurance company seems to be the party whose goals seem to disagree with the rest, and it’s the reason why I believe that a private insurer system is doomed to ever-rising costs, risk of medical bankruptcy, loss of accountability, pure graft and corruption, higher mortality rates, loss of quality care, as well as an inevitable collapse. But I digress from my primary point.

We can examine the idea of a moral hazard in health insurance by looking at the general purpose it supposedly serves: reducing the demand for profit-draining healthcare payments. The problem with that argument is that patients do not voluntarily seek unnecessary care in quantities which would cause a system of requiring patient payment to be necessary to reduce risk. Patients seek care when they require it, which means that the only care for which it would decrease the demand would be preventative care. If you follow the aforementioned link, you’ll see that the entire focus of most studies is the efficacy of preventative care in decreasing costs to insurers rather than decreasing mortality rates or improving quality of life. That follows a pretty common trend of insurers to perform cost/benefit analyses without the benefit of measuring the *benefits* of treatment options on patients.

So, we have private insurers, attempting to gain a greater profit margin by either denying care to patients for arbitrary reasons, or attempting to bolster profit margins by requiring deductibles and/or co-payments to dissuade patients from seeking care, encourage patients to seek less expensive/less effective methods of treatment, and/or decrease the amount of payout for which they are responsible. It seems as though parties with those motivations would be less-than-ideal candidates for effectively making healthcare and treatment decisions for the public at large, although they do that at the moment, by deciding which treatments to cover, which patients to insure, and how much of a patients’ own money must be spent for healthcare treatment for conditions which may or may not have anything to do with their own action. Not much of a “moral hazard” to avoid there, is there? If a factory worker gets cancer from working in a factory — who pays? Certainly not the factory. Whose fault is the condition? Not the patient. If unsafe drinking water produces parasitic infections or a more hazardous condition — who pays? Not the people responsible. Whose fault is the condition? Not the patient.

I would posit that your opinion of the for-profit healthcare system depends largely on your relationship to it; those who believe that profit is more important than the efficacy of patient care would most likely side with the current system (as well as the unconditional free market leghumpers), whereas those who see healthcare as more of a basic human right or regard the efficacy of care as being the paramount point of importance over the profit of a company would most likely favor a single-payer or socialized healthcare system. (I leave out the uninformed, teabaggers (who also fit in the prior category), and full-on anti-Federalists. There’s no reasoning about human dignity or health with people who believe that some people have the right to do whatever they want to other people due to the size of their wallets — but that’s for another post.)

Xela Redux 2011

| Comments

Better late than never, these are the blog entries I had put together from the Xela trip this year, which I had never gotten around to posting.

Day One: Sunday November 6, 2011

I’m going to try to chronicle my time this year working with the POP-WUJ Clinic in Xela (Quetzeltenanga), Guatemala, as I did last year. Work circumstances, over-zealous customs officials, and simple bad luck contributed to some of the issues we experienced with the installation last year, so I have traveled back down to attempt to make this work better.

I left home at around 11:30pm the night before, and drove down to meet Irv. We had somewhat over 90 lbs of medical supplies which had to be re-packed and distributed over two body-sized duffel bags so that we could bring them through Guatemalan customs. At some time after 2am, we headed out for Laguardia Airport. The trip was relatively uneventful, and we made the two flights down to Guatemala City without incident.

I was relatively surprised that we didn’t encounter any issues with customs upon entering Guatemala with the two “sea bags” full of medications, equipment, and miscellaneous tools. During the last medical brigade, a fair amount of our donated meds were confiscated, and one of the two servers was held at customs for a week, but they just waived us through this time — and without the benefit of a note from Rotary International this time.

The bus ride across CA-1 to Xela actually took less time than last year, owing to the bus driver skipping the usual dinner stop and a lack of rainy-season mudslides. He was a bit of a cowboy, however, as we were tossed around like rag dolls. We had taken the local bus company, Alamo, rather than a chartered bus, which let us ride with the locals (as well as avoid tourist traps). A little girl, who reminded me of my niece when she was younger, made rollercoaster noises every time we went around a hairpin turn on the road, and was very proud to work up the english to ask me my name. I was surprised that, as we rolled into Xela, I actually had missed seeing some of the sights and people down here. As with any time that I travel, I miss being home with my wife and the dogs, but it’s nice to see that there is a different familiarity here.

We took a cab over to Casa Manen, as there was no reasonable way to transport the two sea bags full of medications and our personal belongings the full mile and a half on foot. I could barely fit in the back seat of the cab, which was a converted Escort wagon (from what I could gather). After arriving at Casa Manen, I ended up having to mess around with their wifi access point, as a combination of terrible reception in the room (the laptop lives next to the door at the moment) and wacky Netgear-sucks-with-WPA-support issues had caused a lack of connectivity issue.

After that, we walked to Park Central, grabbed some Xelapan goodies, a quick bite of “food” at Pollo Comperos, and an expresso-laden hot chocolate at “&” Cafe. Clinic work tomorrow!

Day Two: Monday November 7, 2011

First day waking up in a new timezone, and as our CDMA-network phones don’t work down here, it was interesting getting up a full hour before everyone else. Casa Manen provided us with a delicious breakfast, replete with high-test coffee, my usual egg and black bean dish, fresh fruit and waffles.

We sat in the central park for a while after breakfast, waiting for Banco International to open (which it wouldn’t have done until 10am, so I’m glad we gave up on that), and watched some of the street vendors, taxi drivers and local residents. It was pretty obvious that there is quite an underclass, composed primarily of the people of Mayan ancestry. Those with darker skin and/or traditional Mayan garb seem destined for menial labor, street vending, begging, or other “lower class” occupations. Although, as most are very short, I feel as if I’m a giant in a land of Lilliputians.

While waiting to get into the clinic, I watched a Mayan woman tie her child on her back with two square pieces of cloth. It looked pretty safe and stable — I had always wondered how they did that.

I got the Linksys NSLU2 we brought down with us set up as a terminal server, and it’s now monitoring every step of the boot and execution cycles of the Rackable Systems server we brought down, as well as giving us full power management using Ctrl-6 (thanks, Roamer Port!), although I’m a little less excited about that last part.

The one disheartening part is that I feel as though I’m fighting the technology down here far more than I should. Between some of the people messing with the work I did last year (including resetting admin passwords, then being unavailable when I need them, as well as installing XP on Linux workstations) and virtually every wifi access point giving me trouble (usually due to some obscure setting that was enabled for reasons that are unclear), I’m getting to the point where going the extra mile of effort to be online or get things working feels like it’s not going to pay the dividends that it should.

An aside to the Xela-LUG group: there’s no Debian or Ubuntu mirrors in Guatemala. The nearest one seems to be in Costa Rica or Mexico (or Nicaragua), and the speeds out of Xela aren’t fantastic.

Day Three: Tuesday November 8, 2011

We got a somewhat late start heading out from Casa Manen, and the higher altitudes and pollution were taking a toll on Irv when we were walking to the clinic.

When we got to the Pop-Wuj clinic, it turned out that no one had arrived to perform pharmacy duties, so Irv and I ended up running the pharmacy and filling prescriptions for the majority of the day. Irv also saw a number of feet, and I got a little bit of work done with the NSLU2 before I left, but the majority of the day was spent working in the clinic — so much so, in fact, that we forgot to grab lunch, drinks, or anything else, until we left for afternoon siesta.

We “overslept” for the afternoon siesta — which was actually more like Irv oversleeping as I was messing with code and photos while he was sleeping and lost track of time. We headed back to the clinic, and talked to Isabelle (the clinic manager) and Oscar (from the school). Isabelle got ahold of Freddy, who had contact information for the technician who had changed the router configuration. Things are looking up, in that respect. In another vein, Oscar mentioned that his son is an accomplished trumpeter, and seemed interested in me taking a few portrait shots of him with his instrument.

Irv and I sent a Facebook message to our Xela LUG contact (as he hadn’t responded to our emails), and waited at Albabar at Parque Central to see if he’d show. Unfortunately, he didn’t. I also took the opportunity to start posting our walking and bus tracks, which I have been religiously tracking using “MyTracks” on the Android-based HTC handset I usually use. It’s useless down here otherwise, as there are no CDMA networks.

Day Four: Wednesday November 9, 2011

Another very, very tiring day.

After breakfast, one of the ladies who runs Casa Manen had gotten into a discussion about knitting, and was quite impressed with the hoodie that my wife had made me last year.

While at the clinic, I had the chance to reformat one of the donated Thinkpads which were originally destined to be used as workstations. They had been loaded with a copy of XP, replete with a metric ton of crapware. I doubt anyone is going to miss any of that.

We finally got to meet up with Dhaby from the Xela LUG (Linux Users Group). He’s in the process of setting up a meeting with some local doctors who are interested in using FreeMED, and he thinks that some of the people in Xela LUG would be interested in providing local support. This is just the “feet on the ground” sort of thing that we need going here. He also mentioned that local stringed instruments are not easy to come by in Xela, and Chichicastenango or Panajachel would be the closest places to look. So, there’s a possibility that we’ll head down there on one of our “off days”.

The clinic closed early, as it was an “off day”, so we headed back to Casa Manen, and after siesta, we perused the Central Market. I’m still a little disappointed at the lack of local music shops in Zone 1. We were able to find a few small things, but put off buying a substantial quantity of anything until we can visit one of the outlying markets.

We skipped dinner in lieu of Xelapan, and were able to keep a fire going for a little while. Quick tip for anyone doing a network-less install of Ubuntu: use the normal installer. The “alternate installer”, where it might be a little easier not to use a mouse or touchpad, has the downside of making it very difficult to use the local install media as an apt source. (Unetbootin is your friend when blank CDs aren’t handy….)

Day Five: Thursday November 10, 2011

Serendipity is a really strange thing. Dhaby (Daniel), our contact from Xela LUG, turned out to be the same person who had helped Freddy with the clinic and school networking. When he stopped in yesterday, we had assumed that he had gotten our contact information and messages and had come to meet us — whereas he had come because Isabel had contacted him per Freddy’s instructions.

We went to the clinic today, forgetting that the clinic is closed. I’m in the process up upgrading and maintaining the existing laptops, so that there’s a stable platform for the clinic people to use when I’m not here.

Another issue we’ve run into at the clinic is the issue of volunteers, which I will admit, doesn’t sound like much of an issue. However, when you’re dealing with IT work, there isn’t really much “handoff” between volunteers — which means you could be on a Skype call to Germany to get a router password, or relying on someone who is on vacation to find someone else who handled some equipment maintenance.

I finished setting up the workstations, although we found out that the first numbered one seemed to be dead, so the clinic is down to three working stations. Irv had an extension cord fabricated at the electric supply shop down the street (as well as grabbing a replacement box of florescent tubes to replace the ones in the clinic that had gone out), and we moved the electrical supply for the server, etc, to be run from behind the pharmacy area. This allowed the connection to be out of the way of general foot traffic. We ended up electrical taping the remaining connection together to avoid accidental disconnection.

For lunch, we ate at Cafe Arabe, near Parque Central, which had pretty decent food. As we were finishing up our meal, we noticed the time (which was pushing 3:00 pm), so I left for the clinic to train Isabel on using the system, and Irv left for Casa Manen to pick up supplies. I ended up getting about an hour of training in, using the 1/3 completed Spanish translation we have. Thankfully, I was able to use Google Translate to explain more difficult concepts properly. (I understand more Spanish than I can speak at this point — at least enough to get the gist across.)

Oscar (from the Pop-Wuj school) had wanted some pictures taken of his son, but due to a miscommunication, his son hadn’t brought his trumpet, and hadn’t realized that we had been waiting there, so we put it off for tomorrow.

We walked back, stopping at Albamar for dinner. Most of the restaurant was reserved for a single family’s graduation party, but we still were able to be seated on the side, and had a good meal. As we were heading back to Casa Manen, we saw that Parque Central was filled with a film crew and a crowd of onlookers. We hung around for a while to observe, and found out that it was a crane shot for a music video. Irv was delighted to see that their primary and secondary cameras were 7D bodies, although they were outboarding the video to an external monitor and control system on their crane.

Day Six: Friday November 11, 2011

The last of our clinic days was today. I got a little bit of time to take some photos of the locals while we were heading to the clinic, as we didn’t get a late start this morning. I didn’t manage to get a shot of any of the Mayan women riding “side saddle” on the scooters and motorcycles, which I’ve been told is done to “preserve their virtue” by not straddling the bikes.

We saw a pretty decent number of patients today, and Irv got to do three foot surgeries on two patients (one plantar wart removal and two ingrown toenails), of which I got a few pictures. I filled prescriptions for the majority of the morning, in between setting up an autossh reverse ssh tunnel so that I would have access to the servers, since Dhaby didn’t get back to us concerning access to the router at Pop-Wuj. It was pretty easy to do, since I’m using OpenWRT-Kamikaze on the NSLU2, and installing autossh was as simple as correcting the ipkg source and using the ipkg tool to install the package.

We ate at the “chinese” restaurant across the street from Pop-Wuj for lunch. Their lo mein had a particularly Guatemalan flavor to it, but was quite good. We headed down to Banco Agromercantil at the edge of Zona 1 to change a few more American ducats into Guatemalan quetzals, dodging traffic and stopping to observe the Movistar-sponsored bouncy castle at the edge of the Democracia market. We headed back for 3:00pm to start training the clinic staff on using FreeMED. We started a little late, but after two hours of intensive training, it seems as though there’s a pretty good “buy-in” from the clinic staff, although I already have a laundry list of customizations which I’m going to have to put in place for the clinic. They do things a little differently than FreeMED’s usual target audience, so we’re going to have to make it easy to switch back and forth.

I feel as though we’ve gotten a fair amount of what we’ve set out to accomplish, and the clinic staff seems to think that we can adapt what we have to suit their workflow. I’ve seen a number of places for improvement, but the only way to see these things is to try them in a real-life scenario, so I’m glad that I got the chance to watch them work.

Day Seven: Saturday November 12, 2011

It was our “day off” today, so we went shopping for goods to bring back to the states. We took a minibus, belching clouds of black smoke, to the Terminal Minerva market in the west of Xela. I’ve never been in a more overcrowded place. I almost tripped over a few people while we were walking through there, and I got a few decent pictures. We spent two or three hours walking through the market, which was necessary, as there was no way to move through it any quicker than we did.

After we got out of the Minerva market, we took another minibus back to Parque Central, where Coca-Cola was sponsoring a very large christmas parade (along with whatever Powerade promotion they were doing) from Parque Central to Terminal Minerva, complete with a guy dressed as Santa Claus, the Coca-Cola polar bear, and three marching bands. The entire scene was utter insanity, but Irv got some shots of the whole thing going down. We went through the Parque Central market to find a few last-minute items, then took a cab up to the Alamo bus terminal in the north of the city to purchase tickets to get home. We walked back through the Democracia market down to the back end of Parque Central, and ran into one of the local clinic doctors on the west side of the Theatre Municipal on the way there.

There was a pretty widespread power failure today, and although I’m confident that the server came back online at the clinic, the tunnel which allows me access to update the system did not come back online (as one issue with the NSLU2 is that by default it needs to be manually powered on), so I sent a note to Dr Sullivan asking that it be turned on the next time someone is in the clinic. I do, after all, have a large number of fixes and adjustments for them which I have to push to their server.

Irv bought a tart cake for the nice people running Casa Manen, and we set to packing all of our stuff up for the trip. Long day tomorrow…

Project Review 2011

| Comments

I’ve been a bit lax in posting about my work here, mainly because Twitter makes you lazy. (Why write complete sentences when you can summarize in 140 characters or less?)

Here are some of the projects I’ve been working on over 2011, with some links. I’m sure I have left some out.

  • FreeMED – opensource electronic medical record/practice management system. Did a fair amount of retooling, including i18n, for the installation in Xela.
  • ganglia – opensource metrics aggregation system. Vlad and I managed to get a 3.2.0 release out the door, and are working on 3.3.0
  • ganglia web 2.x – updated web interface for ganglia
  • haproxy – API work, to allow programmatic manipulation and querying
  • nagios/icinga – API patches to allow programmatic manipulation of Nagios/Icinga
  • nagios-dash – a jquery-based Nagios replacement dashboard for NOCs. Requires the aforementioned nagios/icinga API patch.
  • node-soap – SOAP bindings for node.js. My work mostly involved fixing and expanding authentication methods.
  • REMITT – my medical billing engine. Modernized for 5010 transactions.
  • statsd-c – C port of etsy’s “statsd” server. Written in C primarily for speed.
  • sugarsync-linux – sugarsync linux API client. As Sugarsync isn’t too hot on providing a native Linux client, I took it upon myself to write one in Vala.
  • vded – “vector delta engine daemon”. Meant to allow metric collection for ever increasing values over time. (My first foray into “Vala”)

Wall Street, Occupied

| Comments

Finally, there’s some sort of populist anger against the bastards who tanked the economy in 2008 to pad their pockets. It’s just too bad that there isn’t a cohesive set of demands to go along with all of that rage.

For too long, media-created “populists” like the teabaggers have railed against liberal policies, diversity, and government in general to attempt to explain the uncontrolled collapse of the United States’ economy. I’ve heard explainations (discredited, of course), ranging from the Community Reinvestment Act to “too much regulation”, but I find it rather difficult to understand why the Occupy Wall Street protesters seem myopically obsessed with the Bush Tax Cuts and the Citizens United decisions — as if they caused this clusterfuck. Make no mistake, both are odious; one for draining our reserves and forcing us into “emergency” austerity measures for the sake of bolstering the top 1% of Americans (Bush Tax Cuts), and the other for removing the common man’s political power by allowing money, disproportionately held by the top 1% of Americans, to unduly influence the political process (Citizens United).

The root causes of the economic downturn are far, far simpler. We can explain some of it through the greed of multinational corporations, who choose to outsource labor, decrease benefits, and shunt money away from their labor pool to benefit investors and the parasite investor class to an onerous degree. We can explain it through a systematic dismantling of financial system regulations which have been in place since the aftermath of the Great Depression, including, but not limited to: the Depository Institutions Deregulation and Monetary Control Act of 1980 (Carter), the Garn-St. Germain Depository Institutions Act of 1982 (Reagan), the Gramm-Leach-Bliley Financial Services Modernization Act of 1999 (Clinton) and the Commodity Futures Modernization Act of 2000 (Clinton). Let’s not forget our ol’ pal Dubya, with his OCC tricks and gutting the regulatory system. Make no mistake, the primary causes of this clusterfuck are the greed of the banks and the fact that our leadership has been making it much easier for banks to have their way with you, virtually regulation-free. And they’ve been working at it for at least thirty years.

Putting aside greed and deregulation — banks (being considered the hypothetical sociopathic “persons”) — are bastards. Real bastards. Let’s take the example of Bank of America, which is (at the moment) one of the most hated financial institutions in the United States, with the possible exception of Goldman Sachs. I was listening to the radio this morning, and a spokesman for some shill PR group for the consumer banking industry was railing on about “regulations from Washington” and “that Dick Durbin” forcing the poor, helpless banks to institute five dollar a month ATM/debit card usage fees. I think that my rage culminated in his line about how he thought government regulations were hurting banks, evidenced by the mass layoffs at Bank of America. Let’s remember that those layoffs aren’t going to touch the parasite investor class’s ROI, and definitely not the CEO-level compensation or bonus package structure. Nope, not at all. Also, the shills for the banking industry don’t want us to remember that they don’t really make their money off of ATM or usage fees — they’re just a byproduct of suckering you into giving them your money.

Banks make money off of “fractional reserve lending/banking“. They essentially loan money into existence, but it requires a certain fraction of the money they’re loaning out to be “on hand”. This is where *your* money comes into play. You give them your paycheck, and see a nice dollar amount show up on your ATM screen or bank statement — but that money was just fed into the grist mill of short term, long term and mortgage loans. And if you have a home loan through BofA as well, they’re basically charging you to loan your own money back to you. (And they wonder why they’re some of the most hated institutions on the planet.)

That complete disconnection from reality is what, I believe, is fueling public anger — and their insistence in blaming “the gub’mint” for regulating them too much (I know, I know, it’s insane to even try to digest that, only a few years after deregulating their derivative trading, commodity trading, and general shaft-up-the-backside to the consumer, that they would consider blaming too much government intervention for them sucking, but I digress…) isn’t going to fly.

I hope the protests stay peacefully and spread. The protesters may not be unified (or completely informed), but they have the right idea — and their anger is finally directed at the right group of people.

Unemployment Benefits and the Masters of the Universe

| Comments

The Masters of the Universe seem to have a vested interest in the death of 99 week unemployment benefits, which I’m just starting to realize.

There is a pretty substantial inverse relationship between the DJIA and unemployment rates. By “unemployment rates”, we’re not talking about the Bureau of Labor Statistics U-6 numbers, indicating our entire workforce, but rather the more limited U-3 numbers, which indicate “Total unemployed, as a percent of the civilian labor force”. Let’s face it, it’s in the best interest of the ruling parties to keep the official unemployment rate low, to boost perception.

Shit, if I were to take a quick look at the DOL page on unemployment, it paints a bleaker picture than the rally in the DJIA which Bloomberg reports is tied to an “increase in job openings”. (Their “live ticker” for official unemployment numbers is here.)

What does this have to do with the “Masters of the Universe”? They’re going to be making a *killing* in the order of billions of dollars as stock prices predictably rise, of course. Doesn’t matter that we are losing manufacturing jobs due to globalization efforts and increased mechanization, or that stagnant wages and rising income disparity means you’ll die poorer and your upward mobility in terms of income is, for all intents and purposes, stalled. Even Ben Bernanke, money printer extraordinaire, says that we’re creating two separate societies this way.

So, why cut off extended unemployment benefits? I mean, unless you’re a brain-dead deficit hawk or a “I’ve got mine so fuck the rest of you” Libertarian, they actually have a pretty positive economic stimulus effect. More so than the pointless tax “cuts” that we’re going to extend until we’re ass-broke, at any rate. The only reason I can think of involves pumping up the stock market, which currently out-earns our manufacturing industry as a percentage of GDP.

Xela Day Seven: Huevos Revuelto Con Queso Sin Carne Y Adios

| Comments

It was my last day in Xela, with all of the basic setup, wiring, and other on-site work having been completed on Friday. As I’m lousy at negotiating prices even in English, Jorge was kind enough to go from shop to shop with me looking for some gifts for my wife and keepsakes to take home with me, after I went out with Irv to find a whiteboard for the clinic. The title of this refers to my normal breakfast order in the hotel, which I was finally able to order myself — “scrambled eggs with cheese, no meat”. When it comes to breakfast, I’m a bit more than mildly predictable.

Jonathan had decided to take us to Antigua a day before we had to fly out of Guatemala City because he was concerned about the long ride, potential delays from mudslides on CA-1, and to treat the team with a relaxing day off. I’m still surprised that we made it to Antigua in one piece — the bus driver we had this time treated CA-1 like a racetrack. I lost track of the number of times we passed chicken buses on two lane stretches with visible oncoming traffic, but we still somehow made it to Antigua in one piece.

For those people who want to see Guatemala, avoid Antigua like the plague. Antigua is to Guatemala like naugahyde is to leather. It’s like a really bad European version of the rest of the country, to somewhat haphazardly quote on of the other people on the bus. Everything is overpriced compared to the rest of the country, and the same goods are sold at a huge markup although the same amount probably goes to the poor people who actually manufacture the goods. I bought a few small things, as I had to burn the majority of my remaining quetzals before returning home, but the whole experience of shopping there with the memory of the poverty in Xela and the outlying regions left me a bit sick to the stomach.

Disregarding the income disparity and kitchy nature of some of the shops, along with most of the prices of the European-owned shops and hotels being represented in United States dollars rather than quetzals, Antigua is a beautiful city. People, especially street vendors, are marginally less friendly than they had been in Xela. I think I’d liken their disposition to that of street vendors in New York City, who generally frown upon taking their picture if I haven’t made a purchase from them.

A little later on in the evening, we went out for a trip-closing dinner at a little hole-in-the-wall restaurant hidden off of the central park, to which we had been directed by a somewhat questionable man in a cigar and liquor shop. The food was very good, but the portions were far larger than any of us had expected, and we left there very overstuffed but happy. We headed back to the sketchy cigar and liquor shop, at which point we decided not to frequent his establishment. Jorge suggested we go out to a salsa club, since, as he put it, “when are you going to be in Guatemala at a salsa club again?” We stayed for about a half hour, as it was noisy and overcrowded. Before we left, Jorge pointed out a few obnoxious American tourists as an example of the worst of us. I’d like to think that because Antigua was more of a pit-stop along the way home, we’re not in quite the same bracket as the American tourists who come down here for the sole purpose of partying and making general fools of themselves.

Tomorrow we fly home, and I’ll be spending another day of being on planes, trains and automobiles (all apologies to Del Griffith). I’m going to be relieved to be home, but I’d like to believe that I’m better off after coming down here. If I ever forget how lucky and privileged I am, I just have to think back to some of the places here.

(To anyone following this, sorry for the delay in posting.)

Xela Day Six: Implementation

| Comments

More than half our our crew parted ways to do a mobile clinic today, whereas Irv, Shelley and I stayed behind with Dr Christian and a few med students to attempt to get the EMR functional in a way which would jive with the clinic’s workflow. I hit quite a few snags in some of the UI implementation, since I have been pretty hands-off in the development of the UI over the last few months. Even with that, we managed to get the registration and triage components up and operational, while at the same time stringing category 5 cable around the clinic.

(Again, my job called me for another favor — this time a load balancer reconfiguration. I wonder if I get comp’d vacation time for this?)

So, after a day of implementation and clinic beautification, the POP-WUJ Clinic looks much better than it did before we arrived. The staff doctors thanked us all profusely for our help in making the clinic a nicer place — however, there was one moment which Jonathan referred to as the “pay it forward” moment. A local carpenter’s wife had been seen in the clinic, and he noticed that one of the doors seemed ill-fitted in regards to the frame in which it sat. He came back down later that day and refitted the door by shaving it down properly as a sort of thanks for the clinic having attended to his wife.

As an end of week “send off”, Dr Sullivan and her husband invited us over to their house for some wine and cheese. The whole thing would probably have been a little bit better if the sky hadn’t opened up with a monsoon on our way over, but thankfully most of us were wearing suitable rain gear. On the way back, we got lost trying to drop Shelley off at her host family’s house, so Irv and I ended up taking a cab back to Casa Mañen, more or less completely drenched.

It has been a fantastic week, and we have accomplished a great deal — but I’m getting to the point where I really miss being home. One more day of picking up stuff for the wife at the local market, driving to Antigua for Saturday evening, and I’m on a series of planes back to New England. Maybe we didn’t save the world this week, but at least we did our best to make some improvement, somewhere.

Xela Day Four: Aldea Pujujil

| Comments

Today we left early in the morning, around 7am, to head out to the village of “Aldea Pujujil” in Solola, Guatemala to do a travelling clinic. We took two “micro buses” with ten to thirteen people in each with equipment tied down to the top, and left Xela heading back towards Guatemala City on the Pan American Highway.

The local town had set up their central meeting building, which was a stone edifice with a grooved tin roof, as a sort of makeshift clinic. There were individual treatment “rooms” created by hanging wire with plastic garbage bags and painter’s tarps, and a large tarp separating the main registration and triage area from the rest of the “rooms”. Five separate treatment areas were available, in addition to an area for the dentist who came with us. More than half of the prospective patients spoke qui’che instead of spanish, so there were a few local translators to help the doctors, registration and triage crew.

The children there seemed very shy at first, but were enamored by the doctors, having their pictures taken, and having balloons made for them by the nurses and me out of spare latex gloves. In the afternoon, the local school emptied out at the same time as the daily rain, so the “clinic” area was flooded with refugees from the water. They quickly joined in playing with the inflated gloves and posing for pictures with the clinic crew. It was interesting to see that two of the boys were using old Corn Flakes boxes as protection from the rain.

Even though I had the job of documenting the clinic visit with photos for POP-WUJ fundraising to get more supplies to do this sort of thing in the future, I couldn’t help but feel a little helpless. The people who came needed medical help, some more than others, and the most I could do was try to make the children laugh a little and stand out of the way as a silent observer of the doctors trying to help this village, which, if lucky, would see these doctors a few times a year. Unfortunately, as the paper process used to see patients is pretty inefficient at best, we probably could have helped more people if we had a way to organize this better. The “distance workstation” project I’m looking at starting should help out with that, if I can clear some minor technical hurdles in the implementation department.

After a few hours in the bus, we came back to the clinic. Irv, Shelley and I stayed at the clinic and kept the door open so I could work a bit more there, and we headed back to the hotel around 7 or 8pm local time. Irv, Jorge and I went to a little restaurant called “Cafe Shalom” (alternately spelled “Cafe Shalon” on half of the posters) near Parque Central, and had a brief dinner, then walked back.

Back to the medical record… The server is stuck in customs in Guatemala City somewhere, so I had to get the secondary server up and running. It had been slightly damaged in transit, which jostled the RAID card loose and knocked a few connectors off of the backplane. Regardless, after my father made a quick trip to the local bookstore to pick up a blank CDR (as the BIOS in that model didn’t properly boot off of my Debian USB install key due to its particular vintage), I got Debian running on that machine with little trouble. The uplink here isn’t fantastic, so it’s a matter of starting the upgrades and downloads then walking away for a while. There are also some electrical system issues. The single outlet available to us is ungrounded, which may cause some issues, so we’re arranging a UPS to be purchased locally to act as a bit of a safeguard between the fairly unstable electrical grid in Xela and the servers and switching hub. We may have to drill a post to ground the system to the earth properly in addition to all of that.

I’m making pretty good headway with FreeMED modifications for the clinic, and have started on the triage screen, with some input from Jorge. I’m hoping that it can act as a “junction” in the flow of data around the clinic, but that remains to be seen. After I finish up the screen tomorrow, I’ll do some limited implementation testing to see how well it works or doesn’t work.

Xela Day Five: FreeMED, Finally

| Comments

It’s day five of our trip to Xela, and we’ve come to the realization that the damn server isn’t going to clear Customs before I leave the country. That being understood, I got FreeMED up and running on the machine which was originally designated to be the secondary / failover server. The guy who set up the router which is being used by POP-WUJ is unfortunately in Spain, and has left no information on access, so I’m unable to appropriately set up port forwards for the server. In lieu of that, autossh tunnels are now running back to Connecticut, so I can still access the server. It’s just not very conducive to anyone *else* trying to access the server from beyond the walls of the POP-WUJ building.

All of this was done despite efforts from my day job to occupy as much of my vacation as possible with fixing firewalls and failing over between colocation centers. That ate up the middle of my day, for the most part. While I was busy doing this, Jonathan and the part of the crew that hadn’t gone out hiking at 4am started work on beautifying and improving the clinic. By 5 or 6pm (as everyone else got back around 2pm), the pediatric exam room had been repainted and decorated, the main room had been decorated, and much had been improved in the pharmacy and in the electrical system areas. Thanks to my sister Shelley, there are nice printed signs which are to hang on the exam room and pharmacy doors, and a large tapestry hangs where a few photos had been haphazardly taped to the walls. Jorge painted the walls in the pediatric exam room with a roller, adorned with a plastic ziplock bag over his head and a surgical mask, and some of the nurses attached a semi-permanent measuring tape to the wall for height measurements, decorated with cutouts of popular childrens’ characters. With any luck, the kids who are seen in the clinic will feel much more at ease when they visit the doctor.

All of us went out for Tex-Mex food at a local eatery with Meg and her husband. I broke from my tradition of only eating local food to help myself to a grilled burrito “de res con queso” with beans and flavored rice, with a helping of the local beer. It was offered in light, dark, and “medium”, which we surmised was made by mixing equal parts of the light and dark brews. Regardless, it was a good tasting meal. I grabbed a chocolate flavored coffee, and Irv grabbed a regular, to help keep me up for a stint of finishing up the triage UI logic. I ended up going with a system event bus approach, in that new registrations are pushed out via “systemnotifications”, forcing the UI to update itself whenever new patients are registered at the registration stage. This should allow the triage person to see all registrations as they come in from a single screen which does not require any sort of manual refreshing to function properly.

The crew is splitting in half tomorrow. One half is visiting a daycare in the pueblos outside of town, and the remainder, including Irv and myself, are staying behind with Dr Christian to man the clinic in Xela. I’m staying behind so that I can help push adoption of the EMR for demographics and vitals collection, and Irv will be assisting Dr Christian in seeing as many patients as they can. The hope is that we can break for a while to visit the marketplace, as I promised my wife I’d buy her some local fiber, yarn and other knitting supplies. If I’m lucky, I can find a local artisan who makes instruments — but I’m not holding my breath.