Current reading August 2017

Two-way string matching 

And an implementation in Musl.

The C standard post C11

The Rube-Goldberg approach to fault tolerance in NTPd  which is not worse than PTP fault tolerance but a lot worse than what is done in TimeKeeper.

Interesting but naive article about bank accounting and credit/money creation.


Image result for boston march against racism

Current reading

Wadler’s influential “monads” paper for Haskell. It seems like a classic case of making something simple sound profound and mysterious.

McCarthy’s original LISP paper.  Just terrible.

A problem FSMLabs detected with GPS on London LD4 datacenter has been fixed. 

Dennis Ritchie and Albert Meyer on classification of recursive functions. I wish I could find a full copy of this.

The SEC Consolidated Audit is pushing clock sync requirements, but needs improvement.

The most successful functional language – Mathematica.

A critique of Haskell

A Haskell project at Facebook.

Some real engineering: the gcc optimizers.

Categories as algebra: An essential ingredient in the theory of monoids (via @joelvanderwerf )


Relaxed memory order

Two interesting posts on the order in which reads and writes happen and are made visible on shared memory multi-processors.  X86 has a strong memory model in which if X=Y=0 and then processor core 1 writes 1 to  X and then Y, if processor core 2 reads X and sees a 1, then its read of Y will find 1 not 0.  This “publication safety” issue is different on other multiprocessors and must be hell to implement on x86.


Multicores and publication safety 


JP Morgan Security Breach

“Faced with the rising threat of online crime, JPMorgan has said it plans to spend $250 million on digital security annually, but had been losing many of its security staff to other banks over the last year, with others expected to leave soon.” – New York Times. 

Why is it that NY banks can spend so much money on computing infrastructure and find themselves short of actual talent so frequently? There are very sharp people working in finance technology, but …

Paths versus Recursion

 * Iterative DepthFirst file list (c) Victor Yodaiken 2013
 * "Not the way we do it in Brooklyn" - Dave "Kinch" Arnow.
 * Data structure is P - the current path, with some aux data
 * Two basic operations:
 * 1) Lp(P) - starts at path P and extends it to the leftmost
 * reachable file/directory
 * 2) IterateDF(P) iterates by advancing a path to the next in depth
 * first order
 * So program is
 * Initialize(P);
 * do{
 * PrintPath(P);
 * }while(IterateDF(P) != EOF)
 * Horribly inefficient - can be cured by caching positions in directory
 * entries.
 * */
Link to Code

From Jersey to Wall Street – or the equivalent

cartaretA common configuration for FSMLabs TimeKeeper customers is to cross-couple time sources in New Jersey and New York City or London and Slough or Chicago and Aurora or Singapore and Sidney- any two trading locations that are connected with high quality network. Sometimes the network connection does not even have to be that great. TimeKeeper will cross-check time sources, complain when things look wrong, and failover when needed.  Multiple time sources also produces a timestamp provenance. Trading applications will have a record showing that the  timestamps they produce were in agreement with two or more independent sources. A number of firms scale this basic design to multiple sites: increasing the depth of fault-tolerance and the strength of the provenance. Cross-coupling time feeds also  provides early warning on a number of network problems. Several customers saw TimeKeeper warnings about secondary sync  and found on investigation that their network providers were changing equipment or rerouting without notice.




Boeing security

So the court said Matthew Neumann and Nicholas Tides were properly fired in 2008 for violating company policy of disclosing company information to the media, in this case the Seattle Post-Intelligencer, without company authorization.

In 2007, the PI wrote: “Boeing and its external auditors have rated the company’s inability to patch database and software development security holes as a ’significant deficiency’ with the computer infrastructure since 2004 — the first year it had to comply with the 2002 law. The failure has been deemed serious enough that for three years in a row, finance teams have spent the last 45 days of each year testing whether financial numbers are correct.

from Wired.

The wizards of finance

“This latest incident and the previous Chuetsu-Oki earthquake indicate that the business risk of operating nuclear power plants in Japan is higher than previously contemplated,” Moody’s analysts including Kenji Okamoto said in a note, putting the company [TEPCO] on a review for a possible downgrade. – Bloomberg.

No kidding?