Thursday, June 29, 2017

[Links of the Day] 29/06/2017 : BeeGFS distributed FS, Virtual memory in Big memory systems, PdfX

  • An Introduction to BeeGFS : Fraunhofer distributed parallel file system for HPC system. Mainly a concurrent of Lustre I would say. This had potential and they are making a foray into the business side of storage. Let's see how well they fare. [website]
  • Preserving the Virtual Memory Abstraction : the author work aims at maintaining the virtual memory abstraction throughout a set of various hardware implementation. [thesis]
  • PDFx : really cool tool that allows you to extract all the reference and metadata and download them!!


Tuesday, June 27, 2017

[Links of the Day] 27/06/2017 : Blockchain trust & authentication for IoT, K8s patterns, Ripple cryptocurrency Network analysis

  • Kubernetes Production Patterns and anti-patterns :  a lot of common sense, actually a lot of the patterns and anti-patterns can be applied to the other environments. But still a good refresher. 
  • Blockchain based trust & authentication for decentralized sensor networks : using blockchain to solve the trust issue in a swarm of IoT on a network. The critical bit missing is the power requirement for running all the crypto operations.
  • Large-Scale Analysis of the Ripple Cryptocurrency Network : an overview of the paper analysing the Ripple p2p blockchain based money transaction network. Turns out it suffer the same issue that "old school" p2p network. Take out the highly connected nodes and you can bring down / split the network. Nothing new, but still a good read and reminder that small network tends to be resilient to attack. But, if their resiliency diminishes with the increased reliance on a small number of highly connected nodes.


Thursday, June 22, 2017

[Links of the Day] 22/06/2017 : Modern Web Dev spell-book, .Net microservices framework, Optimizing Rust

  • Spellbook of Modern Web Dev : like an awesome list for javascript development but with more thought and structure. Must read for front end javascript devs.
  • Microdot : not a .net guy but here is a framework for easily creating .NET Microservices with Orleans
  • Rust Optimization : a lot of stuff can be applied to any language. But, there is some nugget of information for Rust language in this document.

Tuesday, June 20, 2017

[Links of the Day] 20/07/2017 : Statistics lectures notes, HA transactions, Capability Models for Manycore Memory Systems


  • Lectures on Statistics : 2003 lecture note on statistics, pretty much cover all the basics of what you need to know about stats.
  • Highly Available Transactions : the authors looks at the state of the database transactions system and well like any good scientist their conclusion is that there is more research to be done. But more seriously, highly available transactions and system need to be perfected and new semantics with hybrid systems are required to be developed in order to ensure the availability of transactions. 
  • Capability Models for Manycore Memory Systems : Programming for manycores system is hard, optimising them is even harder. In this paper, the authors try to design models that help programmers to deliver efficient software for these type of hardware architecture. [slides]


Friday, June 16, 2017

Maxims of Maximally Effective Startup Developer


  1. Test, then Deploy
  2. A coding Developer outranks an Architect who doesn't know what's going on
  3. If the food is good enough, the devs will stop complaining about the incoming workload
  4. Only you can prevent prod failure. 
  5. If testing wasn’t your last resort, you failed to resort to enough of it.
  6. The longer everything goes according to sprint planning, the bigger the impending disaster. 
  7. The world is richer when you turn competitors into partners, but that's not the same as you being richer.
  8. Give a developer a task, he will code for a day. Take his software away and tell him he's lucky just to be paid, and he'll figure out how to code another one for you to take tomorrow. 
  9. "Deploy and Forget" is fine, provided you never actually forget.
  10. Don't be afraid to be the first to resort to rollback.
  11. The competitor of my competitor is my competitor's competitor. No more. No less.
  12. There is no over testing.' There is only 'Continuous Integration' and 'I need to spawn more Jenkins slave'
  13. Just because a feature is easy for you, it can still be hard to your clients.
  14. There is a difference between a spare feature and extra [feature].
  15. Not all good news is competitor action. 
  16. “Do you have a backup?” means “I can’t fix this.” 
  17. The size of a developer startup stock options is inversely proportional to the likelihood of the startup surviving to collect it
  18. Don’t try to save money by conserving lines of code.
  19. Don't expect the competition to cooperate in the creation of your dream startup
  20. If it ain't broke, it hasn't been deployed to prod yet.
  21. The dev team you've got is never the dev team you want.
  22. The product management guideline you've got is never the guideline you want
  23. The best way to win a one-on-one architecture design is to be the third to arrive.
  24. It's only too many features if only the devs use them
  25. Don't bring big VMs into small servers
  26. Management knows how to do it by knowing who can code it 
  27. Failure is not an option - it is mandatory. The option is whether or not to let failure be the last thing you test.



Borrowed from Shlock Mercenary Comic 

Thursday, June 15, 2017

[Links of the Day] 15/06/2017 : Corporate Wargaming, ScatterText , Forecasting and BigData

  • Scattertext : Nice and easy to use tool allowing to find independent terms in corpora and present them in an attractive way via interactive scatter plot.
  • Forecasting in the light of Big Data : the authors look at how forecasting is changing in the light of new tool and data collection capability emerge. And as often the authors suggest that the best approach would be to combine model and quantitative analysis in order to obtain the best forecasting strategy. However, I am afraid that this would require a new framework and also training data scientist to leverage this two opposite methodology correctly. 
  • Competitive Wargaming and Simulations for Business Forecasting & Analytics : slide deck providing a good insight on how wargaming can help shape the decision process and strategy of a company. However, like any tool, it's about as much about the preparation and how to leverage the outcome of the game itself. 


Wednesday, June 14, 2017

[Links of the Day] 14/06/2017 : Formally proven HTTPS replacement, Kisrhombille geometry public key cryptosystem using Mersenne Numbers

Everest: Towards a Verified, Drop-in Replacement of HTTPS. The authors ( team of Microsoft, MIT, INRIA) propose a complete, verified replacement of  TLS and other components of HTTPS. Entirely written in F* for provability, Everest is then compiled into a low-level language. This is a highly praiseworthy solution. However, there is still a great portion of the dev world that do not completely embrace or understand formal verification. And until the big corporation ( Google, Microsoft, AWS, etc.. ) start pushing such library the adoption will remain marginal.
Public-Key Cryptosystem via Mersenne Numbers : an interesting new approach to delivering new Public key cryptosystem, for crypto buff only.
Kisrhombille geometry : tessellation of plane using rhombic faces divided in a centre point into four triangles. While Voronoi tesselation tend to still have my preference this type of tessellation has a high potential and like all of them, they are really pretty :) 



Tuesday, June 13, 2017

[Links of the Day] 13/06/2017 : Next Gen Fabric Comparison, Marginal Revolution Books, AWS awless CLI

  • Marginal Revolution Books : A browsable database of books discussed on Marginal Revolution, sorted by the month of their posting.
  • CCIX, GEN-Z, OpenCAPI : Overview and comparison of the different next generation fabric. This presentation shows that key difference and use case associated with each fabric. CCIX  mainly focusing on low latency main memory expansion with its hardware cache coherence. It enables accelerator, network, main processor, etc.. to work on a same coherent view of dataset. Gen-z is really all about hardware/ component disaggregation. I tend to prefer this approach as I feel this will be the next step in HW efficiency. While OpenCapi is a little bit like CCIX but with the hope to extend beyond to rack level in the future. 
  • awless : fast, powerful and easy-to-use command line interface (CLI) to manage Amazon Web Services. This a nicer version of the AWS cli. Also, it is WAY more human-friendly. Check it out. 

Thursday, June 08, 2017

[Links of the Day] 08/06/2017 : Machine Learning Tuning DBMS, Direct SSD to GPU SQL and Large Graph DB processing

  • Tuning DBMS with Machine Learning : From the people behind Peloton, they demonstrate a way to automatically tune DB using machine learning. This is rather interesting, however, there is a key element that is missing in the approach: Cost. Your DB system can become highly optimise but your AWS cost can skyrocket too. What you need is a system that automatically tunes perf & cost tradeoff to maximise ROI Sometimes being a little bit slower can save $$
  • MOSAIC : More heterogeneous approach: graph processing engine that exploits all the hardware resources available in a standard Xeon host processor, Xeon Phi coprocessors, NVMe, and a fast interconnect. Because fast processing of your Facebook social network for fast advertisment targeting is worth it :) [slides]
  • PG-Strom : By-passing CPU for SQL operation by allowing direct SSD to GPU communication for Postgress SQL processing. We are slowly entering the age of heterogeneous computing system were core CPU get relegated to highly generic tasks. [slides]


Tuesday, June 06, 2017

[Links of the Day] 06/06/2017 : Secure Machine Learning, Quantum secured blockchain and Survey of Machine Learning in Hardware

  • DeepSecure : a framework that enables scalable execution of the state-of-the-art Deep Learning models in a privacy-preserving setting. The authors propose a system that enables data owner and model owner to maintain segregation of information while allowing them to work together without data leak between the two parties. 
  • Quantum-secured blockchain : The authors propose in this paper a quantum blockchain architecture specifically designed to solve the post-quantum computer cryptographic weakness of currently used crypto algorithms in Bitcoin and other blockchain frameworks. However, it seems that they conveniently ignore newer cryptographic solutions that are "quantum resistant".
  • Survey of Neuromorphic Computing and Neural Networks in Hardware : heterogeneous hardware solutions are becoming the norm as classic CPU are not able to handle the bandwidth and processing power. Seriously, how a Intel or AMD CPU can process 1 Tb/S of bandwidth ... Anyway, as machine learning is reaching peak hype, the hardware that comes to accelerate it is getting more mainstream and diverse. This paper provides a good overview of the various technic and hardware used in the field. Moreover, it references an exhaustive collection of papers of the field.



Thursday, June 01, 2017

[Links of the Day] 01/06/2017 : Istio microservice mesh , encrypted p2p network, formally proven system still vulnerable to bugs

  • Istio : this is a fantastic project, it allow an efficient delivery of micro service infrastructure without tying the developer to a language specific framework. It relies on data plan using the Envoy proxy for managing and mediating all communication as well as a control plane for managing and enforcing proxy policies. 
  • CJDNS : encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing. This provides near-zero-configuration networking, and prevents many of the security and scalability issues that plague existing networks. [github]
  • An Empirical Study on the Correctness of Formally Verified Distributed Systems : Spoiler alert, even formally verified project can fall prey to bugs. And it seems that these bugs can seriously affect real systems in the wild. Well looks like that human in the loop is the weakest link in the production of robust systems after all.