constant study(over last5Y)keeps brain young#like muscle

I believe our mind (esp. our memory) is like a muscle. If we don’t seriously use it, it tends to age, weaken and lose capacity. Over the last 5 years, i spent 2009-2011 in the US on my own — tremendous learning and improvement, perhaps the most active learning period in my professional life. Then after I came back to SG, i studied financial math program, c#/dotnet, python and more c++.

I feel the serious study keeps my mind active. However, over the last 18 months, I notice various signs of my learning capacity reducing, but it’s not all due to aging —

  • biggest factor is lack of concentration, due to kids and family commitment
  • not enough time to periodically re-visit each topic,

After all, I feel it’s vital and paramount to keep our mind in constant learning mode. 活到老学到老.

Learning a tech is not 100% all about getting the job done or getting better jobs, even though that’s about 99% of it, admittedly.

A few colleagues (a tiny minority) at my various jobs seem to enjoy the learning process, even proprietary technologies with low market value. Learning tech can be a joy. In such a context, or such a geek, don’t mention “saving time”.

As mentioned in the title + first email, I feel our brain is like learning machine, and like a muscle. (I guess chess is also a kind of brain exercise…) Any such exercise is never a waste of time.

Some people make a decision to learn something (Spanish? Wu-bi Chinese input? musical instrument) even when they are as busy as we are. I guess Learning a technology is sometimes like that.

However, I (grudgingly) agree it’s not so fun learning, say, java struct, for years and then see it falling out of favor. I carefully pick the low-churn technologies, like you would pick watermelons at the supermarket:) See my earlier email

dotnet IPC implemented by eventvwr, perfmon

Though this post is about dotnet, it is likely to be also applicable to non-dotnet apps.

You can create/delete custom event logs. The 3 built-in event logs (app, security and sys) can’t be deleted. All of the above are viewable on eventvwr.exe

Except security log, all other event logs are writable – including app, sys and custom event logs. I feel this is a simple way to implement basic application logging in dotnet. The EntryWritten event firing feature looks neat.

Further, it looks like multiple (Local) processes can subscribe to the same EntryWritten event, so you could perhaps coordinate 2 processes using EntryWritten — IPC

You can even access remote event logs.

Perf counter is Another simple IPC mechanism. You can create custom perf counters, visible to other processes + perfmon.exe.

Since one process can update the counter and another process can see it in real time, it’s IPC.

I have yet to implement IPC this way.

CLR monitors – implemented by kernel objects

All sync objects in windows, across languages, are based on primitive kernel sync objects. (How about sync objects in jvm on windows? I guess the same.) Sync objects are not language constructs, but provided by the OS. I feel the stream construct is also something provided by the OS.

([[cpow]] means  [[concurrent programming on Windows]])

The CLR Mutex class is a “crude” wrapper over some kernel object(s). Crude because using this Mutex involves expensive kernel transition.

In contrast, The CLR monitor is Also based on kernel objects, but minimizes kernel transition and is more effcient/cheaper. See P188 [[cpow]]. I feel this efficiency is achieved at the expense of features. For eg, CLR monitors aren’t cross-process.

CLR monitor offers 1) mutual exclusion and 2) condVar features. Entire CLR monitor including the cond var is based on kernel objects, according to [[cpow]]. The CLR monitor is considered a “higher level of abstraction from the basic kernel objects“.

From the above analysis, the CLR offers 2 categories of sync objects — 1) wrappers over kernel objects, and 2) CLR-specific constructs.

1) Examples in the wrapper category — anything based on WaitHandle including Mutex/Semaphore
2) Examples in the CLR category —
– interlocked
– monitor class including Wait/Pulse
– the *Slim classes

Key differences between the two —
$ slow – kernel mode “transition” required in the wrapper objects. Therefore much slower.
$ IPC – only kernel sync objects are usable across processes. If no IPC required, then the non-kernel constructs are better (much faster).
$ P/Invoke – you could use P/Invoke to simulate many WaitHandle-based constructs
$ predate – there are win32 constructs to access the same kernel objects. They predate CLR. I think the wrappers are similar to the win32 constructs.

implicits in an ED fut price

At the heart of this price thingy is a __fwd-starting loan__. The price is related to the interest rate on this loan, also known as FRA rate or simply fwd rate. Traders basically guess at (“bet and “trade” are less intuitive) this rate.

Implicit – loan is 3M tenor

Implicit – loan starts 2 days after expiry of the futures contract.

Implicit – this fwd interest rate is always, always, always annualized

tech zbs( !!GTD) outweigh other(soft)job skills #%%belief

label: big20

In many teams (including …), I feel technical zbs/GTD capabilities

are still the #1 determinant of job security, comfort level,

competence level, work-life balance. Secondary yet important factors


– relative caliber within the team

– boss relationship

– criticality of the role within the team, within the firm

– reliable funding of the project, team or role

– closeness-to-money

– long work hours

– fire-n-hire culture

So zbs is key to keeping a job, but for finding a job, something else needed.

hobbies generating +ve stress #le2 Amina

I feel if a person has multiple personal goals and they generate positive stress (rather than pressure), then these goals enhance this person's condition stress-wise. Each such stressor is a power pump with a safety valve.

For eg, i try to publish some worthwhile blog post every week. Never stressed me out.
For eg, in my early 30's I used to attend a quarterly fitness test
For eg, I was improving my coding (c++/c# etc) in my spare time — i do feel a bit disappointed if i make no progress for a month, but this pressure is still small, compared to many external stressors in my life:)
For eg, I used come to office on weekends and work on unfinished tasks. Not forced to.
For eg, I used to try job interviews when my job is safe. Would be real stressful if job is under threat.
For eg, helping my son with piano and swimming practice can feel stressful, but there's a ….. safety valve.

leadership – leverage on specialist knowledge

Some people make a good leader without specialized expertise. I feel many top level executives are this type.
Some people make a good leader after establishing a status as a subject matter expert. I guess they no longer need that expertise. Some may need it if a big part of leadership involves technical sales and technical vision.
My father has academic leadership, based on his domain expertise. More generally, I guess in quant domain, in research and academia, a leader must have a minimum level of specialist expertise.
Some specialists don’t take on leadership role at all. I know some in the US.
My parents and some close  friends (I won’t count the numerous comments by casual friends) point out that I show a “relative advantage” in research/academic areas relative to people management, but let’s not talk too much about myself.
Q: is your chosen field right for you?
A: I feel in theory financial app development isn’t really the best for a lot of guys, though it may be the best given my constraints now. For many, it’s much better than other IT sub-sectors.
First and foremost, it’s painful, depressing but unnecessary to compare with those “leadership” people. They aren’t even our peers.
If  you were to leverage your specialist knowledge to build leadership, then the next task is to identify a specialist field. C++, c#, java etc. aren’t that appealing so far. After this step, we would need to stick to a company. I chose GS but GS didn’t choose me:)