<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>/home/jeff/blog &#187; FreeMED</title>
	<atom:link href="http://jeff.ourexchange.net/category/development/freemed/feed/" rel="self" type="application/rss+xml" />
	<link>http://jeff.ourexchange.net</link>
	<description>Sucking away valuable moments of your life ...</description>
	<lastBuildDate>Fri, 13 Jan 2012 01:24:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Project Review 2011</title>
		<link>http://jeff.ourexchange.net/2011/12/28/project-review-2011/</link>
		<comments>http://jeff.ourexchange.net/2011/12/28/project-review-2011/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 14:30:11 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[FreeMED]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=473</guid>
		<description><![CDATA[I&#8217;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&#8217;ve been working on over 2011, with some links. I&#8217;m sure I have left some out. FreeMED &#8211; opensource [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;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?)</p>
<p>Here are some of the projects I&#8217;ve been working on over 2011, with some links. I&#8217;m sure I have left some out.</p>
<ul>
<li><a href="http://freemedsoftware.org" onclick="pageTracker._trackPageview('/outgoing/freemedsoftware.org?referer=');">FreeMED</a> &#8211; opensource electronic medical record/practice management system. Did a fair amount of retooling, including i18n, for the installation in Xela.</li>
<li><a href="https://github.com/ganglia/monitor-core" onclick="pageTracker._trackPageview('/outgoing/github.com/ganglia/monitor-core?referer=');">ganglia</a> &#8211; opensource metrics aggregation system. <a href="http://vuksan.com" onclick="pageTracker._trackPageview('/outgoing/vuksan.com?referer=');">Vlad</a> and I managed to get a 3.2.0 release out the door, and are working on 3.3.0</li>
<li><a href="https://github.com/jbuchbinder/ganglia-misc" onclick="pageTracker._trackPageview('/outgoing/github.com/jbuchbinder/ganglia-misc?referer=');">ganglia web 2.x</a> &#8211; updated web interface for ganglia</li>
<li><a href="https://github.com/jbuchbinder/haproxy" onclick="pageTracker._trackPageview('/outgoing/github.com/jbuchbinder/haproxy?referer=');">haproxy</a> &#8211; API work, to allow programmatic manipulation and querying</li>
<li><a href="https://github.com/jbuchbinder/nagios/tree/nagios-3.x-api" onclick="pageTracker._trackPageview('/outgoing/github.com/jbuchbinder/nagios/tree/nagios-3.x-api?referer=');">nagios</a>/<a href="https://github.com/jbuchbinder/icinga-core" onclick="pageTracker._trackPageview('/outgoing/github.com/jbuchbinder/icinga-core?referer=');">icinga</a> &#8211; API patches to allow programmatic manipulation of Nagios/Icinga</li>
<li><a href="https://github.com/jbuchbinder/nagios-dash" onclick="pageTracker._trackPageview('/outgoing/github.com/jbuchbinder/nagios-dash?referer=');">nagios-dash</a> &#8211; a jquery-based Nagios replacement dashboard for NOCs. Requires the aforementioned nagios/icinga API patch.</li>
<li><a href="https://github.com/jbuchbinder/node-soap" onclick="pageTracker._trackPageview('/outgoing/github.com/jbuchbinder/node-soap?referer=');">node-soap</a> &#8211; SOAP bindings for node.js. My work mostly involved fixing and expanding authentication methods.</li>
<li><a href="https://github.com/freemed/remitt" onclick="pageTracker._trackPageview('/outgoing/github.com/freemed/remitt?referer=');">REMITT</a> &#8211; my medical billing engine. Modernized for 5010 transactions.</li>
<li><a href="https://github.com/jbuchbinder/statsd-c" onclick="pageTracker._trackPageview('/outgoing/github.com/jbuchbinder/statsd-c?referer=');">statsd-c</a> &#8211; C port of etsy&#8217;s &#8220;statsd&#8221; server. Written in C primarily for speed.</li>
<li><a href="https://github.com/jbuchbinder/sugarsync-linux" onclick="pageTracker._trackPageview('/outgoing/github.com/jbuchbinder/sugarsync-linux?referer=');">sugarsync-linux</a> &#8211; sugarsync linux API client. As Sugarsync isn&#8217;t too hot on providing a native Linux client, I took it upon myself to write one in Vala.</li>
<li><a href="https://github.com/jbuchbinder/vded" onclick="pageTracker._trackPageview('/outgoing/github.com/jbuchbinder/vded?referer=');">vded</a> &#8211; &#8220;vector delta engine daemon&#8221;. Meant to allow metric collection for ever increasing values over time. (My first foray into &#8220;Vala&#8221;)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2011/12/28/project-review-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xela Redux 2011</title>
		<link>http://jeff.ourexchange.net/2011/12/28/xela-redux-2011/</link>
		<comments>http://jeff.ourexchange.net/2011/12/28/xela-redux-2011/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 14:18:18 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[FreeMED]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=471</guid>
		<description><![CDATA[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&#8217;m going to try to chronicle my time this year working with the POP-WUJ Clinic in Xela (Quetzeltenanga), Guatemala, as I did [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p><b>Day One: Sunday November 6, 2011</b></p>
<p>I&#8217;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.</p>
<p>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.</p>
<p>I was relatively surprised that we didn&#8217;t encounter any issues with customs upon entering Guatemala with the two &#8220;sea bags&#8221; 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 &#8212; and without the benefit of a note from Rotary International this time.</p>
<p>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&#8217;s nice to see that there is a different familiarity here.</p>
<p>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.</p>
<p>After that, we walked to Park Central, grabbed some Xelapan goodies, a quick bite of &#8220;food&#8221; at Pollo Comperos, and an expresso-laden hot chocolate at &#8220;&amp;&#8221; Cafe. Clinic work tomorrow!</p>
<p><b>Day Two: Monday November 7, 2011</b></p>
<p>First day waking up in a new timezone, and as our CDMA-network phones don&#8217;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.</p>
<p>We sat in the central park for a while after breakfast, waiting for Banco International to open (which it wouldn&#8217;t have done until 10am, so I&#8217;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 &#8220;lower class&#8221; occupations. Although, as most are very short, I feel as if I&#8217;m a giant in a land of Lilliputians.</p>
<p>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 &#8212; I had always wondered how they did that.</p>
<p>I got the Linksys NSLU2 we brought down with us set up as a terminal server, and it&#8217;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&#8217;m a little less excited about that last part.</p>
<p>The one disheartening part is that I feel as though I&#8217;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&#8217;m getting to the point where going the extra mile of effort to be online or get things working feels like it&#8217;s not going to pay the dividends that it should.</p>
<p>An aside to the Xela-LUG group: there&#8217;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&#8217;t fantastic.</p>
<p><b>Day Three: Tuesday November 8, 2011</b></p>
<p>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.</p>
<p>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 &#8212; so much so, in fact, that we forgot to grab lunch, drinks, or anything else, until we left for afternoon siesta.</p>
<p>We &#8220;overslept&#8221; for the afternoon siesta &#8212; 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.</p>
<p>Irv and I sent a Facebook message to our Xela LUG contact (as he hadn&#8217;t responded to our emails), and waited at Albabar at Parque Central to see if he&#8217;d show. Unfortunately, he didn&#8217;t. I also took the opportunity to start posting our walking and bus tracks, which I have been religiously tracking using &#8220;MyTracks&#8221; on the Android-based HTC handset I usually use. It&#8217;s useless down here otherwise, as there are no CDMA networks.</p>
<p><b>Day Four: Wednesday November 9, 2011</b></p>
<p>Another very, very tiring day.</p>
<p>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.</p>
<p>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.</p>
<p>We finally got to meet up with Dhaby from the Xela LUG (Linux Users Group). He&#8217;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 &#8220;feet on the ground&#8221; 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&#8217;s a possibility that we&#8217;ll head down there on one of our &#8220;off days&#8221;.</p>
<p>The clinic closed early, as it was an &#8220;off day&#8221;, so we headed back to Casa Manen, and after siesta, we perused the Central Market. I&#8217;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.</p>
<p>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 &#8220;alternate installer&#8221;, 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&#8217;t handy&#8230;.)</p>
<p><b>Day Five: Thursday November 10, 2011</b></p>
<p>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 &#8212; whereas he had come because Isabel had contacted him per Freddy&#8217;s instructions.</p>
<p>We went to the clinic today, forgetting that the clinic is closed. I&#8217;m in the process up upgrading and maintaining the existing laptops, so that there&#8217;s a stable platform for the clinic people to use when I&#8217;m not here.</p>
<p>Another issue we&#8217;ve run into at the clinic is the issue of volunteers, which I will admit, doesn&#8217;t sound like much of an issue. However, when you&#8217;re dealing with IT work, there isn&#8217;t really much &#8220;handoff&#8221; between volunteers &#8212; 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.</p>
<p>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.</p>
<p>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 &#8212; at least enough to get the gist across.)</p>
<p>Oscar (from the Pop-Wuj school) had wanted some pictures taken of his son, but due to a miscommunication, his son hadn&#8217;t brought his trumpet, and hadn&#8217;t realized that we had been waiting there, so we put it off for tomorrow.</p>
<p>We walked back, stopping at Albamar for dinner. Most of the restaurant was reserved for a single family&#8217;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.</p>
<p><b>Day Six: Friday November 11, 2011</b></p>
<p>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&#8217;t get a late start this morning. I didn&#8217;t manage to get a shot of any of the Mayan women riding &#8220;side saddle&#8221; on the scooters and motorcycles, which I&#8217;ve been told is done to &#8220;preserve their virtue&#8221; by not straddling the bikes.</p>
<p>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&#8217;t get back to us concerning access to the router at Pop-Wuj. It was pretty easy to do, since I&#8217;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.</p>
<p>We ate at the &#8220;chinese&#8221; 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&#8217;s a pretty good &#8220;buy-in&#8221; from the clinic staff, although I already have a laundry list of customizations which I&#8217;m going to have to put in place for the clinic. They do things a little differently than FreeMED&#8217;s usual target audience, so we&#8217;re going to have to make it easy to switch back and forth.</p>
<p>I feel as though we&#8217;ve gotten a fair amount of what we&#8217;ve set out to accomplish, and the clinic staff seems to think that we can adapt what we have to suit their workflow. I&#8217;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&#8217;m glad that I got the chance to watch them work.</p>
<p><b>Day Seven: Saturday November 12, 2011</b></p>
<p>It was our &#8220;day off&#8221; 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&#8217;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.</p>
<p>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.</p>
<p>There was a pretty widespread power failure today, and although I&#8217;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.</p>
<p>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&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2011/12/28/xela-redux-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xela Day Seven: Huevos revuelto con queso sin carne y adios</title>
		<link>http://jeff.ourexchange.net/2010/09/25/xela-day-seven-huevos-revuelto-con-queso-sin-carne-y-adios/</link>
		<comments>http://jeff.ourexchange.net/2010/09/25/xela-day-seven-huevos-revuelto-con-queso-sin-carne-y-adios/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 04:08:36 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[FreeMED]]></category>
		<category><![CDATA[Remember, No One Cares]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=450</guid>
		<description><![CDATA[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&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p>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&#8217;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 &#8212; &#8220;scrambled eggs with cheese, no meat&#8221;. When it comes to breakfast, I&#8217;m a bit more than mildly predictable.</p>
<p>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&#8217;m still surprised that we made it to Antigua in one piece &#8212; 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.</p>
<p>For those people who want to see Guatemala, avoid Antigua like the plague. Antigua is to Guatemala like naugahyde is to leather. It&#8217;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.</p>
<p>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&#8217;d liken their disposition to that of street vendors in New York City, who generally frown upon taking their picture if I haven&#8217;t made a purchase from them.</p>
<p>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, &#8220;when are you going to be in Guatemala at a salsa club again?&#8221; 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&#8217;d like to think that because Antigua was more of a pit-stop along the way home, we&#8217;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.</p>
<p>Tomorrow we fly home, and I&#8217;ll be spending another day of being on planes, trains and automobiles (all apologies to Del Griffith). I&#8217;m going to be relieved to be home, but I&#8217;d like to believe that I&#8217;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.</p>
<p><i>(To anyone following this, sorry for the delay in posting.)</i></p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2010/09/25/xela-day-seven-huevos-revuelto-con-queso-sin-carne-y-adios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xela Day Six: Implementation</title>
		<link>http://jeff.ourexchange.net/2010/09/24/xela-day-six-implementation/</link>
		<comments>http://jeff.ourexchange.net/2010/09/24/xela-day-six-implementation/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 22:46:42 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[FreeMED]]></category>
		<category><![CDATA[Remember, No One Cares]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=447</guid>
		<description><![CDATA[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&#8217;s workflow. I hit quite a few snags in some of [...]]]></description>
			<content:encoded><![CDATA[<p>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&#8217;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.</p>
<p>(Again, my job called me for another favor &#8212; this time a load balancer reconfiguration. I wonder if I get comp&#8217;d vacation time for this?)</p>
<p>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 &#8212; however, there was one moment which Jonathan referred to as the &#8220;pay it forward&#8221; moment. A local carpenter&#8217;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.</p>
<p>As an end of week &#8220;send off&#8221;, 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&#8217;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&#8217;s house, so Irv and I ended up taking a cab back to Casa Mañen, more or less completely drenched.</p>
<p>It has been a fantastic week, and we have accomplished a great deal &#8212; but I&#8217;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&#8217;m on a series of planes back to New England. Maybe we didn&#8217;t save the world this week, but at least we did our best to make some improvement, somewhere.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2010/09/24/xela-day-six-implementation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xela Day Five: FreeMED, Finally</title>
		<link>http://jeff.ourexchange.net/2010/09/23/xela-day-five-freemed-finally/</link>
		<comments>http://jeff.ourexchange.net/2010/09/23/xela-day-five-freemed-finally/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 00:26:25 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[FreeMED]]></category>
		<category><![CDATA[Remember, No One Cares]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=445</guid>
		<description><![CDATA[It&#8217;s day five of our trip to Xela, and we&#8217;ve come to the realization that the damn server isn&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s day five of our trip to Xela, and we&#8217;ve come to the realization that the damn server isn&#8217;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&#8217;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&#8217;s just not very conducive to anyone *else* trying to access the server from beyond the walls of the POP-WUJ building.</p>
<p>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&#8217;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&#8217; characters. With any luck, the kids who are seen in the clinic will feel much more at ease when they visit the doctor.</p>
<p>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 &#8220;de res con queso&#8221; with beans and flavored rice, with a helping of the local beer. It was offered in light, dark, and &#8220;medium&#8221;, 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 &#8220;systemnotifications&#8221;, 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.</p>
<p>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&#8217;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&#8217;d buy her some local fiber, yarn and other knitting supplies. If I&#8217;m lucky, I can find a local artisan who makes instruments &#8212; but I&#8217;m not holding my breath.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2010/09/23/xela-day-five-freemed-finally/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Xela Day Four: Aldea Pujujil</title>
		<link>http://jeff.ourexchange.net/2010/09/23/xela-day-four-aldea-pujujil/</link>
		<comments>http://jeff.ourexchange.net/2010/09/23/xela-day-four-aldea-pujujil/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 10:58:55 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[FreeMED]]></category>
		<category><![CDATA[Remember, No One Cares]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=437</guid>
		<description><![CDATA[Today we left early in the morning, around 7am, to head out to the village of &#8220;Aldea Pujujil&#8221; in Solola, Guatemala to do a travelling clinic. We took two &#8220;micro buses&#8221; with ten to thirteen people in each with equipment tied down to the top, and left Xela heading back towards Guatemala City on the [...]]]></description>
			<content:encoded><![CDATA[<p>Today we left early in the morning, around 7am, to head out to the village of &#8220;Aldea Pujujil&#8221; in Solola, Guatemala to do a travelling clinic. We took two &#8220;micro buses&#8221; 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.</p>
<p>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 &#8220;rooms&#8221; created by hanging wire with plastic garbage bags and painter&#8217;s tarps, and a large tarp separating the main registration and triage area from the rest of the &#8220;rooms&#8221;. 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&#8217;che instead of spanish, so there were a few local translators to help the doctors, registration and triage crew.</p>
<p>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 &#8220;clinic&#8221; 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.</p>
<p>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&#8217;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 &#8220;distance workstation&#8221; project I&#8217;m looking at starting should help out with that, if I can clear some minor technical hurdles in the implementation department.</p>
<p>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 &#8220;Cafe Shalom&#8221; (alternately spelled &#8220;Cafe Shalon&#8221; on half of the posters) near Parque Central, and had a brief dinner, then walked back.</p>
<p>Back to the medical record&#8230; 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&#8217;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&#8217;t fantastic, so it&#8217;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&#8217;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.</p>
<p>I&#8217;m making pretty good headway with FreeMED modifications for the clinic, and have started on the triage screen, with some input from Jorge. I&#8217;m hoping that it can act as a &#8220;junction&#8221; in the flow of data around the clinic, but that remains to be seen. After I finish up the screen tomorrow, I&#8217;ll do some limited implementation testing to see how well it works or doesn&#8217;t work.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2010/09/23/xela-day-four-aldea-pujujil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xela Day Three: Clinic</title>
		<link>http://jeff.ourexchange.net/2010/09/21/xela-day-three-clinic/</link>
		<comments>http://jeff.ourexchange.net/2010/09/21/xela-day-three-clinic/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 00:12:03 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[FreeMED]]></category>
		<category><![CDATA[Remember, No One Cares]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=435</guid>
		<description><![CDATA[The clinic was open for the first of the two days it will be open during my stay in Xela. It was a pretty crazy scene &#8212; a line going to the end, if not around the end, of the block. We had Isabel, the local intake/registration person, working with my sister Shelley to do [...]]]></description>
			<content:encoded><![CDATA[<p>The clinic was open for the first of the two days it will be open during my stay in Xela. It was a pretty crazy scene &#8212; a line going to the end, if not around the end, of the block.</p>
<p>We had Isabel, the local intake/registration person, working with my sister Shelley to do registrations, after which the patients were sent to Jorge, who war running triage. Dr Meg Sullivan treated the pediatric patients, while Irv and one of the local doctors handled the adult patients. Within a half hour or so, the makeshift waiting rooms upstairs and downstairs in the clinic were packed with waiting patients. One thing I did notice was that the children were remarkably well behaved &#8212; much more so than children their ages in the United States.</p>
<p>American Airlines, never striving to be the speediest in baggage recovery, still hasn&#8217;t delivered the bag containing the primary server. As I haven&#8217;t had any actually setup or installation work to do, I spent my time alternately documenting methods, coding some pieces for FreeMED which would handle some of clinic&#8217;s various registration and triage functions, taking pictures for fundraising use, and doing basic gopher tasks for the doctors and nurses. It&#8217;s a little disconcerting that we aren&#8217;t able to get people trained up on the system yet, but it&#8217;s just going to have to wait until their server comes in.</p>
<p>Another hurdle is the wiring. There isn&#8217;t really any &#8220;modern&#8221; electrical wiring, in that most of the circuits aren&#8217;t grounded at all. Most look like they barely have any sort of insulation over their conductors. The clinic has a little bit of money for supplies and such things, so we may end up having a UPS purchased to attempt to shield the servers from the somewhat inconsistent wiring and power grid there. The laptops can probably function with simple surge protectors, since they have their own sort of &#8220;UPS&#8221; through the use of their batteries.</p>
<p>Well, apart from an emergency colo flip for work (which I&#8217;ve been up until a little after midnight local time performing), I&#8217;m looking to get some shut-eye, as we&#8217;re heading out to the pueblos early tomorrow morning. I think that I&#8217;m going to be a little less useful than I have been in the clinic, but hopefully I can glean some further &#8220;best practices&#8221; and workflow in such a way that I can make it easier for the docs to do their jobs.</p>
<p><i>Update for those who were waiting for pictures: I&#8217;m in the process of uploading some pictures from the POP-WUJ clinic to a Flickr set, so check my Flickr account early Wednesday morning or so to see the first batch.</i></p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2010/09/21/xela-day-three-clinic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xela Day Two: A Tale of Two Servers</title>
		<link>http://jeff.ourexchange.net/2010/09/20/xela-day-two-a-tale-of-two-servers/</link>
		<comments>http://jeff.ourexchange.net/2010/09/20/xela-day-two-a-tale-of-two-servers/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 03:57:12 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[FreeMED]]></category>
		<category><![CDATA[Remember, No One Cares]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=433</guid>
		<description><![CDATA[I ended up passing out on top of the sheets in the hotel due to the tired state in which I arrived, but today was full of plenty of excitement and activity. We walked down to the clinic after breakfast from the nice people at Casa Mañen. The clinic is, to my knowledge, the only [...]]]></description>
			<content:encoded><![CDATA[<p>I ended up passing out on top of the sheets in the hotel due to the tired state in which I arrived, but today was full of plenty of excitement and activity.</p>
<p>We walked down to the clinic after breakfast from the nice people at <a href="http://www.comeseeit.com/" onclick="pageTracker._trackPageview('/outgoing/www.comeseeit.com/?referer=');">Casa Mañen</a>. The clinic is, to my knowledge, the only permanent free clinic in Xela, and has a few permanent staff members in addition to the volunteers who come down with the &#8220;medical brigades&#8221; (as Jonathan calls them). I spent the majority of the morning organizing components and parts for the systems after American Airlines confirmed that they found our primary server and that it would be here Tuesday morning (tomorrow). My sister Shelley went with me, as my Spanish is just about as good as my Greek (which is to say, non-existent). We were able to ride the &#8220;micro buses&#8221; to take us out to purchase a SIM card for the T-mobile Android phone which my sister-in-law loaned me for the trip, as well as scoring some replacement parts and some webcams.</p>
<p>As a quick aside, if you&#8217;re looking for Ubuntu support for the &#8220;Manhattan USB Webcam&#8221;, don&#8217;t. It uses the gspca driver&#8217;s pixart_pac7311 driver, from what I can divine, but the USB ids aren&#8217;t present in the stock driver, so it&#8217;s going to be a fairly painful process to get support worked in, especially since the gspca is in the mainline kernel now &#8230;</p>
<p>Getting back to the day&#8217;s events &#8212; We were lucky to have taken the microbuses, at a bargain rate of 1.25 quetzals a person, since it started raining again. I, of course, had no rain gear, but my backpack is/was waterproof, so the laptop and camera remained safe. Everyone was amazingly friendly, even to the point of walking us to a store when we didn&#8217;t understand their directions. I also tried to be friendly with a few of the feral dogs, but they mostly kept their distance, probably because I didn&#8217;t give them any food. Better that way, Natasha wouldn&#8217;t be very happy with me bringing home another dog.</p>
<p>In the afternoon, we set up the four donated workstations in the clinic, but rearranged them to function as inventory collection workstations for the pharmacy for some short term data collection, mostly due to the clinic being open and overbooked on Tuesday. We used <a href="http://docs.google.com/" onclick="pageTracker._trackPageview('/outgoing/docs.google.com/?referer=');">Google Docs</a> to create a quick and dirty web form with some simple constraints as a frontend to a shared spreadsheet for drug collection. This was done since we still don&#8217;t have the primary server, and I decided on &#8220;bulk loading&#8221; the drug data into the system later on, to save entry time.</p>
<p>I have learned a great deal from the clinic staff and volunteers about not only clinic and pharmacy work, but also about some of the problems with operating in conditions which are less than optimal, including so-called &#8220;distance medicine&#8221; work in extremely rural areas. Tuesday, I&#8217;m planning on observing the clinic operation to see if I can streamline any parts of the interface to help facilitate ease of workflow and smooth adoption a little. Wednesday, we&#8217;re headed to the pueblos outside Xela so that I can watch the distance medicine teams, and attempt to figure out the best way to bring in data (as well as provide access to data) in extremely remote and poorly connected areas.</p>
<p>I&#8217;m struck with just how much I have in common with the doctors, nurses and other volunteers here in Xela; they all seem to have a pervading sense of need for social justice and feel that a little effort can make a difference. I wish there were more people willing to staff places like this.</p>
<p>In comparison, there are shops here selling American goods and foods at prices that are on parity, considering the exchange rate to dollars, with what they would cost in America. Then I realize that the average pay here in Xela is something like 35 to 40 quetzals &#8230; a week. (That&#8217;s something like five American dollars.) Once you start to think about that, the social support systems in America don&#8217;t really seem that bad. We spend a lot of our time taking for granted things like <a href="http://en.wikipedia.org/wiki/Americans_with_Disabilities_Act_of_1990" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Americans_with_Disabilities_Act_of_1990?referer=');">even and well maintained sidewalks</a>, <a href="http://www.epa.gov/air/caa/" onclick="pageTracker._trackPageview('/outgoing/www.epa.gov/air/caa/?referer=');">relatively clean air through use of emission controls</a>, and even basic animal control&#8230; Guess you don&#8217;t miss them until you visit a place that doesn&#8217;t have them.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2010/09/20/xela-day-two-a-tale-of-two-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xela Day One: Planes, Trains and Automobiles</title>
		<link>http://jeff.ourexchange.net/2010/09/19/xela-day-one-planes-trains-and-automobiles/</link>
		<comments>http://jeff.ourexchange.net/2010/09/19/xela-day-one-planes-trains-and-automobiles/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 03:10:29 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[FreeMED]]></category>
		<category><![CDATA[Remember, No One Cares]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=430</guid>
		<description><![CDATA[As part of setting up the POP-WUJ Clinic in Xela, Guatemala with an electronic medical record, I have headed down with a team of ten other volunteers to the city of Xela in western Guatemala. I&#8217;m going to document the trip and the work we&#8217;re doing down here by a series of daily blog entries [...]]]></description>
			<content:encoded><![CDATA[<p>As part of setting up the <a href="http://www.popwujclinic.org/" onclick="pageTracker._trackPageview('/outgoing/www.popwujclinic.org/?referer=');">POP-WUJ Clinic</a> in Xela, Guatemala with an electronic medical record, I have headed down with a team of ten other volunteers to the city of <a href="http://en.wikipedia.org/wiki/Quetzaltenango" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Quetzaltenango?referer=');">Xela</a> in western Guatemala. I&#8217;m going to document the trip and the work we&#8217;re doing down here by a series of daily blog entries chronicling our trials and tribulations setting up and installing <a href="http://freemedsoftware.org" onclick="pageTracker._trackPageview('/outgoing/freemedsoftware.org?referer=');">FreeMED</a> there. I&#8217;ll post pictures as soon as I get the chance to upload them to Flickr.</p>
<p><strong>Day One: Planes, Trains, and Automobiles</strong></p>
<p>We left Connecticut last night around 11:00-11:30pm, and picked my sister up in upper Manhattan a few hours later. Along with us were a few Rackable Systems servers, kindly donated by SGI and some laptops donated by my employer, as well as an assortment of donated medications and medical supplies. Shelley flew out on a separate airline from us, but we all ended up arriving in Guatemala City around 12:15 pm local time.</p>
<p>From there on in, we took a chartered bus/van the 170+ km from Guatemala City to Xela, through the mountains. It&#8217;s pretty poor in a lot of these areas, but what struck me as odd were the armed guards at convenience stores and banks, as well as the razor wire surrounding those same banks. There were also a lot of stray dogs, some in packs, some idly following people around looking for scraps. The &#8220;chicken buses&#8221; were old US school buses which had received chrome and paint jobs, usually packed with riders, even to the point of having the overflow spilling out the doors. Our driver Pedro was very nice, and took us to a restaurant on the &#8220;Intra American Highway&#8221;, which served delicious food.</p>
<p>American Airlines lost one of the bags, unfortunately containing the primary server. I&#8217;m planning on deploying the workstations we brought with us and doing any additional wiring which may be required. After that, if the bag hasn&#8217;t surfaced, I&#8217;ll promote what was supposed to be the redundant backup server to the role of being the primary EMR server and will proceed with the remaining steps of our installation. The POP-WUJ crew is able to give me help doing translation work for the EMR, as well as fleshing out the necessary functions of their day-to-day workflow. Hopefully, we can fine-tune the system to work like a well-oiled machine.</p>
<p>It looks as though choosing Rackable Systems is going to pay off, as I&#8217;m most likely going to finish up configuring the backup server using the serial console &#8220;roamer&#8221; port with my handy USB to serial adapter and null modem cable.</p>
<p>Thanks to Google Voice and Google Talk, I&#8217;m able to communicate with friends and family back in the states without breaking the bank, and they can contact me. On the downside, I miss my wife, and I&#8217;m sure she, along with the dogs and cat, misses me too.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2010/09/19/xela-day-one-planes-trains-and-automobiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designing applications for clustering</title>
		<link>http://jeff.ourexchange.net/2010/05/21/designing-applications-for-clustering/</link>
		<comments>http://jeff.ourexchange.net/2010/05/21/designing-applications-for-clustering/#comments</comments>
		<pubDate>Fri, 21 May 2010 20:25:03 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[FreeMED]]></category>

		<guid isPermaLink="false">http://jeff.ourexchange.net/?p=415</guid>
		<description><![CDATA[I have been recently been trying to redesign FreeMED (my opensource GPL&#8217;d EMR/PM system) in order to work in a &#8220;clustered&#8221; environment, so that I could support scenarios where multiple application servers were load-balanced to handle larger quantities of traffic. The latest piece of this has been to move filesystem-based storage into the database layer [...]]]></description>
			<content:encoded><![CDATA[<p>I have been recently been trying to redesign <a href="http://freemedsoftware.org" onclick="pageTracker._trackPageview('/outgoing/freemedsoftware.org?referer=');">FreeMED</a> (my opensource GPL&#8217;d EMR/PM system) in order to work in a &#8220;clustered&#8221; environment, so that I could support scenarios where multiple application servers were load-balanced to handle larger quantities of traffic. The latest piece of this has been to move filesystem-based storage into the database layer so that I don&#8217;t have to mess around with clustered file storage and replication. Some of the highlights of this have been:</p>
<ul>
<li><strong>Database-based session handling</strong> &#8211; At least when dealing with stateless applications like FreeMED, session information has a bad habit of being confined to the local filesystem. We ended up using PEAR&#8217;s HTTP_Session2 to support database-backed sessions. I can&#8217;t help but think this would be so much easier using JAAS &#8230; </li>
<li><strong>API abstraction</strong> &#8211; Don&#8217;t write this one off too quickly. A good API layer means that whenever you have to make these sweeping changes, you&#8217;re only playing with a few files of source code, as opposed to completely rewriting a good chunk of your codebase. Without the few layers of API which I had been using, I would not have been able to implement the database backed information store which I just completed.</li>
<li><strong>Database backed file store</strong> &#8211; This was the part I had just finished up. Storing files locally and relying on filesystem-based replication from some of the new clustering filesystems may *seem* like a good idea, but it&#8217;s not. Database gives you a single authoritative source, and unless we&#8217;re looking at multi-gigabyte files, there should not be an appreciable toll. Besides, you indexed your tables properly, right &#8230; ?</li>
<li><strong>Design for concurrency</strong> &#8211; That record locking may seem like a pain, but two people working on the same object can be catastrophic. Take the time to add a locking field if you have to.</li>
<li><strong>Singletons</strong> &#8211; Take &#8220;singleton&#8221; processes into account, so you&#8217;re only running a single iteration of something which can only be run once.</li>
</ul>
<p>Those are the major bullet points, although I&#8217;m sure that upon review of this, I&#8217;ll think of some other design paradigms I had to play with to get this to function properly. Off to enjoy the weekend &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ourexchange.net/2010/05/21/designing-applications-for-clustering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

