background preloader


Facebook Twitter

Livre blanc : Maîtrisez votre dette technique. Le 4 Juin 1996, à 9h35 le vol 501 de la fusée Ariane 5 effectue son premier décollage.

Livre blanc : Maîtrisez votre dette technique

Quelques secondes plus tard, le système de guidage inertiel reçoit trop d’informations et se met hors service, car reconnu défaillant. L’ordinateur de bord est alors notifié qu’un dysfonctionnement est en cours et compromet les informations concernant la trajectoire de la fusée. Cette modification de la trajectoire entraîne l’arrachage d’un moteur d’appoint, déclenchant l’auto destruction de la fusée. Des analyses plus approfondies ont démontré que le système de guidage inertiel est lui même la cause de cet échec.

Conçu à l’époque pour Ariane 4, il n’était plus nécessaire pour Ariane 5. Au-delà du caractère spectaculaire de cet exemple, il est intéressant de noter que l’origine du dysfonctionnement réside dans un module développé pour une version antérieure de la fusée et devenu obsolète. Télécharger le Livre blanc « Maîtrisez votre dette technique ». Relating Category Theory to Programming Language Theory. The most immediately obvious relation to category theory is that we have a category consisting of types as objects and functions as arrows.

Relating Category Theory to Programming Language Theory

We have identity functions and can compose functions with the usual axioms holding (with various caveats). That's just the starting point. One place where it starts getting deeper is when you consider polymorphic functions. The Principles of Good Programming. Heron-Centric: Ruminations of a Language DesignerThe Principles of Good Programmingby Christopher DigginsJuly 24, 2011 Today's post is a lightly edited repost from my blog at The Area, a web-site dedicated to users of Autodesk media and entertainment products.

The Principles of Good Programming

I came up with this list of principles to help with a recent C# training I gave, and I thought that members of the community could appreciate these principles and have some interesting insights to share. The principles of good programming are closely related to principles of good design and engineering. The following programming principles have helped me over the years become a better programmer, and I believe can help any developer become more efficient and to produce code which is easier to maintain and that has fewer defects. DRY - Don’t repeat yourself - This is probably the single most fundamental tenet in programming is to avoid repetition. KISS (Keep it simple, stupid!) Regular Expressions in Programming Environment. Regular expressions are a way of describing patterns of text that can be useful for processing text documents or when looking for a pattern and possibly replacing it with another.

Regular Expressions in Programming Environment

Regular expressions are a very powerful tool indeed, and the best thing is that they go beyond just one programming language or tool. You’ll find Regex enabled applications everywhere. File renaming tools might use Regex to allow complex renaming operations; most IDEs support it, search tools as well. Once you master regular expressions, you’ll find tons of applications. MongoDB for a large queuing system. Our queuing system is different from others in that it supports dependencies.

MongoDB for a large queuing system

For instance, before one job completes, its four children have to complete first. This allows us to create jobs that are actually trees of items all processing in parallel. On a small scale, things went fairly well. We built the entire system out, and tested and built onto it over the period of a few months. Then came time for production testing. Without a doubt, MongoDB was the biggest bottleneck. De la performance à l’excellence. MemoryImage. Database · application architecture tags: When people start an enterprise application, one of the earliest questions is "how do we talk to the database".


These days they may ask a slightly different question "what kind of database should we use - relational or one of these NOSQL databases? ". But there's another question to consider: "should we use a database at all? " One of the defining characteristics of enterprise applications is the need to store long term data, which naturally leads people to reach for a database.


Harold’s Corollary to Knuth’s Law. Lately I’ve found myself arguing about the proper design of unit tests.

Harold’s Corollary to Knuth’s Law

On my side I’m claiming: Unit tests should only touch the public API. Code coverage should be as near 100% as possible.It’s better to test the real thing than mock objects. The goal is to make sure that the tests are as close to actual usage as possible. This means that problems are more likely to be detected and false positives are less likely. By contrast some programmers advocate that tests should be method-limited. This approach may sometimes let the tests be written faster; but not always.

Maintenance. Contrasting Performance : Languages, styles and VMs – Java, Scala, Python, Erlang, Clojure, Ruby, Groovy, Javascript. There’s a better place to specifically look at performance comparisons across languages than this post – The computer languages benchmarks game.

Contrasting Performance : Languages, styles and VMs – Java, Scala, Python, Erlang, Clojure, Ruby, Groovy, Javascript

But this post attempts look at performance comparisons a little differently. Based on coding idioms as well. And for a much narrower range of problems (namely one). There are languages which are tightly opinionated on a particular way of doing things. And there are languages which allow you to implement a given logic in multiple ways. This is also a sequel to a post I wrote 3 years ago Performance Comparison – C++ / Java / Python / Ruby/ Jython / JRuby / Groovy.

Problem Quoting from The Josephus Problem, Flavius Josephus was a roman historian of Jewish origin. In the general version of the problem, there are n soldiers numbered from 1 to n and each k-th soldier will be eliminated. Identifying which Java Thread is consuming most CPU.


Process. Scala. Tools.