Iraq Day 68
Amazingly, it’s Friday again. The passage of time here is strange; in the moment it often feels ponderously slow, until one looks back and finds a week has gone by in a blur. Last week seems a distant memory; next week seems far in the future.
I’m holding up fairly well. I’ve been trying to sleep more, and I’ve not been to the gym in over a week, which helps as my typical gym time at 21:00 or 21:30 kept me out late, thereby impairing sleep. At some point soon I need to go back to the gym; not sure how I’ll resolve the conflict.
Earlier this week we had an entire day of overcast skies and rain! It came out of nowhere, and left just as quickly; the standard weather configuration here of late is cloudless blue skies, painfully bright sun, pleasant (for now) warmth, and light breeze. The rain felt somewhat incongruous, but the sound of it on the roof of my trailer (a slight drizzle is caucauphonous from inside) made napping easier.
Last night I was having a drink w/ one of my co-workers at our camp when an extremely loud POP sound rang out. Unlike mortar and rocket fire, which produce thunderous booms, this sounded like a very loud firecracker. It turns out it was a so-called ‘air burst’: a mortar which detonates in the air above the target, spreading shrapnel over a wider area, obviously as an anti-personnel device.
It struck fairly nearby; up the street a ways. As with most hostile indirect fire here in Iraq, it’s not particularly effective; there were no casualties reported. It struck me then how sudden such things happen, and I now appreciate the idiom ‘if you heard it, you’re fine’, meaning you won’t hear the one that kills you.
Our team lead, or ‘Chief of Party’ in the curious BearingPoint Iraq vernacular, is away on vacation for about ten days, leaving me in charge as ‘Acting Chief of Party’. Though it sounds like an awesome responsibility, mostly it involves hearding a few cats, scheduling PSD convoys, and generally fielding the various crises as they arise.
Drag though it is, I’m now ostensibly responsible for the rest of the team, which is a bit frightening, particularly given the current questions about the quality of our security provider.
Last night, our ‘Friday’, was astonighingly boring. Ever since Dana, the only female of breeding age on our team, took up with a difference crowd, we’ve lacked for invitations to the relevation social activities, leaving Steve and I to fend for ourselves. Last night we spent a depressing 30 minutes in the Beaver & JDAM bar, almost completely deserted at 9PM, before giving up and going back to the camp.
Of course, I blame the facist security restrictions which the Lucent security director has imposed, which in effect read ‘no one can come to the bar’. Not surprisingly, this has a negative impact on bar attendance. Perhaps more surprising is that I care at all, considering I regarded drinking in a bar to be a social burden before I came out here. I suppose even I require some relaxing social activities every once in a while…or perhaps that air burst just shook me up more than I thought!
We continue to bring our own alcohol to burger night at the BE camp on Wednesdays. Though uncouth under normal circumstances, when a bar is outdoors and attended by a consultant with minimal bartending skills, AND stocks only Johnny Walker Black Label for whiskey, couth is at a premium with or without external whiskey sources.
The brunette I (along w/ the half of the IZ that doesn’t prefer blondes) fancy was also in attendance, which under the circumstances is probably not a net positive.
For the two months I’ve been here, I’ve been hearing from all the veterans about how with the passage of time, my criteria for physical attraction will attenuate to match the environment, but I’m somewhat proud to report that has not happened. This leaves me quite disinterested in all but the most attractive here, who are all quite far ‘out of my league’ in terms of physical desirability stateside–let alone under the distorted economics of the IZ–sparing me the hassles of an untenable, turbulent, stress-induced, emotionally devastating relationship.
Of course, this only works if the women and I hew to our arrangement, under which I do not annoy them with weak, futile, humiliating advances, and in return they do not mislead me with any attention beyond the most basic contact required to transact whatever business we may have. In the general case, this arrangement works remarkably well for both parties, however there are isolated incidents in which it is disregarded, leading to situations such as those at burger nights.
It’s somewhat cliche to whine and complain about a dearth of women, particularly in a war zone, however I find the arrangement so perversely amusing as to require some commentary.
The Iraqi dev team have made remarkable progress in the short time I’ve been here. From barely knowing any C# and no ASP.NET, at least two are developing independently, and have finally reached the feature complete milestone for the first iteration of the software.
Even better than this, I think they’re starting to see their own progress, and derive encouragement from it. In particular, when we finally submitted our feature-complete delivery last Thursday afternoon, U (the supervisor or leader of the team) was very clearly satisfied with the work that had been done, and commented on the progress they’d made.
This is particularly heartening since the months before my arrival were somewhat tumultuous, with a few significant changes in development direction, and very little direction or progress. Now, they’re building confidence and abilities, and hopefully soon will have some production code to point to and say “I made that”. Inshallah.
The Oracle bullshit continues. MoI’s IT official continues to disrespect us by blowing off attempts to meet to discuss the Oracle vs. MySQL issue, so we’re now forced to go over his head. The Iraqi staff are particularly angered by this development, as they see their ‘gift’ of a system for CRD in effect rejected by an ignorant and very likely bribed MoI official because it doesn’t use software he doesn’t even begin to understand but has been told to believe is superior. All I can say to them is: we have this bullshit too.
The furnishing of my trailer is coming along nicely. Thanks to contributions from my family, stuff I’ve ordered from the US, and stuff I’ve acquired locally, my humble living quarters are becoming more settled.
Unfortunately, despite daily thorough cleanings by our Filipino houseboy, my desk and shelves are still a cluttered disaster, with no hope of finding anything. Oh well; war or not, some things never change.
On Tuesday, the coalition’s Rule of Law Working Group met in the American Embassy Palace Annex. This is a meeting of a wide range of civilian, law enforcement, and military personnel (almost all Americans) meet to coordinate activities and share information concerned with the establishment of the rule of law in Iraq. If that sounds coordinated and collaborative and productive, I’m not describing it very well.
At any rate, we were asked (or rather, our lead offered) to do a presentation about our project. So, we brought two of the devs, U and R, into the palace to do the presentation (the application is in Arabic, which shocks and awes far too many Coalition ppl, so a translation is required).
As I was escorting them into the palace, we hit a security snag. Not thinking, I let one of the Iraqis carry the laptop we were to use for the presentation. The Embassy RSO (security officer) has a strict rule that no one who isn’t a cleared American with an Embassy ID badge can bring in electronic equipment of any kind, let alone a laptop. Saying that it was mine (it was our project laptop), promising to carry it myself and not let them have access to it was not enough for the Peruvian contract security staff, who are as averse to actual thought as most security guards are.
The head of the guard team called his supervisor, an uncleared American contractor who clearly didn’t make it as a cop and was making up for it here. He too was unwilling to engage any neurons further north than the brain stem, and put me on the phone with one of the Assistant RSOs (ARSOs) to discuss the situation. ARSOs are typically (always?) Diplomatic Security Service agents, and thus at times more willing to think and decide things.
Fortunately for me, I got one of the thinking ones, who upon being briefed of the situation, warned me I was not to plug the laptop in to any of the network drops there (duh), and receiving my strongest assurances that we would abhor the mere thought of doing such a thing, instructed his minions to allow us to pass.
Apart from that somewhat irritating experience, the meeting went off without a hitch. The Iraqis did a great job of presenting, and even did some ad hoc tie-in with a discussion point brought up earlier in the meeting. Some of the attendees asked the usual self-agrandizing bullshit more-brains-than-sense bureaucrat questions, but others asked meaingful ones, and they were all noticeably impressed with the abilities of the Iraqi team (perhaps some had never seen a real Iraqi up close).
Wednesday was yet another Iraqi holiday (anniversary of the death of Muhammed), but on Thursday a group of three lawyers from DoJ came by the camp to talk to the team a bit about the project and what we were doing, and how we could possibly work together. One of the lawyers was in my DSAC class, a US Attorney from Utah, while another was a US Attorney from DC here in Baghdad for a few days before heading back.
I think they were genuinely impressed as well, though the woman from DC asked some pretty hard questions about AFIS integration that belied a complete lack of perspective of the current and near-term future sophistication of the Iraqi justice system. They even wanted to get a few pictures for her superiors back home.
To their credit, the Iraqis react to this animal-in-a-zoo treatment with good humor; they for the most part realize that it’s better to have this type of interest from influential people than to be ignored.
The security situation here seems to be getting more tenuous. With the majority Shia party ceasing cooperation with the coalition over supposed US misdeads in the mosque raid in Sadr City, things really started to look tenuous. We’re still here, and our contacts in the ministries are still talking to us, so perhaps it wasn’t as bad as it sounded.
At any rate, the mortar and rocket attacks seem to have picked up, as have the frequency of car bombs outside the wire. I’m told it’s nothing like it was in ’04 and ’05, but it’s bad nonetheless.
On top of all this, questions about the quality of our PSD support abound. Last week, one of the teams which regularly takes us out was hit by a complex, coordinated attack. Fortunately, no Coalition personnel were killed, but there were injuries. I’m beginning to think we’re getting discount PSD support, which would of course be unacceptable.
On a more positive note, last Saturday where was a bazaar at the luxurious USAID compound, where a handful of Iraqi merchants came into the IZ and gathered in one place to sell overpriced Iraq kitsch to the expats. I bought a ton of stuff to send back home, plus a few things for my wall here.
It’s past my bedtime, and the weekend is now over. Fortunately, it’ll be Friday again before I know it.
Apocryph.org user tip
At least one reader of apocryph.org, whom I shall refer to only as Rebecca Susan Morse, my current housemate and longtime friend, did not realize that the list of posts which appear in list form on the apocryph.org main page are in fact only ‘teasers’; a much more substantive full post can be read by clicking the article title or the ‘read more’ link at the bottom.
So, if you didn’t realize this either, you’ve been missing out on a ton of content, mostly about Iraq but also about my tech misadventures. So, for God’s sake, click ‘read more’ or the post title if it seems something you’d want to read.
Why is profiling in .NET so hard?
I’m working on an entry for TopCoder’s third Intel MultiThreading challenge. Unlike all the winners of past contests, I’m using C#, despite the considerable performance disadvantage it suffers relative to C++, particularly on the Cygwin-based C# compiler used by TopCoder.
Nonetheless, the objective isn’t the win the paltry prize money; I’d like to see how close to the winning solution a C# implementation can get, and at the same time keep me on my intellectual toes while I languish here in Iraq.
At any rate, apart from correctness, the challenge is to solve a computationally-intensive string processing problem in as little time as possible. To start with, I coded a naive implementation and submitted it for a correctness test, but it failed the more complex tests because the code failed to complete in the 60 seconds alloted time.
The first response to any such problem is to whip out a profiler, find the hotspots in the code, and make them suck less. Unfortunately, the profiling situation in .NET is poor.
MS don’t provide any meaningful profiling support on their own; the somewhat misnamed CLR Profiler actually profiles the CLR heap, not CLR execution, making it utterly useless for the task at hand.
An open source project, nprof, used to provide decent bare-bones profiling, but it’s a dead project and has, shall we say, limited .NET 2.0 support. I was unable to make it work with .NET 2.0 despite considerable exertion to that end.
Apart from nprof, one’s options are commercial. In the .NET 1.1/VS2k3 days, Compuware offered a free ‘Community Edition’ of DevPartner Profiler, which sucked in the proud tradition of other CompuWare products, but often as not could point you in the direction of the performance problem before eating shit and dying, taking VS2k3 with it.
Anyway, once CompuWare realized it was possible to use the CE product for something useful, they of course pulled the plug, so the new version of DevPartner Studio, 8.0, which works w/ VSk5/.NET 2.0 doesn’t have a Community Edition.
So, that leads me to JetBrains dotTrace, a commercial .NET profiler. I’m downloading an eval now, and if I really like it I may actually pay the $250 for the commercial version. If I only sort of like it I’ll find a crack.
Iraq Day 60
Two months ago, at 5AM Monday morning local time, I arrived via the Rhino into the IZ. I’ve now all but made up my mind to stay through July for a six month tour, punctuated by two RRBs and a R&R trip home, obviously. Though the situation is stressful at times (see below) I continue to derive immediate satisfaction from my experiences working with the Iraqis, political bullshit notwithstanding.
On Tuesday I went to the Embassy barber shop to get my hair cut. Those of you who have seen my irl in the last couple years know that I have shoulder-length hair; be assured I didn’t have it removed. However, I do require periodic trims around the ears and neck to keep my hair looking well-kept, hence a trip to the barber.
The trim, plus a tune-up of my stubble trimming job, took about 10 minutes, and cost a whopping $2. I tipped the Iraqi barber an additional $5, as I couldn’t help but recall the $40 I spent to have my hair cut at a salon in Herndon before I left for Iraq.
A few days ago my boss, our Chief of Party, came to me asking my help fixing a few problems w/ her boyfriend’s laptop. Apparently a fuckwit had repaved the drive in an attempt to install his favorite AV software, and neglected to ask if the owner wanted to keep his email archive. Obviously there was nothing I could do to recover a binary database file from a repaved disk after Windows and tools have been installed, but there were a few other snags, including a periodic switching into Arabic mode (Left Shift-Alt cycles through installed keyboard layouts; presumably he was hitting this combo by mistake), and missing/broken audio drivers.
It wasn’t a particularly big deal, and I got a bottle of Famous Grouse blended scotch in return. I would’ve settled for an AK and a credible PSD legend with which I could regale the newly arriving women, but oh well.
Yesterday we took another convoy ‘outside the wire’ to the MoI Criminal Records Directorate. Recall that CRD is located immediately outside gate 2, one of the ingress/egress points for the IZ, so the convoy ride was about 5 minutes long and covered maybe 100 yards of red zone.
We were supposed to meet a high-level MoI official (the equivalent of a CIO) to discuss his unwillingness to allow us to proceed with the delivery of the CRD application unless it runs Oracle instead of MySQL. Apparently, someone has sold MoI on Oracle, and they are not particularly interested in a compromise.
We came prepared w/ some finely polished rhetorical munitions, but in the end the CIO didn’t come; only two of his subordinates. So we chased them around the table for a while, then concluded the meeting and agreed no decision would be made until we could get the CIO himself into a meeting.
On the one hand I’m glad to see the Iraqis developing sufficient IT savy to recognize the value of standardizing in a single database technology, but I think they are being somewhat premature, and are being influenced by Western Oracle pugilists with little regard for the unique constraints (money, talent, hardware) facing Iraq. Oh well; this is a fight far from settled in the West, so there’s no reason to expect it to be here.
Everytime I go outside the wire, I’m struck by the extent to which the Iraqis in Baghdad are..well..normal. All the Iraqis I work with live in the red zone, of course, but driving through the streets, past crowded markets and through busy streets, past billboards advertising familiar and utterly foreign brands, feels somewhat at odds with my conception of life in Baghdad.
Make no mistake, Baghdad is a very dangerous place to live, now more than ever. I’ve also only seen a small portion of Baghdad, and never the slums like Sadr City. However, it’s easy to forget that Baghdad is a modern city with modern people who get up each day, and (if they are fortunate enough to be employed) go to work as police or shopkeepers or programmers or doctors or merchants, and eat at cafes, walk with their children, etc.
So, when you think of Baghdad or Iraq more generally as a war-torn ruin of a once-great people, you’re missing the very real and, imho, very remarkable truth of modern Iraqi life.
I went to the weekly burger night again last night. For the past couple of weeks, I and a like-minded colleague have taken to bringing our own alcohol, as the BearingPoint bar offers a somewhat limited selection of hard liquor, chiefly in the form of Johnny Walker Black Label, which in my somewhat uninformed opinion is the whiskey which most closely approximates the taste of ass. Last time we brought a bottle of Jack Daniel’s bought off the local economy, which tastes nothing like real Jack Daniel’s, but beats Johnny Walker Black nonetheless. This time I brought a bottle of Famous Grouse blended scotch which was given to me by an Australian in return for fixing his computer (see above). I was skeptical at first given my elitist attitude towards blended scotch, but it was quite mild and smooth considering.
One aspect of IZ life which has become more pronounced since I first arrived is the constant gunfire. There are ranges all over the IZ, run by private PSD companies as well as US gov’t agencies, and they’re live more and more often. Walking to breakfast each morning, it’s rare that I make it all the way to the DFAC without hearing at least a few fusilades of small arms fire, either AKs, pistol fire, or M4s.
The weather of late has been roughly equivalent to that of a tropical paradise. Today the sun is shining (I swear the sun is brighter here than anywhere else I’ve been), the sky is blue, there’s a gentle breeze, and it’s a comfortable 80-ish. There are birds signing from the palm trees and the bombed-out palace, and apart from helos flying overhead and explosions in the distance, you’d never know you were in a war zone.
I continue to be amazed by E. Yesterday morning I discussed with him my ideas for implementing an audit logging function in the CRD app, whereby all user activity is logged for easy review by CRD management. I then went out on a convoy to the CRD, and by the time I returned, he had already coded an initial implementation of my concept.
I then reviewed the code with him, and pointed out a flaw which grew out of his misunderstanding of the nature of static classes in ASP.NET: he assumed there would be one static instance per client; he didn’t realize that static means a single instance per app domain. Upon learning this, he wanted to switch to a non-static class, probably stored in the Session container, however I urged him to refactor his code and use the HttpContext.Current.User.Identity.Name property to programmatically get the currently logged in user name.
At first he resisted, but I showed him how overloading could be used in this case. He protested that overloading doesn’t add any value; that he would rather create a different method name, and I tried to explain to him, as I have in the past, that using overloading is somewhat idiomatic, and tells the reader of the code that the various overloads are semantically equivalent. This time, rather than push back, he noted that he’s used to writing code for himself, and not having to think about how easy it will be for others to read.
It seems a minor epiphany, but the ability to recognize one’s own perceptual bias and adjust for it is a sign of intelligence and maturity which are prerequisites for becoming a skilled programmer.
Finally, I feel burnout creeping up on me more and more now. Typically this wouldn’t be a problem, as I’d be just back from my RRB, however with it postponed until late April, burnout is accumulating more than usual.
I’m not sure what the primary source of the burnout is, but I def feel it. My sleeping is eratic and insufficient, my cognitive abilities are somewhat impaired, I am easily emotionally destabilized at the slightest provocation, and I feel no motivation to do anything. My appetite has been reduced, and it’s all I can do to drag myself to the gym a few days a week.
This morning I’m feeling slightly better, after sleeping in an additional 30 minutes until 8 AM, then sprawling in bed until 8:30 AM, though this came at the cost of missing breakfast. Tonight will be the weekend, and there’s talk of just hanging around the camp watching DVDs on the projector. This likely as not won’t work out, since Dana will be pulled in at least a couple bar/party directions, but hopefully we end up doing something that is at once enjoyable and low-key, so I don’t crash as I did last Thursday.
I suspect my RRB will clear this right up, so I just have to last another month, inshallah.
Iraqi government offices–first impressions
Today I visited a high ranking official at the Ministry of Interior (MoI) headquarters in Baghdad. Previously I’ve met one of his subordinates at a satellite office elsewhere in Baghdad. A few things were common to both, that jumped out at me as unexpected:
- Smoking is as common here as it was in the US in the 50s. Everyone smokes, and it smells accordingly
- The lighting is poor, and the walls and floor dingy. One feels like one is in a third world country
- There is a television on and visible from the official’s desk, showing either American programming with Arabic subtitles (it was 60 Minutes today) or Arabic language programming
- There is a male secretary or assistant at the official’s beck and call, who is summoned to bring chai, juice, or other refreshment in accordance with the Arabic custom
- Despite holding military ranks like Major, Colonel, General, etc, the officials wear civilian clothes in the Western business casual style
My biggest problem is w/ the TV; it’s very hard for me to focus my attention on the official when a television is blinking in the corner of my eye. On the plus side, the chai (tea) today was excellent; sweet and delicious.
Iraq Day 56
I’ve been in Iraq for nearly two months now. It seems at once longer and shorter than that; on the one hand, I feel at home here now, and have come to know the Iraqi dev team very well. On the other hand, it seems just a short while ago that I climed off the Rhino into the IZ at 5 AM.
I’m finally starting to feel the effects of prolonged absence from home, family, and friends. Days are getting longer, sleep is getting harder, nerves are fraying, etc. At this point, it’s all managable, but it’s interesting that it all seems to come at once; this time last week I was fine. There’s something about the two month barrier that seems to make a difference. Hopefully my RRB in late April will ease the tension somewhat. In the mean time, I just try to get enough sleep, eat sensibly, go to the gym even when I don’t want to, and stay in touch w/ home.
Today I go out into the red zone to the Ministry of Interior building. It’s a pretty dangerous area on a good day, so I’ll be relieved when we make it back safe.
Last week a curfew was imposed on Thursday, making for a quiet day. This week Monday and Tuesday are holidays, Thursday and Friday are holidays, and Wednesday is a de facto holiday, so things will be slow and quiet. Hopefully I don’t lose my mind during that time!
You’ve likely heard of the plot to storm the IZ, recently foiled by Iraqi forces. We feel an artificial sense of security and isolation here in the IZ, which clearly is misplaced. It’s easy to forget you’re in the middle of a war when you’re listening to music, shooting pool with a drink in your hand on Thursday night, but just outside the walls the shit continues to hit the fan.
The last few days we’ve had a small taste of what the Iraqis go through every day: the city power grid, which we rely upon for our primary power, experienced rolling blackouts that even impacted the IZ, which typically gets priority access to juice. Our camp has a backup generator, but it can only run for about 6 hours before it must be given a two hour break; as a result, we had periodic power outages lasting about two hours at a time. Yesterday even the Embassy Annex lost power while we were meeting in the Green Been; fortunately we just pulled out our personal flashlights and kept right on going.
This is only a mild annoyance now, since the weather is reminiscent of springtime in a tropical paradise, but as it gets hotter losing power will become significantly less cool (no pun intended).
One of the novel experiences I have when working w/ the Iraqi dev team is the periodic discussions about English idioms and obscure words which they have heard but do not understand. A few days ago, Y asked me what the word speckled meant. I tried to explain, then asked him where he saw it. It turns out, he’s currently trying to read two different English books: The Da Vinci Code by Dan Brown, and The Speckled Band, a Sherlock Holmes story by Arthur Conan-Doyle. I’m amazed he can understand any of the classical English literature, given how much more dense and syntactically complex than modern American fiction it is.
Last week some of our team went to MoI to meet with the powers that be about our upcoming CRD release and our project more generally. We’d not met w/ this group for a few months due to the security situation, so they had effectively forgotten about us, and as such pushed back more than expected.
In particular, some self-interested charlatan has convinced at least some in MoI that the entirety of Western civiliation runs on Oracle technology, and Iraq should buy into it as well if it wants to be a modern government. Given the high cost of Oracle licenses, and the higher cost of Oracle admins and developers, I’m hard-pressed to think of a less appropriate database technology for the fledgling Iraqi government, but at least one high-level MoI official is sold on it. Part of our objective in going out to MoI today is to begin to turn back Oracle’s gains and make the case for going forward w/ MySQL in our application, at least pending acquisition and deployment of Oracle resources.
Following the somewhat unproductive MoI meeting, U from the Iraqi dev team met w/ the head of CRD to show him the latest iteration of our app and make sure he was soundly in our camp in advance of today’s MoI meeting. While there, he provided some excellent feedback on the app, suggesting all sorts of UI and functional enhancements, most of which will be simple to implement. This is an extremely positive sign, as it suggests he is not only paying attention to the demonstrations, but is thinking through how our application will help him do his job, and taking the time to help us make it work better for him.
We’re scheduling weekly visits to him between now and the go-live date to keep this feedback loop tight, and to ensure that the actual delivery day goes as smoothly as possible. The only real worrisome outstanding issue is that of the data entry of the 400k existing paper records which will need to be keyed into this system before it is of any significant use; we’ve yet to source the data entry staff or make detailed arrangements for their access to and keying of the legacy criminal records.
U has really stepped up as the leader of the Iraqi team. He’s providing meaningful suggestions to us regarding strategy and political maneuvering, as well as showing remarkable insight into the pragmatism and discipline required to develop iterative software. He’s made it clear that he is unwilling to let this project fail, whatever it takes. We’re very fortunate to have him on the team.
Our stateside QA aparatus has begun to provide defect reports based on our early software deliveries. I’ve not yet determined how I want to expose the Iraqis to the bug reports and effect their resolutions, as there’s a certain pride of ownership and sensitivity to criticism, especially on E’s part, which needs to be considered carefully. They’ve not yet reached feature-complete anyway, so I have a while to reflect upon my strategy before they have to start dealing with defects, but whatever I come up with I suspect will be an imperfect solution. Oh well; they have to learn about the full lifecycle someday…
I’ll be leaving for MoI in an hour; hopefully the meeting goes well, and the trip is uneventful…
Gallery 2.1 RC2a
I just noticed that the Gallery project has released RC 2of Gallery 2.1. This version finally includes support for hidden items (photos and albums which are not visible to guests browsing albums, but are accessible to guests if they know the direct URL of the item), and password-protected albums and photos. Both of these basic features are handy for sharing photos with a limited group of people, but not everyone.
The download was uneventful; I extracted the tarball over my existing 2.0 installation, as per the upgrade instructions. I then navigated to my gallery, and was greeted with an upgrade wizard.
After authenticating with the setup password, step 2 of the wizard is an environment check. There were no reds, but I did get some warnings:
Warning: Output buffering is enabled in your php by the outputbuffering parameter(s) in php.ini. Gallery can function with this setting – downloading files is even faster – but Gallery might be unable to serve large files (e.g. large videos) and run into the memory limit. Also, some features like the progress bars might not work correctly if output buffering is enabled unless iniset() is allowed.
and
Old files (3328)
These files are no longer part of Gallery. They probably won’t cause any problems but it is a good idea to remove them to keep your install clean. Gallery can’t remove these files for you, but you can download and run this script in your gallery2 directory to delete them for you.
I’m not sure why output buffering is enabled; I certainly don’t want my server output buffered, for just the reasons the warning mentions. The old files I’ll take care of later.
A quick edit of /usr/local/etc/php.ini:
output_buffering = Off
does the trick. Of course, apachectl restart to restart Apache is required before the changes kick in.
In the next step, the updater was unable to write to config.php; this is not a surprise, as I chmoded it after the initial setup. I’ll put it back to chmod 0666 just for the upgrade.
Step 3 went fine; putting config.php back to chmod 0444.
In Step 4 I elected to upgrade all installed modules to whatever the latest versions are. Apart from a warning that “ImageMagick module needs configuration”, all module upgrades were green.
That was it. All the other steps were without incident. The final upgrade screen said to go to the site admin to upgrade any other modules; I’ll have a look there to see if anything needs to happen…
The only module with an ‘upgrade’ link is ‘ImageMagick’. I clicked ‘upgrade’ and got ‘Successfully upgraded module ImageMagick’; too easy.
Next, I installed and activated the Hidden Items and Password Items modules, the availability of which is the only reason I upgraded at all. Once these modules were activated, I could use the Edit Item function on my albums and photos, and find two new sections: one with a check box to make the item hidden, and one with password boxes to set a password to view the item. Outstanding!
The hidden feature works flawlessly. The password feature has one gotcha that I can see: if the guest user does not have permission to view an item, then the password prompt just continuously reappears, without any indication of the problem. It could be argued that this is a security feature and not a bug, but I think a minor security tradeoff would be worth the usability boost. Oh well.
It seems the ImageMagick module is broken, as it shows up with a red circle w/ a line through it. Upon further investigation, it’s disabled itself because the version of ImageMagick I have, 6.2.2, has a known security vuln. I’m trying to upgrade it via a FreeBSD package, but I can’t find one handy. The vuln is an infinite loop on an intentionally malformed image; since I trust everyone w/ image upload privs, and an infinite loop isn’t a serious compromise, I’ll override this security warning and force the module to use the vulnerable version.
It also seems as though the upgrade, when it purged the cache, killed the thumbnails, so I’m using the Maintenance function in the site admin tool to rebuild the thumbnail/resized copies of all the images. Now that I turned buffering off, this produces a meaningful progress bar, which is kind of novel.
Amazon in the hosted storage business–kind of
I just learned about Amazon’s new Simple Storage System, or S3. Amazon are clearly getting serious about hosting key tech plumbing, having already offered its simple queuing service and Mechanical Turk, which I expected to be much more popular than it is.
Afaik, the approach Amazon are taking with S3 is somewhat unique. They are providing a simple REST and SOAP API, built around a lightweight object idiom, where an object is identified by a developer-defined key, and consists of one byte to five gigabytes of data. Access is via HTTP/1.1 and Bittorrent. Object access control is user-based, or can be made public.
Pricing is interesting too; $0.15/GB/month, plus $0.20/GB transferred. No setup fees, minimum purchases, contracts, or bullshit.
It’ll be interesting to see who does what w/ this service. Amazon are supposedly using it internally for all of their own data storage needs, but apart from that I can imagine some compelling third-party applications built atop the Amazon storage infrastructure. In effect, a small team of resource-constrained developers could leverage effectively limitless storage and bandwidth resources with very little upfront cost, which is a substantial qualitative shift in tech infrastructure economics. Then again, I was similarly agog over Mechanical Turk, and that’s gone nowhere…
Iraq Day 49
The Iraqi dev team has taken to brining in samoon and kiri every morning; clearly they know what I like. Today they also brought in burag, and for themselves they bring canned sardines (Milo brand) which they stuff into samoon, much to my disgust.
The last two days some of our team have been, for lack of a better term, ambushed at meetings w/ Iraqis. It’s becoming clear that this project doesn’t have the strong leadership and coherent planning that it needs, and we’re seeing the results now. Hopefully between the three of us Steve, Dana, and I can turn it around.
It would help if we’d get confirmation that our contract with INL was renewed for another year, so we could make long term project plans w/o the Sword of Damocles over our heads.
This evening Steve and I were hanging out just outside my trailer, drinking some of my Bushmills Malt whiskey, when a single rocket flew very close overhead, making an unforgettable lethal whistle sound. I climbed backward into my trailer, and Steve dove head-first into my doorway for cover. En route, he managed to kick my door clean off its hinges.
The rocket ended up being a dud, but the door paid the price nonetheless. I’ve posted a few pictures of the scene, simply for the hilarity of it all.
The drama over the quality (or lack thereof) of our PSD support continues. It amazes me that anyone would nickle-and-dime over such life-and-death shit, but of course it happens. If you have faith in any organization involved in Iraq reconstruction, from DoD to USAID to the UN, spend some time around the palace and you’ll rapidly become jaded and disillusioned.
Amazingly, our project w/ all its little hiccups is a well-oiled machine; a paragon of management expertise compared to so much of the work that goes on here. Maybe someday the US will get good at reconstruction, but we’re definitely not there yet!
I ended up canceling my RRB to Amman, as the Iraqi government has closed BIAP to all civilian traffic after a rumored explosives incident. Rebecca was understandably disappointed, but seems to be taking it in stride. I’ll be fine as well, though the closer I get to burnout the more my performance will degrade.
Unfortunately, this was the only halfway decent time to go for the foreseeable future. Until we conclude the CRD pilot and the Irbil consultation in April, I really can’t leave, and by then I’ll be close to finishing my term here, so unless I extend I won’t even get an RRB.
Oh well; inshallah indeed!
Today Y asked me why I don’t have a girlfriend. The resulting hour-long discussion was quite interesting. He didn’t understand, given that I am successful and have a good job, why I couldn’t find a suitable woman. Of course, dating in an Islamic country like Iraq isn’t quite what us Westerners are used to, inasmuch as a man can get him self honor-killed if he hits on the wrong girl in the wrong neighborhood.
Given the inability to meet, get to know, and court women, marriage is often based on a man’s social and financial standing, and does not necessarily involve love or attraction in the way we think of it. Or so Y tells me. This comes from a guy who has one devoted girlfriend, and another on the side, so one gets the sense there’s an exception to every rule…
Check out my latest traunche of photos, March Chicanery.
Iraq Day 46
Amazingly, it’s been over six weeks since I first arrived in Baghdad. It seems at once much longer and much shorter than that.
The PX outside the palace has been significantly upgraded. It’s disturbing how significant an event that is. They now have XBoxes (note to MS: support the troops and send more XBox 360′s!) and junk food and footlockers and lounge chairs. I’ve got to spend my $11/day incidental pay somewhere…
My exposure to Iraqi food has been expanded once again. Last week the Iraqis brought in burag (grilled meat and spices in a flaky pastry crust) and laham-bahgeen (thin pita bread topped with seasoned pieces of grilled meat). Of course, I thought both were great, and the Iraqis were horrified at the poor quality of it. Apparently, any one of their mothers could have done the job much better.
It’s for the best that none of their mothers are here in the IZ; as it is I eat semoon and kiri every day…
As a joke, Y brought me a ‘treat’: A ‘Kinder Surprise’, which is an Italian candy consisting of a delicious chocolate egg, containing a smaller plastic egg which in turn contains a small toy, some assembly required. He got it as a joke, but I think it’s kind of cool.
The development team is really moving along now; E and R are cranking away on the CRD application, and we’re starting to get defect reports and code reviews from the States. This week U is going to visit the users themselves and give them a demo of what we’ve got so far, to solicit some feedback and guage their enthusiasm for the new system.
There’s still a long way to go, but they’ve made incredible progress in the last six weeks.
Last Thursday night I went out w/ a few co-workers to an early St. Patrick’s Day party at the CRG camp (CRG is a PSD company staffed mainly by British and Northern Irish ex-military, hence the enthusiasm for St. Patrick’s Day), where we had a great time. The party was in a tent outdoors on a beautiful Baghdad evening. It was at once packed (>200 ppl, at least 25% of which were women of breeding age; at least 10% of those were hot) and comfortable (plenty of room and not too loud, so my introversion was not irritated).
The weather here in Baghdad has been delightful. Clear and 50s to 60s at night, sunny and 70s to 80s during the day, with minimal humidity. We had one sandstorm a few days ago, but it was very mild, and consisted of high winds, an oddly blanked out sky, and a haze of dust in the air. I’m told I can expect much more severe sandstorms soon, after which summer will begin in earnest. Until then I’m savoring each day.
My RRB is coming up very soon. I think it’s just about time for me to get a break; I’m screwing up more at work, and today I wrote five postcards to family and friends, dropped them in the mailbox, and realized a couple hours later that I hadn’t written addresses on any of them. Doh!
That said, I’m pleasantly surprised by how sustainable the work/life situation is here; as long as we don’t get/develop any toxic personalities on our team, and our contract option gets exercised thereby paying our salaries after 1 May, I can see myself extending another couple of months.
I’ve not decided what I’ll be doing in Amman, but I’ve plenty of options. I will spend at least a few days asleep in the hotel; of that much I am certain…