Interface Standards – A pet peeve

Over the past year or so, I have been working on a project which involves interfacing with several different groups from my JEE application. I recall a day when interfaces were required to provide detailed documentation containing file or message specifications, formatting information, response timings and volume information, and so on. Something has fundamentally changed over the years and it is not for the better!

First of all, if an interface partner requests formatting and connectivity information, should this not be already existing in a document repository to be provided on-demand? It is amazing how many times over the past year I had to reverse-engineer information because the provider groups had not documented them! The process became more a matter of dependence on experience, reading tea leaves, and collecting old-wives’ tales in order to make heads or tails of the interfaces’ own data. Incredible as it may seem in this day and age where umpteen tools exist to permit developers and architects to lay out their public interfacing data.

Hand-in-hand with this are those interfaces that provided specifications but then did not follow them! In some respects, not having any documentation is better than having misleading documentation. Kind of reminds me of Mark Twain’s adage about a broken clock being right twice a day versus a clock that is slow or fast! Can you believe that in one case, I was provided a slew of XSDs for XML responses over MQ that I coded against and when I started testing against the interface, one of the messages had a blatantly misspelled top-level tag? How in the world did that get through their testing phases without being fixed or at least correcting the XSD to the misspelling for future interface partners? By the way, the product is in production so it can’t be changed now! Incredible….

In another case with an interface that exposes a webservice, I ran into problems using Oracle JAX-WS consuming their data. After examining their WSDL which boldly indicated in the xs:schema statement that elementFormDefault is unqualified, their returned data qualified some of their tags with namespaces and others were indeed unqualified. JAX-WS took (correct, in my opinion) the rigid road and failed to decode any of their tags since they did not meet the specs. When I brought this up to the interface partner, they agreed that they are violating the spec but they can’t change it now since they are in production! Again, how was this tested in the first place? I ended up having to code this functionality using Apache Axis 2 which seems to ignore the WSDL’s requirement.

The number of interface partners who could not explicitly provide the format for their data was mind-boggling. If you are responsible for data delivery, should you not KNOW your data? How in the world do you resolve problems with your interface consumers – if they have an error consuming your data, did you format it incorrectly or is it something on their side. I had one battle with an interface partner because they made a subtle change on their side which skewed a section of their fixed-length fields. They insisted that they were correct until I was able to show them their historical data was aligned differently. After our heated battle, they admitted their problem and fixed it. Again, how in the world could they test their changes without proper specifications for their QA team to follow?

How about dates and datetime objects? In international operations like most of us work for, how many interface partners explicitly provide normalized date information? It baffles the mind how many interfaces provide a raw date object (e.g. 20120122) without timezone information. This is bad enough but when one goes back to the interface partner to ask what timezone this date corresponds to, they throw up their hands and say, “I don’t know!” If I had my druthers, every date/datetime object would be transmitted with timezone information and if this were not possible then it would be centered on UTC. I have partners that transmit dates from multiple timezones as singular blobs of data devoid of timezone indicators. Oh joy!

When an interface partner provides a comprehensive document one would expect that it is accurate and can be coded against. While in many cases this is true, I did run into one which indicated that their data travels through MQ as XML. They provided documentation with the XSD of the XML and several examples. When I took my code to test, it failed immediately. Why? Unlike the document which indicated through its examples that the XML traveled the wire raw, the XML actually had an <?xml…> header.

Finally, what about your downstream partners? When you provide proper documentation defining every aspect of the interface that you expose for them, you would expect them to follow this. Not so. I had the glorious moment of having a critical defect opened against my code because it was not providing the data with a proper high level tag. After I scrounged up the specification, I discovered I was sending the correct data in a proper format — the downstream application had ignored the topmost tag in their code! Which brings me full-circle….

Have folks gotten sloppy with developing interface documentation because they figure that nobody will follow it anyway? Hopefully this is not the case. My appeal is to all Project Managers and Team Leads out there — do not let this critical discipline fall by the wayside. If you are in-charge of an application that exposes interfaces, ensure that this public contract is properly documented and tested against anytime changes occur within your application. Without it, interface consumers merely are programming by guesswork which is not a good thing in the long run.

Posted in Process, Programming, Software architecture and development | Tagged , , , , | Leave a comment

“Farm Near Sedalia” – a painting experience

One of the things that most attracted me to settle down in North Carolina is the wonderful scenery it contains. From the rugged beaches of the Outer Banks, through the lush farm- and forest-lands of the Piedmont, to the Blue Ridge Mountains, I indeed love calling North Carolina home! It presents a wonderful continuum of scenic beauty that constantly challenges the photographer and the painter in me.

During the late Spring of 2011, I happened to chance upon a nice rural scene not too far from home. It was a tranquil early evening filled with the muted sounds of cattle lowing and the occasional mosquito humming by. I captured several shots of the cattle farm and its imposing pond. It was my full intention to use it as the subject of an oil painting. The image of the pond is on my Flickr feed here.

I then began work on my largest canvas to date, a massive 4ft by 2ft monstrosity of pure white. It was my intent to make this painting Cinemascope-wide and as grand as possible in an attempt to capture the atmosphere and the feelings of warmth it invoked in me. The task ahead was daunting since I only started painting in oils last year (see Starting Oil Painting) and am still learning how to tame the medium!

Here I will briefly outline the development of this canvas. There was a long hiatus due to the fact that I was completely buried in work, but I have discovered that it was a good thing. For one, it permitted the canvas to dry down nicely before placing details. For another, it allowed me to consider how those details would appear and where I would eventually place them. I also had some excellent suggestions from my painting friends on the Facebook group called “Painting as a Second Language.” (If you paint in your spare time and want an inspirational and supportive group, come join us.)

Stage one was laying in an underpaintment area which would contribute depth and solidity to the final work. I have come to understand that a painting has to build solidly from shadows. The semi-translucence of each of the paint layers will permit these foundations to contribute to the final image. Additionally, it covers over the daunting whiteness of a virgin canvas and permits better matching of hue and value over time. Notice the preponderance of shadow purples and browns under what would ultimately be the foreground and forest areas. I also started to work in a skyline.

Stage 1: Farm Near Sedalia

The next stage was to start laying in the basis of the grassy area around the pond as well as to tap/brush in the inner forested areas. A small amount of refinement to the sky was also done, mainly because the forest areas would overlap the sky and there needed to be a sense of completion on anything left showing through.

Stage 2: Farm Near Sedalia

The next major task was to start bringing in the foreground tree trunks and their basic structure. The reflections in the pond were also becoming more and more important because I was preparing to start brushing in tall, lush grass which would overlap the pond and greatly reduce the possibility of changes later. Notice the reflections of trees and sky in the glassy surface of the calm evening.

Stage 3: Farm Near Sedalia

It was time to begin the painstaking task of brushing in the grasses. I opted to use a rigger and to attempt to bring out the long, waving stalks of grass. It may have been a bit over the top, but being foreground items, I felt that they were important enough to merit this treatment. The lushness of the unmowed vegetation watered by this pond was crucial to me. I also worked on the fresh Spring leaves on the trees in an attempt to capture that new-life color that the season births.

Stage 4: Farm Near Sedalia

The next set of tasks involved working in the farm buildings and fencelines and a bit of effort was spent in refining the grassy areas and the reflections in the pond. Small details were touched up to bring the painting into a higher-state of “polish” in preparation for adding the final items. Once this was done, I took a hiatus to allow the paint to set up, not expecting the hiatus to last five months!

Stage 5: Farm Near Sedalia

The final phase was to convert this pretty land into a working farm. I brushed in hay bales, added a door to the old barn and a tractor, added some landing ducks (inspired by a photo I had captured earlier during the year), and then worked in some cows in the foreground. I then suggested cattle in the background and the painting transformed from a lifeless entity into one full of life.

I present to you the final version of the painting, “Farm Near Sedalia,” for your viewing enjoyment. It was a pleasure to work on and it, like all canvases, taught me many valuable lessons.

Final Canvas: Farm Near Sedalia

A larger version is available on my Flickr feed at www.flickr.com/photos/claforet. Hopefully this has inspired you to also go out and create a canvas!

Posted in Art, Painting | Tagged , , , , , , | Leave a comment

“For unto you is born this day, a Savior!”

Merry Christmas to all. It has been a long time since I have posted anything and it is appropriate that I take a moment or two to type an entry.

Today is Christmas Day. This year, I had the pleasure of penning the words which glued our choir’s Christmas Cantata’s songs together. After considerable prayer and seeking, I entitled the work, “The Greatest Gift of All.” During the work of pulling it together and in introduction for the song entitled “Fear not! Good news!”, I spent a considerable amount of time on Luke 2:8-19 which describes the annunciation of Jesus’ birth to the shepherds. Really understanding the account actually moved me to tears for the first time. Here is the scriptural passage as boiled down for the Cantata:

Male narrator: We are back to the stable in backwoods Bethlehem, a town where babies had been born for centuries before and continue to be born even today. Yet, something is very different with this birth.

Female narrator: Precious few births are heralded by angels, far less those births at smelly stables behind inns.

Male narrator: In order to place His stamp on the importance of the event, God sent an angelic host to a group of shivering shepherds watching over their sheep somewhere near Bethlehem.

(Cue music for Fear Not) Female narrator: As you can well imagine, the shepherds were startled at these heavenly beings but they were instantly reassured by the words they heard: "Fear Not! I bring a message of Good News. For today, in Bethlehem the City of David, is born a Savior. He is the One sent by God who is the Lord. You will find Him, a baby in a manger. This sign is for you to know that He will bring great joy to all people."

Male narrator: After this, the angelic choir began singing praises to God. "Glory to God in the highest and on Earth, peace and goodwill to all men!"

Female narrator: Scripture states that the shepherds decided to go to Bethlehem to see for themselves. Leaving their flocks in the fields, they hurried to the City of David and found the baby and Mary and Joseph in the smelly stable behind the inn.

Consider the import of the angelic words. The proclamation is that the One called Immanuel, “God with us,” was born for you and for me. “For unto you” was the Son of God become flesh, to share our humanity, to save mankind from its state of sin. In the city of David Bethlehem, which literally means “the house of bread,” was born the Bread of Life (John 6:35) who holds salvation in His hands. This is the Good News. Jesus had come to deal with man’s biggest problem, his broken relationship with God.

Have you ever considered why He was born in a stable in the back of some nondescript inn in Bethlehem. As our Pastor reminded us today, stables are nowhere near being considered sterile places. Yet the Son of the Most High, one third of the Holy Trinity, chose to be born there, of all places on Earth! His advent was into the filth of a stable for two major reasons: First, it signifies the state of all humanity…our sinful state. As Isaiah stated, “All of us have become like one who is unclean, and all our righteous acts are like filthy rags; we all shrivel up like a leaf, and like the wind our sins sweep us away.” (Isa 64:6 NIV) Second, He was born as the Suffering Servant. Again, as Isaiah prophesied, “He grew up before him like a tender shoot, and like a root out of dry ground. He had no beauty or majesty to attract us to him, nothing in his appearance that we should desire him. He was despised and rejected by mankind, a man of suffering, and familiar with pain. Like one from whom people hide their faces he was despised, and we held him in low esteem.” (Isa 53:2,3 NIV)

These neglected shepherds out on the hillsides surrounding Bethlehem were the first humans to receive the notification of this holy birth. The angel appeared to them and declared the impossible news to their incredulous ears. Instead of ignoring that news, they made the right decision to go and to see for themselves. “So they hurried off and found Mary and Joseph, and the baby, who was lying in the manger. When they had seen him, they spread the word concerning what had been told them about this child.” (Luke 2:16,17 NIV) Not only did they see, but they were renewed by the experience and left the stable testifying about what they saw!

So, as this Christmas season draws to a close, may we go and see the Christ-child for ourselves. May we not just leave and forget the moment. May we, like the shepherds, return to our lives and never forget the experience. May we carry the vision of the Christ-child with us and proclaim the truth of His birth every day of the year.

Merry Christmas to all.

Posted in Christian thoughts | Tagged , , , | Leave a comment

Bright Fall Leaves in Sunlight : A Study of Contrast

Sometimes the most amazing photos you take are totally unplanned. Like most disciplines, photography is best accomplished by careful observation and planning. However, it is also pretty reactive to spur-of-the-moment captures. Life happens in the blink of an eye or the flash of a shutter, if you may. Of course, an argument can be made that a photographer’s discipline of observing and refining still operates at a subconscious level. Maybe…

This photo was one from the “kismet” bucket…early one morning my daughter and I went out to rake our yard. The rising sun shone into the woods adjacent to our lot and highlighted the remaining golden maple leaves. We both ran into the house, grabbed our cameras, and headed into the woods to catch this ephemeral event.

This capture was one of a handful that I was able to shoot before the light changed. In a few glorious moments of time, this shot made it to my camera’s sensor! The sun’s rays made the golden leaves glow against the darkness of the woods. What a beautiful contrast study it became.

Bright Fall Leaves in Bright Sunlight

For a larger size, see it in my Flickr photostream.

Posted in Art, Photography | Tagged , , , , , , , , , | 1 Comment

Electrified Horizon #1 : An abstract photograph

I am not much of an “abstract” artist but have been trying to dab my toes into the waters of abstraction once in a while. Last year, I posted about my first attempt to paint an abstract (see The Creation of Time. I can now admit that I tried my hand at shooting an abstract photograph and am really pleased with the results.

I am pleased to present “Electrified Horizon #1″ which was shot at Valetta, Malta on November 1, 2011. It was a 3 second exposure taken with a Nikon D700 fitted with a prime 24mm Nikkor lens. It is a literal photo-graph, a “painting with light” taken during deep dusk.

For more of my (conventional) photos, visit me at Flickr at www.flickr.com/photos/claforet. Thanks for visiting….

Posted in Art, Photography | Tagged , , , , | 1 Comment

The NASCAR Hall of Fame Revisited

Last year, I posted about a visit I made to the NASCAR Hall of Fame in Charlotte (see A Visit to the Nascar Hall of Fame). During that visit, I produced several really neat photos which the article either features or point to on my Flickr feed.

Earlier this year, I happened to go back. On the last trip, my daughter had not been with us so we opted to let her experience the museum. After all, in some way, NASCAR has played some part in her life! This time around, I took my video camera instead so I could capture some footage to (hopefully) assemble into a tasty video.

Ta..Ta..Ta..DAH! I can finally announce that the video has been completed.

Most of this Summer, I have been hammered by work or by the residual effects of work. Thus, my creative arts have all suffered greatly…photography, painting, and videography all bit the dust for several months. The result of the hiatus was actually positive, though. I feel that this video is “tighter” and better edited than most of my other stuff. It took some definite time to work out the sequences, sounds, and music choices for the final cut.

Interestingly, the fact that polished video builds upon good still photographs continued to be driven home to me. Video is definitely an extension of photography at some primal level. No matter how high quality one’s HD camera is, it still cannot capture as tight an image as a high quality SLR (I am interested in seeing how the SLR-based HD videos look). Good still shots tend to bring a crispness to the final production that can’t be rivaled.

So, I present to you, for your viewing enjoyment, Tourist for a Day: A visit to the NASCAR Hall of Fame….

Also, a reminder that my still images are on my Nascar Hall of Fame Set on Flickr.

Posted in Photography, Video | Tagged , , , , , | Leave a comment

The Diner: An American Landmark

The American diner was born sometime in the latter half of the 1800′s (according to the American Diner Museum) and its history became intertwined with this nation’s love of the automobile. During the post-war years, diners were a staple along the highways and byways of the American countryside. While each was in its own way distinct, they all shared a basic look and feel. A converted dining car, tiled floor, booths and a bar area, bright colors, neon signage, a jukebox, a soda fountain, and a ready supply of fast, hot food to satisfy its many patrons.

The Blue Ribbon Diner in Mebane NC

The sight of a garishly lit diner, neon tubes pumping out their glorious tinted light, is enough to make one yearn to stop and recapture the sights, smells, and sounds of a glorious era in the tapestry of American history!

For more photos of this diner, see my Flickr set called Diner!

Posted in Art, Photography | Tagged , , , , , | 1 Comment

The Winston-Salem Air Show 2011

On the same weekend that the nation commemorated the tenth anniversary of 9/11, the Winston-Salem Air Show was convened. It was the 100th year since the first air show came to the area and the show turned into a commemoration of aviation while still pausing to remember the losses on the ill-fated day of death and destruction ten years ago.

The weather was truly glorious on that weekend. The heat wave that had afflicted the Carolinas during most of Summer gave way to wonderful cooler low- to mid-80 degree days. There were beautifully photogenic puffs of cloud scattered in the skies above Smith-Reynolds Airport. It was a perfect day to be outdoors with family and friends.

Our little family took full advantage of the conditions as we drove to Winston-Salem on Saturday, September 10. The show was truly enjoyable with a mix of aircraft ranging from biplanes through a flyby of the B-2 “Spirit” stealth bomber. A commemoration was held for 9/11 in which the Winston-Salem first responders were on hand to honor their fallen comrades. Warbirds, historic jets, helicopters, and even the Honda Jet were on hand for demonstrations. Needless to say, the several aerobatic teams stole the show with their incredible feats.

I have created a set of photos on my Flickr of some of the images I captured from that event. Follow this link to access these images shot with my NikonD700 and processed through Photoshop CS5. I also produced a video of many of the aerial spectacles which can be found here on my Vimeo site. My 1080p HD video was shot with a Panasonic HDC TM700 and edited with Premiere Pro CS5.

Hopefully, you also will capture some of the excitement of the event!

Posted in Photography, Video | Tagged , , , , , , , , , , | Leave a comment

Bad Choice in Self-Checkout Equipment?

Welcome to a semi-rant! Actually, even though it may sound somewhat rant-like, it really is more of a short discussion about how choosing the right software and/or hardware can either make, or break, your business.

The photo accompanying my article is of one of my local Food Lion stores. It was taken by me today as I stood in the 12-items-or-less line with three items in my hand. Over the past couple years since the pictured self-checkout lines were installed, this view of them seems to be the norm. Very rarely are they all open. A little less rare are any of them open and accepting cash, credit cards, and debit cards!

Food Lion is one of the three stores we frequent. Lowe’s Foods here does not yet have self-checkout lines but our Harris-Teeter does. It has had four of them in place for the past years and rarely, in contrast with the pictured self-checkout lines, are they NOT open. What in the world is the difference?

For one, they use different vendors. Food Lion is built upon an IBM solution while the solution used by Harris-Teeter is made by NCR. The NCR solution is far more user-friendly, takes up less space, and seems to be downright more reliable. I have used both solutions and I have to say that, as an end user, the NCR system makes a lot more sense. It also has less “issues” dealing with exceptional circumstances in a more mature way than the one in Food Lion.

An additional difference is the way that each store has chosen to implement their solution. Considering that this is new technology, look at where Food Lion chose to install their self-checkout lines. That’s right, they are stuck off at the end of the checkout universe. Their model does not recognize that there will be new challenges to the checkout process that might need some additional hand-holding. Probably someone made the case that self-checkout aisles permit one to totally eliminate staffing.

In contrast, Harris-Teeter aggregates their self-checkout into a pod. Attached to the pod is a workstation staffed by a single experienced person who can respond immediately to issues, answer questions, and even help teach new adopters how to use the new technology.

All in all, this should sound an alarm for all of us who work in the software architecture and development environment. The choices that we make at each turn can either make or break our solutions. Ultimately, we hold positions of responsibility. We must not base critical choices on half-baked software and hardware. We must not build enterprise solutions on untested and uncertain code or designs. We need to evaluate all our vendors for reliability and responsiveness. Sometimes, the conservative way might be the appropriate one. When we don’t think this way, we expose our clients to failure and ridicule.

I know that this real-life lesson will not be lost on me! How about you?

Posted in Process, Programming, Rants, Software architecture and development, System administration | Tagged , , , , , , , | Leave a comment

Pack Your Bags Appropriately!

Today’s post is a short and pragmatic discussion for photographers or photographer/videographers. Over time, we tend to accumulate quite a collection of gear and stuff it into our bags. Additionally, our cameras come with lots of chargers and accoutrements which tend to clutter every corner of said gear bags.

Last weekend, my family and I decided to attend an airshow in Winston-Salem. As I prepared for it, I decided to take some photos and write an article about the process. In the photo adjacent to this paragraph, you can see my bag being prepared for the day’s activities on the left (black) and a collection of “unnecessary” items on the right. It is important to think through what would be practical for the specific expedition at hand for two principal reasons, namely, to have exactly the items necessary for shooting readily at hand and to shed unnecessary bulk and weight by leaving behind items that would never be touched!

In my case, I wanted to capture close ups of the aircraft as well as to reach out to grasp the action in the sky. Additionally, I desired to shoot some video footage of the airshow events which necessitated my consolidating some video equipment with my still photography gear. So, where should I start the process?

It was a single day trip so I realized that I could easily dump all my chargers as long as I charged all my batteries for my Nikon (the Li Ion battery and 8 NiMH) and my two video camera batteries. Chargers are bulky items even if they are not particularly heavy so they stayed home along with all the umpteen connection cables for the cameras. My second decision was pretty easy also. I also knew that I wanted the ability to swap lenses and easily put my video camera within easy reach, so that made me grab my Domke photo jacket (…which is worth another article itself. A good photo jacket is very helpful. It is made of mesh so it is relatively cool even on a hot day, and its wide pockets make life easier). Of course, I had to grab my Panasonic TM700 video camera and my Nikon D700 body.

Lens choices were mostly simple in this case also. I scarfed up my longest lenses (Nikkor 300mm f/4 and Nikkor 70-210 f/4 zoom) to reel in action. I grabbed my utility zoom (Nikkor 28-105 f/3.5) for general-purpose shooting and then grabbed my wide-angle Nikkor 24mm f/2.8 and my beloved ultrawide Sigma 14mm f/2.8 to get cool shots of the aircraft static displays. Since all of the shooting was going to happen in a nice, brightly lit outdoor setting, I had no qualms in dumping my fast prime lenses. At that point I also dumped my camera/video manuals (which I urge serious photographers to carry on longer trips here) and external flash, remote triggers, and so on. My final addition to my kit was a pair of walkie-talkies in case we decided to split up and wanted to keep in contact.

The result was a much lighter bag which actually stayed on my shoulders for most of 6 hours. Did I have any regrets? There were actually two lenses which I never touched. The Nikkor 24mm sat unused the whole time as did my wide adapter for my video camera. If I had left them out, I would have saved several more precious ounces. The walkie-talkies also were never touched, but their presence opened the door for my daughter and me to have covered action from different angles. It turned out that the layout of the airport and the viewing areas did not necessitate this, but there was no way to have known this beforehand. The final regret was our not leaving the 300mm’s case in the car and transferring the lens to the bag. It was actually irritating to have to keep up with an empty case and my wife ended up hauling it for much of the time!

Anyway, the point of this article is to think through the kit you will need and pack accordingly. This is important if you are planning a day trip (like I did), a vacation somewhere, or even a business trip to somewhere scenic. Practicing exercises such as my “Pick a lens” will help you understand which lenses offer you the best coverage for specific situations and will teach you how to survive even if you don’t happen to have the “right” lens. Remember to Pack the right batteries and/or charger combinations to get you through the event. In my case, I had two Li ion batteries and, if necessary, I could switch to normal AA cells to power my camera!

The point is to take exactly what you need and no more. Of course, if you will be driving to an event and will be near your vehicle, you can afford to take most, if not all, your gear. Also, if you are planning to shoot something critical (e.g. a friend’s wedding), you want to ensure that you have everything you need to support shooting that event (flashes, cables, little adapters, etc.). This would not be the best time to cut back on what you have with you!

If you are interested in seeing my photos of the airshow, you can find them in my Photostream on Flickr. Bear with me while I process all the images I plan to post…I process a few images per night and get them there!

Anyway, hopefully this will help you think through your gear choices whenever you go out on photographic expeditions. Happy shooting!

Posted in Photography | Tagged , , , | Leave a comment