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, one would sneak in something funny just to release some pressure.

So if you know of actual Easter eggs, please share otherwise I’ll move on to some features which are close to Easter eggs

Murex Easter eggs – Murex typo

While there are quite a few typos in Murex, here’s an example of a typical one:

– Fx settings: Use of the word Inhibate. Of course if you activate, you can then Inhibate… Not really a word in English but you get the meaning.

Murex Easter eggs – Undocumented feature

I did not test it on more recent Murex versions, but when trying to define Commodity spot indices, the label box would not appear. You can’t save it or anything without populating the non existing box. The solution? Change the index type once the definition box is opened and revert back to spot index. The label box is back!

Murex Easter eggs – And probably the best one

This one was developed on purpose and it is probably the closest thing you can get to an Easter egg (after your omit of course the Hawaian beach feeling from the option series). Anyway, the purpose of that development was to make it easier for people doing comparison testing to know which Murex screen was running a different version.

The problem of that function, it was certainly coded by someone high on LSD or effectively color blind (as such, Murex would be just 50 shades of Grey(Sorry for that one)). The color selected could have been pastel or slightly different, but no, the color mix is what you get from a leprechaun after St Patrick’s night when he partied high on rainbows. Best is to try it for yourself but brace yourself for seizure!

In your session arguments, add /FREAKMODE and start tasting the rainbow!

If you have some pearls to share, please do but in the meantime Happy Easter!!

Murex interview – What NOT to do

During my time at Murex, I had to recruit quite a few people and I faced different profiles, so have a read, smile and relax. For an interview you need to be prepared and at your best. So here are some pitfalls you can easily dodge.

Murex Interview – The Test

There is a test! Yes, it’s best to revisit your finance/programming/math lessons so everything is fresh and handy in your mind. You have 1 hour to do your best.

I think I have to give the golden crown to one candidate (to whom I already told there was a test): he came in, sat in the room and I left him to work on his test. 10 minutes later, he came out, handed me back the test (nothing written on it, not even his name, perfect to give to the next candidate). “I don’t think I’m suited for this role”. At least he was honest.

Second place goes to someone we ended recruiting because that person is actually really good. But when asked to give a simple definition, there was actually a fair bit of writing. 1 page! In small characters when 1 sentence could have sufficed. Know that we discuss with you the answers you give and we can easily tell if you understand or not

Last place goes to the bullshitter. Answers were very generic and could not make much sense out of them. When asking him for more details, he told us that he did not believe that it was so important to know things in details, you can always talk your way out. Well, he managed to talk his way out of the interview.

Murex interview – Presentation

Job interview is a two way street, you discover the company and people who are looking to recruit BUT they also discover you and who you are.

Once we had this candidate who was just looking at the table, did not even look at one of us once. And his answers were short when not single worded. Not matter what we tried to get him to relax, we failed miserably and we could not get him to open up. As many Murex roles are customer facing, being comfortable talking to people is important!

When you present yourself, it’s important to explain why Murex is of interest to you and especially on the longer run. Some people (yes it happened more than once) were upfront enough to mention that they were looking at Murex just as a stepping stone in their career. Definitely not a smart move!

Murex interview – The good surprises

But sometimes you get good surprises. The feeling (usually straight away) that you found a gem, someone that would fit perfectly the bill. And the interview/test will effectively confirm it.
I often pondered if it was simply the first impression that decided how an interview would go but I do believe that the Murex test makes things actually fairer. Someone with very good presentation but lacking knowledge would effectively be at a disadvantage after the test. Someone not so good at presenting can gain some confidence and feel more on familiar ground thanks to the test.
After that if you’re not good at presenting and don’t know much, maybe it’s better not to take the interview!

 

Rtimport – An anonymous interview

This Friday, we have a special guest Mr D. He preferred to keep his identity secret given the very sensitive information he will share with us today.

Murex Experts: Dear Mr D, first of all thank your for your time today. To present you, you’re one of the fathers of good old rtimport. Tell us a bit about yourself.
Mr.D My model has long been Stewie Griffin, the crazy baby who wants to destroy the world with one of his weird and deadly weapons. When I realized Stewie didn’t actually exist, I had to turn to something more reasonable. Still, rtimport wasn’t a bad finding. Something that can turn your P&L to dust without you or anyone else actuallt able to figure out why. Scary, no?

M.E.: How did you end up being the father of rtimport?
Mr.D To tell you the truth, I’m not its biological father, I found it alone and helped it find its true potential.

M.E.: Rtimport crossed a millennium and was probably the last program using the old technology/layout (if we except MReport/Union viewer in Murex). How do you explain its longevity?
Mr.D You know, rtimport is a bit like a kid’s treasure you put in a box and bury under the big tree in your grandfather’s house’s garden. Once it’s there, it doesn’t make any noise, grass grows back, and everyone forgets it, or how to open the box and what was so precious in there. I guess some rtimports might still work here and there. None knows there are there, but they are and still feed SHMs with all sort of rates.

M.E.: You do remind us of painful memories when the only person who had the slightest clue about rtimport is away and something needs to be changed/fixed.
Mr.D Yes, remember the reference to Stewie Griffin, I’ve been doing my part, one small step at the time

M.E.: The way of executing formula (line by line) is actually quite unique in the Murex world, how did you come out with this idea
Mr. D
Actually, it came from a grand idea that was always supposed to work but never actually fully worked. You remember how security prices and future contract prices were subscribed from a Cartesian product on SE_ROOT_DBF and MPX_PRIC_DBF ? If you hadn’t created a row in MPX_PRIC by inputting a first price for the stock or the new future contract first, rtimport wouldn’t try to subscribe any RIC. But if you did so, it would be able to rebuild the memory table on the spot and subscribe the new security without a restart. That was the beauty of the line by line.

M.E.: Hummm, sure. I think I’m not the only one who sweated a fair bit on the tool, was it always the initial design to have preloaded tables/unions, temporary tables, links and then extended links?
Mr. D
Yes, any issue with that ? I particularly liked the temporary table thing. Not actually useful if you are on a proper database (it was an inheritance from the codebase years), it was a bit like there three of four stones on the top of each other you sometimes see on Italian highways. Useless, costly, not even nice, but all that remains from an ancient temple for a long forgotten goddess. Now, don’t tell me you were actually using extended links ?? they were used in the default configuration, but we never expected anyone to ever open them ?

M.E.: Of course, giving access to something that you don’t know fits completely with your secret evil scheme of taking over the world. Moving on. Anything funny or easter egg in rtimport that you can share with us?
Mr. D 
With the display, it would have been hard to build a flight simulator or even a pacman in rtimport. There is something I never understood about it though. You remember how, if swaps were not contributed properly, you had to manually reindex RT_LNGN_DBF ? Well I never got why this table in particular, and why index would get broken by the first swap subscription. I think we never found out.
Oh, now that you mention it, there was something meant to be nice in rtimport. Remember the yellow and blue colors in the series screen to show whether your option was deep in or out of the money ? well it was supposed to work with real time, thus turning your series screen in a Honolulu beach screensaver … but none ever felt the poetry there and always focus on how slow the screen was. We live in such a superficial world.

M.E.: Poetry coming from an evil (I mean it in a good way) genius, we did not expect that! Next question: How did you feel when RTBS came out to replace your baby? Betrayed? Relieved?
Mr.D
First of all, thank you for your nice words. Back to your question rtimport has well past majority now, we still talk to each other but it doesn’t need me any more. If it decided to retire and pass it to its own children, I’m only a happy grandfather.

M.E.: Sounds like to us that you’re denying biological fatherhood but still cared for it for a while. Are you trying to dodge parental pension payments? More seriously and this would be our last question for today.
Was it considered at one stage to upgrade rtimport to get a GUI upgrade or you a firm believer that X windows is the way of the future?
Mr.D Rtimport was never a tool for the future, it was always the good old chap you have here and won’t let you down, but as far as I can remember, it was always to be replaced by something more strategic, but if you ask, I’ve been told that George RR Martin wrote the whole Game of Thrones series on a DOS version of WordPress, so X windows isn’t that bad after all !

M.E.: Thank you Mr.D for all these insights and we bid you good luck in your taking over the world thing.