contact ME

Use this form to reach out to me.

Ask me about the software development consulting and vocal services that I can provide for your project.

Westboro
Ottawa, ON
Canada

I am an independent software development consultant, specializing in model-driven development with Eclipse technology, which has been a passion for the last ten years.  I am widely recognized for my high-quality output, timely delivery, and friendly and engaging manner.

I also happen to be a capable singer, performing sacred and secular works for choir and tenor solo from the renaissance to today.  If you are presenting vocal music in Ottawa, eastern Ontario, or west Québec, I can be your tenor.

IMG_1359.JPG

Blog

An ad hoc record of Christian W. Damus's professional and personal activity.

Fun with OCL in Papyrus Mars

Christian W. Damus

 

Last week I presented an "Introduction to OCL" lunch-and-learn talk to a private client.  We had some technical troubles with the remote screen-sharing system, so the live demo portion of the presentation didn't exactly turn out as we had hoped.  Consequently, to finish the job and to ensure that my work of preparing demo materials wouldn't go to waste, I decided to record screencasts instead and share them with everybody.

These screencasts are up to my usual production standard (which is to say unevenly paced and hardly edited) because I never really have time to spend on these things.  But, I hope they may serve as a useful introduction to the value of OCL in the Eclipse modeling universe, as well as OCL-related transformation languages that I included in my OCL introduction talk.

Read More
  

Profile Applications in Papyrus Mars M3

Christian W. Damus

This week's M3 milestone of the Mars release of the Eclipse Papyrus project adds new capabilities for profile applications in your UML models. Now, profile applications, and the extensions of your model elements by the stereotypes that they define, can be stored separately from the packages in your models to which they are applied.

The brief (seven-minute) video above demonstrates the most important capabilities of profile applications in Mars M3, including:

  • separating a profile application and its accompanying stereotype applications into their own model
  • loading and unloading stereotype applications (the models to which they are applied are independent of them)
  • opening profile applications in their own editors
  • duplicating profile applications

The last item above is particularly interesting, as it shows how the same profile may be applied to the same package multiple times, with different stereotypes applied to elements and/or different values of the attributes of those stereotypes. This is especially useful for comparative "what if" scenarios, such as modeling alternative deployments of software components onto hardware in an embedded system using different applications of the MARTE profile.

Of course, a profile application once externalized into its own resource in this way can also be re-absorbed into the model to which it is applied. This is not demonstrated in the video, being left as an exercise for the reader.

For a detailed history of the development of this feature, see bug 399859. Better yet, install the M3 milestone of Papyrus from the Mars simultaneous release repository and play with it!

  

[Updated] Presto! Here's your Terrible User Experience

Christian W. Damus

Update 2: 25 April 2014

This story has a happy ending. In less than a week, my very helpful contact at PRESTO resolved all of my problems:

  • all of the cost of the six cards that I didn't need has been refunded
  • I have returned those cards to PRESTO (at no expense to me)
  • my original card is now in good working order again. The balance is positive: the analysis determined that there was an extra $80 charge that didn't belong, so that has been reversed, and a $10 courtesy credit is added to boot. My card once again provides passage on the bus

Kudos to my contact, who worked diligently this week to get action from the back-office teams responsible for various parts of the system, always keeping me informed with timely updates, and always in the most professional manner.

Next, we'll see what the PRESTO web development team comes up with for usability improvements in future roll-outs of the user account portal. May nobody else have anything like the experience that I have had!

Update 1: 21 April 2014

I am happy to report that a very helpful senior business analyst from PRESTO reached out to me to get my problems resolved. She has taken ownership of the entire case, including the original negative-balance problem on my card, plus the six new cards that I don't need. We have worked out a plan that will be entirely satisfactory, including:

  • reimbursement of the $186 of charges for the new cards to the original payment vehicles
    • these cards will be cancelled on the PRESTO end and I shall probably just destroy them (no need to return them), but that needs to be confirmed
  • final determination of what happened on my original card, so that I can return to using it
  • investigation of the glitch in the website that gave a false impression of incomplete transactions in the ordering of these six new cards (a new ticket raised for that)
  • improvements are already planned for the user account portal on the PRESTO website (no surprise that these have been requested by others, too) that should prevent this happening again to anybody else, including:
    • clearer presentation of the transaction history to show which charges are credits and which are debits, and what they mean
    • e-mail alerts for changes to the account initiated by the system (such as termination of an auto-load contract)
    • e-mail notifications of problems in processing payments (actually, it appears that the plan is to notify that a credit card will be expiring soon, because of course PRESTO has the expiry date for card authorization)

All in all, this is very encouraging. I have a contact that is not of the front-line support team, who has already been proactive in getting in touch and has promised to keep me up to date and get this mess fixed.


[Original Post]

You might think that all e-commerce transactions on the Worldwide Web are pretty much the same these days. Choose your product, click Checkout, enter some credit card details, submit, wait a bit, get a confirmation, then receive your product in the post some days later. Right?

Wrong.

Background

First, some background is in order. It all started in February 2014 when I hopped on an OCTranspo bus and innocently tapped my PRESTO card for fare payment. The machine blinked a red no-smoking sign at me to deny the fare. The driver immediately said "Sorry, sir. Go ahead and take a seat." I asked "Why, what happened?" The reply was "It looks like a glitch in the system. It shows your card having a balance of negative 80 dollars. That doesn't make sense, but you should call PRESTO to inquire."

Well, enquire I did. First, I looked at the transaction history for my account on-line. It showed a number of $80 transactions in pairs, in quick succession. Some of them appeared to have increased my balance (for some silly reason I had an $80 automatic top-up on this account) and some appeared to decrease it. Strangely, none of the values in the table were negative, despite that they clearly were a mix of credits and debits. Looking at my credit card statements, I saw no activity at all to match these transactions.

So, next I phoned the PRESTO customer support line. The helpful person on the other end called up my account history and explained that there were a number of top-up credits ($80) that failed payment processing and so were subsequently reversed via offsetting debits on my account. I asked how to tell the difference because the web page I was looking at showed no negative values. "Oh, sorry sir, our system here shows the debits as negative numbers." Hmm.

I asked why an additional $80 debit was applied to put my account so deep in the red. "After a few failed charges to your credit card, the automatic top-up is automatically removed from the account." Oh. My credit card had expired and been replaced, which explained the failed payments. I asked "Why did the system not alert me by e-mail that there was a problem processing payment? Why did it not alert me when it changed my account?" "Sorry, sir, I don't have an answer for that."

"OK, but why is there an extra $80 debit on my account that makes my balance so grossly negative? There's no way that I made enough trips to add up to anything like this balance." That would have to be referred to another level of support via a ticket. Fine. "We are sorry for the inconvenience. I will add a $10 credit to your account and your problem should be resolved shortly."

A few weeks later, I still hadn't heard back about my support ticket, so I called and got a supervisor to review my case. Same back-and-forth exchange and confusion about how the account got into this state; clearly something must be wrong. There hasn't been any activity on the ticket, so "I'll escalate this and have a resolution for you by the end of the week." Thanks.

"Oh, by the way, sir, the $10 credit that was added to your account has expired because you didn't tap your card within three days of that transaction." Well, of course I didn't tap my card. I can't ride with a negative balance.

A few weeks after that, I called again and asked to talk to the same supervisor handling my case. "Oh, sorry sir! The second level support office did make a conclusion about your case but I see that we didn't get back to you with the result." "OK, fine. What is the result, then, please?" "Every $80 top-up credit on your account failed payment processing, so each was followed by a compensating debit." "Yes, we knew that already. The problem is that my account must have one debit too many. Where is that debit and why did it happen?" "Sorry, sir, I can't see those transactions; we can see only the last three months, like the website. It will have to go back to second-level support to answer that."

Next came a break-through. "But, to get you back riding the bus in the mean-time, I suggest you get a new PRESTO card and just stop using this one. Once you have your card, call in and tell them Anne [not her actual name] said you should be credited $6 to offset the cost of the card. I'll make sure that credit is applied to your new account."

New Levels of PRESTO Heck

What a great plan this was. Just cut and run, leaving the old card in the dust.

So, I surfed to the PRESTO website to order a new card. I know that they ship out fairly quickly, so this was convenient. I went through the process to order a new card, added $25 to start the account (the minimum initial balance), completed the payment, and ... waited for the "Loading payment confirmation page" (or whatever it was) message to go away. After about half a minute that message was replaced by one that said "Sorry, there was an error processing your request" and I found myself back at the home page.

"Great," I said to myself. "My order failed." Maybe it didn't like the odd nickname that I gave my new card. (you have to choose a nickname when you order it, not when you register it) So, I tried again with a different nickname. Same result.

Maybe it doesn't work in the Safari browser? I tried Chrome. Same result. Maybe it works in Internet Explorer? I fired up a Windows virtual machine and tried again. Same result. Maybe I can't use my existing account to order the new card? etc. etc. Finally, I gave up and got back to work.

Twisting the Knife

About an hour later, my e-mail client went berserk with notifications of incoming e-mails from prestocard.ca. Six welcome messages thanking me for creating an account, six thanking me for purchasing a card, and six telling me that a PIN has been created for my card.

Whaaaaaat?? All of my attempts to order a card didn't end in failure, despite what the error message in the web form said? I quickly checked my credit card: no charges yet. Whew! I can still cancel this.

I called the customer support line again to explain what had happened. "Oh, sir, I see that you were told to go to a station to buy a card in person so that you would have it right away. Then this wouldn't have happened." "Don't blame me for this! Your website screwed up; it would have been more convenient for me than trekking across town by taxi because I can't use my PRESTO card with its ridiculously negative balance! I need these orders cancelled, now."

"Sorry, sir. I can't do that." "What, because these orders have already been fulfilled? That was fast." "No, sir. The system provides no way to cancel an order." I was dumbfounded. "How can you have a purchase-order system that doesn't provide a means to cancel pending orders?" "I suggest you work with your credit card company to reverse the charges." "But, my credit card hasn't been charged, yet." "That's correct, sir. They won't be able to reverse the charges until your credit card is actually charged."

"I need to speak to a supervisor."

Insanity Sets In

So, I got the same supervisor on the phone who handled my case before. I explained the situation. She kindly replied that the system she has access to doesn't provide a means to cancel orders, but maybe the next level of support can do something about it.

Yeah, like that is going to help!

What can I do? I accede, hoping beyond hope that these orders can be cancelled before my credit card is charged.

But, it was not to be. Yesterday my mailbox was stuffed with these:

image.jpg

and I have all those lovely charges on my card: six charges of $31 each, $6 per card plus the $25 minimum operating balance.


Anybody want to join me in PRESTO Heck? Your card is on me!