Category Archives: Friday funnies

The logs monster

Just to finish this week with a bit of lighter note: let’s talk about something actually quite painful in Murex: log files.

While you will be able to find everything you need as logs in Murex if someone helps you, to browse the logs for errors makes Indiana Jones job sort of trivial!
Indeed, Murex produces a lot of logs and unfortunately not always as detailed as you would have liked or sometimes not where you would expect. So here are few advice to get through them.

  • Most logs are under the… logs directory. But not all of them! find and grep will quickly become your best buddies on Linux/Unix to find where are the files.
  • And once you enter the logs directory, your first ls will bring out a massive list of log files. There are many of them and sometimes even in subdirectories. You could sneak in your porn folder in there, no one would ever be able to find it. Much safer than your accounting 2014 folder on your PC!
  • To navigate through the logs folder, again find and grep (I mostly use grep myself but that’s just me) are your friends.

I would say that most of the time, you should only go through the logs to search for something specific. Mxmlexchange crashed? Perfect go and search files with mxml, that narrows the scope considerably. There is too much noise and so many different logs that you cannot ‘just look’ at the logs to see if all services are running ok. The best example is if you have garbage collector on java turned on to verbose, then you will get loads and loads of high quality log: GC [5K -> 2k] (about 2 million times). I am waiting for an answer if I can turn these off. They make reading mxmlexchange logs extremely painful. Again grep is your friend, remember that you can use the -v option to filter out data from a file. You can also do grep on grep : grep ‘text to search’ filename | grep -v ‘string to filter out’. Very very useful. If I ever find the grep author, I owe him a beer. (well, probably more a truck of beers, but we’ll start with one).

Logs of logs? Probably the best would be to have some logs of logs. You just extract the logs you actually need to check and make a new log file, that would be probably the best way. I am sometimes considering as a solution.

Of course, some of you would come back and reply ‘what about errors.log?’. An example of meta-log, some services also put their errors in errors.log. But not all of them and you still get a lot of noise (looking at you RTBS). I’d stick to my grep for now.

Just for fun, I am wondering if I should print out all the logs generated by Murex in one day to show people the amount of data it creates. Maybe I could turn it into some cool ASCII art or that would replace my stock of wood for winter… Not sure and as my emails say ‘Print responsibly”, I doubt I will actually do it!




Word association and housekeeping

Looking through the window searching for a topic I’d like to cover and basically nothing is coming through (sun, rain or inspiration). I had in mind to do something with housekeeping but I think I’ve already covered purge.
The only thing that sticks to my mind and basically blocks my thought is the following:

The problem is that everytime I choose housekeeper in Murex, I always think of this scene from Family guy. The association is deep anchored and I can’t refrain thinking “I come in anyway” when I double click on the housekeeper group.

Oh well, I hope I also created that association for you now and that you will have a smile next time you need to do a purge (in Murex of course!)

Last (minute) action hero

I started to have some comments that with a post a week during the holidays, there was no more Friday funnies! Worst of all, because I forgot to program this post, it ends up being posted on Thursday! Oh well, could have waited 1 more day and that would have actually be a Friday funny.
Today, I wanted to tackle with a pinch of humour (that’s what I like to believe) the very important subject of waiting for the last minute to do something.
Not sure if that’s a characteristic of Murex consultants in general or of everyone (I tend to believe in the later, except that Murex consultants take it to the next level, or the boss level, or the extra hard post game level), but there’s indeed a strong habit of waiting as much as possible before doing something.
It’s a bit like driving fast up a cliff and stopping as close as possible to the gap. You might be shocked by this metaphor (seems extreme indeed to compare a daredevil stunt to writing a document) but it is spot on! Because if you don’t do it right: you will crash and burn. Especially if your estimations are off and what you assume would take 1h, takes in fact a day.
Real life example: customer calls, has a problem with a report. (it’s 10am on a Monday). He was due to deliver the report at 9am. Best of all, he pretty much had few weeks to work on it, but only started on Sunday night. Kudos for working on Sunday night, but if he had tested before, he would not have crashed and burned. (I know that I repeat myself but that’s ok because I know that I repeat myself a lot.)
Errr, moving on. The metaphor, the example they were designed to scare you. I think it’s pretty fair to say that it did not work and I know exactly the feeling: the satisfaction of having cleaned your to-do list does not bring a fraction of the motivation of a close deadline. The only thing that worked for me is to register the tasks in my to-do with a closer due date. This actually does work: the guilt of having overdue items in my to-do is really unpleasant.
And you dear reader, do you do all your tasks as they come or you live next to the coffee machine with the anxiety of not being able to finish the job that was due 2 hours ago?

Why I love working with Murex

There is one great thing about working on Murex: there is rarely 1 answer to a problem. But usually you can sometimes find a better solution:

Someone asked me to input a large number of SCFs (>300) with all the information in Excel. My first thought was: EVS task and I send either a large XML or multiple.

Luckily for me, it was a bit late so I thought I would do it the next day (this post is not about pushing back all your work to tomorrow, seriously!). Before going to work I then thought that Murex has some looping functionality in the code and I could build a lookup table with all the counterparts and currencies to input (amount was irrelevant).

Then  a macro would read the lookup table and insert a new SCF leg for each record changing the currency and counterpart.

Was quite happy with myself (better solution yeah!). And then opening eTradepad, something clicked in my head: while having SCFs as a line in ePad, I could as well have all the SCFs I needed in a single notepad and paste the list of counterparts and currencies.

Then a quick select all and capture trade : boom! All trades are booked and effort required was <5 minutes.

Basically I went through 3 levels before finding the best solution (if you can think of a better solution, you deserve praise!). Of course, if it happens before you start implementing a lesser solution, it’s perfect but sometimes it unfortunately comes AFTER you built the solution. Then it is quite frustrating.

And that’s the beauty of working with Murex, as there is rarely 1 single solution, you need sometimes to think differently in order to perceive the other solutions.

What about you? Ever experienced this feeling of breakthrough and finding other solutions? Feel free to share below!

Undocumented feature

This Friday, a small essay as to what all of us have one day experimented (maybe not that extreme though). I hope you have as much fun to read as I had to write it.

Working hard and all day long,
John was alarmed when the system returned:
"Unknown error"
Shocked he was and there was nothing else to do 
Than to press Return. The following message
sent shivers down his spine
"Your session will now close"
"No!" He shouted at the computer screen.
Sadly, computers are made of silicon and plastic
And despite his rage, the message was still there unaware of John's distress.

After giving that formula all his love, strength and energy 
of the day. Putting in comments as taught by his teachers
Naming variables clearly and smartly.
The bold message was still there as an omen to the inevitable:
"Your session will now close"
Now sweating and trembling with fear, he quickly grabs his phone
Dials the Murex support line and get in touch with his favorite
consultant. Surely, something can be done. 8 hours of work cannot be lost so easily!
Finally, a voice, something human in this inhumane process. Quickly he stammered his problem. His nerves were getting the better of him. He was going down, he knew it. His last light in the darkness of his mind was this Murex consultant.
The response was not at all was he expected
"Ha ha, it seems that you've encountered an undocumented feature! I hope you did save your work beforehand
- Undocumented feature? You mean it is a bug? My work is lost?
- I'm afraid so. May I help you with anything else?"
Sadly for that poor consultant, his eardrum would be torn by the loud NO that John threw at him in all his rage.
John now almost crying, accused of bringing his own downfall. How could he be accused that this problem, this undocumented feature, this bug could be his fault by not saving?
Bringing back primal feelings from the dawn of humanity, he grabbed the medium he used to communicate with that impotent consultant and focused all his rage into throwing it into the screen. Instant relief!
The afterfall... the shame of a broken screen. The good aspect of working late: he did not have to bear the stare of other people. Replaced his screen, restarted his computer. His favorite software booting back up, even if it went down few notches in his book, and John is working again.
Word to the wise: no matter how much you love Murex, always backup formula in Microsoft notepad (notepad ++ is ok as well!)

The walls have ears

One of the particular thing I love working with Murex is the cultural mix. Often you meet people of different background, different culture and different language. That’s a very enriching experience and a great opportunity to learn more about the world.

But back to different languages and where I’m trying to get this post to: it is considered rude to speak a different language if a person in the conversation cannot understand/speak that language. The problem is that often the 2 people revert back to their language, especially when it’s native, when:

– A presentation is going the wrong way (“Merde, ca crashe, comment je vais leur montrer ce truc” google translate is kinda your friend)

– They don’t know how to say the word in another language (“Comment on dit deja xxxx”)

– They try to pick up girls. Ok, I’m getting off topic here. Moving on

– They believe they’re by themselves.

And the latter one is the one I wanted to focus on (I know it’s probably the longest introduction ever).

Often you have people who want to discuss something privately and when you are on customer site, using a different language gives a bit of privacy and you also get the feeling that using a more native language is more accurate.

The problem is that there are people who can understand your language (except if you speak esperanto, then finding someone to talk with is quite an achievement!). Add that and whispering voice and you get the perfect recipe for letting some information out.

So as a rule of thumb only discuss with people around what you are comfortable for them to hear and understand (even if it is in a foreign language). If the conversation is more private, then discuss it really privately.

Did you have any experience (be it on either side) of something like that happening? Or did you start learning other languages just to understand what other people are saying?

Murex error messages through the ages

Today, when you have a crash, the message is pretty standard and very intelligible but it was not always like that let’s review what they were.

Murex error messages : the X-windows era

Time: time before 2000/2001

At the time of X windows, there was no error message as such. If a session was crashing, basically the process would stop straight away on the server side and the window would simply disappear on the client side. Did you really have a crash? Or did you close it by mistake? You can never be sure and it was always confusing. Probably the best time for supporting customers 🙂

Murex error messages : Fatal error

Time: from 2000/2001 to ca 2005

When Murex released the Mxg2000 version, the software architecture changed. On the client side, you had a thin client running. As such, if the process crashed on the server side, you then had to display something on the screen. So they settled for probably the largest error message possible: Fatal error for session detected for process XXX. Session will now close (I’m not completely sure I nailed it exactly as it’s been some times!). All I remember is that the error could span on your whole screen especially if you were just using a 15′ screen.

Murex error messages : Maybe?

Time from ca2005 to ca2009

Alright, to be fair this was the error message that motivated me to write this post: The error message ended in Service is maybe dead. Technically it was correct: the client could not connect anymore to the server process. So maybe it was dead.

Problem is that for end users the results was the same: close and restart a new session. And if you had few crashes in a row, you would wonder if Murex was mocking you. Yeah maybe it was 🙂

Murex error messages : Modern times

Time from ca2009 to now

Sadly (for this post I mean), Murex is crashing less and less and we probably reached the most clear and intuitive message to date: “Process is not valid anymore. Session will now close.” It’s not too long it’s concise. Unfortunately you can get access to the java stack that many people still like to sent but as the crash occurred on the server side, the java stack just shows that the client cannot connect anymore.
Anyway, after few iterations, the message is now crystal clear!

Dear reader, my memory is not what it used to be. So if you see an error (haha) or something missing, please let me know and I’ll correct it.

Murex Easter eggs

Murex Easter eggs? Here’s one question that comes back from time to time and as it is chocolate season this weekend, So before you start punishing your liver with all the cocoa you can get your hands on, have a read!

Murex Easter eggs – Definition and Considerations

So for whoever never heard of Easter eggs in a software, they’re tiny features (or often games) which are hidden and can be triggered by a specific series of keystrokes or clicks. For instance, if you are using chrome, when internet is disconnected you get the pic of a dinosaur. Press space bar then and the dinosaur starts running across the desert.

Alright, so to the question: are there Easters in Murex? The answer is I don’t know. So far I haven’t seen any actual ones (but I’ve got more things to share or this post would be incredibly short!) but I’m curious if there are any. One one side, Murex is a software used to trade and supports critical services. So I’m not sure customers would really appreciate that some of the development time and code is used for coding Easter eggs. Especially if you get a bug/regression because of a Doom-like game hidden in the software. On the other hand, you have developers spending days and nights on their keyboards writing lines after lines of codes, one could assume that among all these developers,